一种基于CNN‑GRNN的读者情绪分布预测算法的制作方法

文档序号:13483466阅读:521来源:国知局
本发明涉及文本情感分析领域,具体涉及一种基于cnn-grnn的读者情绪分布预测算法。
背景技术
:随着信息技术的不断发展和web2.0的到来,人们习惯于借助在线新闻网站、论坛和微博等新一代网络媒体表达自己的观点和态度,互联网成为了人们交流观点、抒发情感的平台,网络中积累了海量的能够反映人们情绪和行为的文本信息,因此,文本情感分析技术应运而生并成为自然语言处理和计算语言学的研究热点。目前情感分析的工作大多集中于文本直接呈现的情感极性的研究,这些研究主要采用单标签的方式将文本分为正面态度和负面态度,包括热门的微博情感倾向性分析,以及在线评论网站中用户评论文本的情感分类等,而针对文本所可能引发的读者情绪的研究较少。读者情绪分析旨在研究语言文字激发人们产生喜、怒、哀、乐等情绪的机制,并预测读者阅读文本后可能产生的情绪。读者情绪研究一方面可用于舆情监控的早期预警。传统舆情监控系统大多是基于热点分析,通过对热点话题进行跟踪来实现舆情的预警,但是热点表明事件已经造成足够大的影响,舆情监控的延时和代价较大,而情绪预测的方法能够更快地预测到可能导致读者负面情绪的文本,及时采取相应的跟踪措施,从而尽早控制和解决问题。另一方面可预测人们阅读文本后的情绪信息,辅助网络媒体提供商更好地了解用户的偏好,为用户提供个性化的推荐服务。因此读者情绪分析具有重要的研究价值和现实意义。但由于人类的情绪十分复杂,读者情绪预测的研究相对困难,目前仍处于起步阶段,研究成果较少。bhowmick等人考虑读者产生的几种主要情绪,使用rakel算法将文本划分到多个情绪类别。xu等人利用lda主题模型把文本映射到隐含的主题特征空间,从而将读者情绪与文本的隐含主题相关联,提高了多标签情绪分类的准确度。温雯等人进一步提出基于多类别语义词簇的方法,将词语表示成词向量的形式,并针对标签对其进行聚类形成多个语义词簇,影响读者情绪的文本特征可以通过不同语义词簇的频率来表示,最后采用mlknn进行多标签分类。现有的研究方法主要是将读者情绪预测转换成多标签文本分类问题,认为分类后文本所属的情绪标签即是读者可能产生的情绪,忽略了文本的语序和语法信息,而且难以捕捉复杂的语言现象和人类多种情绪之间的复杂性。技术实现要素:为了克服现有技术的缺陷,本专利提供一种基于cnn-grnn(convolutionalneuralnetwork-generalregressionneuralnetwork)的读者情绪分布预测算法,能够通过分配句子的注意力概率权重来准确捕捉读者可能产生的情绪。针对上述技术问题,本专利是这样加以解决的:一种基于cnn-grnn的读者情绪分布预测算法,其步骤如下所示:s1、将文本的多个句子合并为一个数据集,通过每个句子对应的矩阵计算句子特征向量;s2、序列层:按上下文顺序从上到下依次对每个句子的句子特征向量进行迭代,每迭代一次就得到一个隐含层向量,并计算每个隐含层向量的注意力概率权重,将每个隐含层向量和相对应的注意力概率权重相乘后累加得到语义编码,再结合语义编码和最后迭代得到的隐含层向量进行聚合运算得到文本特征向量;s3、设文本情绪标签数目为k,将文本特征向量转换成长度等于k的向量,通过回归模型得到文本的情绪标签分布本专利中的语义编码包括每个句子的注意力概率权重,也即包括有注意力概率分布,而最后迭代得到的隐含层向量包含了所有句子特征向量的信息,也即文本总体向量,最终语义编码和文本总体向量通过聚合运算得到文本特征向量,包含了所有句子特征向量的注意力概率分布信息,因此,与读者情绪有关的语义特征可以分配更大的注意力概率权重,突出了与读者情绪有关的语义特征的作用,减少了其他非相关特征的干扰。进一步地,在所述步骤s2中引入用于感知语义特征的上下文向量uc,通过该向量计算每个隐含层向量hi的注意力概率权重αi,具体公式为ui=tanh(wahi+ba)及其中,wa和ba分别表示系数矩阵和偏置向量,wa、ba和uc通过训练获得,l为隐含层向量的数量。进一步地,所述步骤s2中文本特征向量通过d=tanh(wpν+wxhl)得到,其中hl表示最后迭代得到的隐含层向量,ν表示语义编码,wp和wx是不同的系数矩阵,它们的值通过训练获得。进一步地,所述步骤s1可以分为输入层和句子特征提取层:所述步骤s1可以分为输入层和句子特征提取层:s11、输入层:设数据集中句子的最大词数量n作为每一句的固定长度,句子中的每个词用词向量至表示,设词向量的维度为d,数据集中词数量不足n的句子,其中缺少的词向量从高斯分布中随机初始化,将数据集中每个句子用矩阵表示为s12、句子特征提取层:通过每个句子对应的矩阵计算句子特征向量。进一步地,所述步骤s12中的句子特征提取层包括卷积层和下采样层,每个句子对应的矩阵先后经过卷积层和下采样层后得出句子特征向量。进一步地,所述卷积层的步骤为:设定不同大小的滤波器,分别对句子矩阵进行连续的卷积操作,每次连续的卷积操作后均得到多个特征映射数组;下采样层的步骤为:分别对所有特征映射数组进行采样,得到的多个局部最优特征值,并将其组合成句子特征向量。本专利采用不同大小的局部单词窗口,也即采用多种不同窗口大小的滤波器,每种滤波器均提取出一个特征映射数组,也就是说对多种不同的单词的上下文组合方式进行采样,以尽可能充分地考虑到词语之间的上下文信息,使最终获得的情绪标签分布更为准确。进一步地,所述卷积层的卷积操作具体为:在包含n个词向量的句子矩阵中,采用大小为h的滤波器进行卷积操作,其公式为yi=f(w·xi:i+h-1+b),其中yi表示特征映射数组中的第i个元素,xi:i+h-1代表h个词组成的局部单词窗口,其中,w为系数矩阵,b为偏置系数,它们的值通过训练获得。进一步地,所述步骤s3中,通过softmax回归模型得到文本的情绪标签分布:p(x,θ)=softmax(wsdx+bs);其中p是k维的多项式分布,分别表示k个情绪标签所占的比重,ws和bs分别表示系数矩阵和偏置系数,它们的值通过训练集训练获得,dx指文本特征向量,x∈d,d为训练集,θ表示softmax回归模型中所要调整的参数。进一步地,softmax回归模型的损失函数为求参数向量θ使损失函数j(θ)最小,其中设τ为训练集中设定好的读者情绪标签集合中任意元素,pk(x,θ)用于对应每个不同τ的预测概率值,zk用于对应各个不同τ的真实概率值,为l2正则项。进一步地,所述步骤s2中的迭代公式如下:其中st是当前输入的句子特征向量,ht-1是上一次迭代得到的隐含层向量,重置门限rt和更新门限zt控制每个隐含层向量的信息更新;wz、wr、wh、uz、ur和uh分别为不同的系数矩阵,bz、br和bh表示偏置向量,上述参数均通过训练获得。相比于现有技术,本方案的有益效果为:通过分配与读者情绪相关的语义特征更高的注意力概率权重,突出与读者情绪有关的语义特征的作用,减少了其他非相关特征的干扰,便于更准确地获取情绪标签分布。附图说明图1是本专利的算法流程图。图2是本专利步骤s1至s2的示意图。图3是本专利步骤s3至s4的示意图。图4是本专利对算法进行训练的方法流程图。具体实施方式下面结合实施例和附图对本专利进行详细说明。如图1至3所示的一种基于cnn-grnn(convolutionalneuralnetwork-generalregressionneuralnetwork)的读者情绪分布预测算法,其步骤如下所示:s1、输入层:将文本的l个句子合并为一个数据集,设数据集中句子的最大词数量n作为每一句的固定长度,句子中的每个词用词向量至表示,设词向量的维度为d,对数据集中词数量不足n的句子,其中缺少的词向量从高斯分布u(-0.25,0.25)中随机初始化,将数据集中每个句子用矩阵表示为s2、句子特征提取层:通过每个句子对应的矩阵计算句子特征向量;s3、序列层:采用循环神经网络对每个句子的句子特征向量进行迭代,每迭代一次就得到一个隐含层向量,并计算每个隐含层向量的注意力概率权重,将每个隐含层向量和相对应的注意力概率权重相乘后累加得到语义编码,也即所述语义编码通过公式语义编码和最后迭代得到的隐含层向量进行聚合运算得到文本特征向量;s4、设文本情绪标签数目为k,将文本特征向量转换成长度等于k的向量,通过回归模型得到文本的情绪标签分布。本专利中的语义编码包括每个句子的注意力概率权重,也即包括有注意力概率分布,而最后迭代得到的隐含层向量包含了所有句子特征向量的信息,也即文本总体向量,最终语义编码和文本总体向量通过聚合运算得到文本特征向量,包含了所有句子特征向量的注意力概率分布信息,因此,与读者情绪有关的语义特征可以分配更大的注意力概率权重,突出了与读者情绪有关的语义特征的作用,减少了其他非相关特征的干扰,因此本算法又可称为cnn-grnn-cbat,其中cbat为contextbasedattention。在所述步骤s3中引入用于感知重要语义特征的上下文向量uc,通过该向量计算每个隐含层向量hi的注意力概率权重αi,具体公式为ui=tanh(wahi+ba)及其中,wa和ba分别表示系数矩阵和偏置向量,wa、ba和uc通过训练获得,因为每个句子都对应着一个隐含层向量,ui为感知隐含层向量hi所对应句子的重要语义特征的向量。步骤s2中文本特征向量通过d=tanh(wpv+wxhl)得到,其中hl表示最后迭代得到的隐含层向量,ν表示语义编码,wp和wx是不同的系数矩阵,它们的值通过训练获得。所述步骤s2中的句子特征提取层包括卷积层和下采样层,其中卷积层的步骤为:设定c个不同大小的滤波器,分别对句子矩阵进行连续的卷积操作,每次在连续的卷积操作后均得到m个特征映射数组,卷积操作具体为:在包含n个词向量的句子矩阵中,采用大小为h的滤波器进行卷积操作,其公式为yi=f(w·xi:i+h-1+b),其中yi表示特征映射数组中的第i个元素,xi:i+h-1代表h个词组成的局部单词窗口,其中,w为系数矩阵,b为偏置系数,它们的值通过训练获得;当单词窗口由x1:h逐步滑动到xn-h+1:n时,得到特征映射数组c={y1,y2,…,yn+h-1};下采样层的步骤为:采用gollobert提出的max-over-timepooling方法对所有特征映射数组进行采样,得到的多个局部最优特征值,局部最优特征值与特征映射数组的关系为并将多个局部最优特征值组合成句子特征向量其中表示第j(1≤l≤c)种类型的滤波器得到的第l(1≤l≤m)个特征映射数组的局部最优特征值,通过上述计算可得到l个句子特征向量。本专利采用不同大小的局部单词窗口,也即采用多种不同窗口大小的滤波器,每种滤波器均提取出一个特征映射数组,也就是说对多种不同的单词的上下文组合方式进行采样,以尽可能充分地考虑到词语之间的上下文信息,使最终获得的情绪标签分布更为准确。所述步骤s4中,通过softmax回归模型得到文本的情绪标签分布:p(x,θ)=softmax(wsdx+bs);其中p是k维的多项式分布,分别表示k个情绪标签所占的比重,ws和bs分别表示系数矩阵和偏置系数,它们的值通过训练集训练获得,dx指文本特征向量,x∈d,d为训练集,θ表示softmax回归模型中所要调整的参数,具体为[w*,u*,b*,uc],其中下标*表示任意字符,因此,带*下标的三项参数可代表本专利中提到的所有系数矩阵和偏置向量。所述步骤s2中的迭代公式如下:其中st是当前输入的句子特征向量,ht-1是上一次迭代得到的隐含层向量,重置门限rt和更新门限zt控制每个隐含层向量的信息更新;wz、wr、wh、uz、ur和uh分别为不同的系数矩阵,bz、br和bh表示偏置向量,上述参数均通过训练获得。softmax回归模型的损失函数为求参数向量θ使损失函数j(θ)最小,其中设τ为训练集中设定好的读者情绪标签集合中任意元素,pk(x,θ)用于对应每个不同τ的预测概率值,zk用于对应各个不同τ的真实概率值,为l2正则项。采用mini-batch梯度下降法,在利用损失函数进行迭代过程中,利用小部分样本代替所有的样本参与计算,在寻找到全局最优解的同时加快模型训练速度。下面对本算法的实际运行效果进行实验对比。实验所用的数据来自于雅虎奇摩的新闻语料,该语料搜集了雅虎各频道的热点新闻以及相应的读者情绪投票数据,数据的组织形式包括题目、新闻内容、评论文本、读者投票总数和各种情绪所占的比重。其中,情绪标签共有8个,依次为:实用、感人、开心、超扯、无聊、害怕、难过、火大。语料库中包括49000篇文本,共6552869投票数。每篇新闻投票数不等,最高为51890。为了保证每篇新闻都有足够多的用户投票数据,我们对10票以下的新闻进行过滤,最终得到的22841篇新闻文本作为实验数据集,总投票数为6469025,即平均每篇新闻文本的投票数约为283。实验采用的数据集涵盖了范围较广的多种人类情绪,不局限于常用的产品或电影评论数据集的正面/负面情感,每篇文本以相互关联的情绪标签上的多项式分布作为标注。随机选择实验数据集中2/3的样本作为训练数据集,剩余的1/3为测试数据集,进行读者情绪分布预测和预测效果评估。实验预先利用google开源的word2vec中的skip-gram模型在1.2g的中文维基百科语料上进行无监督的词向量学习,词向量维度设置为200,学习率0.03,生成包含51万个词汇的分布式词向量表示模型,学习到的词向量存储在词表中。采用ictclas分词工具对实验文本进行分词,以词语作为句子的基本组成单位,将词语表示成对应的词向量形式。对于没有出现在词表中的未登录词语,采用高斯分布u(-0.1,0.1)随机生成词向量。设定卷积神经网络的卷积核窗口大小分别为3,4,5,每种卷积核数目为100,卷积核函数选择relu函数。门限循环神经网络的隐含层向量和注意力层中的上下文向量均设置维度100,上下文向量以随机生成的方式进行初始化。训练过程中,设置mini-batch大小为64,相似长度(文本中句子数目)的文本组织在一个批次中,对乱序的小批次样本进行随机梯度下降。首先在实验数据集上评估本实施例预测情绪标签分布的能力,预测情绪标签分布与真实情绪标签分布之间的距离越接近表明模型的预测效果越好。因此,采取平均绝对误差(mae)、均方根误差(rmse)和皮尔逊相关系数(r)三个指标来度量模型的性能,具体为和其中zi是真实情绪标签分布,pi是预测情绪标签分布,n是测试样本的数目。和分别对应于真实情绪标签分布和预测情绪标签分布的算数平均数,σ是标准差。mae和rmse值越小表明模型预测情绪标签分布的效果越好,r越大表明效果越好。分别评估了基于词袋模型的binarybow、以神经网络为基础的rae、cnn、lstm、cnn-grnn、cnn-grnn-cbat模型的性能。其中rae由richardsocher提出,采用递归自动编码器以半监督的方式通过重构误差和结合文本情绪分布构建句子特征向量,平均所有句子特征向量作为文本特征向量,并训练softmax回归预测情绪分布。cnn和lstm方法都将文本视为一个长句,结合word2vec训练的词向量构建文本特征向量。实验结果如上表所示,可以看到对比传统的词袋模型,采用了词向量和深度学习技术的神经网络模型显著的提高了预测的效果。在几种神经网络模型中,rae的效果最差,说明以平均句子特征向量作为文本特征向量的方式会引入噪音反而造成训练数据质量下降。而cnn-grnn模型,与将文本视为一个长句进行处理的cnn、lstm方法相比达到了更高的性能,说明以“词语-句子-文本”这种自下而上的层次结构提取文本语义特征的有效性,不仅考虑了句子内部的语义信息,还考虑了句子之间的依赖关系。另外,融合了注意力机制的cnn-grnn-cbat进一步地提升了模型的预测能力,得到的预测分布最接近于真实的情绪分布,即注意力机制能够感知上下文信息,找到更能影响读者情绪的关键文本特征,从而提升情绪预测的准确率。在读者情绪预测任务上大多数的研究工作都是采用多标签分类的方式,下面接着评估本实施例在多标签读者情绪分类上的效果。观察数据集发现,同一篇文本不同读者的产生的情绪是有差异的,情绪标签的比例不等,但大致会集中在某一个或某几个标签。对数据集的情绪标签分布进行处理,确定最佳分界阈值为0.23,即认为有23%或者以上的投票比例的标签就是文本的标签,由此得到的分布情况如下表所示:标签数目文档数百分比11096348%21050646%313706%其中有48%的文档只有1个标签有23%或者以上的读者情绪投票比例,其他以此类推。将本文模型训练得到的文本特征向量作为多标签分类器的输入,预测文本对应的情绪标签分布,与基准方法wlda-mlknn、mwc-w2v-mlknn进行对比实验。其中wlda-mlknn方法设定lda的维度为80,mwc-w2v-mlknn方法取特征维度为200,mlknn的参数k都设置为8。采用汉明损失(hamming-loss,hl)、1-错误率(one-error,oe)以及平均精度(averageprecision,avp)作为评估方法。hl和oe均为值越低越好,而avp值越高说明效果越好。模型hloeavpwlda-mlknn0.15390.31840.7683mwc-w2v-mlknn0.13830.26590.8049cnn-grnn0.12870.22800.8314cnn-grnn-cbat0.12040.19760.8523通过上表可得,采用cnn-grnn模型进行多标签读者情绪分类的效果明显好于wlda-mklnn和mwc-w2v-mlknn,平均精度分别增加了约7%和3%,其他的几种评估指标也比较好。这是由于这两种方法仅考虑提取与读者情绪有关的语义特征,忽略了文本本身的语序和语法信息,而在中文表达中,同样的词语前后的修饰词或者上下文语境不同,表达的含义相差甚远,从而影响了对情绪标签的判断。cnn-grnn-cbat模型的平均精度在cnn-grnn的基础上提升了约2%,说明了在提取文本特征时加强与读者情绪有关的关键的文本特征比重,同时弱化其他非相关特征比重的重要性。本实验证明了本文提出的方法在多标签情绪分类问题上同样具有一定的优越性。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1