基于SVM的中文微博情绪分析研究,本文主要内容关键词为:分析研究论文,中文论文,情绪论文,SVM论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
1 引言 微博作为一种分享与评论的工具凭借其发布的便捷性、传播的实时性,迅速成为最受欢迎的网络社交媒体。微博包含了各种各样的话题,用户可以对自己感兴趣的话题发表个人的观点,表达个人的情绪,抒发个人的情感,由此可见,微博内容包含了大量有价值的信息,对微博文本内容进行挖掘可以辅助政府进行网络舆情监测,还可以帮助企业进行产品改进、微博营销等。微博情感分析作为微博文本挖掘一个重要的方向,已成为近年学者们研究的热点。微博情感分析是指通过微博文本内容的分析,判断微博发布者对某一评价对象的观点、态度、意见或者是情感倾向。目前情感分析的研究主要集中在微博情感倾向性分析这一方面。已有的研究将微博情感倾向分为正面(褒义)、负面(贬义)两大类或者正面(褒义)、负面(贬义)及中性三大类。但是微博用户多会表达个人的情绪,不含有任何观点,仅仅用正面、负面来划分微博的情感,不仅忽略了用户情绪的表达,也未能完全涵盖用户的情感,由此可知,将情绪考虑到微博情感中,细化微博情绪的分类,深入挖掘微博情感是十分必要的。 本文以微博为研究对象,结合心理学中情绪类别划分的方法,尝试从自然语言处理角度划分情绪类别,之后构建微博情绪语料库,分析微博情绪特征,探索基于SVM模型的微博情绪分析方法。 2 相关工作 目前关于微博情绪分析研究还处于初级阶段,主要有两种方法,一种是基于规则的方法,即在分析微博情绪语料的基础上,结合表情符号、情感词、程度副词等情绪影响因素,设置情绪分类的规则库,依据规则库规则进行情绪自动分析,该方法也是目前使用比较多的方法;另一种是基于机器学习的方法,即分析微博情绪语料,进行情绪特征的选择与计算,使用机器学习模型对语料库进行训练与测试,自动对微博情绪进行分析。 Yang等[1]以酒店评论数据为例,利用了中文情感词典提出了改进SO-PMI算法,该算法能有效进行权重计算和情感词典构建。Quan等[2]构建了专门用于博客情绪分析的语料库,包含了八种情感类别、情绪强度、情感词、程度词、否定词等,用于分析情绪的表达。Quan等[3]又借助了中文情绪语料库,对比利用了决策树、SVM、NB等模型对句子的情绪分类进行了比较,并将八种基本(期待、快乐、爱、惊奇、焦虑、悲伤、愤怒和憎恨)情绪分类思想与有监督的多项式核方法结合,实验证实了其有效性。Strapparava等[4]将新闻标题中的情绪分为六类,比较评价了基于知识和语料库的几种方法。Chaffar等[5]采用了监督机器学习的方法识别六种基本的情绪(愤怒、厌恶、恐惧、幸福、悲伤和惊奇),并证实SVM效果优于其他分类器。 NLP&CC 2013[6]中文微博情绪分析评测中首次提出的中文微博情绪分析的任务,其情绪类别划分是依据徐琳宏等[7]构建情感本体的情绪类别,具体为喜好、愤怒、厌恶、恐惧、惊讶、悲伤、高兴七大类。 何跃等人[8]在对微博预处理的基础上,基于文档频率和信息增量进行特征向量空间的构建,并对比多种文本分类方法来构建最优情绪分类器,其实验结果表明基于机器学习的方法更加适用于语料库规模较大的微博研究,而且SVM模型更适用于细粒度的情绪分析。潘明慧等人[9-10]将微博情绪分为喜、怒、哀、惧四大类,提出了以情绪词典为基础,基于规则的微博情绪分析方法,该方法为高精度的情绪分析提供了参考。在其后研究中又将情绪划分为“喜”、“哀”、“怒”、“惧”、“恶”、“惊”六类,借助互信息方法构建表情符号词典,采用词典与规则结合的方法针对微博进行情绪分析。李寿山等人[11]针对文本中的隐含情绪分类进行研究,基于情绪相关事件的上下文来辅助情绪分析以提升情绪分类的性能。欧阳纯萍等人[12]在研究基于朴素贝叶斯情绪微博识别问题的基础上,提出基于多策略(SVM和KNN算法)的微博情绪分类方法,实验结果说明基于多策略的分类方法要优于单一的方法。 情绪分析是一个细粒度的分类问题。通过已有的研究发现,细粒度的分类问题存在很大的挑战,基于规则的方法效率比较低,需要耗费大量的人力去收集词典、制定规则,而基于机器学习的方法虽然系统运行效率高,但是特征和算法的选择是非常重要的。因此,如何选择合适的特征去区分每个类别,如何选择合适的分类方法都是需要重点研究的问题。 3 方法 针对微博情绪分析问题,本文首先结合心理学从自然语言处理角度进行情绪类别的划分,将情绪划分为“乐”、“怒”、“哀”、“惧”、“恶”五大类;然后深入分析微博情绪特征,基于SVM模型进行微博情绪分析,而情绪分析实质上是一个文本分类的过程。 3.1 支持向量机SVM 支持向量机(Support Vector Machines,SVM)是Vapink根据统计学习理论中的结构风险最小化提出的[13]。SVM能够尽量提高学习机的推广能力,即使由有限数据集得到的判别函数对独立的测试集仍能够得到较小的误差。近几年来,SVM方法已经在信号处理、基因图谱识别和图像识别等方面凭借其优势得到了成功的应用。SVM是从线性可分情况下的最优分类面发展而来的,通过核函数实现到高维空间的非线性映射,所以适合于解决本质上非线性的分类、回归和密度函数估计等问题。此外,课题组先前采用SVM进行了商品垃圾评论识别,获得比较好的实验结果[14],由此发现了SVM在处理短文本分类问题上的优势,而中文微博正属于短文本,所以本文选取SVM作为实验分类模型。 3.2 方法流程 下页图1为本文提出的微博情绪分析方法流程。 (1)数据采集与处理:利用微博数据抓取程序获取微博数据,过滤掉含有链接、广告等垃圾微博数据。 (2)语料预处理:针对语料进行分词及词性标注,并进行停用词过滤处理。 (3)特征选择与计算:从情绪本体、微博内容特征等方面进行微博情绪分类特征的选择,并确定每个特征的计算方法。 (4)微博情绪分析:依照特征选择和计算的方法,使用空间向量模型对微博进行特征表示,基于构建的情绪分析语料库,构建基于SVM的情绪分类模型,最后使用NLP&CC 2013提供的情绪语料进行测试,验证本文所提出的情绪分析方法的有效性。 3.3 情绪类别划分 心理学上将情绪定义[15]为人在加工外界输入的信息时,不仅能认识事物的属性、特性及其关系,还会产生对事物的态度,引起个人的满意、不满意、喜爱、厌恶、憎恨等主观体验。国外关于情绪类别划分的研究比较早,冯特[16]在19世纪就提出了三维理论,其认为情绪是由愉快-不愉快、激动-平静、紧张-松弛三个维度构成,每种具体情绪都是在三个维度的两级之间不同位置上,这为情感的维度理论奠定了基础。Cornelius[17]和Ekman[18]将情绪分为快乐、悲伤、恐惧、憎恶、愤怒和惊讶六种。Shaver等人[19]对情感进行归纳后,总结出快乐、悲伤、恐惧、憎恶、愤怒和惊讶六种基本情感。近代心理学家林传鼎[20]将情绪划分了24类,具体包括安静、喜悦、恨怒、悲痛、哀怜、忧愁、忿急等类别。许小颖等人[21]将情感词汇划分为基于心理感受和基于表现力两大类,其中将基于心理感受的词汇又细化为12类,将基于表现力的词汇细化为4大类。徐琳宏等[7]所构建的情感词汇本体是从汉语语言学角度出发,将情绪分为7大类、21小类,其中7大类分别为乐、好、怒、哀、惧、恶、惊,并将情感强度分为五级。已有研究都是从心理学角度出发,但是却没有一个统一的划分标准;同时很少有学者从自然语言处理领域来对情绪进行划分,如何结合自然语言处理和心理学两个方面对情绪类别进行划分成为研究的难点。 本文在文献[7]的基础上,结合心理学、情感词的情绪状态以及自然语言处理等多方面的影响因素,将情感划分为乐、怒、哀、恶、惧5大类,具体的定义与描述如下: (1)乐。乐是盼望的某一目的达到后,继而紧张解除后的情绪体验,它是具有正性色调的情绪,使人产生接纳感、愉悦感和自由感。乐的程度取决于满足的程度,其程度从接受、满意到大喜、狂喜。本文所提的乐指的是接受、放松、快乐、安心、尊敬、赞扬、相信、喜爱、惊喜等类的情感。

(2)怒。怒是由于人受到干扰而不能达到目标时所产生的情绪体验。当人的目的和其愿望不能达到,一再受到阻碍,从而积累了不满等情绪,最终就会产生愤怒,特别是遇到挫折或者不合理的事情时,愤怒易发生。怒的程度依次是不满、生气、愠怒、愤、激愤、大怒、暴怒。本文所提的怒是指不满、烦恼、恼怒、愤怒、狂怒等类情感。 (3)哀。哀与个人所失去的盼望、所追求的东西和目的有关,主要是指在希望破灭、失去心爱的对象、理想与现实不符时所产生的情绪体验,其程度主要取决于希望、理想和对象的重要性与价值。悲哀的程度依次是遗憾、失望、难过到哀痛等,而其会带来情绪的释放,如哭泣。本文中哀是指悲痛、遗憾、失望、沮丧、内疚、忧郁、难过、哀伤/悲伤、哀痛等情绪。 (4)恶。恶是指个人对周围的事物、事件与自己期待不相符的,甚至相悖时所产生的情绪体验,其主要是指烦闷、憎恶、轻蔑、贬责、妒忌、怀疑等情绪。 (5)惧。惧是指企图摆脱或者逃避某种危险情景时所产生的情绪体验,引起恐惧的主要原因是缺乏处理和摆脱可怕情景的能力与手段。本文所提的惧指的是慌、恐惧、羞、惊吓、惊恐等情绪。 3.4 特征分析 本文结合语言学文献和相关情感词典,从情感特征、句式特征、句间特征三个角度详细分析中文微博的情绪特征。 (1)情感特征:是情绪分类非常重要的特征之一。微博发布者在表达自己情绪时,会使用情感词、表情符号或者表情图片,对这些关键词的情绪类别确定后,微博的情绪也就很容易确定。 ①情感词:情感词是微博情绪分类中是必不可少的特征,以往所使用的情感词都是分为正面、负面或者是褒义、贬义,并没有做进一步的分类,为了使情绪分类更加准确,本文选择使用文献[7]构建的情感词汇本体,该本体中共收录了7大类别,21个小类的27 476个情感词。此外,由于微博发布的随意性,导致微博中会出现大量的网络情感词,如“NND”、“他妈的”、“SB”、“SuperBoy”等,这些词在微博中出现的频率非常高,但是在情感本体中并不存在,因此本文在文献[7]构建的情感本体基础上,新增了136个情感词,并对其赋予类别和情感强度,以完善情感词汇本体。 ②表情符号和表情图片:这些表情符号和图片其表达情感的方式更为直接。本文从腾讯微博、新浪微博中收集了1278个表情符号和表情图片,对每个表情符号和图片的情感强度打分,并添加到情感本体中。 本方法选取情感本体中的21个小类作为情感特征——快乐(F1)、安心(F2)、尊敬(F3)、赞扬(F4)、相信(F5)、喜爱(F6)、祝愿(F7)、愤怒(F8)、悲伤(F9)、失望(F10)、疚(F11)、思(F12)、慌(F13)、恐惧(F14)、羞(F15)、烦闷(F16)、憎恶(F17)、贬责(F18)、妒忌(F19)、怀疑(F20)、惊奇(F21),其具体的计算方式如公式(1)所示,在计算出每个类别的特征后,依照顺序组成情感特征的特征向量。

(2)句式特征:对于情绪微博而言,仅仅考虑其情感特征是不够的。在微博内容中可能会出现转折句、否定句,这些句式的出现很可能改变微博的情绪,因此本方法将转折词(F22)和否定词(F23)作为特征,其计算方式如下: F22=n(n=0,1,2,3…),其中n为当前微博中的转折词数量 (2) F23=n(n=0,1,2,3…),其中n为当前微博中的否定词数量 (3) (3)程度副词:当用户想加强或减弱自己的情感程度时,通常会使用不同的程度副词(如非常、略微、特别)来修饰、限制带有情感的形容词或发表意见的动词,这类用来标记表示形容词和心理动词的程度词,可以辅助进行情绪分类。为了度量程度副词对情绪分析的影响程度,本文对程度副词进行程度打分,其程度副词(F24)的计算方式如下:

4 实验及结果分析 4.1 语料库构建 本实验从新浪微博、腾讯微博平台上获取数据,对获取的数据进行垃圾微博过滤后,余下20 000条微博构成微博数据集;然后进行情绪微博提取、情绪类别标注。 (1)情绪微博提取。该部分的主要工作就是从微博数据集中提取出情绪微博。一般来说,非情绪微博是指一些对客观事物的表述,不含有任何情感倾向和评价的句子,比如:“今天下雨了!”这句话是纯粹对天气的描述,不含有任何情感色彩,属于非情绪微博。情绪微博是表达个人心情、内心状态的句子。通过人工标注方法进行区分后,最终得到含有17 834条情绪微博、2166条非情绪微博的语料库。 (2)情绪分类标注。标注标准的设置是保证语料库构建质量的关键步骤,该部分设置了情绪类别标注标准,使用两人标注、第三人裁决的方式进行情绪类别的标注。 ①邀请9名自愿参与实验的同学,并将其随机分为3个标注小组,每组3人。对实验参与者进行情绪各类别的含义与区别培训,确保每位实验参与者完全理解每个情绪类别的概念。 ②将实验中三个标注小组安排到不同的地方进行同一微博数据集的标注。每个小组的3个人需要共同讨论与标注每一条微博的情绪类别。 ③在3个小组标注完成后,对标注的结果进行汇总,该部分针对可能会存在三种情况进行了不同的处理,具体的处理方式如下:三个队伍标注的情绪完全不一样,舍弃该条微博;三个队伍的标注结果只有两个队伍标注结果一样,则该条微博的情绪标注结果为两个队伍标注相同的结果;三个队伍的标注结果一致,则该条微博的情绪标注结果为三个队伍共同的标注结果。 在标注实验完成后,对标注结果进行统计,统计结果如表1所示。

表1是对三组标注结果进行统计后得到的结果,其中三组标注结果完全不一致的为2804条微博,也就是这些微博的情绪存在争议,因此将这些微博从数据集中删除,最终得到的情绪类别语料中五类微博数量:“乐”为3886条、“怒”为2958条、“哀”为3097条、“恶”为2824条、“惧”为2265条,语料库总计14530条。 4.2 情绪分类实验及其结果分析 依照图1所示流程进行实验,本文使用准确率、召回率和F-measure对模型的情绪分类结果进行评价,得到的结果如表2所示。

(1)从表2中各个情绪分类的实验结果中可以看出,本实验使用情感特征、句式特征和句间特征后,借助于SVM模型可以很好地区分出五个类别,说明了本文所提模型可以对微博等短文本进行多类分类。 (2)不同类别的情绪识别效果不一样。对语料库与实验结果进行分析后,发现类别“乐”的准确率最高,类别“恶”的准确率最低。之所以类别“乐”的准确率比较高,是因为在训练语料中类别“乐”的数量相比其他类别要多。这说明了两个问题:一是实验构建的语料库中各个类别的数量存在差距,造成语料库构建不平衡;另一方面是语料库的规模对模型的分类效果有非常大的影响,类别“乐”的语料数量比较大,造成模型构建出现倾斜。在最终模型分类时,其准确率也是最高的,说明语料库规模越大,模型分类效果会越好,因此在今后研究中,增大语料库规模是非常有必要的。 (3)总体上多类分类的效果不是很理想。这是因为所选择的特征不够完善,本实验中选择的特征仅仅关注文本的内容特征,并未深入考虑文本的语义特征,可能并无法完整表达微博文的语义,最终影响了微博的情绪分类结果。 4.3 方法验证实验 为了验证本文构建语料库的科学性和所提出的情绪分类方法的有效性,本文使用上述实验得到的情绪分析模型,选择NLP&CC 2013中文微博情绪分析的实验语料作为测试语料来进行测试。测试语料来自NLP&CC 2013评测委员会提供的新浪微博数据集,包括4000条已标注的微博,已标注微博中有情绪微博为2172条,无情绪微博为1828条。本文从该数据集中提取出有情绪标注的微博,数据集中的情绪分类为愤怒(anger)、厌恶(disgust)、恐惧(fear)、高兴(happiness)、喜好(like)、悲伤(sadness)、惊讶(surprise)7类。为了与本文的分类一致,该部分将数据集中的“喜好”与“高兴”两个类别的微博合并为一类,保持原有的“恐惧”、“厌恶”、“悲伤”,将“惊讶”一类按照其情绪归入到其他类别中,最终得到了的测试数据集,共有2172条微博,其中“乐”为986条、“惧”为83条、“恶”为425条、“怒”为275条、“哀”为403条。借助本文中已有的训练模型,对测试语料进行测试得到最终结果如表3所示,表4为NLP&CC 2013公开评测的结果,其中mean为参与评测的所有队伍对微博情绪分析的平均结果,Best为参与评测的队伍的最好结果。


从表3中的模型验证结果可以看出,将本文所提的方法运用到NLP &CC 2013评测后所取得的结果是比较好的,这说明了本文所提方法的有效性。与表4中公开评测的结果对比后发现,本文方法的实验结果不论是准确率还是召回率都高于已有的公开评测结果,说明了本文方法和特征的有效性。但是从表3中可以看出类别“乐”的准确率和召回率都比其他几个类别的实验结果好,这主要是因为NLP&CC 2013的语料中五种情绪类别的数量差别很大,其中类别“乐”含有986条、“惧”的为83条、“恶”的为425条、“怒”的为275条、“哀”的为403条。“惧”的类别非常少,测试语料严重不平衡。 对表2和表3的实验结果分析发现,虽然本文提出的方法可以区分五类情绪,但是分类的准确率仅在50%左右。多类分类的结果并不如两类分类的好,从测试结果分析后发现主要的问题是特征选择不完善,并未考虑微博本身的语义,造成特征表示微博不全面。由于微博内容简短,仅仅用情感特征、否定句和程度副词来表示微博,可能并不完整,这也影响了模型的构建。在今后的研究中,课题组将尝试将微博的句式、语义考虑到特征中,完善微博的特征向量,提高微博情绪分析的准确率。
标签:自然语言处理论文; svm论文; 语料库论文; 测试模型论文; 监督学习论文; 情感分析论文;