胥桂仙,陈思瑾,孟月婷,张廷,于绍娜
(中央民族大学 信息工程学院,北京 100081)
情感分析,又称为意见挖掘.通过评估和分析热点事件中的用户情感,可以了解用户对某一事件的观点,有利于政府媒体部门及时了解热点事件对公众造成的舆论影响,采取科学有效的措施及时对事件的进一步发展进行控制,大大提升政府部门的应急管理能力,为社会稳定贡献力量.
主题模型是用于从海量的文本中发现主题的统计概率模型.它基于词在文章中的共现关系,从大量的词汇中找出主题词,由于这种模式反映了它们的语义关系,因此主题模型可以发现包含语义相关单词的潜在主题.研究表明:主题模型训练出的主题特征,能够有效地提高文本分类的性能,因此主题模型已广泛用于自然语言处理、信息提取、情感分析、文献研究和社会趋势分析等不同环境下的文本挖掘研究.
微博文本具有语言不规范、文本稀疏、主题不明确等问题,本文从全局的文档主题特征与局部的词向量特征两个角度对文本建模,提出了一种局部特征和全局特征融合的微博用户情感特征分析方法,以解决微博文本特征稀疏和主题聚焦性差的问题.
情感分析是一种利用计算模型对文本句子中所表达的观点进行分类的研究,目的是判定某一观点的情感倾向.公众的主观评价会在一定程度上左右个人的判断,这在受人们主观观点影响的政治、经济和社会科学领域均有所体现.当前文本情感分析领域的工作主要可分为以下三种.
基于情感词典的文本情感分析方法的关键问题是构建情感词典.当输入文本后,将文本中的词语与情感词典中的情感词进行匹配,并对匹配的情感词进行加权求和以获得输入文本的情感值,从而根据情感值确定输入文本的情感极性[1].
RLOIFF等[2]较早研究了文本情感的内容,他们使用一个具有代表性的特定领域文本语料库和一组种子词,提出了一种自举算法帮助用户快速创建语义词典.SILVA等[3]通过识别公开语料库中的形容词以及构建其同义词关系图,构建了一种自动扩展的葡萄牙语情感词典,专门分析了人们的社会评价情感.但是,这种方法受到了社交网络中文本快速增长的限制.YANG等[4]提出了一种直接从大型公开数据集中生成依赖域的汉语语素的方法,该方法无需任何预定义的情感词典,通过使用种子词和互信息来对雅虎上的电影评论进行分类.DIAMANTINI等[5]使用基于字典的方法来分析社交网络内容,并介绍了消除单词歧义和否定关联的方法.
基于情感词典的文本情感分析方法存在的问题是过于依赖人工,且随着网络新兴词汇的不断发展,情感词典不能涵盖文中所有的情感词,这大大降低了该方法的分类性能.
机器学习方法可以不依靠情感词典,自动提取文本特征并用于分类.KANG等[6]提出了一个改进的朴素贝叶斯(Naive Bayesian,NB)分类器,将NB与支持向量机(Support Vector Machine,SVM)用于餐厅评论的比较.结果表明:改进的NB算法比NB和SVM分类器产生更好的效果.2002年PANG等[7]基于电影评论数据,通过SVM、NB和最大熵三个最具有代表性的分类器来确定文本的情感极性是积极或消极.MORAES等[8]使用SVM和神经网络分类器完成情绪分类任务,在有关电影、GPS、相机和书评的树基准数据集上进行了实验,证实神经网络在电影评论方面比SVM有更好的效果.
基于机器学习的文本情感分析方法虽然能够自动提取特征,但是它通常依赖于人工特征选择,严重依赖实验数据.随着数据的持续增多,机器学习无法应对这种大规模的数据.如果在训练集中出现标记错误的数据,则准确性可能会受到很大影响.
大量学者的研究发现深度学习方法不需要人工干预,能自动地从不同的神经网络模型中提取特征,并从自身的错误中不断学习.同时该方法对语料库的限制较少,它可以根据语料库中的单词找到大量的同义词,这使得语料库具有更好的可传递性,弥补了传统机器学习算法高度依赖语料库的不足.
KIM等[9]将卷积神经网络(Convolutional Neural Networks,CNN)应用在英文句子级的情感分析任务,通过微调和对体系结构的简单修改来获得特定于任务的向量和静态向量,在当时取得了良好的分类效果.为了处理具有位置关系的文本序列,AL-SMADI等[10]基于阿拉伯酒店评论数据将循环神经网络(Recurrent Neural Network,RNN)与支持向量机进行了方面级别的情感分析实验,结果显示RNN在运行速度和二次任务上均取得了优势.但是,后续的研究发现当输入的文本序列长度过长时,RNN由于反向传播的原因会一定程度上导致梯度爆炸或消失.因此,WANG等[11]采用长短期记忆神经网络(Long Short-Term Memory,LSTM)来分析文本的情感类别.为了拥有更好的实验效果,有研究者在神经网络中引入注意力机制进行神经网络的训练,并取得了较好的效果.
然而当前的神经网络模型一般只将词粒度的向量作为输入,忽视了语义层面的全局特征,从而导致模型分类的时候没有充足的特征进行类别的判断,最终效果不理想.
在情感分类任务中,情感特征的提取对分类的结果尤为重要,本文提取了4种特征:分布式词向量特征、TF-IDF统计特征、情感特征、文本主题特征,将4种特征组合变换构建局部特征和全局特征,融合后输入到神经网络模型中,最终构成了一种基于局部特征和全局特征的情感分类模型,该模型将组合后的不同的特征作为神经网络的多输入,从而使模型获取更加全面的特征信息,取得更好的情感分类结果.本文情感分析模型的示意图如图1所示.
图1 情感分析模型Fig.1 Sentiment analysis model
词向量根据滑动窗口中的词共现信息,将特征提取细化到词的粒度,对每个词的独立词向量进行建模,语义向量简单地采用词向量重叠组合,但却忽略了词与词之间相互关联的整体语义关系.神经主题模型使用整个文本集的词语来预测主题分布,主题分布反映了文本的整体语义信息,而不会捕获更多的局部单词之间的相关性,从而能够构建更加符合主题的全局特征.
本文引用了王建成等[12]提出的模型,利用基于神经变分推理框架的神经主题模型构建全局主题特征,其结构如图2所示.
图2 神经主题模型Fig.2 Neural topic model
主题模型包含两个主要组件:主题预测编码器(Encoder)和重构文档解码器(Decoder).前者根据给定的一篇文档预测其主题分布,后者根据主题分布生成相应的文档.对于语料库中的每一篇文档,d为一段文本的词袋表示,其中的每一个元素对应当前文档中每一个单词的词频.主题模型生成文档的过程如下:
(1)使用带激活函数的多层感知机,将给定的词袋输入d转换为隐含变量z的均值和方差,即μ(d),σ(d)2~MLP(d),其中MLP为多层感知机;
(2)根据μ(d),σ(d)2得到输入数据d在隐含变量z下的后验概率q(z|d).q(z|d)近似满足高斯分布,即q(z|d)~N(μ(d),σ(d)2),其中N(μ(d),σ(d)2)为多维高斯分布;
(3)参数化表示隐变量θ(d),经Softmax规范化之后得到该文本的主题分布为θ(d)= Softmax (Wθz(d)).其中,Wθ是可训练的变量;
(4)给定采样出来的主题分布θ(d),从解码器Decoder重构文档,则对于文档中的第i个词wi=Softmax (Wφθ(d)).其中,Wφ是可训练的变量.
文档d的似然函数p(d|μ0,σ0)为:
则神经主题模型的训练损失函数Loss如式(2)所示:
其中:DKL表示Kullback-Leibler散度,用于衡量两个概率分布的相似性.式中第一项为模型的重构损失,训练模型从隐变量z中重构出文档,保证了最大化d的生成概率.第二项保证了模型学习到的q(z|d)和真实的后验概率p(d|z)相近[12].
在解码阶段,隐含变量z是从自编码器Encoder的输出q(z|d)采样得到的,通常神经网络通过梯度下降等优化算法实现迭代,但是由于存在采样行为,无法计算梯度值,因此梯度无法正常传播回来,所以变分自编码网络中的参数不能利用梯度下降算法来优化.因此运用重参数技巧,从q(z|d)中采样z的操作过程通过公式(3)模拟:
式中,从正态分布N(0,1)采样得到.通过加入噪音,训练出来的模型更为鲁棒.
本文利用基于神经变分推理框架的神经主题模型构建全局主题特征,训练流程如下:
(1)输入文档d通过编码器部分q(z|d)计算得到隐含变量z的均值以及方差;
(2)通过重参数技巧得隐含变量z;
(3)将隐含变量z输入到解码器中计算得到分布p(d|z);
(4)最后通过优化算法迭代损失函数Loss优化参数.
模型训练的最终目的是获取主题预测编码器,因此,在主题模型训练结束后,重构文档解码器则不再使用.
在测试阶段,本文利用上文训练得到的主题预测编码器提取测试数据的主题特征θ(d)作为整个文档的全局主题特征.通过将神经主题模型引入到特征提取中来扩展文本特征,将文本主题特征作为全局特征来表示文本信息,充分利用了文本的全局语义信息,从而能够构建更加符合主题的全局特征.
词向量将词的语义和句法表示模型化,表达上下文的语义关系,但是无法捕捉词语的情感信息.实际上,情感词才是决定文本表达情感的关键因素.然而使用通用词向量可导致相反情绪的词具有相似的向量表示,因为这些词出现在相似的句法环境中.因此我们提出融合基于情感词典的情感分析方法,利用清华大学李军的TSING中文褒贬词典得到每种类别情感词的情感取值,将词语的情感信息融入到词向量中,实现词向量的情感增强.情感特征词向量Senti2vec(ti)的计算方法如公式(4)、(5)所示.
式中:ti为文档d中的第i个词;Emb(ti)为ti的分布式词向量;Senti(ti)为ti的情感权重;α为根据当前词是否含有情感信息所分配的情感权重且满足α>1,本文中α的取值为2.
同时,情感分析任务本质就是文本分类问题,不同的词语对分类的贡献不同.通用词向量模型在情感分类中利用更多的上下文信息,较少考虑词语在统计学中的的权重特征.因此本文利用TF-IDF提高分类任务中词语的权重.TF-IDF的表达式如(6)、(7)所示:
式中:ti为当前词语,d为ti所在的文档,TFIDF(ti)为ti的TF-IDF权重,TF(ti,d)为ti在d中出现的频率,N为总文档数,nti为出现ti的文档数.
统计权重TFIDF2vec(ti)的计算方法如式(8)所示:
本文构建的局部特征向量Word2vec(ti)的表示如式(9)所示.
将局部特征词向量Word2vec(ti)送入到BiLSTM模型中训练,得到基于上下文的文档d的特征向量Doc2vec(d).
基于上文的2个步骤,可以得到基于局部词向量的文档特征Doc2vec(d)和基于神经主题模型的全局文档主题特征θ(d),将上述2种特征进行融合得到最终的文本特征.一方面,具有局部特征的词向量有助于预测句子中的上下文单词;另一方面,具有全局特征的主题向量可以从整个文档范围来预测所有的单词,通过局部特征和全局特征的融合,使得最终的文档特征能够更加丰富.这样,最终文档特征向量h(d)可表示为:
然后将该文本特征向量h(d)输入到Softmax分类器.经过Softmax函数的映射,得到文档的类别概率分布从而实现情感的分类,公式如(11)所示:
式中:W和b为Softmax函数的参数,为文本类别.则损失函数为:
式中:ti∈Rm为one-hot的文本真实值;yi∈Rm为估计出的每个类别的概率;m=2为类别个数;λ为L2正则化的超参数,使用L2正则化减轻过拟合的情况.
本文采用COAE2014task4中的微博数据集,共40000条数据.该数据集包含5000条的标注数据,其中2656条为正面情感极性,2344条为负面情感极性[13].同时,本文还获取了5000条的微博文本,其中正面情感和负面情感数据各2500条.最后,将10000条数据构成最终的实验数据集来完成实验.最终得到的数据集的详细信息如表1所示.
表1 数据集描述Tab.1 Dataset description
由于数据集比较小,所以本文对Mixture中10000条数据进行10折交叉验证来验证情感分类的实验效果.
本实验中的词向量利用python库中Gensim工具的Skip-Gram模型,在实验中,当未进行预训练以进行初始化时,使用200维的word2vec词向量来初始化,没有出现在单词向量中的词语由词向量的平均值来代替.同时,为了保证实验效果并充分使用数据,本文利用COAE2014任务4数据集提供的40000条数据来训练词向量.实验中采用的神经网络模型BiLSTM部分实验参数如表2所示.
表2 实验参数设置Tab.2 Experimental parameter settings
本文采用准确率P、召回率R及F1值进行结果评价,相关的参数如表3所示.
表3 评价标准符号说明Tab.3 Symbol description of evaluation standard
计算公式如(14)、(15)和(16)所示.
为了保证实验结果的准确性,本文的实验结果均为随机初始化5次实验的平均值.
3.4.1 确定主题数目K
研究表明主题数目K值与主题模型抽取的效果有直接关系,因此,为确定抽取的主题数量K,对数据集进行不同主题数量的实验.困惑度Perplexity是评估主题模型的常用方法,计算如公式(17)、(18)所示.
式中:D为语料库中的测试集,M为文档总数,Nd为每篇文档d中的单词数,wd为文档d中的词,p(wd)为文档中词wd产生的概率[14].困惑值越小,主题模型的训练效果越好,模型的稳定性越好.
在神经主题建模过程中,设置主题数为0~100,间隔为10,实验结果如图3所示.
图3 主题模型的困惑度实验结果Fig.3 Experimental results of topic model perplexity
由图3可见:随着主题个数的不断增大,实验效果也随之提升,在主题的个数上升为50时,实验结果达到了最好.但是当接着增大主题个数时,实验效果开始有所下降.综上,当主题数为50时,模型的困惑度最低,效果最好.分析可知:当主题数过少时会导致能够表示文本差异的特征不能完全展示,而主题数目设置过多时,会将其自身明显的特征强制分配到其余更多的特征上,导致单个特征维度可表示的文本差异不明显,还增加一些噪声,导致实验效果不理想.因此,主题数的选择不应过多或过少,最终选择50用于后续实验.
3.4.2 网络参数对模型情感分类的影响
基于本文第二部分提出的方法,融合局部特征与全局特征,作为BiLSTM神经网络模型的输入,进行下述实验,分析模型不同的输入长度和词向量维度对模型情感分类结果的影响.
(1) 输入长度.
输入数据的长度对模型性能有一定影响,当输入数据过长,将会被填充过多的零向量;当长度过短时,将会有较多信息被舍弃.图4是数据集文本长度的分布情况.
图4 数据集文本长度分布Fig.4 Dataset text length distribution
由图4可见:文本长度大致分布在0~100之间,其中绝大部分的文本长度在0~50.通过调节输入长度的大小,F1值的变化如图5所示.
图5 F1值与输入长度变化的关系Fig.5 Relationship between F1 value and input length
由图5可见:当输入长度在0~50时,F1值随着输入长度的增加呈上升趋势;当输入长度为50时,F1值达到最高;当输入长度大于50时,随着输入长度的不断增加,输入数据会被填充过多的零向量,F1值则呈现出下降趋势.因此,将模型的输入长度设置为50进行后续实验.
(2)词向量维度.
为了分析词向量维度对实验的影响,本文通过设置不同的单词向量维数,对词向量模型进行实验.初始化word2vec模型的参数,设置上下文的窗口为5,以50步为间隔训练从50维到300维的词向量模型,并将F1用作评估指标.如图6所示为不同词向量维数下数据语料库的分类效果.
图6 不同维度的词向量实验结果Fig.6 Experimental results of word vectors with different dimensions
由图6可见:随着词向量维数的增加,实验结果先增加,后降低.当词向量的维数设置为200时,测试集的分类效果最好.这是因为当词向量维度太少时不能完全表示文本信息,随着维度的提升,会得到更多的特征信息,实验效果也随之变好.当维度太大又会引入越来越多的不相关特征,降低了分类的准确性.因此,选择恰当的特征尺寸对于分类结果非常重要.本文将词向量维度设置为200进行后续实验.
3.4.3 全局的文档主题特征与局部的词向量特征对情感分类的影响
为证明不同特征表示的有效性,本文基于不同的特征表示进行情感分析研究,通过实验比较情感分析的效果,神经网络采用BiLSTM模型.将使用word2vec训练的分布式词向量特征记为F1,TF-IDF统计特征记为F2,情感特征记为F3,主题特征记为F4,本文提出的方法是F1+F2+F3+F4.特征表示结果的对比如表4和图7、8所示.
表4 不同的词向量表示的实验结果Tab.4 Experimental results of different word vectors representation
图7 不同特征表示的正向文本分类结果Fig.7 Positive text classification results represented by different features
图8 不同特征表示的负向文本分类结果Fig.8 Negative text classification results represented by different features
从以上结果可见:当只使用词向量为特征表示时的分类结果最不理想,而本文提出的方法即实验组5,能够取得更好的实验效果.与单独使用词向量的实验相比,对于正向测试数据,实验组5在Precision、Recall、F1上各自提升了2.5%、7.7%、5.3%,对于负向测试数据,实验组5在Precision、Recall、F1上各自提升了6.4%、1.1%、3.8%.
为了探索情感词典加权的单词向量对模型的影响,通过实验组1、2进行加入情感词典的词向量和未加入的词向量的对比分析.由表4可见:对于正向测试数据,情感词典加权的方法在Precision、Recall、F1上各自提升了1.2%、2.3%、1.6%;对于负向测试数据,情感词典加权的方法在Precision、Recall、F1上各自提升了1.6%、0.2%、0.9%.因为加入情感词典可以增强句子中表达的情感特征,使得情感分析更具有针对性,因此该模型可以获得比普通词向量更好的性能.
为了探索TF-IDF加权的词向量对模型的影响,从对比实验组1、3分析可知:对于正向测试数据,在Precision、Recall、F1上各自提升了0.7%、2.4%、1.6%;对于负向测试数据,在Precision、Recall、F1上各自提升了2.8%、0.3%、1.7%,因此加入浅层词性特征TF-IDF对情感分类准确度有一定提升.
为了探索LDA加权的词向量对模型的影响,从对比实验组1、4可见:对于正向测试数据,在Precision、Recall、F1上各自提升了1.1%、3.6%、2.5%;对于负向测试数据,在Precision、Recall、F1上各自提升了3.6%、0.1%、2.0%,使用word2vec和主题特征优于单独使用word2vec,这表明词向量和主题特征可以更好地融合语义信息和主题信息,因此具有更好的语义表达效果.
3.4.4 不同神经网络方法与基准方法对比实验
为了证明BiLSTM模型的有效性,将其与其他神经网络模型进行实验对比,以验证本文模型的有效性和鲁棒性.其中,输入部分词向量为上文中提出的词向量表示方法,实验结果如表5、图9、图10所示.
表5 不同情感分析模型的实验结果Tab.5 Experimental results of different sentiment analysis models
图9 正向数据集上各模型情感分析效果对比Fig.9 Comparison of sentiment analysis effects of each model on positive dataset
图10 负向数据集上各模型情感分析效果对比Fig.10 Comparison of sentiment analysis effects of each model on negative dataset
CNN:卷积核大小分别为5,卷积核数量为64个,Dropout rate为0.5,mini-batch大小为128.损失函数为交叉熵损失函数,优化函数为RMSProp[15].
RNN:设置实验中隐藏层单元个数为160,其他设置同CNN.
LSTM:与RNN参数基本一致.
BiLSTM:与LSTM参数基本一致.
由图9、图10可知,本文提出的方法在Precision、Recall、F1上都取得了最好的实验效果,其中,正向测试数据的Precision、Recall、F1上达到了86.7%、81.2%和83.8%;负向测试数据的Precision、Recall、F1上分别达到了80.1%、86.3%和82.9%.可见BiLSTM神经网络方法在实验效果方面明显优于CNN模型.在正向测试数据中,本文提出的方法比CNN在Precision、Recall、F1上分别提高了6.6%、8.8%、7.8%;在负向测试数据中,本文提出的方法比CNN在Precision、Recall、F1上分别提高了7.3%、5.1%、6.2%.因为CNN通过卷积操作能够提取微博文本的局部特征,但无法有效提取文本的全局特征,因此分类效果不好,而BiLSTM神经网络模型在文本分类中更加有效.相较于RNN模型,在正向类中,本文提出的方法在Precision、Recall、F1上分别提高了3.1%、6.4%、4.9%;在负向类中,本文提出的方法在Precision、Recall、F1上分别提高了6.6%、2.2%、4.5%.因为RNN能够解决文本序列的问题,但当序列过长时,RNN由于反向传播的原因会导致梯度爆炸或消失.相较于LSTM,在正向测试数据中,本文提出的方法在Precision、Recall、F1上分别提高了2.5%、7.7%、5.3%;在负向测试数据中,本文提出的方法在Precision、Recall、F1上分别提高了6.4%、1.1%、3.8%.因为LSTM在一定程度上缓解了梯度消失的问题和上下文特征,但是无法有效利用情感特征和主题特征.本文提出的方法通过结合文档特征、情感特征、主题语义特征,可以丰富神经网络的特征,从而提升情感分类的准确率.
从语料库的角度来看,正面语料库分类精确度优于负面语料库.通过观察语料,发现由于汉语表达的丰富表达,负面语料中存在反问和讽刺等表达,这使得情感分析的难度更加困难.但是,当人们在正面评价中使用正面词语时,情感表达更加统一,有利于文本的情感自动分类.
本文从全局的文档主题特征与局部的词向量特征融合同时对文本进行建模,提出了一种基于局部特征和全局特征融合的情感分类方法,提取词向量特征、统计特征和情感特征组成局部特征,训练神经主题模型得到主题预测编码器并用于提取全局主题特征,将两者融合后用以解决评论文本特征稀疏和主题聚焦性差的问题.结果表明:结合全局主题语义特征和局部词向量特征,可以更加丰富神经网络的特征,从而有效地提高情感分类的准确率.