一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于语法序列嵌入模型的售电公司评价情感分类方法与流程

2022-12-20 01:16:30 来源:中国专利 TAG:


1.本发明属于电力交易技术领域,具体涉及一种基于语法序列嵌入模型的售电公司评价情感分类方法。


背景技术:

2.随着近年来国内电力市场化改革不断深入,电力零售市场作为电力市场的一大重要组成部分,为售电公司和中小型电力用户提供了较批发交易方式更为灵活的零售交易方式,充分弥补了批发交易市场入市门槛高、学习成本高等不足。中小型电力用户在向售电公司购买电力套餐并完成套餐交割之后,会对电力套餐的实惠程度、用电偏差的处理方法和售电公司的服务态度等方面进行整体评价,在这些评价中充满了电力用户丰富的情感倾向。基于此,充分挖掘分析电力用户对售电公司评价中的情感倾向,一方面可以为其他电力用户在选购和定制电力零售套餐时提供参考和决策依据,另一方面能帮助交易中心对售电公司服务质量、信用等级、运营水平进行评价时提供重要指标,共同促使售电公司不断优化电力套餐结构、调整套餐价格和提升服务质量,保障电力零售市场的稳定运行。
3.在情感分析算法方面,虽然目前基于深度学习的各种算法在其他领域取得了较好的结果,但这些算法大部分都忽略了文本的语法结构特征对于情感表达的贡献,并且未将语法结构特征与语义特征进行联合建模。另外,国内电力零售市场发展还处于起步阶段,市场模式也有别于国外,目前还没有一种高效、准确的对售电公司评价通过解析语法结构并将语法结构特征与语义特征进行结合,进而实现情感分析的算法。因此如何克服现有技术的不足是目前电力交易技术领域亟需解决的问题。


技术实现要素:

4.在当前国内电力市场化改革背景下,电力零售市场作为批发市场的一大补充和完善,通过售电公司代理中小电力用户购电的方式,降低了中小电力用户进入电力市场的门槛,充分发挥了零售市场对电力资源的配置作用。电力零售用户根据售电公司服务对其进行的评价蕴含了丰富的情感倾向,通过情感分析手段充分挖掘售电公司评价的情感倾向可以为其他电力用户在选择售电公司时提供参考和决策依据。
5.然而,目前在电力零售市场中缺乏一种同时建模文本语法结构特征和语义特征来对售电公司评价情感进行分析的算法,本发明提出了一种基于语法序列嵌入模型的售电公司评价情感分类方法。本发明具体目标如下:
6.(1)分析传统的基于文本语义特征进行建模的深度学习情感分析算法存在的缺陷,并结合文本语法结构特征对情感表达的贡献度,探究设计一种基于语法序列嵌入的情感分析模型;
7.(2)将电力零售用户对各个售电公司评价文本作为领域数据集与分析模型进行结合。在获取到售电公司评价文本原始数据集后对其进行清洗、过滤以及语法结构分析,通过语法结构分析为每个文本生成相应语法树,而后根据语法树从根节点到每个叶子节点的路
径为文本中的每个词语生成语法树路径序列。对于每个评价文本,分别将其所有词语经过嵌入处理后构成的矩阵和词语语法树序列嵌入矩阵作为输入,划分训练集和测试集,并将分析模型分别在训练集和测试集上进行训练和测试;
8.(3)调优模型以获得最佳分类性能。针对售电公司评价文本数据集特点(如数据集数据量大小、文本平均长度等)和情感分析模型的测试结果,对模型各网络层的参数进行调整后重新进行训练并测试,对比不同网络参数条件下模型的分类性能,选取分类性能最好的一组网络参数,实现分类模型与售电公司评价数据集的有效契合;
9.(4)以评价情感分类结果作为对各售电公司的服务用电客户满意度的重要测评指标。评价情感的分类结果一定程度可以反映电力用户对于售电公司的情感倾向,能够在某种意义上刻画售电公司在零售市场的客户满意度和好评度,同时也为交易中心评估售电公司服务质量、信用等级、运营水平提供了一个重要指标。
10.为实现上述目的,本发明采用的技术方案如下:
11.一种基于语法序列嵌入模型的售电公司评价情感分类方法,其特征在于,包括如下步骤:
12.步骤(1),在电力零售交易平台上对所有售电公司随机采集评论数据,并对数据进行清洗和过滤以去除无语义内容,然后对剩余的数据进行情感类别标注;之后对数据进行划分,划分为训练集和测试集;
13.步骤(2),将训练集输入到基于语法序列嵌入的语义融合深度模型中,以交叉熵作为损失函数进行训练,并采用测试集进行测试,获得构建好的基于语法序列嵌入的语义融合深度模型;
14.所述的基于语法序列嵌入的语义融合深度模型中,采用双向lstm网络层进行语义特征提取;采用cnn网络层进行语法结构特征提取;之后将提取的语义特征和语法结构特征进行拼接后输入到softmax层进行类别预测;
15.双向lstm网络层的输入为句子中所有词语经过嵌入处理后构成的矩阵;
16.cnn网络层的输入为语法嵌入矩阵;
17.softmax层输出为情感类别的概率;
18.所述的语法嵌入矩阵表示为m∈rk×n,其中,k为语法嵌入的维度,n为句子包含的单词数;
19.步骤(3),采用构建好的基于语法序列嵌入的语义融合深度模型对电力零售交易平台的评论数据进行情感分类。
20.进一步,优选的是,步骤(1)中,标注的类别共有5类,分别用1-5进行表示。
21.进一步,优选的是,步骤(1)中,数据以4:1的比例划分训练集和测试集。
22.进一步,优选的是,步骤(2)中,语法嵌入矩阵的获取方法为:
23.包含n个词语的句子s={w1,w2,

,wn},对于第i个词语wi,i=1,2,

,n,其对应的从语法树根节点到叶子节点的路径为p(wi);
24.p(wi)表示为序列{t1,t2,

,t
l
},其中,tj为语法标签,j=1,2,

,l;p(wi)为词语wi的语法序列;句子s中所有词语的语法序列构成的集合p={p(wi),i=1,2,

,n};
25.通过对语法序列中所有语法标签嵌入求和的方式计算得到语法路径的嵌入表示,如式(1)所示;
[0026][0027]
在式(1)中,词语wi对应的语法序列为p(wi),p(wi)包含l个语法标签,分别是从t1一直到t
l
,其中语法标签tj对应的语法嵌入向量为vector(tj),1≤j≤l,通常vector(tj)的维度k与每一维的值可随机进行设定,k的值可设为100以内的正整数,每一维的值可随机设定为绝对值小于1的非0实数,k可根据最终模型训练结果进行调整,而每一维的值会在训练过程中根据目标函数不断进行更新;通过将语法标签t1到t
l
对应的语法嵌入进行相加,得到语法序列p(wi)对应的嵌入向量表示vector(p(wi)),又因语法序列p(wi)为词语wi对应的语法序列,故词语wi对应的语法嵌入向量亦为vector(p(wi));
[0028]
将句子s中所有词语对应的语法嵌入向量按序排列可得语法嵌入矩阵m∈rk×n,如式(2)所示;其中k为单个词语语法嵌入的维度,通常k的值可先随机进行设定,例如设k=50,后续根据模型分类结果进行调整,n为句子s包含的单词数,语法嵌入矩阵m即表示了句子s的语法结构信息;
[0029][0030]
进一步,优选的是,步骤(2)中,cnn网络层包括卷积层和池化层;卷积层用于对文本局部语法结构特征进行提取,具体为:
[0031]
使用固定窗口的卷积过滤器f∈rk×s对语法嵌入矩阵m∈rk×n进行滑动处理,其中k为语法嵌入向量的维度,s为过滤器每次处理的窗口长度,n为句子中词语的个数,卷积过滤器在第i个窗口进行特征提取的结果为ci,如式(3)所示;
[0032]ci
=f(f
·
m[i:i s-1] b)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0033]
其中,f为非线性激活函数relu,b为偏置量,过滤器f在语法嵌入矩阵m上以固定为1的步长进行滑动,并对所有长度为s的窗口m[i:i s-1]进行特征提取,其中i∈[1,2,...,n-s 1],完成特征提取后所得的特征映射图向量为c
syntax
={c1,c2,

,c
n-s 1
};为了尽可能多地提取到语法结构特征,此处可采用m个窗口大小相同的卷积过滤器对语法嵌入矩阵m∈rk×n进行处理,从而得到多个对应的特征映射图向量,构成特征矩阵;此后,为了进一步获得和目标任务最为相关的特征,减少参数数量,提高运算效率,使用最大池化层化对每个特征映射图进行池化操作,即对m个特征映射图向量取向量中的最大值,如式(4)所示;
[0034][0035]
在式(4)中,poolj为对第j个卷积过滤器产生的特征映射图向量进行最大池化的结果,j=1,2,...,m,max为对向量c
jsyntax
计算最大值的函数,c
jsyntax
为第j个卷积过滤器特征提取后所得的特征映射图向量;在得到所有特征映射图向量池化结果后,将这些池化结果进行拼接得到最终的语法结构特征向量r
syntax
,如式(5)所示;
[0036]rsyntax
=[pool1,pool2,...,poolm]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)。
[0037]
进一步,优选的是,步骤(2)中,使用双向lstm网络层对输入的文本词语嵌入矩阵进行语义特征提取,具体为:
[0038]
对于一个包含有n个按序排列词语的句子s={w1,w2,...,wn},通过一个词典嵌入矩阵e∈rd×v以及式(6)来查询每个词语对应的分布式嵌入表示,其中,在词典嵌入矩阵中,d为词嵌入向量维度,v为词汇表的数量,此处在glove预训练词向量[https://github.com/stanfordnlp/glove]中随机挑选100万个300维的词向量来构造词典嵌入矩阵,即d=300,v=1000000,r为实数空间,wi为句子中第i个词语,i=1,2,..,n;
[0039]ei
=eoiꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0040]
在式(6)中,oi是词语wi对应的维度为v的one-hot编码,即在oi中,只有词语wi对应维度的值为1,其余值均为0,从而将oi与e相乘便可得到词语wi对应的词向量ei;
[0041]
而后将句子s中所有词语的词向量进行堆叠得到一个词向量矩阵w∈rd×n,其中,d为词向量维度,n为句子s中词语数量,r为实数空间,之后将词向量矩阵w作为双向lstm网络层的输入;
[0042]
双向lstm网络层包含多个神经元,每个神经元均包含遗忘门、输入门和输出门;
[0043]
对于当前神经元,遗忘门首先接收上一神经元的输出h
t-1
和当前输入x
t
来计算遗忘权重f
t
,如公式(7)所示,其中当前输入x
t
就是词向量矩阵w中的第t行构成的向量,1≤t≤n且t为整数,该遗忘权重用于后续与上一神经元的状态c
t-1
进行相乘来决定保留哪些历史状态,如公式(10)所示;在公式(7)中,wf为遗忘权重f
t
的参数矩阵,该矩阵的值在训练前随机设定,而后在训练过程中根据目标函数动态更新,bf为遗忘权重f
t
的偏移量,可随机设定并在训练中保持不变,σ为sigmoid激活函数;
[0044]ft
=σ(wf·
[h
t-1
,x
t
] bf)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0045]
输入门接收上一单元输出h
t-1
和当前输入x
t
来计算得到当前哪些信息需要被记忆的权重i
t
,如公式(8)所示,同时,输入门还通过公式(9)计算当前神经元的候选状态c
t’;在公式(8)和(9)中,wi和wc分别为记忆权重i
t
和候选状态c
t’的参数矩阵,wi和wc均可在训练前随机初始化,而后在训练过程中根据目标函数动态更新,bi和bc则分别为记忆权重i
t
和候选状态c
t’的偏移量,可随机设置并在训练中保持不变,σ为sigmoid激活函数,tanh为tanh激活函数;最终使用公式(10)的加权和公式计算得出当前神经元的终态c
t

[0046]it
=σ(wi·
[h
t-1
,x
t
] bi)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0047]c′
t
=tanh(wc·
[h
t-1
,x
t
] bc)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(9)
[0048]ct
=f
t
*c
t-1
i
t
*c

t
ꢀꢀꢀꢀꢀꢀꢀꢀ
(10)
[0049]
之后输出门将基于前一神经元输出h
t-1
和当前输入x
t
来计算一个输出权重o
t
,如公式(11)所示,wo为输出权重o
t
的参数矩阵,wo可在训练前随机初始化,而后在训练过程中根据目标函数动态更新,bo为输出权重o
t
的偏移量,可随机设定且在训练过程中保持不变,σ为sigmoid激活函数,最后,输出权重o
t
与经过tanh激活函数处理过的神经元状态c
t
相乘,得到当前神经元的输出信息h
t
,如公式(12)所示;
[0050]ot
=σ(wo·
[h
t-1
,x
t
] bo)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
[0051]ht
=o
t
*tanh(c
t
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(12)
[0052]
双向lstm网络层分别使用两个反向的lstm对输入序列进行建模,定义输入词语wi(i=1,2,...,n)对应的正向和反向lstm输出状态分别为和将其拼接得到当前输入的状态表示对于包含n个词语的句子,经过双向lstm处理后得到的特征表示为h
={h1,h2,...,hn}。
[0053]
进一步,优选的是,将提取的语义特征和语法结构特征进行拼接后输入到softmax层,具体为:
[0054]
将语法结构特征表示r
syntax
及语义特征表示h进行拼接后得到最终的语法语义融合特征a,如式(13)所示;
[0055]
a=[r
syntax
,h]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(13)
[0056]
在得到语法语义融合特征a后,将a输入到一个全连接层通过softmax函数进行归一化处理,最终得到文本属于每个类别概率构成的向量p=(p1,p2,...,pn),其中pj为该文本属于第j个类别的概率,j=1,2,...,n,n为类别总数,如公式(14)所示,其中wa和ba分别为参数矩阵和p相对于参数矩阵的偏移量,wa的值在模型训练前进行随机初始化并在训练过程中根据目标函数进行动态更新,ba则在训练前随机设定后在训练过程中保持不变,softmax为归一化激活函数;
[0057]
p=softmax(a
·
wa ba)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(14)。
[0058]
进一步,优选的是,以交叉熵作为损失函数,具体为:
[0059]
假设待分类数据集共有n个类别,则对于某个样本,分别将其对于第i个类别预测概率pi取对数后与指示变量yi相乘,指示变量yi来源于训练数据的标签,假设该样本的标签确定该样本属于第j类,0《j≤n,则yi为1,其他yi(0《i≤n,i≠j)为0;并将所有相乘结果相加后取负值即可得到该样本的损失函数值l,如公式(15)所示;
[0060][0061]
在模型训练过程中,每一轮迭代都需对所有样本计算损失函数值并得出样本的损失函数均值,而后计算损失函数对于各模型参数的梯度,并通过学习率对模型参数进行基于梯度方向的更新。
[0062]
进一步,优选的是,还包括:从电力零售交易平台中获取各售电公司的所有评价数据,使用构建好的基于语法序列嵌入的语义融合深度模型分别对各售电公司的评价数据进行情感分类,根据分类结果统计售电公司在零售市场的好评率和差评率;所述的好评率为情感类别为5的评价数量占评价总数的比例;所述的差评率为情感类别为1的评价数量占评价总数的比例,并对电力零售用户推荐好评率排名前十的售电公司。
[0063]
本发明中,无语义内容包括助词、连词、标点、数字及特殊符号。
[0064]
本发明与现有技术相比,其有益效果为:
[0065]
本发明以电力零售交易平台中用电客户对售电公司的评价文本作为数据集,通过分析现有深度学习的情感分类算法普遍存在的忽略了文本语法结构特征对于情感表达的贡献,以及未将语法结构特征与语义特征进行联合建模的缺陷,提出了一种基于语法序列嵌入的语义融合深度模型。该模型在售电公司评价文本数据集上经过训练、测试、调优,从而能对其他售电公司的评价情感进行准确的预测,最终该模型对各售电公司评价情感分类的结果,一方面可以为其他电力用户在选购和定制电力零售套餐时提供参考和决策依据,另一方面能帮助交易中心对售电公司服务质量、信用等级、运营水平进行评价时提供重要指标,共同促使售电公司不断优化电力套餐结构、调整套餐价格和提升服务质量,保障电力
零售市场的良性竞争和健康平稳运行。
[0066]
选取近年来被提出的模型结构与本发明模型结构相似的两个模型作为对比对象,并使用相同的售电公司评价数据作为测试数据集对本发明模型及另外三个对比模型进行训练,而后使用相同测试集分别对上述模型进行测试,统计各模型在测试集上的分类准确率,结果显示,本发明模型分类效果均优于对比模型,各模型在测试集上的分类准确率详见本发明应用实例中表2。后续将本发明模型进行了多轮交叉验证及测试,选取分类结果最优的模型参数进行应用。经统计,本发明模型针对售电公司评价数据的分类准确率最终稳定在85
±
0.5%,对售电公司评价数据情感分类具有较好效果。
附图说明
[0067]
图1为语法树示例图;
[0068]
图2为基于语法序列的cn n网络层示意图;
[0069]
图3为本发明基于语法序列嵌入的语义融合深度模型示意图;
具体实施方式
[0070]
下面结合实施例对本发明作进一步的详细描述。
[0071]
本领域技术人员将会理解,下列实施例仅用于说明本发明,而不应视为限定本发明的范围。实施例中未注明具体技术或条件者,按照本领域内的文献所描述的技术或条件或者按照产品说明书进行。所用材料或设备未注明生产厂商者,均为可以通过购买获得的常规产品。
[0072]
实施例1
[0073]
一种基于语法序列嵌入模型的售电公司评价情感分类方法,包括如下步骤:
[0074]
步骤(1),在电力零售交易平台上对所有售电公司随机采集评论数据,并对数据进行清洗和过滤以去除无语义内容,然后对剩余的数据进行情感类别标注;之后对数据进行划分,划分为训练集和测试集;
[0075]
步骤(2),将训练集输入到基于语法序列嵌入的语义融合深度模型中,以交叉熵作为损失函数进行训练,并采用测试集进行测试,获得构建好的基于语法序列嵌入的语义融合深度模型;
[0076]
所述的基于语法序列嵌入的语义融合深度模型中,采用双向lstm网络层进行语义特征提取;采用cnn网络层进行语法结构特征提取;之后将提取的语义特征和语法结构特征进行拼接后输入到softmax层进行类别预测;
[0077]
双向lstm网络层的输入为句子中所有词语经过嵌入处理后构成的矩阵;
[0078]
cnn网络层的输入为语法嵌入矩阵;
[0079]
softmax层输出为情感类别的概率;
[0080]
所述的语法嵌入矩阵表示为m∈rk×n,其中,k为语法嵌入的维度,n为句子包含的单词数;
[0081]
步骤(3),采用构建好的基于语法序列嵌入的语义融合深度模型对电力零售交易平台的评论数据进行情感分类。
[0082]
实施例2
[0083]
一种基于语法序列嵌入模型的售电公司评价情感分类方法,包括如下步骤:
[0084]
步骤(1),在电力零售交易平台上对所有售电公司随机采集评论数据,并对数据进行清洗和过滤以去除无语义内容,然后对剩余的数据进行情感类别标注;之后对数据进行划分,划分为训练集和测试集;
[0085]
步骤(2),将训练集输入到基于语法序列嵌入的语义融合深度模型中,以交叉熵作为损失函数进行训练,并采用测试集进行测试,获得构建好的基于语法序列嵌入的语义融合深度模型;
[0086]
所述的基于语法序列嵌入的语义融合深度模型中,采用双向lstm网络层进行语义特征提取;采用cnn网络层进行语法结构特征提取;之后将提取的语义特征和语法结构特征进行拼接后输入到softmax层进行类别预测;
[0087]
双向lstm网络层的输入为句子中所有词语经过嵌入处理后构成的矩阵;
[0088]
cnn网络层的输入为语法嵌入矩阵;
[0089]
softmax层输出为情感类别的概率;
[0090]
所述的语法嵌入矩阵表示为m∈rk×n,其中,k为语法嵌入的维度,n为句子包含的单词数;
[0091]
步骤(3),采用构建好的基于语法序列嵌入的语义融合深度模型对电力零售交易平台的评论数据进行情感分类。
[0092]
步骤(1)中,标注的类别共有5类,分别用1-5进行表示。
[0093]
步骤(1)中,数据以4:1的比例划分训练集和测试集。
[0094]
步骤(2)中,语法嵌入矩阵的获取方法为:
[0095]
包含n个词语的句子s={w1,w2,

,wn},对于第i个词语wi,i=1,2,

,n,其对应的从语法树根节点到叶子节点的路径为p(wi);
[0096]
p(wi)表示为序列{t1,t2,

,t
l
},其中,tj为语法标签,j=1,2,

,l;p(wi)为词语wi的语法序列;句子s中所有词语的语法序列构成的集合p={p(wi),i=1,2,

,n};
[0097]
通过对语法序列中所有语法标签嵌入求和计算得到语法路径的嵌入表示,如式(1)所示;
[0098][0099]
在式(1)中,词语wi对应的语法序列为p(wi),p(wi)包含l个语法标签,分别是从t1一直到t
l
,其中语法标签tj对应的语法嵌入向量为vector(tj),1≤j≤l;通过将语法标签t1到t
l
对应的语法嵌入进行相加,得到语法序列p(wi)对应的嵌入向量表示vector(p(wi)),又因语法序列p(wi)为词语wi对应的语法序列,故词语wi对应的语法嵌入向量亦为vector(p(wi));
[0100]
将句子s中所有词语对应的语法嵌入向量按序排列可得语法嵌入矩阵m∈rk×n,如式(2)所示;其中k为单个词语语法嵌入的维度,n为句子s包含的单词数,语法嵌入矩阵m即表示了句子s的语法结构信息;
[0101][0102]
步骤(2)中,cnn网络层包括卷积层和池化层;卷积层用于对文本局部语法结构特征进行提取,具体为:
[0103]
使用固定窗口的卷积过滤器f∈rk×s对语法嵌入矩阵m∈rk×n进行滑动处理,其中k为语法嵌入向量的维度,s为过滤器每次处理的窗口长度,n为句子中词语的个数,卷积过滤器在第i个窗口进行特征提取的结果为ci,如式(3)所示;
[0104]ci
=f(f
·
m[i:i s-1] b)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0105]
其中,f为非线性激活函数relu,b为偏置量,过滤器f在语法嵌入矩阵m上以固定为1的步长进行滑动,并对所有长度为s的窗口m[i:i s-1]进行特征提取,其中i∈[1,2,...,n-s 1],完成特征提取后所得的特征映射图向量为c
syntax
={c1,c2,

,c
n-s 1
};采用m个窗口大小相同的卷积过滤器对语法嵌入矩阵m∈rk×n进行处理,从而得到多个对应的特征映射图向量,构成特征矩阵;使用最大池化层化对每个特征映射图进行池化操作,即对m个特征映射图向量取向量中的最大值,如式(4)所示;
[0106][0107]
在式(4)中,poolj为对第j个卷积过滤器产生的特征映射图向量进行最大池化的结果,j=1,2,...,m,max为对向量c
jsyntax
计算最大值的函数,c
jsyntax
为第j个卷积过滤器特征提取后所得的特征映射图向量;在得到所有特征映射图向量池化结果后,将这些池化结果进行拼接得到最终的语法结构特征向量r
syntax
,如式(5)所示;
[0108]rsyntax
[pool1,pool2,...,poolm]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)。
[0109]
步骤(2)中,使用双向lstm网络层对输入的文本词语嵌入矩阵进行语义特征提取,具体为:
[0110]
对于一个包含有n个按序排列词语的句子s={w1,w2,...,wn},通过一个词典嵌入矩阵e∈rd×v以及式(6)来查询每个词语对应的分布式嵌入表示,其中,在词典嵌入矩阵中,d为词嵌入向量维度,v为词汇表的数量,在glove预训练词向量中随机挑选100万个300维的词向量来构造词典嵌入矩阵,即d=300,v=1000000,r为实数空间,wi为句子中第i个词语,i=1,2,..,n;
[0111]ei
=eoiꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0112]
在式(6)中,oi是词语wi对应的维度为v的one-hot编码,即在oi中,只有词语wi对应维度的值为1,其余值均为0,从而将oi与e相乘便可得到词语wi对应的词向量ei;
[0113]
而后将句子s中所有词语的词向量进行堆叠得到一个词向量矩阵w∈rd×n,其中,d为词向量维度,n为句子s中词语数量,r为实数空间,之后将词向量矩阵w作为双向lstm网络层的输入;
[0114]
双向lstm网络层包含多个神经元,每个神经元均包含遗忘门、输入门和输出门;
[0115]
对于当前神经元,遗忘门首先接收上一神经元的输出h
t-1
和当前输入x
t
来计算遗忘权重f
t
,如公式(7)所示,其中当前输入x
t
就是词向量矩阵w中的第t行构成的向量,1≤t≤
n且t为整数,该遗忘权重用于后续与上一神经元的状态c
t-1
进行相乘来决定保留哪些历史状态,如公式(10)所示;在公式(7)中,wf为遗忘权重f
t
的参数矩阵,bf为遗忘权重f
t
的偏移量,σ为sigmoid激活函数;
[0116]ft
=σ(wf·
[h
t-1
,x
t
] bf)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0117]
输入门接收上一单元输出h
t-1
和当前输入x
t
来计算得到当前哪些信息需要被记忆的权重i
t
,如公式(8)所示,同时,输入门还通过公式(9)计算当前神经元的候选状态c
t’;在公式(8)和(9)中,wi和wc分别为记忆权重i
t
和候选状态c
t’的参数矩阵,bi和bc则分别为记忆权重i
t
和候选状态c
t’的偏移量,σ为sigmoid激活函数,tanh为tanh激活函数;最终使用公式(10)的加权和公式计算得出当前神经元的终态c
t

[0118]it
=σ(wi·
[h
t-1
,x
t
] bi)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0119]c′
t
=tanh(wc·
[h
t-1
,x
t
] bc)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(9)
[0120]ct
=f
t
*c
t-1
i
t
*c

t
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)
[0121]
之后输出门将基于前一神经元输出h
t-1
和当前输入x
t
来计算一个输出权重o
t
,如公式(11)所示,wo为输出权重o
t
的参数矩阵,bo为输出权重o
t
的偏移量,σ为sigmoid激活函数,最后,输出权重o
t
与经过tanh激活函数处理过的神经元状态c
t
相乘,得到当前神经元的输出信息h
t
,如公式(12)所示;
[0122]ot
=σ(wo·
[h
t-1
,x
t
] bo)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
[0123]ht
=o
t
*tanh(c
t
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(12)
[0124]
双向lstm网络层分别使用两个反向的lstm对输入序列进行建模,定义输入词语wi(i=1,2,...,n)对应的正向和反向lstm输出状态分别为和将其拼接得到当前输入的状态表示对于包含n个词语的句子,经过双向lstm处理后得到的特征表示为h={h1,h2,...,hn}。
[0125]
将提取的语义特征和语法结构特征进行拼接后输入到softmax层,具体为:
[0126]
将语法结构特征表示r
syntax
及语义特征表示h进行拼接后得到最终的语法语义融合特征a,如式(13)所示;
[0127]
a=[r
syntax
,h]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(13)
[0128]
在得到语法语义融合特征a后,将a输入到一个全连接层通过softmax函数进行归一化处理,最终得到文本属于每个类别概率构成的向量p=(p1,p2,...,pn),其中pj为该文本属于第j个类别的概率,j=1,2,...,n,n为类别总数,如公式(14)所示,其中wa和ba分别为参数矩阵和p相对于参数矩阵的偏移量,softmax为归一化激活函数;
[0129]
p=softmax(a
·
wa ba)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(14)。
[0130]
以交叉熵作为损失函数,具体为:
[0131]
假设待分类数据集共有n个类别,则对于某个样本,分别将其对于第i个类别预测概率pi取对数后与指示变量yi相乘,指示变量yi来源于训练数据的标签,假设该样本的标签确定该样本属于第j类,0《j≤n,则yi为1,其他yi(0《i≤n,i≠j)为0;并将所有相乘结果相加后取负值即可得到该样本的损失函数值l,如公式(15)所示;
[0132][0133]
在模型训练过程中,每一轮迭代都需对所有样本计算损失函数值并得出样本的损失函数均值,而后计算损失函数对于各模型参数的梯度,并通过学习率对模型参数进行基于梯度方向的更新。
[0134]
还包括:从电力零售交易平台中获取各售电公司的所有评价数据,使用构建好的基于语法序列嵌入的语义融合深度模型分别对各售电公司的评价数据进行情感分类,根据分类结果统计售电公司在零售市场的好评率和差评率;所述的好评率为情感类别为5的评价数量占评价总数的比例;所述的差评率为情感类别为1的评价数量占评价总数的比例,并对电力零售用户推荐好评率排名前十的售电公司。
[0135]
实施例3
[0136]
一、问题定义
[0137]
情感分类是自然语言处理领域的主流任务之一,该任务通过抽取文本中与情感相关的词法、语法结构和语义特征进而将文本分为具有不同情感倾向的类别。情感分类根据情感类别的数量可分为正负情感极性分类、多极性情感分类和细粒度方面级情感分类。本发明针对电力零售市场中售电公司评价文本数据集的特点,并结合常见商品评价级别数量,选择多极性情感分类作为任务类型进行分类模型构建、模型训练、模型测试和模型调优,来实现将各售电公司评价文本根据情感倾向分为多个类别,并根据分类结果对各售电公司的市场服务满意度进行评估。
[0138]
二、传统技术方法缺陷
[0139]
情感分类的算法大致经历了基于自定义情感词典和规则的方法、基于特征工程的机器学习方法以及基于语义特征的深度学习方法三个阶段。基于自定义情感词典和规则的方法需要人工构建词库和情感判定规则,比较耗时耗力,且只对文本长度较短,情感表达方式较为固定的数据集有效,难以处理文本较长、情感表达方式复杂的多情感极性分类任务;基于特征工程的机器学习方法则通过对文本建立特征向量而后训练分类器进行分类,这类方法的优点是具有较强的可解释性,但特征提取和处理的过程会随着数据复杂程度增加而变得繁琐,导致严重的特征稀疏和维度灾难等问题,对模型训练开销和训练效果都产生较大影响。基于语义特征的深度学习方法在近年随着深度学习技术的崛起而备受关注,它通过神经网络端对端地自动学习输入数据语义特征和输出标签之间的映射关系,从而实现分类。虽然基于语义特征的深度学习的方法比上述两种方法取得了更好的分类性能,但现存的大部分深度模型存在网络结构单一,没有关注到文本语法结构特征对情感表达的贡献等问题。
[0140]
售电公司作为电力零售平台上服务提供商和店铺运营商,其服务质量的好坏、运营水平的高低直接影响到了零售市场能否健康稳定发展。基于此,对售电公司的评价进行情感分类能够有效考量售电公司在零售市场中的用户满意度,有利于激励售电公司规范市场行为,不断提升服务质量。然而,现存的情感分类任务还未有将语法序列嵌入模型与电力零售领域中售电公司评价数据进行结合的案例。
[0141]
三、基于语法序列嵌入的情感分类模型
[0142]
本发明通过分析文本的语法结构特征对情感表达的贡献度,设计了一种基于语法序列嵌入的深度神经网络模型,下面对该模型网络结构及工作原理进行介绍。
[0143]
字母表:
[0144]
m 语法嵌入矩阵
[0145]
k 语法嵌入维度
[0146]
n 句子中词语的个数
[0147]
s 句子
[0148]wi 句子中第i个词语
[0149]
p(wi) 词语wi从语法树根节点到叶子节点的路径
[0150]
t
j 语法标签
[0151]
l 语法路径上语法标签的个数
[0152]
p 句子s中所有词语语法序列构成的集合
[0153]
f 卷积过滤器
[0154]
s 卷积过滤器每次处理的窗口长度
[0155]ci 卷积过滤器在第i个窗口进行特征提取的结果
[0156]
b 偏置量
[0157]
m 特征映射图个数
[0158]
pool
j 对第j(j=1,2,...,m)个卷积过滤器产生的特征映射图向量进行最大池化的结果
[0159]rsyntax 语法结构特征向量
[0160]
e 词典嵌入矩阵
[0161]
d 词嵌入向量维度
[0162]
v 词典嵌入矩阵中单词数
[0163]oi 词语wi对应的one-hot编码
[0164]ei 词语wi对应的词向量值
[0165]
w 词向量矩阵
[0166]ht-1 上一个神经元输出
[0167]
x
t 当前神经元输入
[0168]ft 遗忘权重
[0169]ct-1 上一神经元状态
[0170]wf 遗忘权重f
t
的参数矩阵
[0171]bf 遗忘权重f
t
的偏移量
[0172]it 被记忆的权重
[0173]ct
’ꢀ
当前神经元的候选状态
[0174]wi 记忆权重i
t
参数矩阵
[0175]wc 候选状态c
t’参数矩阵
[0176]bi 记忆权重i
t
的偏移量
[0177]bc 候选状态c
t’的偏移量
[0178]ct 当前神经元的终态
[0179]ot 输出权重
[0180]
wo 输出权重o
t
的参数矩阵
[0181]bo 输出权重o
t
的偏移量
[0182]ht 当前神经元的输出信息
[0183]
h 双向lstm处理后得到的特征
[0184]
a 语法语义融合特征
[0185]
p 文本属于每类概率构成的向量
[0186]
n 分类数据集类别
[0187]
p
i 某个样本对于第i个类别预测概率
[0188]yi 指示变量
[0189]
l 损失函数值
[0190]
1、语法序列编码
[0191]
对于给定的文本,通过语法分析器对其解析后能够得到唯一对应的语法树,如图1所示,在语法树中从根节点往下,每层各个节点都有对应的语法标签,这些标签代表了其下所覆盖的叶子节点对应词语在句子中的语法属性和层次结构。例如在图1中,最上层的“s”表示整个句子,其下一层的两个由连接词标识“cc”分隔的“s”节点表示两个由连接词连接的分句,之后“cc”节点直接与叶子节点“but”相连,表示该分支已经结束,而另外两个分句则进一步展开为“np vp”形式,其中“np”为主语标识,“vp”为谓语标识,“np vp”即表示主谓结构,继续往下遍历到达的每个叶子节点都有对应的词语。由此可见,语法树的根节点与每个叶子节点之间都存在一条唯一的路径,这条唯一路径表明了路径末端叶子节点对应的词语在整个句子中的层次结构和语法属性,因此可以通过对该路径进行编码来得到每个叶子节点对应的嵌入表示。
[0192]
一般地,给定包含n个词语的句子s={w1,w2,

,wn},对于第i(i=1,2,

,n)个词语wi,其对应的从语法树根节点到叶子节点的路径为p(wi),因为p(wi)可以写作序列{t1,t2,

,t
l
}进行表示,其中tj(j=1,2,

,l)为语法标签,诸如“s”、“np”和“vp”等标签,所以又称p(wi)为词语wi的语法序列。这样,句子s中所有词语的语法序列构成的集合p={p(wi),i=1,2,

,n}可用于表示句子s的语法结构。
[0193]
受到词语分布式表示的启发,此处可以对语法树中的每个标签使用不同的低维连续嵌入向量表示,进而可采用对语法序列中所有语法标签嵌入向量求和的方式计算得到语法路径的嵌入表示,语法标签嵌入的值最初可随机初始化,后续在训练过程中根据目标函数进行动态更新,使得语法标签嵌入向量一定程度上能够反映词语中对于情感分类有帮助的语法结构特征,如式(1)所示。
[0194][0195]
在式(1)中,词语wi对应的语法序列为p(wi),p(wi)包含l个语法标签,分别是从t1一直到t
l
,其中语法标签tj(1≤j≤l)对应的语法嵌入向量为vector(tj),通常vector(tj)的维度k与每一维的值可随机进行设定,k的值可设为100以内的正整数,每一维的值可随机设定为绝对值小于1的非0实数,k可根据最终模型训练结果进行调整,而每一维的值会在训练过程中根据目标函数不断进行更新。通过将语法标签t1到t
l
对应的语法嵌入进行相加,得
到语法序列p(wi)对应的嵌入向量表示vector(p(wi)),又因语法序列p(wi)为词语wi对应的语法序列,故词语wi对应的语法嵌入向量亦为vector(p(wi))。
[0196]
因此,对于整个句子s而言,将所有词语对应的语法嵌入向量按序排列可得语法嵌入矩阵m∈rk×n,如式(2)所示。其中k为语法嵌入的维度,通常语法嵌入的维度值可先随机进行设定,例如设k=50,后续根据模型分类结果进行动态调整,n为句子s包含的单词数,语法嵌入矩阵m即表示了句子s的语法结构信息。至此,便将文本的语法结构表示成了矩阵形式,后续便可将矩阵作为cnn网络层的输入。
[0197][0198]
2、基于语法序列的cnn网络层
[0199]
在得到句子的语法嵌入矩阵m∈rk×n后,使用cnn对其进行特征提取来得到句子的语法特征表示,此处使用cnn可以捕获到某些表达情感的短语在语法结构上可能呈现出的模式。例如在不同动宾结构短语中,其不同的谓语语法路径可能是相似的,宾语亦然。类似的结构还有系表结构、“形容词 名词”结构等,于是具有捕获局部窗口特征能力的cnn便十分适用于捕获这种局部语法结构模式。
[0200]
基于语法序列的cnn网络层结构如图2所示,该模块与普通cnn结构类似,在卷积层,使用固定窗口的卷积过滤器f∈rk×s对语法嵌入矩阵m∈rk×n进行滑动处理,其中k为语法嵌入向量的维度,s为过滤器每次处理的窗口长度,n为句子中词语的个数,卷积过滤器在第i个窗口提取特征的结果为ci,如式(3)所示。
[0201]ci
=f(f
·
m[i:i s-1] b)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0202]
其中,f为非线性激活函数relu,b为偏置量,过滤器f在语法嵌入矩阵上以固定为1的步长进行滑动,并对所有长度为s的窗口m[i:i s-1],其中i∈[1,2,...,n-s 1],完成特征提取后所得的特征映射图向量为c
syntax
={c1,c2,

,c
n-s 1}。为了尽可能多地提取到语法结构特征,此处可采用m个窗口大小相同的卷积过滤器对语法嵌入矩阵m∈rk×n进行处理,从而得到多个对应的特征映射图向量,此后,为了进一步获得和目标任务最为相关的特征,减少参数数量,提高运算效率,使用最大池化对每个特征映射图进行池化,如式(4)所示。
[0203][0204]
在式(4)中,poolj为对第j(j=1,2,...,m)个卷积过滤器产生的特征映射图向量进行最大池化的结果,max为对向量c
jsyntax
计算其中最大值的函数;c
jsyntax
为第j个卷积过滤器特征提取后所得的特征映射图向量;在得到所有特征映射图向量池化结果后,将这些池化结果进行拼接得到最终的语法结构特征向量,如式(5)所示。
[0205]rsyntax
=[pool1,pool2,...,poolm]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0206]
得到语法结构特征表示r
syntax
后,还需要将语法结构特征和语义特征进行结合,实现对文本语法结构和语义的整体建模。
[0207]
3、基于语法序列嵌入的语义融合模型
[0208]
对于文本的语义和语法结构两个重要特性,最通常的结合方式是采用并行式结构
进行结合,即模型输入分别为文本中所有词语经过嵌入处理后构成的矩阵以及文本经过语法解析器处理后的词语语法序列矩阵,词语经过嵌入处理后构成的矩阵输入到用于提取语义特征的模型,此处以常规的双向lstm网络层作为语义特征提取模型;对于一个包含有n个按序排列词语的句子s={w1,w2,

wn},通过一个词典嵌入矩阵e∈rd×v以及式(6)来查询每个词语对应的分布式嵌入表示,其中,在词典嵌入矩阵中,d为词嵌入向量维度,v为词汇表的数量,此处在glove预训练词向量[https://github.com/stanfordnlp/glove]中随机挑选100万个300维的词向量来构造词典嵌入矩阵,即d=300,v=1000000,r为实数空间,wi(i=1,2,..,n)为句子中第i个词语。
[0209]ei
=eoiꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0210]
在式(6)中,oi是词语wi对应的维度为v的one-hot编码,即在oi中,只有词语wi对应维度的值为1,其余值均为0,从而将oi与e相乘便可得到词语wi对应的词向量ei。
[0211]
而后将句子s中所有词语的词向量进行堆叠得到一个词向量矩阵w∈rd×n,其中,d为词向量维度,n为句子s中词语数量,r为实数空间,之后将词向量矩阵w作为双向lstm网络层的输入。
[0212]
双向lstm网络层包含多个神经元,每个神经元都包含遗忘门、输入门和输出门;
[0213]
对于当前神经元,遗忘门首先接收上一神经元的输出h
t-1
和当前输入x
t
来计算遗忘权重f
t
,如公式(7)所示,其中当前输入x
t
就是词向量矩阵w中的第t行(1≤t≤n且t为整数)构成的向量,该遗忘权重用于后面与上一神经元的状态c
t-1
进行相乘来决定保留哪些历史状态,如公式(10)所示;在公式(7)中,wf为遗忘权重f
t
的参数矩阵,该矩阵的取值在训练前随机设定,而后在训练过程中根据目标函数动态更新,bf为遗忘权重f
t
的偏移量,可随机设定并在训练中保持不变,σ为sigmoid激活函数;
[0214]ft
=σ(wf·
[h
t-1
,x
t
] bf)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0215]
输入门接收上一单元输出h
t-1
和当前输入x
t
来计算得到当前哪些信息需要被记忆的权重i
t
,如公式(8)所示,同时,输入门还通过公式(9)计算当前神经元的候选状态c
t’;在公式(8)和(9)中,wi和wc分别为记忆权重i
t
和候选状态c
t’的参数矩阵,wi和wc均可在训练前随机初始化,而后在训练过程中根据目标函数动态更新,bi和bc则分别为记忆权重i
t
和候选状态c
t’的偏移量,可随机设置并在训练中保持不变,σ为sigmoid激活函数,tank为tanh激活函数;最终使用公式(10)的加权和公式计算得出当前神经元的终态c
t

[0216]it
=σ(wi·
[h
t-1
,x
t
] bi)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0217]c′
t
=tanh(wc·
[h
t-1
,x
t
] bc)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(9)
[0218]ct
=f
t
*c
t-1
i
t
*c

t
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)
[0219]
之后输出门将基于前一神经元输出h
t-1
和当前输入x
t
来计算一个输出权重o
t
,如公式(11)所示,wo为输出权重o
t
的参数矩阵,wo可在训练前随机初始化,而后在训练过程中根据目标函数动态更新,bo为输出权重o
t
的偏移量,可随机设定且在训练过程中保持不变,σ为sigmoid激活函数,最后,输出权重o
t
与经过tanh激活函数处理过的神经元状态c
t
相乘,得到当前神经元的输出信息h
t
,如公式(12)所示;
[0220]ot
=σ(wo·
[h
t-1
,x
t
] bo)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
[0221]ht
=o
t
*tanh(c
t
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(12)
[0222]
双向lstm网络层分别使用两个反向的lstm对输入序列进行建模,定义输入词语wi(i=1,2,...,n)对应的正向和反向lstm输出状态分别为和将其拼接得到当前输入的状态表示对于包含n个词语的句子,经过双向lstm处理后得到的特征表示为h={h1,h2,...,hn}。
[0223]
文本通过上述步骤1的操作得到对应的语法嵌入矩阵,之后将语法嵌入矩阵传入步骤2的cnn网络层进行语法结构特征提取,得到最终的语法结构特征表示r
syntax
,并将语法结构特征表示r
syntax
及本步骤中的语义特征表示h进行拼接后得到最终的语法语义融合特征a,如式(13)所示。
[0224]
a=[r
syntax
,h]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(13)
[0225]
在得到语法语义融合特征a后,将a输入到一个全连接层通过softmax函数进行归一化处理,最终得到文本属于每个类别概率构成的向量p=(p1,p2,...,pn),其中pj(j=1,2,...,n)为该文本属于第j个类别的概率,n为类别总数,如公式(14)所示,其中wa和ba分别为参数矩阵和p相对于参数矩阵的偏移量,wa的值在模型训练前进行随机初始化并在训练过程中根据目标函数进行动态更新,ba则在训练前随机设定后在训练过程中保持不变,softmax为归一化激活函数;
[0226]
p=softmax(a
·
wa ba)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(14)
[0227]
该语法语义融合模型如图3所示。最终对softmax层输出结果取概率最高的情感类别作为对文本情感分类的结果。
[0228]
四、损失函数与分类性能指标
[0229]
模型训练过程中采用分类常规的交叉熵作为损失函数。假设待分类数据集共有n个类别,则对于某个样本,分别将其对于第i个类别预测概率pi取对数后与指示变量yi相乘,指示变量yi来源于训练数据的标签,假设该样本的标签确定该样本属于第j类(0《j≤n),则yi为1,其他yi(0《i≤n,i≠j)为0。并将所有相乘结果相加后取负值即可得到该样本的损失函数值l,如公式(15)所示。
[0230][0231]
在模型训练过程中,每一轮迭代都需对所有样本计算损失函数值并得出样本的损失函数均值,而后计算损失函数对于各模型参数的梯度,并通过学习率对模型参数进行基于梯度方向的更新,从而能够使模型对未标注数据进行准确的预测。模型分类的性能指标采用准确率(accuracy)进行衡量,即统计所有样本中被正确分类的样本数占总样本数的比例。
[0232]
应用实例
[0233]
1、构建售电公司评价文本数据集
[0234]
在电力零售交易平台上对所有售电公司随机爬取共5000条评论数据,并将这些数据进行清洗和过滤,而后人工对数据进行类别标注,标注的类别共有5类,分别用1-5进行表示,数字越大表示评论蕴含的情感越积极,反之则越消极。例如“5”表示用户对售电公司的服务非常满意;“4”表示总体满意,但仍有少数方面存在提升的空间;“3”表示一般满意,喜忧参半;“2”表示总体不太满意;“1”则表示非常不满意。
[0235]
而后将数据以4:1的比例划分训练集和测试集,并利用中文分词工具和语法解析器分别对训练集和测试集的文本进行分词和语法树解析操作,从而得到文本中所有词语经过嵌入处理后构成的矩阵和语法嵌入矩阵作为模型的输入。
[0236]
2、模型训练
[0237]
将所构建数据集的训练集输入到基于语法序列嵌入的语义融合深度模型中,以交叉熵作为损失函数进行训练,在训练初始阶段,模型的其他参数先随机进行设定。而后将测试集输入经过训练后的模型进行预测,统计预测结果。多次使用交叉验证的方式对模型进行训练并测试,分别记录模型在不同训练集和测试集上的分类性能。
[0238]
3、模型调优
[0239]
根据模型在多次交叉验证上的分类性能,对模型的若干参数(例如cnn卷积核大小、lstm神经元数量、文本输入长度)进行调整,并再次进行训练和测试,直到模型获得最佳的分类性能,模型在实验过程中每个网络层关键超参数设定及参数总数如表1所示。此时将模型的最优参数进行保存,用于后续对其他售电公司的评价进行情感分类。
[0240]
表1
[0241]
网络层名称关键超参数参数数量词语嵌入层n=100,d=3003000000000语法序列嵌入层n=100,k=50500000000双向lstm网络层n=1001442400cnn网络层n=100,m=300,l=32703000softmax全连接层c=53005
[0242]
此处选取只对文本语义特征进行建模的双向lstm模型和只对文本语法结构特征进行建模的cnn模型作为对比对象,并使用上述经过人工标记的售电公司评价数据作为数据集,使用相同的训练集对本发明涉及的模型及另外两个对比模型进行训练,而后使用相同测试集分别对上述模型进行测试,并统计5次交叉验证实验的测试集分类准确率均值,统计结果及训练过程中的超参数设定如表2所示。由表2可知,本发明涉及模型在售电公司评价数据分类上性能均优于其他两个模型,进一步证明将语义特征和语法结构特征进行融合有助于提升售电公司评价文本的情感分类准确率。
[0243]
表2
[0244]
[0245][0246]
后续将本发明模型进行了基于大规模数据量的多轮交叉验证及测试,选取分类结果最优的模型参数进行应用。经统计,本发明模型针对售电公司评价数据的分类准确率最终稳定在85
±
0.5%,对售电公司评价数据情感分类具有较好效果。
[0247]
4、售电公司服务质量评估
[0248]
获得模型的最优参数后,从电力零售交易平台中获取各售电公司的所有评价数据,使用最优参数模型分别对各售电公司的评价数据进行情感预测,基于各个情感类别所对应的评价数量来计算售电公司在零售市场的好评率(情感类别为“5”的评价数量占评价总数的比例)和差评率(情感类别为“1”的评价数量占评价总数的比例),并可对电力零售用户推荐好评率排名前十的售电公司。
[0249]
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献