基于依存树和注意力机制的属性情感分类方法与流程

文档序号:15163952发布日期:2018-08-14 17:12阅读:226来源:国知局
本发明涉及计算机应用技术、自然语言处理、情感分析技术等领域,特别涉及一种基于依存树和注意力机制的属性情感分类方法。
背景技术
:情感分析又称作观点挖掘,是自然语言处理中的一个热点领域,旨在于从文本中通过自动化的方式来分析人们针对某些事物的情感和观点。随着互联网的快速发展,网络已经成为人们交流和获取信息的主要途径,在这个过程中,互联网上积累了大量的文本数据,而情感分析技术则是旨在于从这些文本中挖掘用户针对某个事物表达的情感倾向和观点,为下一步的具体应用比如说市场决策等提供基础支持。文本情感分析技术无论是对学术界还是工业界都表现出了极大的吸引力。一方面情感分析涉及多项非常具有挑战性的任务,例如说从文本中识别观点的持有人,以及观点的目标对象,并对观点进行情感倾向判定,这些涉及多个自然语言处理领域中的多个研究方向,对处理算法提出了极大的挑战。另一方面,无论是政府、公司、个人都存在从文本挖掘用户观点的迫切性需求。针对文本数据的情感分析可以帮助政府监控舆论的演变,分析民众的观点表达,政府从而可以正确引导舆论,检测突发事件,针对群体性事件制定针对性的解决方案。商家可以从文本数据中获取用户的反馈,帮助他们改善产品,并制定下一步的市场策略。个人用户在购买商品时可以从以往购买过该产品的用户评论中获取产品的优缺点,帮助自己制定购买决策。以往的文本情感分析技术主要针对文档和句子级别的情感分析,这两种级别的情感分析目标是在给定一篇文档或者几条句子的情况下,分析文本中所表达的情感倾向性。文档或者句子级别的情感分析都是基于整个文档或者句子中只存在一个评价属性的假设,忽略了文档或者句子会同时对多个属性进行观点表达的情况,属于粗粒度的情感分析技术。这种分析技术无法充分挖掘文本中的价值,并且由于不同用户之间关注点的不同,从而有可能对用户进行误导。不同于文档或者句子的情感分析,属性级别的情感分析则需要从文本中抽取观点的评价属性,然后针对该属性进行情感分类,得到观点持有人对该属性的情感倾向。属性级别的情感分析属于细粒度情感分析的一部分,需要对文本提及到的不同的属性进行抽取和区别,并判断出观点持有人针对每个属性的情感倾向性。目前的属性级别的情感分类方法是在给定文本中出现的每个属性的情况下,得出每个属性各自的情感倾向性,具体来说可以分成两个方法:基于词典的和基于语料的。基于词典的方法主要依赖于情感词典中对情感词的极性数值强度,通过判断情感词和属性之间的联系,结合否定词和程度副词的修饰作用等规则,来累加文本中出现的情感词的数值强度,来对文本中不同属性进行倾向性判断。基于语料的方法则是把情感分类当成一个特殊的文本分类问题,通过一个人工标注好的训练语料库,使用监督学习的方式获得一个情感分类器。目前基于语料的方法又可以分为两种,一种是从语料中人工提取文本的特征和属性相关的特征,利用统计学习方法来进行分类,如最近邻knn、贝叶斯、支持向量机svm等。或者使用深度学习方法将单词映射成为低维、稠密的向量表示,直接从文本学习出特征,避免了耗时耗力的人工特征提取过程,例如卷积神经网络cnn,循环神经网络rnn等。目前基于词典的属性情感分类方法,极大依赖于情感词典,情感词典的好坏决定了分类结果的正确性,同时基于词典和规则的方法,还表现出强烈的领域依赖性,针对不同的领域需要设计不同的规则,很难进行实际应用。基于统计学习的方法也存在着需要人工针对不同领域的数据设计特定的特征问题,需要人工花费大量的时间去进行特征提取工作,并且对领域知识要求高。基于深度学习的方法能够自动从文本中提取特征,但是这些特征都缺少与属性的相关性,分类器无法准确分析出同一文本中不同属性的不同情感倾向性。技术实现要素:本发明的目的在于克服现有技术的缺点与不足,提供一种基于依存树和注意力机制的属性情感分类方法,能够针对同一文本中的不同属性抽取不同的属性特征信息,分类准确率高。本发明的目的通过以下的技术方案实现:一种基于依存树和注意力机制的属性情感分类方法,步骤如下:基于整个文本的依存树分析结果,选择包含该给定属性的最小子树部分,把这部分子句作为该属性的上下文信息的表示,针对文本中的不同属性,能够得到不同属性的上下文信息表示;随后利用两个双向门限循环单元来对句子的上下文和属性的上下文进行建模,得到两个固定大小的特征表示矩阵,接下来则利用注意力机制来获取文本和特定属性的特征表示,最后利用多层感知机进行特定属性的情感极性分类。优选的,该方法具体包括如下步骤:步骤1:数据预处理,对句子进行分词和依存树分析,然后在依存树中找到包含该给定属性的最小子树,获取分词后的句子s和子句sub_s;并对该句子中所有的单词,寻找每个单词和该属性单词在依存树中的最近公共祖节点,以这个祖节点到两者的路径之和作为两者在依存树中的最短路径长度,该路径长度被编码成为位置信息的输入lweight=[l1,…,li,…,ln],编码计算方式为公式(1):其中,li代表编码后的结果,disti表示句子s分词后第i个单词wi到属性词的最短距离,n为提前确定好的句子长度;通过公式(1),可以得到一个和句子长度一致的位置向量,该向量中的每一维代表了句子中对应下标的单词的位置权重;然后利用在大规模无标注语料上训练好的词向量和词典,将整个句子s表示成向量矩阵以及将子句sub_s表示为向量矩阵步骤2:对句子上下文和属性上下文分别进行编码,将向量矩阵x1,通过一个双向gru单元学习句子的上下文表示,并输出每个时间步的隐藏状态,此时称该双向gru为gru1,得到的隐藏状态矩阵hs=[hs1,…,hst,…,hsn],其中,n为句子长度,d1是该列向量hst的维度;对向量矩阵x2通过另外一个双向gru单元,记为gru2,得到隐藏状态矩阵hsub_s=[hsub1,…,hsubt,…,hsubsub_n],其中subt∈[1,sub_n],sub_n为子句长度,d2是该列向量hsubt的维度;步骤3:将步骤1中的位置向量lweight中的每个元素分别和步骤2中的隐藏状态矩阵hs中的每一列进行相乘,得到位置信息加权后的记忆矩阵m=[m1,…,mt,…,mn],其中mt=lt·hst。接下来进行特定属性的特征表示计算,计算公式为公式(2):attention(q,k,v)=v·softmax(column_sum(ktq))(2)其中w1、w2、w3、w4代表线性变换的参数,d、d0、dv代表这些参数的维度大小;column_sum函数是对矩阵ktq进行按列求和操作,softmax函数则是对求和后的结果进行归一化,softmax函数的输出结果则是注意力分数,该注意分数和v相乘的结果就是代表根据不同的属性上下文对句子分配注意力后的特征表示,记为ar;步骤4:将hs中的最后一列作为整个句子的上下文代表,提取出来,记为hsn;为了结合属性的特征表示ar和句子的上下文特征表示hsn,将两者分别经过一个线性变化后,进行逐元素的相加,得到最后的特征表示,并将该特征表示经过一个全连接层层,激活函数为双曲正切tanh,输出激活激活函数作用后的结果;步骤5:对上一层的输出经过一个线性变化后,通过softmax函数输出该特定属性的情感极性预测结果。优选的,步骤1中:利用文本处理工具对给定的文本进行分词和依存树分析,在依存树分析结果中找到包含属性的最小子句,同时计算出位置信息向量;利用使用glove工具训练好的词向量,将句子s和子句sub_s映射为词向量矩阵,词向量的维度为300维。优选的,步骤2中:对输入的句子向量矩阵和子句向量矩阵,分别使用一个双向的gru进行上下文建模,称为gru1和gru2,gru1单元的隐藏状态大小设置为100,即gru1的输出维度为200,gru2单元的隐藏状态大小设置为75,即gru2的输出维度为150,gru1和gru2分别设置0.5的dropout。优选的,步骤3中:计算包含特定属性信息的特征表示,设置w1的维度大小为100×200,w2的维度大小为100×150,w3的维度大小为200×300,w4的维度大小为200×200,最后得到一个包含属性信息的200维列向量特征ar。优选的,步骤4中:设置ar的线性变换后的大小为100维,hsn线性变换后的维度大小为100维,经过逐元素的累加后,输入到全连接层中,全连接层的维度大小为100维。优选的,步骤5中:步骤4中的特征中经过一个100×3的线性变化后,是一个3维大小的列向量,经过softmax函数,输出后的结果是对应情感倾向类别的概率值,代表该特定属性的情感倾向概率,取概率值最大的类别为该属性的情感倾向类别。优选的,模型训练过程使用了多元交叉熵为损失函数和adam方法进行优化,并且使用提早停止的训练方法来防止过拟合。本发明与现有技术相比,具有如下优点和有益效果:本发明通过结合文本的依存树分析结果和深度学习方法以及注意力机制,提出了在文本依存树中选择包含该属性的最小子树,作为代表该属性上下文方式,并利用对文本的依存树分析结果,通过计算属性单词和文本中的每个单词在依存树中的最近公共祖节点的方式,来得到两者的最短路径,基于此计算出每个单词相对于属性单词的位置权重信息。此外还结合了循环神经网络和注意力机制来对包含属性信息的特征进行建模。实验结果表明,本发明提出的分类模型能够针对同一文本中的不同属性抽取不同的属性特征信息,分类准确率高。将注意力分数可视化后能够明显发现针对同一文本中不同的属性能够分配不同的注意力分数,体现出了文本中各个单词在针对不同目标属性进行情感倾向性分类时有着不同的重要性。实验证明,在国际语义评测semeval2014任务4中两个不同领域的语料库中效果表现很好。附图说明图1是给定例句“手机的屏幕比电脑的屏幕看起来舒服多了”的依存树分析结果图。图2是给定两个属性屏幕和屏幕,从依存树中选择后的子句sub_s。图3是实施例模型结构图。具体实施方式下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。实施例1一种依赖于文本的依存树分析,同时利用注意力机制来对属性进行刻画的属性级别情感分类方法。其主要思路是基于整个文本的依存树分析结果,选择包含该给定属性的最小子树部分,把这部分子句作为该属性的上下文信息的表示,所以针对文本中的不同属性,能够得到不同属性的上下文信息表示。给定例句:“手机的屏幕比电脑的屏幕看起来舒服多了”,和指定属性为屏幕,在例句中属性同时出现了两次,一个是手机的屏幕,一个是电脑的屏幕,如果单纯使用属性词作为属性的描述,那么对于模型来说无法区别例句中屏幕属性指向的是手机还是电脑的屏幕。在对例句进行依存树分析后,如图1,可以在依存树中找到对两个屏幕属性的修饰部分是处于该属性词在依存树中的子树部分,因此对两个属性词分别抽取它们的最小子树部分后,就可以得到如图2所示的两个子句,这样子就获得了更加精确的属性上下文信息。随后利用两个双向门限循环单元(gatedrecurrentunit,gru)来对句子的上下文和属性的上下文进行建模,得到两个固定大小的特征表示矩阵,接下来则利用注意力机制来获取文本和特定属性的特征表示,最后利用多层感知机进行特定属性的情感极性分类。具体来说,一种基于文本的依存树分析结果和注意力机制的情感极性分类方法,该方法是一个端到端的深度神经网络,如图3:第一层是词向量层,将预处理后的句子s和包含属性的子句sub_s两部分文本中的每个单词表示成为一个低维、稠密的实数向量,此时句子s和子句sub_s分别表示为一个词向量矩阵;第二层是两个双向gru,gru1学习整个句子s中的上下文信息,gru2学习该属性子句sub_s的上下文信息,两者都将每个时间步隐藏状态进行输出,以此得到两个gru建模后的隐藏状态矩阵hs和hsub_s;第三层是注意力层,将gru1输出的隐藏状态矩阵hs和gru2输出的隐藏状态矩阵hsub_s分别经过一个线性变化后进行两者矩阵乘法操作,得到一个注意力分配矩阵a,此时对矩阵a中的每一列进行累计,得到一个关于句子s中每个单词的注意力分配分数,并将该分数通过一个softmax函数进行归一化;第四层是特定属性的特征计算层,对句子s的词向量矩阵经过一个线性变化后得到一个和隐藏矩阵hs相同维度大小的矩阵e,并对e和hs进行逐元素的累加,然后利用上一层的注意力分数对将累计后的结果进行加权求和,得到代表该属性的特征表示ra;第五层,将gru1中的最后一个时间步的隐藏状态作为句子的上下文特征表示,经过一个线性变化后与第四层中该属性的信息特征ra表示同样经过一个线性变换后相加,作为同时代表句子上下文和属性信息的特征表示;第六层为输出层,将上一层的特征经过一个隐藏层和一个softmax层后,以softmax层的输出结果作为该属性的情感倾向性分类结果。本方法提出的模型包括以下步骤:步骤1:数据预处理,对句子进行分词和依存树分析,然后在依存树中找到包含该给定属性的最小子树,获取分词后的句子s和子句sub_s。并对该句子中所有的单词,寻找每个单词和该属性单词在依存树中的最近公共祖节点,以这个祖节点到两者的路径之和作为两者在依存树中的最短路径长度,该路径长度被编码成为位置信息的输入lweight=[l1,…,li,…,ln],编码计算方式为公式(1):其中,li代表编码后的结果,disti表示句子s分词后第i个单词wi到属性词的最短距离,n为提前确定好的句子长度。通过公式(1),可以得到一个和句子长度一致的位置向量,该向量中的每一维代表了句子中对应下标的单词的位置权重。随后利用在大规模无标注语料上训练好的词向量和词典,将整个句子s表示成向量矩阵以及将子句sub_s表示为向量矩阵步骤2:对句子上下文和属性上下文分别进行编码,将向量矩阵x1,通过一个双向gru单元学习句子的上下文表示,并输出每个时间步的隐藏状态,此时称该双向gru为gru1,得到的隐藏状态矩阵hs=[hs1,…,hst,…,hsn],其中t∈[1,n],n为句子长度,d1是该列向量hst的维度。对向量矩阵x2通过另外一个双向gru单元(记为gru2),得到隐藏状态矩阵hsub_s=[hsub1,…,hsubt,…,hsubsub_n],其中subt∈[1,sub_n],sub_n为子句长度,d2是该列向量hsubt的维度。步骤3:将步骤1中的位置向量lweight中的每个元素分别和步骤2中的隐藏状态矩阵hs中的每一列进行相乘,得到位置信息加权后的记忆矩阵m=[m1,…,mt,…,mn],其中mt=lt·hst。接下来进行特定属性的特征表示计算,计算公式为公式(2):attention(q,k,v)=v·softmax(column_sum(ktq))(2)其中w1、w2、w3、w4代表线性变换的参数,d、d0、dv代表这些参数的维度大小;column_sum函数是对矩阵ktq进行按列求和操作,softmax函数则是对求和后的结果进行归一化,softmax函数的输出结果则是注意力分数,该注意分数和v相乘的结果就是代表根据不同的属性上下文对句子分配注意力后的特征表示,记为ar。步骤4:为了加强句子上下文信息,将hs中的最后一列作为整个句子的上下文代表,提取出来,记为hsn。为了结合属性的特征表示ar和句子的上下文特征表示hsn,将两者分别经过一个线性变化后,进行逐元素的相加,得到最后的特征表示,并将该特征表示经过一个全连接层层,激活函数为双曲正切tanh,输出激活激活函数作用后的结果。步骤5:对上一层的输出经过一个线性变化后,通过softmax函数输出该特定属性的情感极性预测结果。实施方法中每个步骤的具体参数设置如下:步骤1:利用文本处理工具对给定的文本进行分词和依存树分析,在依存树分析结果中找到包含属性的最小子句,同时计算出位置信息向量。利用使用glove工具训练好的词向量,将句子s和子句sub_s映射为词向量矩阵,词向量的维度为300维。维度大小和下面每个步骤的参数属于神经网络的超参数,通过对实验数据的预估和实验中的参数调试过程来确定的。步骤2:对输入的句子向量矩阵和子句向量矩阵,分别使用一个双向的gru进行上下文建模,称为gru1和gru2,gru1单元的隐藏状态大小设置为100,即gru1的输出维度为200,gru2单元的隐藏状态大小设置为75,即gru2的输出维度为150,gru1和gru2分别设置0.5的dropout。步骤3:计算包含特定属性信息的特征表示,设置w1的维度大小为100×200,w2的维度大小为100×150,w3的维度大小为200×300,w4的维度大小为200×200,最后得到一个包含属性信息的200维列向量特征ar。步骤4:设置ar的线性变换后的大小为100维,hsn线性变换后的维度大小为100维,经过逐元素的累加后,输入到全连接层中,全连接层的维度大小为100维。步骤5:步骤4中的特征中经过一个100×3的线性变化后,是一个3维大小的列向量,经过softmax函数,输出后的结果是对应情感倾向类别的概率值,代表该特定属性的情感倾向概率,取概率值最大的类别为该属性的情感倾向类别。模型训练过程使用了多元交叉熵为损失函数和adam方法进行优化,并且使用提早停止的训练方法来防止过拟合。通过在semeval2014任务4中laptop和restaurant两个语料集中验证,结果评估标准为准确率(accuracy),准确率定义为模型正确预测的样本数目占整个测试数据集样本总数的百分比。实验结果如下:accuracylaptop73.67restaurant80.54上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1