摘要:目前主观信息情感分类常用的方法主要有基于情感知识和基于规则两类,其中机器学习方法在效果上优于基于情感知识的方法。但机器学习算法要求数据分布均匀,单一的算法有各自的优点和缺点,因此,本文综合多种机器学习算法突出他们的优点避免其缺点,提出了一种多算法集成的微博细粒度情绪分类方法。我们首先采用朴素贝叶斯(NB)分类器对微博进行主客观的粗粒度分类,然后基于情感本体库对有情绪微博建立空间向量模型,最后采用支持向量机(SVM)算法对微博进行细粒度情感判别。实验结果表明,机器学习算法融合的分类方法结果要好于单一分类算法和基于情感词典的方法。
关键词:微博细粒度情绪;多策略集成方法;机器学习算法;朴素贝叶斯;支持向量机
Fused machine learning algorithm to achieve micro-blog fine-grained emotion classification
Abstract: At present, the dictionary based and the rules based method are usually used in text sentiment classification task. The machine learning algorithm in effect is better than the method based on dictionary. However, machine learning algorithms require data distribution and a single algorithm has its own advantages and disadvantages. So, a multi-strategy integrated algorithm about fine-grained emotion recognition is proposed by us. Firstly, apply Naive Bayes (NB) classifier to identify sentiment or non-sentiment about a micro-blog. Then represent micro-blog that has emotion to space vector based on emotional ontology. Finally, support vector machine (SVM) algorithm to determine micro-blog’s fine-grained emotion. And the experiment results proved that integration of machine learning algorithms classification is better than single classification algorithm and emotional dictionary-based approach..
Key words: fine-grained emotion of Chinese micro-blog; multi-strategy integrated algorithm; machine learning algorithm; naive bayes; support vector machine引言
随着互联网的高速发展,“以用户为中心,用户参与”的开放式构架理念已深入人心,互联网用户逐渐由被动地接收网络信息向主动创造互联网信息迈进 [1] 。门户网站、论坛、微博等网络媒介已经成为人们发布、传播和获取评论信息的重要平台,其中微博情感分析是研究的热点之一,国内外学者围绕着微博展开了一系列研究。需要注意的是微博文本具有不同于新闻、产品评论的几个特点:微博属于短文本,长度有最大字数限定,结构差异性大;微博文本交互性强、用语不规范偏口语化;微博文本特征关键词少、存在大量变形词和网络新词。国外一些学者采用基于语义的关联分析,基于情感词典和基于K最邻近、SVM等机器学习算法对twitter进行了大量情感分类的相关研究[2,3,4,5],但是由于中英文的语言差异,中文微博较英文微博具有更丰富的语义信息,上述方法直接应用到中文领域还存在一定局限性[6]。目前国内学者正积极针对中文微博的特点致力于中文微博情感分析方面的研究。文献[7]分别使用三种机器学习算法、三种特征选择算法和三种特征项权重计算方法对微博情感褒贬分类进行了研究。文献[8]比较了基于HowNet和基于SVM的文本正负情感分类方法。文献[9]提出一种加权决策函数的主动学习方法,使用SVM主动学习解决多标签分类问题。文献[10]和文献[11]采用朴素贝叶斯分类器分别对微博情感的正负分类问题进行了研究。上述研究基本上都局限在粗粒度的情感分类,粗粒度情感分类是指只对文本进行主客观分类或进一步将主观文本的情感区分成褒义和贬义两类,而在实际应用中,微博的细粒度情感(如“喜欢”、“高兴”、“悲伤”、“厌恶”等)更能体现用户对所关注事物的态度与更准确地反映用户对不同评价对象的情感。 机器学习算法在微博的粗粒度情感分类具有较好的效果,当需要将已区分正负或褒贬情感的微博再进一步分类为更符合人们真实情感的细粒度类别时,直接采用某种机器学习算法很难达到很好的效果。本文针对上述问题提出了一种多机器学习算法相融合的微博细粒度情感判别方法。首先提取文本词特征和词性特征,采用朴素贝叶斯分类器对微博进行有无情感的初步划分,然后对于分类为有情感的微博,基于情感本体库提取21类特征并计算特征权重,最后采用支持向量机(SVM)分类器对微博进行7类细粒度情感分类。本文进行了两组实验,一组实验是将本文方法在不同情感粒度识别上进行比较,另一组实验将多算法融合的方法与单一分类算法和基于情感词典的分类方法分别进行比较来验证本文提出的融合策略的可行性。微博情感本体库的构建
文本情感主要由情感词进行表征,但是由于微博具有表达自由,存在大量变形词、新词和潜在情感词[14]等特点,仅依靠现有情感词典不足以覆盖微博中所有的情感表达词汇。本文的情感本题库基于大连理工情感词典,其中共收录27476个词,每个词具有情感类别、情感强度等属性[13],但有非常强的情绪表征作用的网络新词、热词未收入其中。本文采用人工收集和程序自动获取两种方式对基础情感词汇本体库进行扩展。人工对情感本体库的扩展主要来源有两个方向,一是收集网络新词、热词和微博中常用的表情符;而是可以从及时更新的网络词库中获取本题库中未收录的情感词汇;新增词收集好后按大连理工大学的情感本体词汇的标注方法设置该词情感类别和情感强度。此方法扩展情感词汇有NND、 MLGB、[哈哈]、[爱心]等等。
人工扩展更有针对性,而程序抽取的方法则更加迅速便捷,程序抽取方法主要为针对已经标注情感的微博训练集,高效和充分利用训练数据获取情感本体库中未收录的情感词。本文采用卡方检验的方法来自动从训练数据中获取新词。开方检验最基本的思想就是通过观察实际值与理论值的偏差来确定理论的正确与否,常常先假设两个变量是独立的(原假设),然后观察实际值与理论值的偏差程度,如果偏差小于阈值就接受两者独立否则认为两者相关。
在文本分类问题的特征选择阶段,主要关心一个词t(一个随机变量)与一个类别c(另一个随机变量,表示有情绪或无情绪)之间是否相互独立,如果独立说明词t对类别c没有表征作用,即无法根据t出现与否来判断一篇文档是否属于c这个分类。以词t与类别c不相关来做原假设,为每个词计算它与类别c的开方值,开方值越大原假设越不成立,即词t与类别c越相关。看下表的示例: 如表微博中包含“大哭”的概率是:(A+B)/N,属于“悲伤”类的微博数为A+C,在这些个微博中,应该有E11=(A+C)(A+B)/N篇包含“大哭”这个词(数量乘以概率),但实际属于“悲伤”又包含“大哭”的微博数是A,其差值为D11=(A- E11)2/ E11 ,同样方法计算出D12、D21、D22的值,带入开方公式X2(大哭,悲伤)= D11+ D12+ D21+ D22,可以得到词t与类别c的开方值更一般的形式: (1)通过此公式计算出每个词与7种情绪的开方检验值,在每类情感中按得分挑选出表征作用较强的词加入基础词典中。基于朴素贝叶斯的微博粗粒度情绪识别朴素贝叶斯分类算法是一种基于概率的学习算法,在待分类项出现的条件下求解已知类别集合中各类出现的概率。除了分类算法以外,为分类文本作处理的特征提取算法也对最终效果有巨大影响[12]。在分类之前本文先从词和词性两个方面进行特征提取生成朴素贝叶斯的特征集合。词特征和词性特征选择 特征选择过程是在分类学习算法学习训练前完成的,它可以作为学习算法的预处理步骤。样本数据集经相关预处理(如遗失数据补齐、标准正态化、分词标注等)后,被当作输入参数输送给特征选择算法。随后,用特征选择评价标准去除那些不相关或冗余的特征,并保留那些满足判定条件的特征。最后,这些剩余特征与样本及类别组成新的数据集,并提供给分类学习算法,以最终获取分类预测模型[15]。扩充词典并分词:对于给定的样本集首先要对微博文本进行分词,我们选用的中科院分词工具NLPIR进行分词和词性标注。NLPIR虽具有微博分词、新词发现等功能,能够对微博文本有很好的分词性能,但分词器的分词效果依赖于分词器词库的完整性,微博中常用的一些表情符、缩略词和网络新词等未能及时收录,因此在分词之前,扩充分词器的用户自定义词典中。将情感词汇本体汇加入用户自定义词典能保证情感词的准确识别,提高分类准确率,其次从其他网络词库中收集了部分网络词汇进行扩充。词特征选择:分别统计每个词在训练数据有无情绪两类中出现的频率,然后选择出一部分明显在有无情绪中出现次数差别较大的词,其选择方法如下:先统计词W在有情感微博中的出现频率和在无情感微博中出现的频率,当>n且/>K则提取W作为有情感特征词,反之满足上诉规则,则将W作为无情感的特征词。其中n和K均为阀值,通过实验发现k=4,n=20时提取的特征集具有最好表征作用。词性特征选择:某些词性在主观表达和客观表达中出现的频率是有很大差别的[16]。,考察步骤2)后剩余的词的词性特征,这些词性包括语气词、数词、时间词、量词等,并将所有的表情符也作为一类词性。分别统计属于这些词性的词在有无情绪微博中出现的频率,得到有无情绪两类中词性频率统计表。综上,特征选择算法详细描述如下图所示: 图(1) 朴素贝叶斯特征选择算法朴素贝叶斯对有无情绪微博进行分类特征选择完成后,接下来进行贝叶斯有无情绪识别。本文定义微博文本,类别集合为,在特征相互独立的情况下,其分类方法如式下所示:(2)其中是类别的先验概率,是特征在类别条件下的后验概率,先验概率是根据训练语料中有无情绪两类微博分别所占的比例估计所得。 本文采用多项式贝叶斯分类模型进行有无情绪分类,其具体步骤为:首先构建训练集微博的贝叶斯分类特征集合,然后统计有无情绪微博的先验概率和计算特征集合中每个特征属性分别对有无情绪两个类别中的条件概率,训练得到分类器(即确定分类器参数);最后为待分析微博构建特征集合,计算其每个特征项在有情绪和无情绪两个类别下的概率乘积:,;通过比较P1和P2的值,以值较大的为待分类微博所属的情绪类别。基于支持向量机的微博细粒度情绪识别 支持向量机(SVM)由Cortes和Vapnik于1995年首先提出,它建立在统计学习的VC 维理论和结构风险最小原理的基础之上,是在高维特征空间使用线性函数假设空间的学习系统,在解决小样本和非线性及高维模式识别中具有许多特有的优势。本文在朴素贝叶斯对微博进行有无情感分类的基础上,对有情感的微博建立支持向量机模型进行细粒度情感分类。微博的21维空间向量模型表示 如果将每条微博表示为词的特征向量,最终计算得到的微博语料矩阵将非常稀疏,这不仅会增加程序计算的时间复杂度,而且会影响最后的分类性能。因此,基于情感本体将情绪本体库中确定的21类细情感分类作为每条微博的最终特征,即每条微博将表示为21维的情感特征向量,这样得到的语料矩阵在很大程度上达到了降维的目的。特征权重计算 将微博表示为21维的情感特征向量之后,基于情感本体库,每一维的权重将按公式: (3)计算,式中m表示维度标识,取值为1到21之间的整数, w表示属于第m维情感类的总词数,intension表示情感强度,polarity表示情感极性,,是取值在0到1之间的可调参数,设定为 =0.85, =0.15。整体表示第m维的权重等于微博中属于这一维的所有情感词的强度和极性加权求和,对各维计算得到所有微博的21维向量矩阵。SVM对7类细粒度情感进行分类 本文使用SVM的训练分类程序来自台湾大学林智仁教授等开发的Libsvm[16]。本文将在7个细粒度情感标签上对微博进行分类,因此这是SVM多标签分类问题。在处理SVM多标签分类问题时,往往将其分解成一系列的二分类问题加以解决,常见的处理方法包括1-a-r、1-a-1 以及DAGSVM。本文采用1-a-1 方法构建多类分类器,使用此方法在计算效率和分类效果上具有更好的性能。此方法分别选取2 个不同类别构成一个SVM子分类器,共构建了k(k-1)/2 个子分类器。本文采用径向基函数高斯核作为SVM的核函数,将训练集按照libsvm规定的文本格式输入到libsvm训练程序,训练得到SVM分类器模型文件后对待分类微博进行细粒度情绪识别。实验结果分析 本文的实验数据来自2013年CCF中文信息技术专委会学术年会(NLP&CC2013)中微博情绪识别评测任务,包含4000条已标注情绪微博的训练集和50000条待分析微博的测试集。本文设计了两组实验,一是将上文中提出的多策略集成的情绪识别方法与单一的分类算法结果进行比较;二是将集成方法与直接使用情感词典方法结果进行对比分析。针对给定的实验数据和实验目标我们将实验数据进行如下划分:图(2) 实验数据划分 微博的粗粒度情感判别采用准确率(Precision)、召回率(Recall)、F 值(F-measure)作为评价指标,七类细粒度情感判别使用宏平均(Macro)和微平均(Micro)的准确率、召回率和F 值作为评价指标。本次评测共有近20支队伍提交结果30余组,本文提出的融合方法在多个评测指标都取得较好成绩,特别是F值列各队之首。具体结果如下表:分析评测结果,从整体上看,粗粒度的情绪识别效果好于细粒度的情绪识别。从算法比较上看,以贝叶斯分类器和支持向量集成的算法效果在粗粒度和细粒度情绪判别中都要比单一的识别算法好很多,而机器学习算法又要优于直接基于情感词得分累加的方法。实验的结果页证明了多种方法的合理融合,确实能起到突出各自的优点,避免各方法不足的作用。
结论
本文将朴素贝叶斯和支持向量机算法进行融合应用于不同层次的情感分类,分别在中文微博的情绪判别任务中与传统基于词典的方法和单一的机器学习算法结果进行比较分析。通过实验表明,贝叶斯分类和支持向量机多策略集成的分类方案整体上要优于单一的分类算法和传统基于情感词典的方法。同时基于开放验证情感词汇本体库的扩展和基于词和词性的特征选择可以提高微博情绪判别和分类的性能。但是,需要改进的是,本文的方法在微博细粒度的情感分类的效果较粗粒度分类还不是很理想,我们将在情绪本体库扩展、特征选择、分类算法的创新性上做更进一步的探究。
参考文献:[1] 赵妍妍 , 秦兵 , 刘挺.文本情感分析 文本情感分析. 软件学报 , 2010: 1834-1848.[2] O"Connor B, Balasupamanyan R.From tweets to polls: linking text sentiment to public opinion time series[C]//Proceedings of the International AAAI Conference on Weblogs and Social Media,Washington DC,2010:1-8.[3] Jansen B J, Zhang Mimi.Twitter power:tweets as electronic word of mouth[J].Journal of the American Society for Information Science and Technology,2009:2169-2188.[4] Si Jianfeng, Mukherjee A, Liu B, et al. Exploiting topic based Twitter sentiment for stock // Proceedings of the 50st Annual Meeting of the Association for Computational Linguistics. Jeju Island, Korea, 2013:115-120.