基于BERT 和卷积神经网络的网络文本情感分析∗
2023-10-20李永杰
代 杨 李永杰
(海军工程大学电子工程学院 武汉 430000)
1引言
在移动互联网飞速发展的大数据时代,不同用户在各大社交平台发表了海量的评论,而这些评论的下面,又可以不断地再次评论。这些信息虽然是碎片化的,但是极具即时性,并且不断裂变传播,导致数据量爆炸增长。在社交网站不断野蛮生长的评论包含了广大网民的情绪信息,它们是情感分析的重要材料。网络上的许多不当言论或恶性事件常会引发各种舆论风波,甚至蔓延到现实生活中,严重影响社会的安定团结。自新冠疫情以来,门户网站成为舆论的战场。“俄乌冲突”[1]爆发后,中文互联网的舆论斗争更加激烈。对主流媒体的网络文本进行情感分析可以为重大舆情事件和突发公共事件的管理提供重要参考,对网络空间的良性发展具有重大的意义[2]。
文本情感分析是指从文字中提取出人们的情绪倾向或特征[3]。目前情感分析的主要方法主要有三种[4]。一是基于情感词典的方法。该方法需要建立情感词典,然后根据词典对文本内容分析,计算其情感倾向。二是基于统计的机器学习方法。该方法通过对标注的语料进行统计学习,把分类模型的选择和分类特征提取作为重点关注对象。常见的有支持向量机(SVM)、朴素贝叶斯(NB)、和逻辑回归等。这种方法需要人工设定特征、人力成本和时间成本非常高,倘若数据集变化,其特征也会变化,原先选取的特征将会时效,可拓展性差。三是基于深度学习的方法。该方法是目前最热门、效果最佳的方法。该方法不需要人工专门提取强语义表达特征,它利用神经网络模型自我学习,提取文本句子中的内在语义和特征。常用的神经网络模型有卷积神经网络(CNN)、循环神经网络(RNN)[5]、长短期记忆模型(LSTM)、门控循环单元(GRU)、注意力机制(Attention)等。
利用深度学习对文本进行情感分析的本质是利用神经网络对文本进行分类。针对文本情感分析,学者们提出各种方法改进。Bowen 等[6]提出了一种基于中文门户网站评论的Word2Vec 模型,专门针对类似微博这种语义稀疏、文本简短、口语化的场景。避免了维度灾难以提高分类器培训的效率。并与长文本的模型对比结果表明该模型具有更好的有效性和准确性。该模型可以更好地理解单词的潜在新含义并找到更多合适的同义词。这些模型可以作为NLP 任务的许多研究和应用的稳固依据。Hu等[7]分别将CNN和RNN两种神经网络模型与Word2Vec 词嵌入技术组合,构建出一种基于中文文本的TextCNN 和TextRNN 分类模型。但是泛化能力不强,不适用与情感分类。Xu等[8]通过构造包含基本情感词、领域情感词和多义情感词的扩展情绪词典来增加情感分析的准确性,但是该模型只针对特定字段,严重依赖人工设计规则,耗费资源多,且只有二分类,细腻度不够。Chen 等[9]将方面级情感分类和方面意见的识别作为联合文本情感分类任务,同时从情绪知识吸收外部知识来增强情绪识别的能力。这种联合模型大幅度减少了对数据标记的依赖,同时提高了模型情感分析的性能。Xiao 等[10]提出一种基于控制块的中文情感分类模型,用来分析情感是否为积极或消极。该模型还考虑了对长文本和短文本的依赖关系。利用不同的卷积核将短语分割后连接提高了情感分析的准确率。Zhou 等[11]考虑到句子的不同组件有不同程度的影响最终的文本情感分类,提出了一种基于LSTM 改进的BiLSTM 模型,并引入自注意力机制,相较于传统的LSTM 模型,进一步提高了情感分析模型的稳定性和有效性。提取我们需要的信息从文本的不同部分。实验专注于嵌入层的性能,并试图确定最优嵌入算法。张玉环等[12]使用LSTM 和GRU 构建文本情感分类模型,以便该模型可以获得较高的准确性。
本文针对传统情感分析方法不能充分提取文本特征、文本预训练不准确等问题,提出一种基于BERT和卷积神经网络相结合的改进模型。
2 BERT-CNN情感分析模型
2.1 BERT模型
BERT(Bidirectional Encoder Representation from Transformers)[13]是一种双向表征预训练语言模型,源自Transformer模型[14]。Transformer是谷歌在2017 年提出的seq2seq 模型,它包含编码器encoder 和decoder 两部分。BERT 只包含Transformer的encoder部分,其结构如图1所示。
图1 Transformer的encoder结构图
标准的语言模型都是单向的,但是BERT 的编码器是双向的。BERT模型为了获得良好双向语言特征和模型的普遍适应性,增加了两种预训练任务,分别是遮蔽语言模型(MLM,Masked Language Model)和下一句子预测(NSP,Next Sentence Prediction)。在MLM 任务中,BERT在每一对句子中随机选择15%位置的词元进行遮盖动作。其中,80%直接替换为
利用BERT 模型进行情感分析属于该模型的一个下游任务,一般需要利用预训练BERT 模型生成文本的向量表示,然后再采用相关的分类算法进行情感分类。
2.2 CNN模型
CNN 即卷积神经网络(Convolutional Neural Networks),由卷积层和池化层组成。卷积层负责提取特征,池化层可以提高模型表达能力。CNN最早用于图像领域,直到出现TextCNN 模型。TextCNN利用不同大小的kernel来提取句子中的关键信息,从而能够更好地捕捉局部相关性。卷积层的文本特征表示公式如下所示。
i表示第i个特征,ci表示由第i个特征值生成的特征向量。f为非线性激活函数,b为偏置。W表示卷积核大小,h表示滑动窗口大小,Xi:i+h-1表示矩阵X由第i行到第i+h-1 行生成的特征矩阵。
所有特征向量组合成一个特征图,生成最后的特征向量c,如下所示。
池化层选择最大池化的方法,即只保留每个池化核中的权重最大的特征值,其余舍弃。公式如下所示。
2.3 BERT-CNN模型
BERT-CNN模型由两个主要部分组成,第一部分为BERT 基础模型,另一部分是CNN 模型。BERT-CNN模型如图2所示。
图2 BERT-CNN模型结构图
因为中文的词语含意复杂,不同的词语组合起来含意不断变化,利用四个不同大小的卷积核来划分不同尺度下的词语或短句。文本通过BERT 层获得矢量表示,然后每个卷积核将BERT 的最后的输出作为通道,对其进行卷积运算,再通过ReLU激活层和最大池化层。最后将它们串联拍平,通过Dense层全连接后输出最终的情感分类结果。
3 实验及结果分析
3.1 试验数据集
本实验选取的数据集为自建的微博文本数据集,该数据集收集了共计21173 条微博文本数据,将这些数据集按照7:2:1的比例分为训练集14821条、验证集4446条、测试集1906条。实验选用七种分类的情感分析,将所有文本分为Fear、Disgust、Optimism、Surprise、Gratitude、Sadness、Anger这七种情感类型。
实验数据集样例如表1所示。
表1 试验数据及样例
3.2 评价指标
本文研究的情感分析问题本质是一种情感的分类,分类问题常用的评价指标为准确率(Accuracy)、精准率(Precision)、召回率(Recall)、以及F1值。情感分类预测结果如表2所示。
表2 分类结果混淆矩阵
上式中,Accuracy 表示预测结果正确的样本占所有预测样本的比例;Precision 表示预测结果正确且为正例的样本占所有预测为正例样本的比例;Recall 表示预测结果正确且为正例的样本占所有实际为正例样本的比例;F1是Precision和Recall的综合指标,其取值范围为[0,1],F1 越接近1,反映分类的性能越好。当Precision=Recall=1 时,F1 可以达到最大值1 的理想情况,一般情况下,当Precision 偏高时,Recall 常常偏低。反之,Recall 偏高时,Precision 则偏低,所以F1 可以全面综合地反映算法分类的性能,是情感分析的重要评价指标。
3.3 相关对比模型
将BERT-CNN 模型将与BERT 模型和如下相关模型进行对比实验。
TextRNN:该模型将词嵌入之后输入到双向LSTM 中,然后将最后一位的输入作为全连接层的输入最后经过softmax进行分类。
TextRNN-Att:该模型在TextRNN 的基础上加入了注意力机制。
TextRCNN:该模型在词嵌入的基础上加上了上下文环境作为新的词嵌入表示。左右两侧的内容是通过前向和后向两层RNN 的中间层输出得到的。
FastText:该模型从word2vec 中衍生出来,使用n-gram 特征代替单个词的特征。该模型共有三层,输入层对整个文本的n-gram 特征提取序列信息计算词向量,隐藏层对特征求和平均,最后输出层输出分类的结果。
TextCNN[15]:该模型通过以为卷积获取句子的n-gram 特征表示,随时用多个大小过滤器对嵌入的单词向量执行卷积。将卷积层的结果最大池化为一个长特征向量,正则化后输出分类结果。
3.4 实验环境与参数设置
本实验使用Google 开源的BERT 的base 版,其隐藏层为768 层。本实验选取HuggingFace 的开源预训练模型“bert-base-chinese”。实验设置当迭代数超过1000 且batch 效果还没提升时提前结束训练。
实验使用的电脑系统为Windows10、处理器为AMD 3600、电脑内存为16GB、实验的模型都使用PyTorch 深度学习框架,使用cu101 驱动和一块1660显卡。
BERT-CNN模型参数设置如表3所示。
表3 实验参数设置
3.5 实验结果与分析
在本文数据集上选择TextRCNN、FastText、TextCNN、TextRNN-Att、TextRNN 和BERT 模型作为对比实验模型。对比结果如图3所示。
图3 不同模型准确率变化
从上图可以看出,本文所提出的BERT-CNN模型准确率高、效果最佳。BERT-CNN 模型在BERT 模型的基础上提升了0.58%,且相较于TextRCNN、FastText、TextCNN、TextRNN-Att、TextRNN模型,准确率分别提高了10.18%、10.07%、7.92%、5.35%、3.93%。
TextRCNN-Att 模型准确率略高于TextRCNN模型,说明注意力机制对解决特征稀疏问题有一定帮助。TextRCNN 模型和TextRCNN-Attention 模型相较于TextCNN 模型的准确率较低,说明CNN在该数据集上的文本特征提取能力较RNN 强。BERT 模型和BERT-CNN 模型比其他所有传统模型的准确率都高,说明BERT 模型的语言表征能力和特征提取能力遥遥领先于传统模型。基于BERT模型改进的BERT-CNN 模型效果最好,说明CNN进一步提升了BERT的情感特征提取能力。
BERT 模型和BERT-CNN 模型在不同评价指标上的对比如表4所示。
表4 BERT和BERT-CNN实验结果对比
4 结语
本文在解决门户网站评论的文本情感分析问题中提出了一种基于BERT 模型改进的BERT-CNN 模型。实验表明,BERT 算法在微博文本数据集上比传统的TextRCNN、FastText、TextCNN、TextRNN-Att、TextRNN 算法有大幅度提升,而本文所提出的BERT-CNN 模型相较于BERT模型在Accuracy、precision、Recall和F1 值上也均有所提高。本文对于网络文本情感分析的研究有一定参考意义。
本文所提模型相较于BERT 模型提升幅度较小而且目前BERT 预训练模型所占用的显存空间太大,训练时间仍然较长,消耗资源过多。后续考虑缩略为更加轻便的预训练模型,并且考虑融合知识图谱等方法改进算法以提高准确率。