1. 引言
现在的互联网中,信息量大,文本信息丰富,如电商平台的评论文本,直播平台的评论文本,电影网站的评论等,都可以充分反映用户对所使用产品或所观看电影等的好感程度,我们可以利用某种手段挖掘出这些含有丰富信息的文本,进而根据用户的喜好对产品、服务等进行调整,让更多的用户使用该产品或服务等,从而使商家的利益达到最大化。
情感分析 [1] 的含义是通过文本挖掘出用户对产品、服务等的意见,获得对产品和服务等的好感度,情感分析根据研究对象的粒度的不同可分为三类:文档级、句子级和对象级,其中细粒度情感分析 [2] 为对象级情感分析,剩余的两项类别为粗粒度情感分析,细粒度情感分析是输入一段文本和需要分析出情感极性的对象,输出的是该对象的情感极性,因为粗粒度情感分析,不能更细致的分析出句子中对象的情感极性,无法从中获取更多有用的信息,无法提取出人们对特定对象的看法,只能笼统地得出整个句子的情感极性,目前研究的大多是细粒度情感分析。
比如“这里的景色很美,但这里的寿司却不好吃”。用户对目标“景色”的看法是正面的,而对目标“寿司”的看法却是负面的。所以一个句子可能多个方面词,而这多个方面词所带的情感极性是不同的,因为对应的对象不同。细粒度情感分析研究得更加细致,也更加地困难,在现有的方法中,一般是将方面信息加入到模型中来提取方面对应的情感极性,在早些时候,人们使用的传统机器学习模型,有支持向量机和朴素贝叶斯等,再往后可以运用的模型有CNN [3] 和LSTM,但在BERT提出以后,这些模型就渐渐落后了,一般是直接用BERT或者将BERT和其他模型融合进行方面级情感分析,现有的情感分析对于方面词和上下文的语义关系处理不清楚,从而造成方面词情感极性的错误判断,我们在传统机器学习和神经网络方法上进行对比试验,通过门控机制、构造句子对任务和增强方面词的编码等方法,在BERT等模型的基础上进行实验,得到效果最好的模型。
2. 相关工作
2.1. 传统机器学习方法
情感分析的传统方法大致可以分为基于词典的方法和基于各种传统机器学习的方法 [4]。
基于词典的情感分析的准确率极大地取决于词典的质量,词典主要包括电影、医疗等,并且词典需要人为的维护,词典的建立也需要人为的操作,基于词典的细粒度情感分析,要考虑句子中需要处理情感极性的对象,方便处理出对象的情感极性,进而进行情感分析,基于词典的情感分析,因为需要的人力巨大,现阶段该方法已经慢慢的被淘汰了。
基于各种机器学习的情感分析,主要使用监督学习方法,常用的分类方法主要有支持向量机(SVM),朴素贝叶斯(NB)等,其主要困难为分类器的设计、数据的获取和一些未见过的短语的解释,基于机器学习的情感需要人为的进行构建特征,不同的数据和不同的构造特征的方法造成的准确率的差别比较大,且基于机器学习的细粒度情感分析,需要考虑句子中的目标对象,可以生成依赖对象 [5] 的特征,也可以确定句子中对象的作用范围,确定其在那个范围内的情感极性,但是传统方法无法表示对象词语与其上下文的关系。
2.2. 深度学习方法
Word2vec [6] 和Glove [7] 都是词嵌入模型,Word2vec可以分为两个可实现的模型:CBOW和Skip-gram,CBOW是通过上下文和周围词来预测当前值,比如“easyai是()人工智能网站”,通过其他词来预测括号内的词,而Skip-gram是通过当前词来预测上下文的词,比如“()()最好的()()”,通过中心词预测其上下括号内的词。在Word2vec被提出不久,Glove就被提出,作为Skip-gram模型的改良。早期的深度学习方法有CNN、RNN和LSTM等,随着ELMO [8] 和BERT [9] 的相继提出,BERT在很多数据集上展现出了良好的性能,逐渐被越来越多的人使用,基于BERT的模型被越来越多的人所推广。
3. 模型
本文就传统方法和基于深度学习的方法应用于方面级情感分析,进行研究和对比。
3.1. 基于词典的方法、SVM和Bayes
基于词典和句法结构的方法是有一个个词典,词典里面含有服务等方面的词,输入一个句子,句子中的每个词分离开,按照词语的得分,对句子的情感度进行打分,SVM和Bayes是分别直接用的sklearn里的SVM和Multinomial NB库。
3.2. E2E-ABSA
如下图1,使用具有L个Transformer层的BERT组件来计算相应的上下文表示:
(1)
其中
为相应的上下文表示。
将上下文的表示输入到任务特定层,预测标签序列:
(2)
其中 为预测的序列标签,相应的上下文表示经过E2E-ABSA层后,生成对应的预测的序列标签。
研究了几种不同的E2E-ABSA [10] 层的设计,即线性层、递归神经网络、自注意网络和条件随机场。
3.3. TC-LSTM和TD-LSTM
LSTM [11] 是将整个句子输入到LSTM模型中,而TD-LSTM [12] 相比于LSTM的改动有,可以从目标词两边进行softmax大大提升了运行效率,左边的部分是左句子 + 方面词,右边的部分是方面词 + 句子,左边的部分输入到左边的LSTM,右边的部分输入到右边的部分,更能体现目标词相关的语义信息,提升模型的准确率。TD-LSTM的结构图如图2所示。
TC-LSTM是将目标词的相关语义信息与上下文相结合,将v_target平均信息与每个词进行拼接。TC-LSTM的结构图如图3所示。
3.4. BERT_SPC和TD-BERT
BERT_SPC [13] 是将方面实体和上下文转换为句子对分类任务,在BERT的下游进行输入,方便进行

Figure 1. Overview of the designed model
图1. 设计模型概述
方面实体的情感极性的判断。
TD-BERT [14] 将CLS输入顺序进行了改变,句子不再是从CLS开始输入,而是直接将方面词输入到Max pooling层,减少了相关工作量。TD-BERT结构图如图4所示。
3.5. GCN
GCAE [15] 在ATSA上的应用是在CNN的基础上加了一个门控机制,门控机制更方便地输出方面对象的情感极性,且是基于CNN的模型,可以并行化执行操作,对于ATSA上的应用的话,模型多出了一个包含多个方面词的卷积层,更能体现方面词的情感极性。GCN应用在ATSA中的结构图如图5所示。
3.6. BERT-pair和BERT-single
BERT-single输入的是一个句子,对一个句子进行分类任务。
BERT-pair [16] 是应用4个任务将ABSA任务转换为句子对分类任务,分别有如下4个句子对分类任务:
QA_M:目标方面对生成的句子是一个伪句。
QA_B:会添加标签信息,每个目标词方面对会产生三个句子,选择分数最高的句子。
NLI_M:创建的辅助句子是简单的伪句。

Figure 5. Application of model GCAE for ATSA task.
图5. GCAE在ATSA任务的应用
NLI_B:辅助句子从疑问句变成了简单的伪句。
4. 实验分析
4.1. 数据集和评价指标
数据集为SemEval 2014 Task4。
国际语义评测大会(SemEval)从2014年至今,每年均会发布相应的细粒度情感分类任务,并公布数据集。不过现目前大家使用得最多的还是SemEval-2014年任务4公布的数据集,这或许是为了更加方便进行实验对比。
在评价指标方面,均采用准确率(Accuracy)和F1作为衡量的指标。
(3)
(4)
(5)
(6)
其中上述公式中TP表示正确的正样本,FP表示错误的正样本,TN表示正确的负样本,FN表示错误的负样本,Acc为模型准确率,P为查准率,R为查全率,F1为查准率和查全率的调和均值。
4.2. 实验结果

Table 1. Traditional machine learning methods
表1. 传统机器学习方法
表1为传统机器学习的方法做的情感分析的准确率,SVM是用的sklearn里的svm包,Bayes是用的sklearn下naïve_bayes里的MultionmialNB包,可看出SVM和Bayes的准确率相差无几,而基于词典和句法结构1是根据互联网上的,准确率没有SVM和Bayes高。
表2中准确度最高为TD_BERT,最低为GCAE,相关分析见实验分析。

Table 3. The results of BERT-pair
表3. BERT句子对分类任务结果
表3中,F1和准确率最高为BERT-pair-QA_B,最低为BERT-single,相关分析见实验分析。

Table 4. The results of E2E BERT
表4. E2E BERT结果
表4中,F1最高为BERT-linear,最低为BERT-crf,相关分析见实验分析。
4.3. 实验分析
实验对比表明BERT所做出的实验准确率远远高于其他预训练模型的准确率,BERT-SPC和基于BERT的模型效果相差不多,说明改BERT框架时,只能起到少许作用。
传统方法与基于神经网络的方法相比,传统方法所消耗的人力更多,有许多步骤需要人为的操作,而基于深度学习的方法,更加的方便,人为的操作更少且适合应用的场景更多,拥有更为强大的语言表征能力和特征提取能力 [17]。
LSTM只是简单地将整个句子作为其输入,无法更准确地表示方面词与其上文的联系,无法正确地表示方面词的情感极性,一个句子中可能有多个方面词,不同方面词可能有不同地情感极性,不同方面词与其上下文地联系可能不同,从而表达的语义信息不同,为了能够更准确地表示方面词地情感极性,双向LSTM应运而生,TC-LSTM和TD-LSTM也取得了比LSTM高的准确率。
因为BERT拥有更为复杂的网络结构,计算操作更多,所以BERT的准确率要比TD-LSTM和TD-LSTM高,而且BERT可以实现并行计算操作。
对于ATSA上的应用的话,GCN模型多出了一个包含多个方面词的卷积层,更能体现方面词的情感极性。因为是基于CNN的模型,所以可以并行计算,所以运行时间小于TD-LSTM。
BERT-pair、BERT E2E-ABSA和TD-BERT这三者比较可以看出在输入端做出改变的BERT-pair和TD-BERT比BERT E2E-ABSA的效果好,因为后者是在输出前加了一个E2E任务特定层进行预测,无法更能体现上下文与方面词之间的语义关系,其是没有微调BERT,而是直接在BERT后添加了下游任务。
将BERT构造成句子对任务更能体现方面词与其上下文的语义关系,所以BERT-SPC和BERT-pair比基础的BERT效果要好,而TD-BERT改变了输入的形式,一般是从CLS开始输入,而TD-BERT跳过CLS直接将方面词输入到最大池化层,增强方面词的编码,更能体现方面词的相关语义信息,所以TD-BERT的效果最好,因此最能体现方面词和上下文语义之间的关系的模型效果是最好的,效果最好的为BERT-pair和TD-BERT。
5. 结束语
细粒度情感分析与普通的情感分析相比,细粒度情感分析主要是添加了方面属性、方面类别和对于方面词的情感极性本文主要对在方面级情感分析上应用的几种模型进行了对比,发现传统的基于词典的方法和各种基于机器学习的方法所耗费的人力非常多,运用深度学习的方法可以大大减少人力的使用,在深度学习方法中,发现BERT展现出良好的准确率,基于BERT的模型也有较好的表现,但能否对这些模型进行改进还需要后续研究的推展,后期将会进一步探索如何在这些模型上进行融合改进 [18] 以获得更好的效果,在对特征进行不同的处理方面需要进行更多的研究,可以基于BERT并融合其它模型的优点进行创新,可以对BERT的输入和输出部分进行修改,对特征的提取和识别方面进行改良,对于句子中的构造成分很复杂的情况,怎么更能体现句子中多个方面词与上下文间的语义信息,成为我们要解决的问题。在数据集方面,大多用的是英文数据集,后期会在中文数据集上进行更多的实验。
NOTES
1https://github.com/hellonlp/sentiment_analysis_dict.