1. 引言
随着互联网日新月异的发展,我们的日常生活方式产生了巨大的变化,移动智能设备为人们的家居出行提供了极大便利,各类平台也随之迅速崛起,例如电商平台上商品的用户评价或者是微博等社交平台的网友发言,这些文本数据中都潜藏着巨大的价值。如果能够有效挖掘出文本的情感倾向,我们可以据此了解消费者的消费偏好或者掌握大众的舆论动向等等,但是由于文本信息具有数据庞大、非结构化或者半结构化等特质,仅仅依靠人工识别语义信息是不可取的,而情感倾向研究正可以为此提供具体解决方向与技术手段。
情感分析(Sentiment Analysis)也叫情感倾向分析,作为时下自然语言处理领域热点之一,主要是根据文本所提供的语义信息将文本分为积极(褒义)、消极(贬义)两类或者更多类别。虽然情感分析是自然语言处理领域的一个新的研究方向,但其应用范围已经十分广泛。电商平台上的商家更希望通过消费者对商品的好差评来制定相应的策略;政府也可以通过从网友的评论挖掘出代表性的观点看法以便监督舆论动向,例如随着新冠疫苗在全国全面推广,通过收集网友在微博平台所发表的意见看法,从中了解群众的情感倾向,以便更好地推进后续疫苗接种工作。
2. 国内外研究现状
关于文本情感分析的方法目前主要分为三大类:基于情感词典的情感分析方法、基于机器学习算法的情感分析方法、基于深度学习的情感分析方法。
基于情感词典的情感分析法主要依赖于情感词典的制定。国外最早出现的英文情感词典是 SentiWordNet,后来Hu (2004)等 [1] 建立的Sentiment lexicon词典,已经包含了6800多个情感词,基于此来判断文本的情感极性。Taboada (2011)等 [2] 提出了一种基于词典的文本情感提取方法,利用带有情感极性和强度注释的字典为每个情感词计算得分并求和,从而实现文本的情感极性分类。对于中文情感词典,比较具有代表性的主要有知网(HowNet)中文情感词典、台湾大学TUSD中文情感词典和大连理工大学中文情感词汇文本库,由于微博存在海量语料,极具分析价值。赵妍妍等(2017) [3] 基于文本统计算法,根据微博海量文本数据构建了一个超大情感词典,能够大幅提高微博领域情感分类性能。在这之后为了克服单一的情感词典覆盖面不够广泛,吴杰胜(2020) [4] 提出了可以同时使用多部情感词典并结合语义规则,能够有效提高微博情感分析的准确性。
基于机器学习的情感分析属于有监督学习方法,需要事先将原始语料分为训练集和测试集两部分,在划分的训练数据中训练分类器,继而对划分的测试集进行类别预测。Pang (2002) [5] 提出将机器学习算法应用到文本情感分析,将支持向量机SVM (Support Vector Machine)、最大熵模型、朴素贝叶斯分类算法运用在电影评论的情感分类进行比较并得出SVM分类性能最佳的结果;刘志明等人(2012) [6] 利用不同机器学习算法、不同的特征选取算法以及不同的特征项权重计算相结合面对微博文本情感分类,得出在电影方面,模型对微博评论和普通评论是通用的。孙建旺等人(2014) [7] 是利用情感词典对微博文本动词形容词计算极性值并基于此提出位置权重方法进行特征提取继而采用支持向量机分类。李明等人(2019) [8] 通过机器学习方法对商品评论分类后进一步利用了互信息扩充商品属性,完成细粒度的情感分析。
利用机器学习算法进行情感分类需要提取特征、人工标注,随着互联网数据规模与日俱增,上述方法无法满足分类需求。深度学习是多层神经网络在学习中的应用,解决了以往机器学习难以解决的大量问题。基于深度学习的情感分析主要是将深度学习的模型应用到情感分析的研究之中,通常可以取得不错的效果 [9]。Mikolov等人(2013) [10] [11] 首次提出了Word2vec模型来训练词向量,该模型主要利用特定单词的上下文信息将一个词转化成低维的稠密向量,且语义相近的词会被映射到向量空间相近的位置;考虑到需要生成句子或者段落向量,提出Doc2vec模型,该模型克服了利用Word2vec训练的词向量简单加权生成段落向量从而忽略了语句语序的缺陷。秦胜君等人(2013) [12] 提出基于限制玻尔兹曼机的无词汇标注情感分类算法,克服手工标注的方式适应能力较低的缺陷,一定程度上提升了泛化能力。梁军等人(2014) [13] 提出结合递归神经网络与情感极性转移模型强化了获取文本关联特征的能力,该方法在处理微博语料时不仅分类效果好且节省了人工标注的工作量。
该文基于Doc2vec模型训练文本向量,得到向量矩阵,后续结合三种不同的机器学习算法进行情感分类,根本几种常用的分类评估指标来评估分类器性能。
3. 关于微博评论的情感倾向研究
拟选取疫苗接种阶段的微博在线评论做情感倾向研究,框架大致如下图1所示:
![](//html.hanspub.org/file/34-2622012x7_hanspub.png?20220125080103686)
Figure 1. Emotion classification framework based on Doc2vec model
图1. 基于Doc2vec模型的情感分类框架
训练Doc2vec模型
文本需要进一步转化才能为计算机所识别,即需要对这些文本信息进行结构化处理。Mikolov等人于2013年 [10] 首次提出了Word2vec模型来训练词向量。能有效避免造成向量空间维数灾难。其训练过程中根据训练向量方法不同可分为两种模型,即Continuous Bag-of-Word Model (CBOW)模型和Skip-gram模型。
为了克服Word2vec训练的词向量表示句子或者文本向量容易忽略语序的缺陷,Mikolov [11] 同年提出Doc2vec方法,该方法同Word2vec一样也分有两种模型结构,分别为Distributed Memory version of Paragraph Vector (PV-DM)和Distributed Bag of Words version of Paragraph Vector (PV-DBOW),DM算法原理图如图2所示:模型主要建立在单层神经网络基础上,将段落向量与词向量取平均值或者相连接作为输入项输入网络,然后通过梯度下降法进行优化,继而实现对上下文中下一个将要出现的单词进行预测。DBOW算法该模型是在随机梯度下降过程中每一次迭代采样一个文本窗口,再从中随机采样一个单词,实现输入段落向量进行单词的预测,这种方式也可以获得文档的向量表示。原理图如图3所示。
![](//html.hanspub.org/file/34-2622012x8_hanspub.png?20220125080103686)
Figure 2. Principle of PV-DM algorithm
图2. PV-DM算法原理
![](//html.hanspub.org/file/34-2622012x9_hanspub.png?20220125080103686)
Figure 3. Principle of PV-DBOW algorithm
图3. PV-DBOW算法原理
4. 实验及分析
4.1. 微博语料的收集以及预处理准备
本文通过爬虫工具八爪鱼软件对人民日报微博官方平台关于疫苗的重要报道博文爬取相关留言评论,在完成语料的收集后,需要对冗杂的文本数据做初步的清洗与处理,文本数据的预处理流程大致为:文本去重、中文分词、去停用词等。由于本文所涉及的情感分析的机器学习方法是有监督学习,需要对训练数据进行标注,并且划分训练集、测试集,故对爬取的数据经过整理如下表,总评论数900条,经过去重、去除无关评论后剩810条。进行人工标注后,积极评论为555条,消极情感评论255条。训练集567条,测试集243条。具体概况及部分人工标注原始数据见表1与表2。
![](Images/Table_Tmp.jpg)
Table 1. Experimental data structure
表1. 实验数据结构
![](Images/Table_Tmp.jpg)
Table 2. Manual annotation of original document (part)
表2. 原始文档人工标注(部分)
由于爬取的微博语料含有大量的非中文字符例如表情符号、英文、标点符号,这些均需在预处理过程中进行剔除,经过处理之后,文档只保留中文字符。随后,本文主要使用Jieba分词系统完成分词操作,由于分词后的语料还存在一些无意义的停用词,例如“啊,呀,的,……”等等,可利用哈工大停用词库去除大量出现却无实义的词。经过预处理后的部分文档如下表3:
![](Images/Table_Tmp.jpg)
Table 3. Pre-processed comment text (part)
表3. 预处理后的评论文本(部分)
4.2. 基于Doc2vec模型训练文本向量
经过对文本的一系列预处理之后,原始的文本信息变成了单独的词语个体,但计算机仍然无法识别出这些词语中蕴涵的语义和情感。因此需要利用数学模型继续进行结构化处理步骤。
结构化处理主要使用Doc2vec将文本向量化表示,具体是由python里的gensim库实现模型训练、输出文本向量矩阵。gensim库中Doc2vec函数中向量维数(vector_size)默认为100维,一般来说语料越多,该值越大。函数参数dm默认取1即采用PV-DM算法,后续将分别使用两种算法进行训练,向量维度分别设置100维和50维,分别观察各向量表示方案下不同分类器的分类效果。
4.3. 基于机器学习算法进行情感分类
该部分拟采用三种机器学习的算法分别对不同模型训练的结果进行分类:支持向量机SVM (Support Vector Machine)、随机森林RF (Random Forest)、逻辑回归LR (Logistic Regression),经过分类后需要评估分类效果,主要用到的指标有精确度(Accuracy)、查全率(Recall)、查准率(Precision)、F1分数(F1 score),分类结果的混淆矩阵如下表4所示,因此各指标具体表达公式如下:
![](Images/Table_Tmp.jpg)
Table 4. Confusion matrix for classification results
表4. 分类结果的混淆矩阵
准确率:
(1)
查全率:
. (2)
查准率:
. (3)
F1分数:
. (4)
表5为特定的Doc2vec模型设定下三种机器学习算法的分类性能评估结果,图4也直观上对各个分类器的分类指标值进行对比。其中方案一表示模型参数设定为dm = 1,size = 100,方案二表示模型参数设定为dm = 1,size = 50,方案三表示模型参数设定为dm = 0,size = 100,方案四表示模型参数设定为dm = 0,size = 50。
![](Images/Table_Tmp.jpg)
Table 5. Comparison of classification results of machine learning algorithms under different Doc2vec model schemes
表5. 各Doc2vec模型方案下机器学习算法分类结果比较
![](//html.hanspub.org/file/34-2622012x20_hanspub.png?20220125080103686)
Figure 4. Comparison of machine learning algorithm classification performance under different Doc2vec model schemes
图4. 各Doc2vec模型方案下机器学习算法分类性能对比
从上述结果来看,各个方案下,SVM在查全率指标方面表现最好,而在评估分类性能时,查全率和查准率均各有所长与不足,故在关注上述指标同时还需关注F1分数等指标;而从各个方案的综合情况来看,RF整体表现要比SVM和LR好。从具体各个指标来看,SVM在方案三、四表现较方案一、二更优,即SVM在PV-DBOW算法下表现更优;LR与SVM相反,在方案一、二上取得更佳的表现,即在PV-DM算法下表现更好。
5. 结论
通过使用Doc2vec模型对微博评论文本进行向量化,且分别使用PV-DM算法和PV-DBOW算法并设定不同的向量维度训练,对输出的向量矩阵进一步利用SVM、RF、LR完成情感分类任务,并根据正确率、查全率、查准率、F1分数四个方面来评估分类性能。通过比较可以看出,对经过PV-DM算法训练的文本分类,随机森林表现最优,维数为100时F1分数值达到87.24%,当维度为50时,F1分数值达到87.50%;对经过PV-DBOW算法训练的文本分类,支持向量机表现更优,维数为100时F1值达到84.11%,维数为50时F1值达到83.91%,实际操作中,支持向量机分类用时最短,能够节约训练成本。