随着互联网媒体平台的发展,产生大量蕴含着用户丰富情感的短文本信息,在给定的文本下确定情感的极性称为情感分析。情感分析是文本挖掘的重要组成部分[1-2],通常采用基于情感词典或统计学的方法进行分析。目前可用的情感词典并不完整,构建词典的方法需要研究[3-6]。基于统计学的方法包括有监督、半监督和无监督3类[7-8],无监督方法是基于统计方法中的主要发展方向。LDA是一种无监督的概率生成模型[9],具有挖掘隐含主题的优点,但它并不直接适用于短文本和情感分析,很多学者针对以上问题进行改进和应用[10-11]。在短文本方面,文献[12]提出最大熵鉴别潜在狄利克雷分配(maximum entropy discrimination latent Dirichlet allocation,DiscLDA),在假设监督信息存在的情况下对短文本进行降维;文献[13]提出的含鉴别变量的潜在狄利克雷分配(a discriminative variation on latent Dirichlet allocation,MedLDA)将最大利润预测模型与分层贝叶斯主题模型结合成统一的约束最优化框架,可以发现稀疏的主题; 文献[14]将LDA应用于Twitter来无监督挖掘短文本话题,可以作为一种互补技术进行话题预测。短文本biterm主题模型(a biterm topic model for short texts,BTM)[15]模型将句子中共现词对为关键对句子进行扩展,使得原来的LDA模型可以进行短文本处理。在情感分析方面,文献[16]提出隐含情感模型(latent sentiment model,LSM),LSM模型将主题划分为3种带有情感的特殊主题,从而实现对文档的情感分析,但它实际上是一种半监督的方式,需要一定的人工干预;方向和情感的统一模型(aspect and sentiment unification model,ASUM)[17]将LDA中文档-主题-词语改进成句子-主题-词语,将文档转化为句子,丢失上下文环境。情感主题联合模型(joint sentiment topic model for sentiment analysis,JST)[18]是一种可以无监督地提取文档主题和情感信息的4层贝叶斯网络,在LDA的基础上增加一层情感层并且使之与文档、主题和词语相关联,有一定的情感分析能力,但也增加了计算成本。文献[19]结合BTM和情感词典对微博进行情感分析,取得良好的效果。文献[20]在JST模型的基础上,提出多粒度情感/话题模型(multi-grain sentiment/topic model,MG-JST),同时度量文档、局部两个粒度的情感主题分布。文献[21]提出词加权LDA算法,通过词语的加权来实现情感分析。文献[22]提出无监督话题与情感统一模型(unsupervised topic and sentiment unification model,UTSU), 对每个句子采样情感标签, 对每个词采样主题标签,实现无监督情感分析。
短文本具有句子长度短、语义含义丰富、表达方式多样、情感词语共现较少且非情感词汇出现频率较高的特点,造成情感极性判断准确率不高;由于短文本会使矩阵过于稀疏,LDA无法有效找出相关联的信息,并且不考虑情感因素。针对LDA在短文本情感分析的不足,本研究在LDA模型的基础上,通过情感信息对短文本进行有约束的词扩充,给出面向短文本情感分析的词扩充LDA模型。通过对4 000条语料进行训练与试验,词扩充的LDA模型准确率达到84.875%。
1 词扩充算法 1.1 定义定义1 词袋(word bag, WB)是由词根和词表构成。WB= {w|W},其中w表示词袋的词根,W表示词表,词表由词根和若干个与词根情感极性相同或相反的词语组成,W={w, w1, w2, …, wi, …, wN|1≤i≤N},|WB|表示词表长度,|WB|≥1。
定义2 短文本(short text, ST)是由若干个词袋组成。ST=(WB0, …, WBj, …, WBM), 其中WBj={wj|{wj}}。
定义3 词扩充方法(word extend function)指对给定词wj通过扩充方法F得到一个扩充后的词表,即F(wj)→{wj, wj, 1, wj, 2, …, wj, i, …, wj, N}。
1.2 基于词性的词扩充算法由于短文中不同词性的词语与情感的关联程度各不相同,最能体现情感的3类词性是形容词、动词和副词。为达到提取情感词汇的目的,在词扩充时首先扩充形容词词袋,其次扩充动词词袋,但由于动词里干扰词语较多,所以仅扩充包含情感形容词的动词,最后根据原短文本扩充形容词副词的共现组合词袋。因此,基于词扩充的计算如下:
$ \begin{array}{l} F\left( {\text{ST}} \right) = r\left( {\sum\limits_1^i {m\left( {{\rm{adj}}} \right)} } \right) \cup \sum\limits_1^j {r\left( {m\left( v \right)} \right)} \cup \\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\sum\limits_1^k {\sum\limits_1^i {\left( {{\rm{adj}} + {\rm{adv}}} \right)} } \cup \sum\limits_1^n {m\left( {{\rm{be}}} \right)}, \end{array} $ | (1) |
式中:F代表词扩充函数; adj代表形容词; v代表动词; adv代表副词; i、j、k分别代表短文本STi中形容词的数量、动词的数量以及副词的数量; r()代表约束条件(式(3)); 公式中所有加法为字符串的拼接,m()代表对词库中某一词语提取并处理后的序列; be代表短文本ST中除形容词、动词、副词词性之外的词语, n为be的数量。
形容词词袋的词表
$ r\left( x \right) = \left\{ \begin{array}{l} \sum\limits_1^i {m\left( {{\rm{adj}}} \right)}, \;\;\;\;\;\;\;\;\;x = {\rm{adj}}且f = 0\\ - \sum\limits_1^i {m\left( {{\rm{adj}}} \right)}, \;\;\;\;\;\;\;\;\;\;\;x = {\rm{adj}}且f = 1 \end{array} \right., $ | (2) |
式中:f代表句子中有无否定词、转折词,“-”代表取词表情感极性相反的词。
动词词袋的词表
$ r\left( x \right) = \left\{ v \right\}, {\rm{ }}x = m\left( v \right)且{\rm{Wor}}{{\rm{d}}_{{\rm{adj}}}} \in m\left( v \right), $ | (3) |
式中: Wordadj为式(2)中得到的形容词词根。
副词词袋
所以,基于词性的词扩充算法见算法1。
算法1 基于词性的词扩充算法
输入 词Wj。
输出 词扩充后的词袋WB。
If(Wj.词性= =adj): //进行词性判断;
If(f=0)//f代表短文本中有无否定转折;
WBadj=
Else;
WBadj=
Endif;
If(Wj.词性==v);
If(WBadj∈m(v));
WBadj={v};
Endif;
If(Wj.词性==adv);
If(words.next==adj);
WBadj=(adj, adv);
Endif。
通过短文本扩充算法FW将ST=(WB0, …, WBj, …, WBM)变成ST′=(WB′0, …, WB′j, …, WB′M)。短文本扩充计算式为
$ \begin{array}{l} {F_W}\left( {{W_j}} \right) = \\ \left\{ \begin{array}{l} {W_j} + \sum\limits_1^{{\rm{l}}{{\rm{g}}^{{c_j}}}} {{\rm{sort}}\left( {{W_j}} \right){\rm{, }}f = 0且x > 1} \\ {\rm{replace}}\left( {{W_j}} \right) + \left( { - \sum\limits_1^{{\rm{l}}{{\rm{g}}^{{c_j}}}} {{\rm{sort}}\left( {{W_j}} \right)} } \right), f = 1且x > 1 \end{array} \right., \end{array} $ | (4) |
式中:Wj代表WBj词袋的词根; cj是Wj在已生成的所有词袋的词表中出现频次; sort是词根为Wj词袋中按出现频次递减排序后的顺序词袋; replace为替换函数(将Wj替换为否定词或转折词+Wj); FW是短文本扩充算法, 用于短文本中词袋的扩充; f代表句子中有无否定词、转折词; x为人为设置的参数, 式中所有加法为字符串的拼接。短文本扩充算法见算法2。
算法2 短文本扩充算法。
输入 形容词、动词、副词词袋。短文本集合{ST0, …, STi, …, STM}。
输出 词扩充之后的{ST′0, …, ST′i, …, ST′M}。
For all ST do;
WordBags=WordSegmentaion(ST)//分词;
For all word in WordBags do;
If(pos==adj‖pos==v‖pos==adv);
Compute FW(word);
Update WordBags //更新词袋;
endif;
endif;
output ST′;
endif。
2 词扩充LDA模型 2.1 词扩充LDA模型定义LDA模型是采取任意扩充方式,通过词袋对文本进行词扩充的LDA模型。它是一种词袋、主题和文档3层贝叶斯模型,即认为作者在写1篇文章时,首先任意选取主题,然后选择该主题下的1个词袋,最后再选取其中1个词。词扩充LDA的模型图见图 1。
![]() |
图 1 词扩充LDA模型 Figure 1 Word extend LDA model |
图 1:α为狄利克雷分布,是θ的超参数; β为狄利克雷分布,是ϕ的超参数; θ是“文档-主题”的多项式分布; ϕ是“主题-词汇”的多项式分布; z是词的主题分配; Bn是所有词袋的集合;w是词; T是主题数目; D是文档数目; Nd是一篇文档的词数;Wn是词袋中词表的词数。
LDA是根据词语与文档之间的共现关系来得到主题词,通过词扩充和增加情感词汇,提高情感词汇与文档的共现频率,使得LDA可以提取到情感词汇,进而可以进行情感分析。
2.2 词扩充LDA模型的训练算法一个短文本文档个数为N的语料集合Dn, Dn={ST1, ST2, …, STn}, STi表示第i个短文本文档; 每个文档经过分词之后有m个词,用词袋表示为STi=(WB0, …, WBi, …, WBm-1), 其中WBj={wj|wj}; 通过词扩充算法对词袋进行扩充, 得到扩充后的词袋WB′j,WB′j={wj|{wj, w1, w2, …, wj, …, wN}}。最后通过短文本扩充算法得到ST′i=(WB0, …, WB′j, WB′j+1, …, WBm-1), 将扩充后的短文本带入LDA模型进行训练。
词扩充LDA算法流程图见图 2。
![]() |
图 2 词扩充LDA流程图 Figure 2 Word extend LDA flow chart |
计算情感主题和情感词汇的分布与LDA的方法基本一致,算法见算法3。
算法3 吉布斯采样计算情感主题和情感词汇的分布。
输入 文档ST,词袋WB, 主题数K。
输出 主题分布向量Z,多项分布的参数θ和ψ。
//初始化;
init(n(m, k), n(k, t), n(m), n(k), p, α, β);
for all ST do;
for all WB n in ST m do;
sample topic index z(m, n)=k~Mult(1/K);
n(m, k)+=1; n(k, n)+=1; n(m)+=1; n(k)+=1;
while not finished do;
for all ST m do;
for all WB n in ST m do;
n(m, k)-= 1; n(k, n)-= 1; n(m)-=1; n(k)-=1;
sample topic indexk~p(z|z(not n), w);
n(m, k)+=1; n(k, n)+=1; n(m)+=1; n(k)+=1;
if converged then;
compute θ;
compute ψ。
3 试验结果与分析 3.1 语料库与情感词汇发现本研究使用从当当网上采集的书籍评论作为语料,评论中好评的语句为正面语料,差评语句为负面语料,经过整理得到正负相等且具有情感极性的语料库,并将其八二分成训练集与测试集。语料库的构成见表 1。
![]() |
表 1 语料库构成 Table 1 The consist of corpus |
试验中关于LDA的相关参数统一设置为α=0.5,β=0.1,K=3,迭代次数为1 000次,每个主题展示前20个词语。词袋选取百度词典作为词扩充算法的原料。词扩充之后词表包括基本释义、近义词、反义词3部分。在词和短文本扩充时去除停用词、高频词。词扩充完成后统计的结果见表 2。
![]() |
表 2 词扩充结果表 Table 2 Wordextend results |
通过词扩充得到词袋,再通过短文本扩充得到扩充后的短文本, 结果示例见表 3。
![]() |
表 3 词扩充结果示例 Table 3 Wordextend examples |
在示例1中,“值得”因为没有提取出情感极性相同的词语,所以他的扩充只有一个词根。而在示例3中,虽然扩充的词是“喜欢”,但是因为词语前面出现否定词,所以根据算法要进行反义扩充,并替换原词语。
主题模型发现的情感词汇情况影响着情感分析的结果。因此,本研究对语料库进行4种主题模型的词汇发现试验,结果见表 4。
![]() |
表 4 主题发现词汇结果 Table 4 Topic wordsresults |
从表 4中可以看出,LDA是一种主题模型,不直接具有情感分析能力,所以它所发现的词语大多数没有情感极性。JST模型有一定的情感分析能力,可以发现一些情感词汇。LSM模型由于加入部分情感词典作为先验知识,对情感词语的分类有不错的准确率。词扩充LDA加入本身文本以外的词汇,对于情感词汇的发现(尤其是形容词)要远远多于JST模型,并且发现的情感词语往往出现在同一词袋中,例如喜欢的词袋的词表里就包括喜爱和喜好,而对于词扩充LDA负面主题词中出现“一般”“普通”等负面情感极性较弱的词语,主要原因是在原始语料中不存在中立情感,这些短文本在人工分类时被归类到负面情感中。
3.2 情感分类与结果分析在词扩充LDA训练完成后,可以得到短文本在文档情感分布中的概率估计,取每种情感在文档情感分布中的最大的概率估计值,作为文档的情感。
评价指标包括正面准确率Apos、负面准确率Aneg和总准确率Aall(放最后)。其中Npos为测试集中正面极性记录数;Nneg为测试集中负面极性记录数;Rpos为准确识别正面极性个数; Rneg为准确识别负面极性个数:
$ {A_{{\rm{pos}}}} = \frac{{{R_{{\rm{pos}}}}}}{{{N_{{\rm{pos}}}}}}100\% ; $ | (5) |
$ {A_{{\rm{neg}}}} = \frac{{{R_{{\rm{neg}}}}}}{{{N_{{\rm{neg}}}}}}100\% ; $ | (6) |
$ {A_{{\rm{all}}}} = \frac{{{R_{{\rm{pos}}}} + {R_{{\rm{neg}}}}}}{{{N_{{\rm{pos}}}} + {N_{{\rm{neg}}}}}}100\% 。$ | (7) |
对测试集进行准确率试验,4种模型的准确率统计结果见表 5。
![]() |
表 5 模型准确率 Table 5 accuracy of models |
从表 5可知,LDA对于负面情感识别率为0,是因为试验中情感只分为正面负面两类,它将所有的测试语料判别为正面情感,这证明LDA本身不具备情感分析能力。相比于JST模型,词扩充模型在正面、负面正确率均高于JST模型, 总体准确率提高约11.8%。LSM采用先验知识(情感词典)的方式来辅助LDA对主题分类,在判断词的情感极性方面要好于词扩充模型,但是对于一些含有未登录情感词典的词,或含有否定转折的句子来说情感极性判断并不准确,通过LDA测试结果,发现文中负面情感词直接出现次数不多,更多的表现为“不喜欢”等形式,这可能是LSM正确率低的一个原因。词扩充LDA不仅有提取、扩展情感词汇的能力,而且在句子否定、转折时也有一定的判别能力,所以相对于LSM总体准确率提高9.5%。
4 结论针对短文本中信息量过少而导致的准确率不足的问题,以及现阶段有监督学习在快速变化短文本情感分析需求上的效率不足问题,本研究提出一种基于LDA的词扩充LDA模型。通过对指定词性的词语的进行扩充,提高情感词汇的共现频率,增加短文本长度与信息量,由此LDA模型可以实现情感词汇的提取与聚类。试验结果表明词扩充的LDA适合进行短文本情感分析,验证LDA模型与频率的正相关性,并且与JST模型和LSM模型相比,其在主题词汇中可以发现更多的情感词汇,在情感分类的准确率上比JST和LSM都有一定程度的提高。
如何将情感与句子上下文语境结合来获取语义情感是下一步的工作重点。词扩充LDA不能对文本进行语义上的情感分析,所以在负面情感如反讽语句上容易出现以局部情感极性来进行判断,造成一定的分类错误。如果能够将上下文环境、关键词提取、语法句法分析等技术应用到词扩充LDA上,可以更好进行情感分析。此外词扩充LDA是以句子为基本单位进行情感分析的,如有更细粒度的需求, 例如句子中不同人物角度,则需要对LDA进行进一步改进。
[1] | NASUKAWA T, YI J. Sentiment analysis: capturing favorability using natural language processing[C]//International Conference on Knowledge Capture. New York, NY, USA: ACM Press, 2003: 70-77. |
[2] | AGARWAL B, PORIA S, MITTAL N, et al. Concept-level sentiment analysis with dependency-based semantic parsing: a novel approach[J]. Cognitive Computation, 2015, 7(4): 487-499 DOI:10.1007/s12559-014-9316-6 |
[3] |
周咏梅, 阳爱民, 林江豪. 中文微博情感词典构建方法[J].
山东大学学报(工学版), 2014, 44(3): 36-40 ZHOU Yongmei, YANG Aimin, LIN Jianghao. A method of building Chinese microblog sentiment lexicon[J]. Journal of Shandong University (Engineering Science), 2014, 44(3): 36-40 |
[4] |
徐晓丹, 段正杰, 陈中育. 基于扩展情感词典及特征加权的情感挖掘方法[J].
山东大学学报(工学版), 2014(6): 15-18 XU Xiaodan, DUAN Zhengjie, CHEN Zhongyu. The sentiment mining method based on extended sentiment dictionary and integrated features[J]. Journal of Shandong University (Engineering Science), 2014(6): 15-18 |
[5] |
周咏梅, 杨佳能, 阳爱民. 面向文本情感分析的中文情感词典构建方法[J].
山东大学学报(工学版), 2013(6): 27-33 ZHOU Yongmei, YANG Jianeng, YANG Aimin. A method on building Chinese sentiment lexicon for text sentimentanalysis[J]. Journal of Shandong University (Engineering Science), 2013(6): 27-33 |
[6] |
周哲, 商琳. 一种基于动态词典和三支决策的情感分析方法[J].
山东大学学报(工学版), 2015, 45(1): 19-23 ZHOU Zhe, SHANG Lin. A sentiment analysis method based on dynamic lexicon and three-way decision[J]. Journal of Shandong University (Engineering Science), 2015, 45(1): 19-23 |
[7] | LIN C, HE Y. Joint sentiment/topic model for sentiment analysis[C]// ACM Conference on Information and Knowledge Management. New York, NY, USA: ACM Press, 2009: 375-384. |
[8] |
卢玲, 王越, 杨武. 一种基于朴素贝叶斯的中文评论情感分类方法研究[J].
山东大学学报(工学版), 2013, 43(6): 7-11 LU Ling, WANG Yue, YANG Wu. A method of sentiment classification for Chinese comments based on naive Bayesian[J]. Journal of Shandong University (Engineering Science), 2013, 43(6): 7-11 |
[9] | BLEI D, NG A, JORDAN M. Latent dirichlet allocation[J]. The Journal of Machine Learning Research, 2003, 3: 993-1022 |
[10] | RUBIN T, CHAMBERS A, SMYTH P, et al. Statistical topic models for multi-label document classification[J]. Machine Learning, 2011, 88(1-2): 157-208 |
[11] | ANDRZEJEWSKI D, BUTTLER D. Latent topic feedback for information retrieval[C]//Proceedings of the 17th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. New York, NY, USA: ACM Press, 2011: 600-608. |
[12] | LACOSTE-JULIEN S, FEI S, JORDAN M. DiscLDA: Discriminative learning for dimensionality reduction and classification[C]//Proceedings of NIPS Neural Information Processing. Cambridge, MA, USA: MIT Press, 2008: 897-904 |
[13] | ZHU J, AHMED A, XING E. MedLDA: maximum margin supervised topic models for regression and classification[C]//International Conference on Machine Learning. New York, USA: ACM Press, 2009, 13(4): 1257-1264 |
[14] | OSTROWSKI D A. Using latent dirichlet allocation for topic modelling in twitter[C]//IEEE International Conference on Semantic Computing. New York, USA: IEEE Press, 2015: 493-497. |
[15] | YAN X, GUO J, LAN Y, et al. A biterm topic model for short exts[C]//Proceedings of the 22nd International Conference on World Wide Web. New York, USA: ACM Press, 2013: 1445-1456. |
[16] | HE Y. Latent sentiment model for weakly-supervised crosslingual sentiment classification[J]. Advances in Information Retrieval, 2011, 6611: 214-225 |
[17] | JO Y, OH A. Aspect and sentiment unification model for online review analysis[C]// Proceedings of the Fourth ACM International Conference on Web Search and Data Mining. New York, USA: ACM Press, 2011: 815-824. |
[18] | LIN C, HE Y. Joint sentiment topic model for sentiment analysis[C]//Proceedings of the 18th ACM Conference on Information and Knowledge Management. New York, USA: ACM Press, 2009: 375- 384. |
[19] |
张佳明, 王波, 唐浩浩, 等. 基于Biterm主题模型的无监督微博情感倾向性分析[J].
计算机工程, 2015, 41(7): 219-223, 229 ZHANG Jiaming, WANG Bo, TANG Haohao, et al. Unsupervised sentiment orientation analysis on micro-blog based on biterm topic model[J]. Computer Engineering, 2015, 41(7): 219-223, 229 |
[20] |
欧阳继红, 刘燕辉, 李熙铭, 等. 基于LDA的多粒度主题情感混合模型[J].
电子学报, 2015, 43(9): 1875-1880 OUYANG Jihong, LIU Yanhui, LI Ximing, et al. Multi-grain sentiment/topic model based on LDA[J]. Acta Electronica Sinica, 2015, 43(9): 1875-1880 |
[21] |
郝洁, 谢珺, 苏婧琼, 等. 基于词加权LDA算法的无监督情感分类[J].
智能系统学报, 2016, 11(4): 539-545 HAO Jie, XIE Jun, SU Jingqiong, et al. An unsupervised approach for sentiment classification based on weighted latent dirichlet allocation[J]. CAAI Transactions on Intelligent Systems, 2016, 11(4): 539-545 |
[22] |
孙艳, 周学广, 付伟., 等. 基于主题情感混合模型的无监督文本情感分析[J].
北京大学学报(自然科学版), 2013, 49(1): 102-108 SUN Yan, ZHOU Xueguang, FU Wei. Unsupervised topic and sentiment unification model for sentiment analysis[J]. Acta Scientiarum Naturalium Universitatis Pekinensis, 2013, 49(1): 102-108 |