1. 引言
近年来,随着社交网络的兴起,微博已经成为人们重要的社交媒体之一。微博的文本信息量大、实时性高、传播速度快等特点,使其成为了研究者们关注的热点 [1] 。其中,微博文本分类是研究的重要方向之一,目的是将微博文本根据其内容归为不同的类别,以便更好地进行管理和分析。
微博文本分类中一个关键的问题是如何有效地利用文本中的情感信息。情感是人们对事物的感受、态度和情绪反应,是人类社交行为中的重要因素。近年来,情感词典在情感计算中得到了广泛的应用。情感词典是由一些情感词汇构成的词汇表,每个情感词汇都带有情感极性标签,表示该词汇所表达的情感是正面的、负面的,还是中性的。利用情感词典可以快速有效地分析文本中的情感信息。
在国外,微博情感分析研究已经开始相当早,并且得到了很大的发展。其中,研究者使用的算法和模型也越来越先进。2013年,Mohammad等人 [2] 使用情感词典和机器学习算法对英文推文的情感进行分类,取得了较好的结果。2014年,Mohammad等人 [3] 提出了SentiStrength,这是一种常用的英语情感分析工具。该算法可以分析文本中的正面和负面情感,并对其进行打分。此后,一些研究者也开始使用类似的方法对微博情感进行分析。在2018年,一些研究者通过比较不同的算法,得出了在微博情感分析中表现最好的是基于循环神经网络(RNN)的算法 [4] 。而在2019年,研究者们利用预训练的语言模型,进一步提高了微博情感分析的效果。这些预训练的语言模型主要有BERT和XLNet等 [5] 。
在国内,微博情感分析研究也在逐渐发展。2003年,朱嫣岚等人 [6] 提出了基于HowNet词汇语义相似度和语义相关场的情感词极性计算方法,文本判别准确率可达80%以上。2009年,王素格等人 [7] 提出了基于同义词的词汇情感倾向判别方法,将目标词语与其同义词的关系考虑到其中,取得了不错的效果。在2016年,刘龙飞等人 [8] 提出了一种基于卷积神经网络(CNN)的微博情感分析模型。该模型通过学习微博中的局部特征,可以对微博进行情感分析,并且取得了不错的效果。在2017年,姜杰等人 [9] 提出一种机器学习与规则相融合的微博情感分类方法,将用规则方法得到的多样化情感信息进行转化,扩展并嵌入基本特征模板,形成更有效的融合特征模板。实验结果表明,该方法比传统的基于机器学习的方法更加有效。在2018年,凌海彬等人 [10] 提出了一种基于多特征融合的微博情感分析方法。该方法将微博中的文本内容特征特征和用户特征进行融合,并且设计了特征层融合和决策层融合方法进行图文融合的情感分类,进一步提高了微博情感分析的准确率。
微博情感分析通常是采用情感词典、机器学习和深度学习这三类方法 [11] ,它们都具有一定的有效性。然而,无论哪种方法都无法达到最高的准确率,只能通过不断改进方法来提高准确性。其中,基于情感词典的方法适用于处理细粒度的文本情感分析,因此本文主要采用情感词典方法并结合语义规则集来对微博进行情感分析。在此基础上,不断改进和优化,通过各个部分的情感权值加权求和来得到微博的情感极性 [12] 。
本文的结构如下:第2节介绍了本研究实验所使用研究方法,包括使用的数据集、情感词典的构建以及语义规则集的定义。第3节介绍实验的流程、实验数据结果。第4节总结了论文,包括所使用方法的优劣势以及后续工作的讨论。
2. 方法
2.1. 数据集
本次实验所使用的数据集主要来源于微博评论中与新冠肺炎相关的文本。我们使用网络爬虫技术,从微博中获取了共计10万条关于新冠肺炎的评论信息(如图1所示)。为了获取微博评论信息,采用了特定的程序来捕捉和提取微博评论中的信息,包括微博i、发布者昵称、微博正文、发布时间、点赞数、转发数、评论数等,并将获取到的数据保存在本地CSV格式文件中,形成了本文所使用的数据集“Virus_W”。为了进行情感标注分类,使用了人工手段进行标注。由于标注结果因人而异,因此邀请多位标注员对同一数据集进行标注。当标注结果不一致时,按照少数服从多数的原则,选取具有压倒性优势的标注作为最终标注结果。
2.2. 数据预处理
考虑到微博评论数据的不规范性,含有大量噪声,需要做数据预处理。下图2所示是数据预处理流程。
2.3. 构建基础情感词典
本文采用基于情感词典的情感分析方法,关键是构建一个完整的情感词典,以便能够满足情感分析的需求。鉴于现代网络社会中新词不断涌现,情感词典需要进行扩充。本文主要将知网的HowNet词典、大连理工大学整理的权威情感词汇本体库(DUTSO)和台湾大学整理的NTUSD词典结合起来构建基础情感词典,合并去重后共计43783个情感词汇。同时,考虑到中文的语义特性,还加入了否定词词典和程度副词词典,如表1、表2所示。
![](Images/Table_Tmp.jpg)
Table 2. Examples of adverb of degree
表2. 程度副词示例
2.4. 构建微博新词情感词典
我们将微博博文作为语料,对语料数据进行数据清理和数据降噪,然后对语料数据进行分词、去除停用词和删除其中的非情感词语。然后通过基于统计信息的方法识别出新词,对得到的词语与基础情感词典中的词进行对比去重,得到候选词,构成候选情感词典。将候选词按照词频排序,取情感极性强和词频高的作为种子词(正负各30个),人工判断这些种子词的词性。利用SO-PMI算法判断候选情感词的情感极性,完成基础情感词典的扩充。图3为微博新词的情感词典的构建流程。
基于统计信息的方法主要是对字串频率、字串内部紧密度以及字串外部邻字信息熵进行标准设定,这三个定义关系到了一个字串能否成词,如果这三个定义都达到设定的阈值,就可以认为该字串成为一个新词,但是还要比对是否这些词已经存在已有的初始情感词典中,如果存在就删除,如果不存在,就可以认为是一个新词。
![](//html.hanspub.org/file/10-1542853x9_hanspub.png?20230421101552494)
Figure 3. Flow chart of construction of microblog neologism dictionary
图3. 微博新词词典构建流程图
SO-PMI算法由两部分组成:SO-PMI和PMI。算法整体思想很简单,判断需要判断的词语P (word)与基准词P (base)同时出现的概率,如果与积极(positive)的词同时出现的概率更高,那么就判断为积极的词语,如果与消极(negative)的词同时出现的概率更高,那么就判断为消极的词语,如果与积极和消极的概率相同,那么就判断为中性的词语。
对于词语来说,点间互信息(PMI)可以通过判断某个词与基准词出现的概率来计算词语间的语义相似度。两个词语
和
点间互信息计算公式为:
(1)
式中,
表示
和
同时出现在语料中的概率,
和
分别表示
和
单独出现的概率。如果两者独立,那么
,即整个分数为1,那么PMI = 0。
将PMI算法应用到未知情感极性的新词的情感判断上。用
表示未知情感极性的新词,
表示已知情感极性的词 [12] ,通过计算两者之间的语义相似度,如果计算结果很高,则表示两者之间情感极性一样,如果语义相似度不高,则表示两者情感极性相反。
SO-PMI算法可以进行一个未知新词与多词进行相似度计算,具体定义如下:
构建正面情感种子词集合
和负面情感种子词集合
,对每一个新词计算与这些集合中种子词的语义相似度,从而判断未知新词的情感极性 [12] ,由以下公式计算:
(2)
式中,左边表示新词w的情感值,公式右边表示的是新词w与正面种子词集合
中每个词的语义相似度之和然后减去新词W与负面种子词集合
中每个的语义相似度之和。
SO-PMI的基本思想是:有两个情感倾向的列表,一个是正向的情感词,一个是负向的情感倾向。计算每个词与这两个列表中的每个词的PMI,看这个词更接近哪个列表,是更接近正向情感词列表还是负向情感词列表。若SO-PMI > 0,表示这个词更接近正向,即积极词;若SO-PMI = 0,表示这个词为中性词;若SO-PMI < 0,表示这个词更像是负面词,即消极词 [13] 。
对新词进行情感极性判别后将判别出带有情感色彩的词加入基础情感词典中,完成微博新词情感词典的构建。
2.5. 文本情感极性判断规则
2.5.1. 词组合规则
情感词、否定词和程度副词的不同组合将会产生不同的情感表达效果。因此,本章根据不同的词组合模式,制定相应的情感极性判断规则。
规则1:仅情感词。如果只有情感词,没有其他词修饰情感词,则该词的情感极性为它本身的情感极性。
规则2:程度副词 + 情感词。情感极性不变,情感强度的变化取决于程度副词。
规则3:否定词 + 情感词。在这种词组合中,情感极性取决于否定词的个数,情感强度不变。当否定词的个数为偶数时,情感极性不变;当否定词的个数为奇数时,情感极性变为相反极性 [14] 。
规则4:否定词 + 程度副词 + 情感词。在这种词组合中,否定词修饰程度副词,程度副词修饰情感词,因此其情感极性不变,情感强度的变化取决于否定词的个数。
规则5:程度副词 + 否定词 + 情感词。这种词组合中,否定词修饰情感词,因此其情感极性是否改变取决于否定词的个数,情感强度的变化取决于程度副词。
2.5.2. 句型规则
中文按句型可以大致分为陈述句、疑问句、反问句和感叹句 [15] ,如图4、图5所示,不同的句型对应的情感强度及情感极性各不相同。于是,我们对不同句型制定相应的规则并赋予权重。
![](//html.hanspub.org/file/10-1542853x28_hanspub.png?20230421101552494)
Figure 4. Examples of declarative and exclamatory sentences
图4. 陈述句、感叹句举例
![](//html.hanspub.org/file/10-1542853x29_hanspub.png?20230421101552494)
Figure 5. Examples of rhetorical question
图5. 反问句举例
一个完整的句子一般都是复句,因此除了从复句内部的各个单句考虑之外,还要从整个复句的角度去考虑,也就是复句的句型。复句的句型直观上的标志是以标点符号结尾的句子,通过标点符号来判断复句的句型,比如以“?”结尾的一般事疑问句或者反问句,以“。”结尾的是陈述句,以“!”结尾的是感叹句等等。复句与复句的组合构成了一个文本,本节研究的是句型关系对微博文本的情感影响,在本节中用字母D表示一个文本,文本中各个复句的集合定义为
用字母
表示句型规则对复句
的情感值。
规则1:感叹句型。文本中,若复句以“!”结尾,则该句就是一条感叹句,此时情感值定义为1.5。它所表达的情感是将原来的程度加强。
规则2:反问句型。文本中,反问句型存在两种情况。第一种是反问句型以“?”结尾且结尾处出现反问标志词;第二种是反问句型没有以“?”结尾但结尾处出现反问标志词。此时情感值定义为−1。它所表达的情感是与原来极性相反。
规则3:疑问句型。文本中,疑问反问句型以“?”结尾但结尾处没有出现反问标志词,比如“难道不应该喜欢我?”,该句中存在“?”但没有出现“吗”这类反问标志词。因此,由疑问句型对复句
产生的情感值定义为0。它所表达的情感是极性变为中性。
规则4:陈述句型。文本中,若复句以“。”结尾,贼该句就是一条陈述句,此时情感值定义为1。它所表达的情感是不变。
2.5.3. 句间规则
复句主要由两个及以上的分句通过关联词(如表3所示)连接构成。不同关联词引导的分句侧重点和情感均有不同,关联词示例见表3。本文根据关联词制定相应规则并赋予权重。用字母A表示一个复句,复句中各个分句的集合定义为
用字母
表示句型规则对分句
的情感值。
规则1:转折关联词。转折关联词引导的分句,前后意思完全相反。因此若转折关联词为后接词(如“但是”“可是”等),则其引导的后分句
及之后的分句权重
均赋为1,前分句权重
均为0;若转折关联词为前接词(如“虽然”,“尽管”等),则其引导的后分句
及之后的分句权重
均赋为0,前分句权重
均为1;若既有转折前接词也有转折后接词,则后接词出现的分句 及之后的分句权重均赋为1,
之前的分句权重均赋为0。
规则2:递进关联词。递进关联词引导的分句,后分句的情感强度比前分句强。因此分句的权重赋值为:
,
,
。
规则3:假设关联词。假设关联词引导的分句,其情感极性倾向于前提条件,削弱了后面分句的语气。因此将假设关联词出现的分句及之前的分句权重均赋值为1,之后的分句均赋值为0.5。
规则4:因果关联词。因果关联词引导的分句,前分句和后分句分别解释了原因和结果,句子的关键信息在结果分句上。因此将因果关联词中的结果关联词(如“所以”)所在的分句及之后的分句权重均赋值为1,之前的分句均赋值为0.5。
2.5.4. 综合情感极性判断
在判断微博文本的情感极性时,首先根据复句中的标点符号把文本切分成多个分句,然后计算分句的情感分数,接着计算整个复句的情感分数,最后根据该分数判断该段文本的情感极性。
1) 计算分句的情感分数
根据扩充的情感词典匹配情感词,若分句中没有情感词则该分句情感分数为0;若分句中存在情感词,则根据上文提出的词组合规则,计算词组合的情感分数,该分句的情感分数与该词组合情感分数一致。
2) 计算复句的情感分数
在得到分句的情感分数后,将分句情感分数求和,并根据上文提出的句型规则,计算整个复句的情感分数。将复句的情感分数求和得到整段微博文本的情感分数。
3) 判断微博文本的情感极性
若情感分数大于0,则微博文本的情感极性为正面;若情感分数等于0,则微博文本的情感极性为中性;若情感分数小于0,则微博文本的情感极性为负面。
3. 实验
3.1. 实验设置
本文主要通过三组实验对比验证提出方法的有效性,第一组实验是在基础情感词典(知网的HowNet词典)上对微博文本数据进行情感分析,第二组实验是在本文所构造的多维情感词典上对微博文本数据进行情感分析,第三组实验是在本文所提出的基于情感词典与自定义规则的方法上对微博文本数据进行情感分析。
对于二分类问题,可将样本根据其真实类别与分类器预测类别的组合划分为真正例(TP)、假正例(FP)、真反例(TN)和假反例(FN)四种情形 [16] 。在本实验中,我们主要使用以下三个指标进行分析,即准确率P、召回率R和综合指标F1。它们通过以下三个公式进行计算。
1) 准确率(Precision)亦称“查准率”,为预测为正例且正确预测的样本数与所有预测为正例的样本数的比值 [16] :
(3)
2) 召回率(Recall)亦称“查全率”,为预测为正例且正确预测的样本数与真实情况下所有为正例的样本数的比值 [16] :
(4)
3) F1值是基于查准率与查全率的调和平均定义的 [16] :
(5)
3.2. 实验结果与分析
通过对数据集分别进行三组实验,并比较了实验结果,三个评价指标结果如下表4、表5和表6所示。
![](Images/Table_Tmp.jpg)
Table 4. Accuracy rate of sentiment analysis of microblog text data under three different methods
表4. 三种不同方法下对微博文本数据进行情感分析的准确率
![](Images/Table_Tmp.jpg)
Table 5. Recall rate of sentiment analysis of microblog text data under three different methods
表5. 三种不同方法下对微博文本数据进行情感分析的召回率
![](Images/Table_Tmp.jpg)
Table 6. F1 value of sentiment analysis of microblog text data under three different methods
表6. 三种不同方法下对微博文本数据进行情感分析的F1值
通过以上的结果呈现可以看出,本文提出的基于多维情感词典与自定义规则的微博文本情感分析方法具有一定的效果,相较于前面两种方法都有很好的提升。在只有一部基础情感词典的基础上,远远达不到中文微博文本的情感词匹配要求,正是由于本文构造了微博新词情感词典,再加上其他几部词典才能有很好的作用。此外,还需要将中文文本语义规则集考虑其中,只有这样,整个微博的情感分析才能进一步提升,因为文本是表示含义的,是有语法结构的,因此需要结合规则一起进行情感分析,上表中从准确率、召回率和F值三个层面分析可知本文提出的方法相比于前两种方法有显著的效果。
4. 总结
在本研究中,我们提出了一种新的基于微博文本情感分析的方法,用于识别文本的正面、负面和中性情感特性。实验使用从微博爬取的关于新冠疫情的数据集进行测试,并将以住的研究结果与本研究提出的方法进行比较。此方法的重点在于,在原始情感的基础上,加入了构建的微博新词情感词典,并定义了适合中文文本的语义规则集,提高了文本情感识别的准确率。
表4、表5、表6中的情感识别研究均基于中文微博文本,通过对比发现,目前已有的情感词典无法满足微博情感分析,使用多维情感词典的方法普遍优于使用基础情感词典的方法。同时,加入结合微博文本的语言特性定义的规则集也可以有效地提升最终结果的准确率。通过表中准确率的数据对比,本文的研究方法在正面、负面和中性文本的情感识别准确率分别达到了79.4%、82.5%、77.3%。
当前工作的局限性及相应的未来研究方向总结如下:
· 需要人工判断新增情感词语的强度,工作量太大。
· 未考虑表情符号在实际评论中隐藏的情感属性,后续可考虑将表情符号转换为相应的文字,加入到情感词典中。
· 对于不同的事件而言,文本中的情感词语表达的含义可能不同,应考虑词语的多重情感特性。
本文的情感分析仅针对微博文本,实际上各类网络平台上的文本包含了大量情感信息,将本文提出的情感分析方法应用到其他数据集上将是下一步的研究重点。