张仰森,孙旷怡,杜翠兰,王 建,佟玲玲
(1. 北京信息科技大学 智能信息处理研究所,北京 100192;2. 国家计算机网络应急技术处理协调中心,北京 100190)
一种级联式微博情感分类器的构建方法
张仰森1,孙旷怡2,杜翠兰2,王 建1,佟玲玲2
(1. 北京信息科技大学 智能信息处理研究所,北京 100192;2. 国家计算机网络应急技术处理协调中心,北京 100190)
该文从统计学方法与机器学习的分类思想出发,对中文微博文本的情感类别进行研究。针对微博文本的特点,提出了一种级联式微博情感分类器模型,该模型首先构建基于情感词典和新浪表情符号词典的微博情感初级分类模型;然后根据基准词构建基于类别倾向相似度的二级分类模型,对初级模型未能确定情感类别的微博进行再次分类,并对初级模型的词典进行更新;最后采用朴素贝叶斯分类器构建三级分类模型,对以上还未确定情感类别的微博进行三级分类。通过与NLPCC2014微博情感分类评测参赛结果进行比较,说明了所提方法的有效性。
微博;情感词典;基准词;朴素贝叶斯模型;级联式分类器
进入Web 2.0时代,互联网得到大力的普及与传播,虚拟社区[1]是基于互联网的应用而诞生的,它的形式由最早的博客、论坛到如今的微博。根据中国互联网信息中心的报告[2],截至2014年6月,中国互联网网民整体规模增至6.32亿,在这个庞大的用户群体中,微博为其提供了良好的交流沟通平台。
微博,即微博客,是一个基于用户关系的信息分享、传播和获取平台,用户可以通过Web、WAP等各种客户端组件,以140字左右的文字更新信息,并实现即时分享。微博凭借其实时、简洁、灵活、快捷的特点及多元化、平民化、迅速化的传播特征,迅速成为网民发布与获取社会信息的重要载体。微博强大的影响力越来越显现出来,吸引了更多的用户,覆盖了社会的各个方面。
微博用户在传达信息时会隐含一些情绪状态,通过对微博用户发表的微博文本进行情感分析,可以获得微博用户的情感倾向、观点或态度[3]。对微博进行情感分析有助于完善互联网的舆情监控系统,及时发现不良分子恶意散布的不健康或是危害国家利益的信息,并能够对其进行控制;丰富和拓展企业的营销能力,用户对一些企业名牌的评价或建议可以带来巨大的商业价值;此外,还可以应用于心理学、社会学和金融学等领域的研究。所以,对微博文本进行情感分类具有很重要的现实意义。
国内外的许多学者目前都参与到对微博的研究之中。一般关于英文微博的研究主要是基于Twitter微博语料展开[4-5],但由于中英文文本的差异,针对英文微博的情感分析方法应用到中文微博领域,可能还是存在一定的局限性[6]。对中文微博的研究近年来国内许多学者开展得如火如荼,武汉大学的李婷婷等人通过抽取文本中的特征,分别在SVM 模型和CRF模型上进行实验,达到了比较好的分类效果[6]。清华大学的谢丽星等人通过结合表情符号的规则方法、情感词典的规则方法和SVM,提出一种微博情感分类的多策略方法,取得了较好的分类效果[7]。随着深度学习受到越来越多的关注,一些学者把深度学习的方法用到中文微博的情感分析之中,例如,郑州大学的梁军等人利用深度学习中的递归神经网络来发现微博文本特征,并根据句子中词语间前后的关联性引入情感极性转移模型,在不使用人工标注语料的情况下,取得了较好的情感分析效果[8]。
2.1微博文本的预处理
微博文本的预处理主要包括分词、去停用词和去标点。在对微博文本进行分词时,采用了中国科学院计算技术研究所研制的汉语词法分析系统ICTCLAS[9],该系统的功能有: 中文分词、词性标注、命名实体识别和未登录词识别,其中中文分词的正确率高达97.58%。
微博文本分词之后对其进行去停用词处理。本文借助哈尔滨工业大学停用词表[10]对其进行去停用词。停用词大致分为两类,一类是人类语言中包含的普遍且没有实际含义的功能词,另一类是搜索引擎不能保证搜索结果的词汇。表1展示了部分停用词。
表1 部分停用词
由于本文对微博情感进行分类时对标点符号不做考虑,所以需要去除标点符号。表2 是要从微博中去除的标点符号集合。
表2 标点符号集合
2.2 情感词典的构建
在微博情感分析研究中,大部分研究者将微博情感划分为两类(正、负)。但在日常生活中,若把情感只分为正面或负面,未免有些过于粗糙。在目前的情感分类研究中,大连理工大学的情感词汇本体库、台湾大学的中文通用情感词典NTUSD[11]及HowNet[12]的情感词典应用比较多。大连理工大学情感词汇本体库中包括了词语的词性种类、词义数、词义序号、情感分类、情感强度、极性等九个属性,情感种类分为七大类21个小类;而台湾大学的NTUSD及HowNet情感词典中则只包含了正向情感词语和负向情感词语。若采用大连理工的词汇本体,由于分类过细,并且属性多,可能会影响情感倾向性分析的准确性,而若采用台湾大学的NTUSD或HowNet的情感词典,则将微博的情感分为正向情感和负向情感两类,且没有情感强度的标识,无法实现微博情感倾向性色彩的表示。为了细分微博文本的情感类别,并能对情感色彩进行量化度量,本文借鉴大连理工大学情感词汇本体中(包含27 466个词汇)的情感类别,结合台湾大学中文通用情感词典NTUSD(包含8 276个负面词汇和2 810个正面词汇)及HowNet的情感词典(包含1 517个正面中文情感词语、1 957个负面中文情感词语)构建自己的情感词典。
所构建的词典含有29 625个情感词,分为好(like)、乐(happy)、恶(disgust)、哀(sadness)、怒(anger)、惧(fear)和惊(surprise)等七个情感类别,情感强度分为1、3、5、7、9共五个级别,1表示情感最弱,9表示情感最强。为了提高词典的访问速度,按照七个类别,各个类别以一个文本文件的形式存储,各个类别中的情感词数分别为: 好—13 208、乐—2 477、恶—12 715、哀—2 850、怒—553、惧—1 451、惊 —290。这里要说明的是,有些词汇可以归到多个情感类别中,但在不同类别中的感情色彩强度可能不同。每个类别词典的格式定义如下:
情感词情感强度
表3是“乐(happy)”类词典的部分情感词汇及其强度。
表3 “乐(happy)”类词典的部分词汇
2.3 微博表情符号词典的构建
中文微博网站通常会提供一些表情符号,图1为新浪微博提供的表情符号。
图1 新浪微博提供的表情符号
用户在发表微博时,可选择微博网站提供的表情符号来表达自己的心情,这时表情符号就蕴含了发微博人的情感信息。表情符号在微博文本中的表示形式是被中括号括起来的文本[13-14],例如表情符号,对应的文本元素为[哈哈],可采用正则表达式实现对微博文本中情感信息的提取。例如,要提取“[哈哈]你是个好人”中的“哈哈”,其对应的正则表达式为[(.{1,10})]。这里,“[” 表示“[”,前面的“”为转义符号;(.{1,10}) 表示取任意字符,长度范围1~10个,“哈哈”在1~10个字符之间,表达式条件成立;“]”和前面类似,表示“]”,“”为转义符。本文对常用的表情符号进行统计,并按照前述七种情感类别(乐、好、怒、哀、惧、恶和惊)进行预先分类并确定其强度,根据表情符号对应的文本元素构建表情符号词典。
2.4 基准词的选取
基准词是具有明显情感倾向的、感情强烈、代表性强的情感词汇。基准词的选取须满足以下条件: 情感强度大、代表性强、覆盖面广、不出现语义相同等因素。王素格[15]等人提出了一种基于类别区分能力与情感词词表相结合的基准词选取方法,本文借鉴其思想,首先为七类情感各选择10个情感强度大且不存在辅助情感的情感词作为基准词基础(见表4),并在百度词典上查找表4中每个词的近义词,然后通过HowNet将这些近义词与基准词基础表4中的词进行比较,如果两个词的W_E和DEF部分描述相同,则认为它们是同义词,将其并入基准词集合中,并为其赋值相应的情感强度。
表4 为每个情感类别挑选的10个基准词
在分析现有微博分类器的基础上[13-16],本文提
出了基于情感词典与表情词典、词袋模型及朴素贝叶斯模型的级联式微博情感分类器。该分类以八类情感为分类结果: 乐(happiness)、好(like)、怒(anger)、哀(sadness)、惧(fear)、恶(disgust)、惊(surprise)和无情感(none)。其模型结构如图2所示。
图2 级联式微博情感分类模型结构图
该模型不仅可以对已有的微博进行分类,而且还可以对其他社交网站搜集的用户发表的内容进行情感分类。下面介绍该级联式微博情感分类模型的工作原理。
3.1 基于情感和表情词典的初级分类模型
情感词是指带有情感倾向的词语。微博中情感词的类别判别方法可分为基于情感词典的方法和基于大规模语料库的统计方法。本文采用融合情感词典和表情符号词典的方法对微博文本的情感类别进行首次判别。判别步骤如下:
step1: 构建微博d的文本向量SW。设SW= {w1,w2,…,wn}, 其中wi表示预处理之后的微博文本中第i个词(文本词汇或是表情符号里的文本元素),n表示词的个数,1≤i≤n。
step2: 将微博文本向量中的词与已构建的情感词典和表情符号词典进行匹配。如果微博中包含多种类别的情感词或表情符号,则最终将强度最大的情感词或表情符号所属的类别作为该条微博的情感类别。
假设情感词wi的情感类别为Ci,情感强度为inty(wi),其在某条微博中出现的次数为freq(wi),则定义词wi对微博情感倾向影响强度如式(1)所示。
emo_inty(wi)= inty(wi)× freq(wi)
(1)
我们取对微博情感倾向影响强度最大的词的情感类型为微博d的情感类别如式(2)所示。
Ci={C|arg{emo_inty(wi)}
(2)
式(2)中,Ci表示微博文本的情感类别,C表示词wi所属的情感类别。即微博中情感倾向影响强度最大词的情感类别即是微博的情感类别。
3.2 基于类别倾向相似度的二级分类模型
在使用初级分类模型时,如果微博文本中不包含情感词典中的词或表情符号词典中的符号,则初级分类模型对于这样的微博文本将无法分类,这时我们引入基于相似度计算的二级分类模型。该模型以词袋模型的形式考虑微博中的词汇,忽略微博中的词序、语法和句法,将微博文本中的各个词都看作是独立的。通过计算初级分类模型中与情感、表情词典匹配未成功的词W与基准词集之间的相似度实现其类别归类。计算方法如(3)式所示。
(3)
式(3)中,Orientationj(W)表示W与第j类基准词之间的类别倾向相似度(1≤i≤7),kj表示第j类基准词的个数,keyji表示第j类基准词中的第i个基准词(1≤i≤kj),Simlarity(w1,w2)是词与词之间的语义相似度值,范围为0到1。式(3)中的第一部分考虑了词W与第j类基准词中的kj个基准词的相似度之和,而第二部分选择了与W相似度最大的基准词keyji,其情感强度将决定W的情感强度。
由于类别倾向相似度Orientationj(W)是由词W与第j类中的每个基准词的相似度之和,以及与某个最大相似度的加权构成,因此,如果Orientationj(W)的值很小(小于某个阈值Δt),说明它和第j类基准词之间相似度很小,不能判定其归于第j个类别。如果对于七个类别都有:
Orientationj(W)lt;Δt,j=1, 2, 3, … ,7
(4)
则采用3.3节朴素贝叶斯三级分类模型做进一步的分类。
如果类别倾向相似度Orientationj(W)不都小于Δt(j=1,2,…,7),则选择Orientationj(W)最大的那个类别j,词W应与这个基准词属于一个类别,且其情感强度与keyji的情感强度相同,实现对微博情感的再次分类,并将该词添加到所属类别的词典,完成对词典的更新。这里设定α、β为可调节参数,因为第二部分决定了W与哪个词的相似度最大,并确定它的情感强度,因此β的权重应大于α,且α+β=1。
我们利用NLPCC2014训练语料与测试语料进行实验,通过改变α、β的值来看分类的效果,当α=0.2、β=0.8时,且阈值Δt取0.5时,可以达到较好的结果。
另外,式(3)中词与词之间的语义相似度计算,采用了知网知识库系统提供的语义相似度计算API,其相应的计算原理与公式参见文献[11]。
3.3 基于朴素贝叶斯模型的三级分类模型
通过以上两级分类模型,如果微博的情感类别还不能确定,则采用朴素贝叶斯分类器对待确定的微博进行第三次情感类别判别。朴素贝叶斯分类器由于其算法实现比较简单,效率比较高,且在文本分类方面表现良好[16-17],因此,选择该方法作为第三级判定模型。
本文将经过前两级分类后,对于类别倾向相似度满足式(4)的词汇,采用朴素贝叶斯分类器模型,对微博文本进行再分类。
定义微博文本dk={w1,w2,…,wn}的情感类别属于C={Ch,Cl,Csa,Cf,Csu,Cd,Ca}中的某一类,这里,Ch表示“乐”类,Cl表示“好”类,Csa表示“哀”类,Cf表示“惧”类,Csu表示“惊”类,Cd表示“恶”类,Ca表示“怒”类。微博文本dk中的词wi(1≤i≤n)若是非停用词或标点符号,则将其作为dk的特征。在特征相互独立的情况下,假设微博文本dk所属的情感类别为Cjk,则其计算方法如式(5)所示。
(5)
其中,P(Cj)是类别Cj的先验概率,P(wi|Cj)是特征词wi在类别Cj中的后验概率,j的范围为(h,l,sa,f,su,d,a),wtk(wi)是微博语料dk中词wi的权值,可采用BOOL型函数来表示词wi在微博文本dk中的权值,则如式(6)所示。
(6)
式(6)中freq(dk,wi)表示wi在dk中出现的频次,SWset为停用词集合,PTset为标点符号集合。如果dk中的词wi不属于停用词集合SWset和标点符号集合PTset,则其权值为1,否则其权值为0。类别Cj的先验概率P(Cj)的计算如式(7)所示,其中Num(Cj)是属于类别Cj的微博数。
(7)
假设属于情感类别Cj的微博文本数为m,后验概率P(wi|Cj)则是词wi在属于情感类别Cj的所有m个微博文本中的权值之和与微博dk中所有词在属于情感类别Cj的m个微博文本中的权值之和的比值。P(wi|Cj)的计算如式(8)所示。
(8)
对于经过以上三级分类后,还不能确定类别归属的微博,则将其类别标为none。
3.4 级联式微博情感分类模型的分类结果
微博文本经过上述的级联式微博情感分类模型进行分类后,分类结果的存储格式为: 微博ID、是否包含情感标志(Y/N)、情感类别(happy、like、sadness、fear、surprise、disgust、anger和none)。这里截取了17条微博的情感分类结果,如图3所示。
图3 分类结果
4.1实验数据与评价指标
本文的实验数据来源于NLPCC2014微博情感评测语料。该评测语料包括训练微博语料14000条,测试语料40000条。训练语料中,给出的类别分为八类,即happy、like、sadness、fear、surprise、disgust、anger和none,符合本文的分类模型的要求。
本文采用准确率(Precision)、召回率(Recall)和F值作为评价指标,算式如式(9)~(11)所示。
4.2实验结果与分析
NLPCC2014微博情感分类评测比赛共有17个小组报名参加,评测任务分为封闭式测试和开放式测试两种。参加封闭式测试任务(task1)的前5名的成绩如表5所示。我们参加了NLPCC2014微博情感分类的封闭测试,所采用的方法为只使用情感词典及表情符号词典,分类的正确率为0.4349,召回率为0.3867,排名第四。我们对分类器模型按照本文的思路进行改进,在原来方法的基础上又加入了第二级及第三级的判定,使中文微博分类的正确率提高到了0.6278,召回率为0.549,对比情况如表5所示。
表5 与NLPCC2014微博情感分析的结果对比
本文实验所用的训练语料及测试语料与参加NLPCC2014的评测小组的语料相同,其他小组采用的分类方法未见报道,但我们实验室参加评测时,只使用了情感词典与表情符号词典,测试成绩并不理想,在采用本文介绍的级联式模型后,由于采用了多级判别,提高了微博情感分类的正确率和召回率,证明了本文方法的有效性。
本文提出了基于词典匹配、基准词相似度及朴素贝叶斯模型相结合的级联式微博情感分类器对中文微博情感进行分类。在结合微博文本自身特点的基础上,将情感词典、新浪微博表情符号、基准词和朴素贝叶斯分类器相结合,构建级联式微博分类器模型,实验结果证明了所提方法的有效性。在今后的微博情感分类研究中,将考虑对特定领域的中文微博情感分类方法进行研究,尤其要考虑信息安全领域的微博的情感分析方法,以帮助相关的政府部门了解民情,预警一些不利于社会稳定的事件,这也是我们开展本研究的目标。
[1] Saaed V. Virtual community [J]. Index on Censorship, 2011,40(1): 133-137.
[2] 中国互联网络信息中心.第34次中国互联网络发展状况统计报告[R/OL].2014. http://www.cnnic.net.cn/.
[3] 周胜臣,瞿文婷, 石英子, 等.中文微博情感分析研究综述[J]. 计算机应用与软件, 2013, 30(3): 161-164.
[4] JIANG L,YU M,ZHOU M,et al.Target-dependent twitter sentiment classification[C]//Proceedings of the 49th Annual Meeting of the Association for Computational Linguistics: Human Language Technologies.Somerset: ACL, 2011: 151-160.
[5] PAK A,PAROUBEK P.Twitter as a corpus for sentiment analysis and opinion mining[C]//Proceedings of International Conference on Language Resources and Evaluation.Valletta, Malta: LREC, 2010: 1320-1326.
[6] 李婷婷, 姬东鸿. 基于 SVM 和 CRF 多特征组合的微博情感分析[J]. 计算机应用研究, 2015, 32(4): 978-981.
[7] 谢丽星, 周明, 孙茂松. 基于层次结构的多策略中文微博情感分析和特征抽取[J]. 中文信息学报, 2012, 26(1): 73-83.
[8] 梁军, 柴玉梅, 原慧斌, 等. 基于深度学习的微博情感分析[J]. 中文信息学报, 2014, 28(5): 155-161.
[9] 中国科学院计算技术研究所,ICTCLAS[EP/OL].2014. http://ictclas.nlpir.org/.
[10] 哈尔滨工业大学,哈尔滨工业大学停用词表[DB/OL].2014. http://download.csdn.net/detail/qq361277534/475580.
[11] 刘群,李素建. 基于《知网》的词汇语义相似度计算[C]//第三届汉语词汇语义学研讨会.台北,2002.
[12] HowNet[DB/OL]. 2014. http://www.keenage.com.
[13] 谢丽星.基于SVM的中文微博情感分析的研究[D].清华大学硕士学位论文,2011.
[14] 王文,王树锋,李洪华.基于文本语义和表情倾向的微博情感分析方法[J]. 南京理工大学学报 (自然科学版), 2014, 38(6): 733-738.
[15] 王素格,李德玉,魏英杰,等. 基于同义词的词汇情感倾向判别方法[J].中文信息学报,2009, 23(5): 68-74.
[16] 林江豪, 阳爱民, 周咏梅, 等. 一种基于朴素贝叶斯的微博情感分类[J]. 计算机工程与科学, 2012, 34(9): 160-165.
[17] 桂斌,杨小平,朱建林,等.基于意群划分的中文微博情感倾向分析研究[J].中文信息学报,2015, 29(3): 100-105.
张仰森(1962—),博士,教授,主要研究领域为中文信息处理、网络内容安全、人工智能。
E-mail: zys@bistu.edu.cn
孙旷怡(1984—),博士,工程师,主要研究领域为信息安全。
E-mail: 172519846@qq.com
佟玲玲(1985—),通信作者,博士,高级工程师,主要研究领域为自然语言处理,多媒体内容分析与编码。
E-mail: tongling300@sina.com
ACascadedConstructionofSentimentClassifierforMicro-blogs
ZHANG Yangsen1, SUN Kuangyi2, DU Cuilan2, WANG Jian1, TONG Lingling2
(1. Institute of Intelligent Information Processing, Beijing Information Science and Technology University, Beijing 100192, China;2. National Computer Network Emergency Response Technical Team/Coordination Center of China, Beijing 100190, China)
This paper proposes a cascaded classifier micro-blog sentiment analysis. The primary classifier is based on emotional dictionary and sina micro-blog emoticons dictionary. The secondary classifier is based on the orientation similarity, grouped by several key sentimental word. And the third-level classifier is built by using Naïve Bayes. The micro-blogs are processed by the three classifiers in a pipeline style. The experimental results show that the method is effective compared against the NLPCC2014 micro-blog sentiment evaluation results.
micro-blog; sentiment dictionary; benchmark words; Naïve Bayes model; cascade classifier
1003-0077(2017)05-0178-07
TP393.092
A
2015-11-04定稿日期2016-06-27
国家自然科学基金(61370139);北京市属高等学校创新团队建设与教师职业发展计划项目(IDHT20130519)