嵌入情感词典的注意力机制循环神经网络文本情感分析法的制作方法

文档序号:15271655发布日期:2018-08-28 22:30阅读:307来源:国知局

本发明涉及自然语言处理领域,更具体地,涉及一种嵌入情感词典的注意力机制循环神经网络文本情感分析法。



背景技术:

伴随着网络科技的不断发展,互联网已逐渐演变为人们发表观点,交流感情的一个主要的平台。人们在网上分享、评论和表达对各种事物的意见和看法,例如对电影,商品等的评论,这些评论的数据已呈现出一种爆炸式增长的趋势,仅仅通过人工手段去筛选出人们对某个事物的积极评论还是消极评论,已成为一项不可能完成的任务,因此一个能自动分析文本情感倾向的工具应运而生。

文本情感分析(sentiwordnet)是对具有情感色彩的主观性文本进行分析、处理、归纳、和推理的过程,例如根据评论来分析用户对某个电影的“画面、音效、剧情、演员阵容”等属性的情感倾向。从不同立场、出发点、个人态度和喜好出发,人们对不同的对象和事件所表达的态度、意见和情感的倾向性是存在差异的。一般依据需要处理文本的长度的不同,文本情感分析分为词语级、短语级、句子级和篇章级等几个研究层次。按照情感粒度的大小不同,文本情感分析又分为细粒度和粗粒度。



技术实现要素:

本发明提供一种嵌入情感词典的注意力机制循环神经网络文本情感分析法。

为了达到上述技术效果,本发明的技术方案如下:

一种嵌入情感词典的注意力机制循环神经网络文本情感分析法,包括以下步骤:

s1:首先获取英文文本语料,接着对语料进行情感分类标注,最后将语料分为训练和测试集两个集合;

s2:对步骤s1中的所有语料集进行停用词处理;

s3:使用word2vec算法对步骤s2中获取的语料进行训练得到相应的词向量;

s4:根据sentiwordnet获取预知的各词语的情感极性分布,并对句子中极性较大的词语分配较大的权重;

s5:将训练集语料放进具有注意力机制的循环神经网络中进行训练,在训练过程中使模型的注意力拟合步骤s4所获取的词语的权重;

s6:将步骤s2和步骤s3处理获取的测试集语料放入步骤s5中,最终获取测试集的情感分类结果。

进一步地,所述步骤s1的具体过程是:

先通过爬虫或其它手段获取具有情感极性的英文文本语料;接着对文本语料进行情感分类标注,文本标注分为积极,中性,消极三种;最后将标注好的文本语料以8:2的比例划分为训练集和测试集两个集合。

进一步地,所述步骤s2的具体过程是:

对获取的英文语料做去停用词的处理,去除句子中“the”,“this”,“a”,“an”等不表达情感的词语。

进一步地,所述步骤s3的具体过程如下:

使用python中的gensim库,对步骤s2得到的语料进行训练,通过训练获取语料库中每个词语对应的词向量。

进一步地,所述步骤s4的具体过程如下:

s41:根据情感词典sentiwordnet获取训练语料中各词语对应的客观值,若某词语在词典中有多个客观值,则取其平均值;若某词语在词典中不存在客观值,则设置其客观值为1;

s42:根据每句中各词语的客观值,判断该词在情感分析过程中的重要程度。具体的确定过程如下:用1减去各词的客观值来获取各词的偏激值,接着使用计算各词的重要程度。举例如下:假设某句子的词语数量为n,句中词语的偏激值分别为k1,k2,……,kn,则第i个词语对应的重要程度swi的计算公式为

进一步地,所述步骤s5的具体过程如下:

s51:根据步骤s3获取的词向量,按照句子中词语的顺序作为不同时间步的输入,使用基于注意力机制的循环神经网络(attentionbasedlstm)训练情感分析模型,attentionbasedlstm网络具体实现公式如下:

ft=σ(wf·x+bf)

it=σ(wi·x+bi)

ot=σ(wo·x+bo)

ct=ft⊙ct-1+it⊙tanh(wc·x+bc)

ht=ot⊙tanh(ct)

m=tanh(h)

α=softmax(wtm)

r=hαt

其中,σ为sigmoid激活函数,操作符⊙为乘积操作,ft,it、ot分别为遗忘门,输入门和输出门,ct表示记忆单元,α代表注意力的权重,wf,bf,wi,bi,bi,bo,wc,bc,w是模型训练过程中需要学习的参数。

最终的文本特征向量表示如下:

h*=tanh(wpr+wxhn)

其中wp和wx是需要学习的参数。

s52:对训练获取文本的特征向量做softmax分类得到最终预测结果,此处模型优化的目标不仅在于使预测结果与真实情感标签更接近,还要使步骤

s51)中获取的注意力权重与步骤s42)中获取的权重接近,损失函数具体如下:

其中,i为训练集中句子的索引,j为不同分类的索引,y为文本中情感标签的真实分布,为模型预测的标签分布,α和β属于超参,为惩罚系数,最后一项表示对参数进行l2正则化惩罚,distance表示注意力权重与步骤s42中获取的权重间的距离,具体计算公式如下:

其中l是当前句子的长度,δ是超参。

s53:对每个minibatch中的语料计算损失函数,并通过反向传播来优化网络内的参数。经过多轮迭代后,当准确率趋于稳定时,完成模型训练。

进一步地,所述步骤s6的具体过程如下:

将通过步骤s2和步骤s3处理后的测试集语料放入步骤s5中来获取情感分类结果,需要注意的是,此处不需要借助情感词典来判断其重要程度,而是将测试集放入之前训练好的模型中去自动分析测试集语料中需要重点关注的情感词。与现有技术相比,本发明技术方案的有益效果如下:

本发明使用情感词典获取的每个词语的情感极性程度,对应于词语蕴含的情感信息,并对蕴含情感信息越多的词语赋予更大的权重,在基于注意力机制的循环神经网络的训练过程中,使模型的注意力拟合词语的权重。接着依据注意力机制将词语的情感极性程度嵌入到循环神经网络中,达到模型的关注点更接近于人类的理解的目的,最终提高了文本情感分析的准确度。

附图说明

图1为本发明流程示意图。

具体实施方式

附图仅用于示例性说明,不能理解为对本专利的限制;

为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;

对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。

下面结合附图和实施例对本发明的技术方案做进一步的说明。

实施例1

如图1所示,一种嵌入情感词典的注意力机制循环神经网络文本情感分析法,包括以下步骤:

s1:首先获取英文文本语料,接着对语料进行情感分类标注,最后将语料分为训练和测试集两个集合;

s2:对步骤s1中的所有语料集进行停用词处理;

s3:使用word2vec算法对步骤s2中获取的语料进行训练得到相应的词向量;

s4:根据sentiwordnet获取预知的各词语的情感极性分布,并对句子中极性较大的词语分配较大的权重;

s5:将训练集语料放进具有注意力机制的循环神经网络中进行训练,在训练过程中使模型的注意力拟合步骤s4所获取的词语的权重;

s6:将步骤s2和步骤s3处理获取的测试集语料放入步骤s5中,最终获取测试集的情感分类结果。

进一步地,所述步骤s1的具体过程是:

先通过爬虫或其它手段获取具有情感极性的英文文本语料;接着对文本语料进行情感分类标注,文本标注分为积极,中性,消极三种;最后将标注好的文本语料以8:2的比例划分为训练集和测试集两个集合。

进一步地,所述步骤s2的具体过程是:

对获取的英文语料做去停用词的处理,去除句子中“the”,“this”,“a”,“an”等不表达情感的词语。

进一步地,所述步骤s3的具体过程如下:

使用python中的gensim库,对步骤s2得到的语料进行训练,通过训练获取语料库中每个词语对应的词向量。

进一步地,所述步骤s4的具体过程如下:

s41:根据情感词典sentiwordnet获取训练语料中各词语对应的客观值,若某词语在词典中有多个客观值,则取其平均值;若某词语在词典中不存在客观值,则设置其客观值为1;

s42:根据每句中各词语的客观值,判断该词在情感分析过程中的重要程度。具体的确定过程如下:用1减去各词的客观值来获取各词的偏激值,接着使用计算各词的重要程度。举例如下:假设某句子的词语数量为n,句中词语的偏激值分别为k1,k2,……,kn,则第i个词语对应的重要程度swi的计算公式为

进一步地,所述步骤s5的具体过程如下:

s51:根据步骤s3获取的词向量,按照句子中词语的顺序作为不同时间步的输入,使用基于注意力机制的循环神经网络(attentionbasedlstm)训练情感分析模型,attentionbasedlstm网络具体实现公式如下:

ft=σ(wf·x+bf)

it=σ(wi·x+bi)

ot=σ(wo·x+bo)

ct=ft⊙ct-1+it⊙tanh(wc·x+bc)

ht=ot⊙tanh(ct)

m=tanh(h)

α=softmax(wtm)

r=hαt

其中,σ为sigmoid激活函数,操作符⊙为乘积操作,ft,it、ot分别为遗忘门,输入门和输出门,ct表示记忆单元,α代表注意力的权重,wf,bf,wi,bi,bi,bo,wc,bc,w是模型训练过程中需要学习的参数。

最终的文本特征向量表示如下:

h*=tanh(wpr+wxhn)

其中wp和wx是需要学习的参数。

s52:对训练获取文本的特征向量做softmax分类得到最终预测结果,此处模型优化的目标不仅在于使预测结果与真实情感标签更接近,还要使步骤

s51)中获取的注意力权重与步骤s42)中获取的权重接近。损失函数具体如下:

其中,i为训练集中句子的索引,j为不同分类的索引,y为文本中情感标签的真实分布,为模型预测的标签分布,α和β属于超参,为惩罚系数,最后一项表示对参数进行l2正则化惩罚,distance表示注意力权重与步骤s42中获取的权重间的距离,具体计算公式如下:

其中l是当前句子的长度,δ是超参。

s53:对每个minibatch中的语料计算损失函数,并通过反向传播来优化网络内的参数。经过多轮迭代后,当准确率趋于稳定时,完成模型训练。

进一步地,所述步骤s6的具体过程如下:

将通过步骤s2和步骤s3处理后的测试集语料放入步骤s5中来获取情感分类结果,需要注意的是,此处不需要借助情感词典来判断其重要程度,而是将测试集放入之前训练好的模型中去自动分析测试集语料中需要重点关注的情感词。

首先,通过爬虫从网上获取相关的语料集,例如,可以从imdb上获取到关于某部电影的评论,并为其评论打上积极或消极的标签,并将获取的预料集以8:2分为训练集和测试集。然后对语料集进行停用词去除的处理,把“the”,“this”,“a”,“an”等不表达情感的词语删除。接着针对去除停用词处理的语料,使用word2vec模型,训练出语料集中各词语对应的词向量。接下来在情感词典sentiwordnet中,找出各词语对应的客观值。用1减去获取的各个词的客观值,则是各词对应的偏激值。紧接着进行softmax变换,实现对句子中各词的分类。举例如下:句子“ihatethismovie”,首先在情感词典中进行查询,“i”、“hate”、和“movie”的平均客观值分别为0.9375、0.375和1,由于“this”在情感词典中不存在,则客观值为1,那么这四个词的偏激值分别为0.0625,0.625,0,0。然后进行softmax变换,则这四个词的重要程度分别变成了0.21580184、0.37874402、0.20272707和0.20272707。需要注意的是,为了使模型学会如何捕捉重要词语的能力,对模型进行训练和测试的时候是有区别的。在对模型进行训练时,需要计算加入经过训练获取的注意力粉盒与根据情感词典获取的重要程度的两个分部之间的huber距离,通过对损失函数的优化,进行多次的迭代后,当训练集准确度趋于稳定时,保存模型的各参数,此时模型具有自动捕捉重要情感词的能力。在对模型进行测试时,不需要再借助情感词典来判断测试集的情感取向,只需要将句子中各词的词向量按照顺序放入训练好的模型中来获取该句子的情感取向。

附图中描述位置关系的用于仅用于示例性说明,不能理解为对本专利的限制;

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1