1. 引言
随着互联网和社交媒体的快速发展,网络舆情已经成为了公众表达意见和情感的重要渠道。微博、贴吧等社交平台上每天都有大量的用户生成内容,这些内容不仅反映了公众的情感和观点,还对社会事件和政策制定产生了深远影响。鉴于网络舆情的重要性,对其进行科学的分析和监控显得尤为必要。通过分析社交媒体上的舆情数据,可以及时了解公众的情感和意见,有助于社会管理、政策制定和风险预警。
传统舆情分析多依赖于统计和定量分析,这些方法虽然有助于理解大众态度和数量化趋势,但常常无法捕捉文本背后更深层次的情感、观点和主题。情感分析和文本分析则通过深入挖掘文本数据,能够识别和理解人们的情绪表达、态度倾向以及对特定话题的看法。
常用的文本情感分析方法有三种,最初是基于情感词典的方法,该方法是用人工或机器的方式构建情感词典,但是依赖专家系统,不同人物需要构建专门的系统规则,费时费力且准确率不高。后来出现了机器学习方法,包括朴素贝叶斯、最大熵、支持向量机等算法[1]。这种方法在分类效果上有所进步,但泛化能力不足。目前使用较多的是深度学习方法,深度学习作为机器学习的一个重要分支,是一种使用具有复杂结构的多个处理层来实现数据高级抽象的方法[2]。在深度学习领域有多种情感分析模型,包括卷积神经网络(convolution neural network, CNN) [3]、循环神经网络(recurrent neural network, RNN)等,为解决RNN梯度消失等问题,出现了长短时记忆网络(long short-term memory, LSTM) [4]和门控循环单元(gate recurrent unit, GRU)。但仅使用这些经典神经网络模型不能充分地提取文本语义特征,许多学者通过多模型融合来提升模型的性能和精确性。有的学者,提出了一种将潜在狄利克雷分配(Latent Dirichlet Allocation, LDA)文本表示与卷积神经网络(Convolutional Neural Network, CNN)相结合的文本情感分析方法[5]。使用LDA主题模型训练短文本的潜在语义空间表示(主题分布),并使用带门控循环单元(Gated Recurrent Unit, GRU)的CNN作为分类器,GRU-CNN加强了词与词之间、文本与文本之间的关系,从而实现了高精度的文本分类。有的学者则提出了基于Word2Vec与堆叠双向长短时记忆(Stacked Bi-LSTM)的模型,利用Stacked Bi-LSTM模型通过堆叠多个双向LSTM层,对序列数据进行深度特征提取的特点,提高了特征提取的效果[6]。
近年来,深度学习作为文本情感分析的重要技术,广泛用于舆情分析,并取得显著成果。Wang, Wenyi针对传统舆情分析模型难以准确分析各种格式的校园在线舆情文本信息的问题,提出了一种基于深度学习的在线舆情分析方法,将BILSTM和ARIMA模型相结合,使用BILSTM情感分类模型对校园在线舆情文本数据进行预测和分析,进而将ARIMA模型的差分和时间预处理与BILSTM相结合,完成了对在线舆情趋势的预测[7]。有些学者提出了一种结合卷积神经网络和长短期记忆(CNN-LSTM)深度网络,用于对Twitter数据集进行情感分析[8]。也有学者通过Bi-LSTM提取微博词级和句子级特征,结合双层注意力机制学习各级特征权重分布,以递进顺序综合局部情感得到整条微博的情感分类,提升了情感分析性能[9]。
近年来,随着预训练语言模型的兴起,情感分析领域也迎来了新的突破。预训练语言模型如BERT (Bidirectional Encoder Representations from Transformers),通过大规模无监督预训练学习语言表示,能够在情感分析任务中更好地捕捉上下文信息、语境和情感的复杂变化,在多个自然语言处理任务中展现出了优异的性能[10]。RoBERTa (Robustly optimized BERT approach)是在BERT (Bidirectional Encoder Representations from Transformers)模型的基础上进行改进和优化的版本。RoBERTa使用了更大规模的文本数据集进行预训练,比BERT使用的数据更多,预训练任务也更加多样化和复杂化,并引入了一些新的优化技术,如动态掩码、更长的训练时间和更大的批量大小,以改进模型的性能和泛化能力,在多个自然语言处理任务中展示了比BERT更好的性能。
然而单一使用一种模型仍面临着提取文本深层语义特征不足、精确性差的问题。近年来基于BERT和RoBERTa等预训练模型的文本情感分析研究蓬勃发展。这些模型通过大规模数据的自动学习和特征提取,实现了更准确的情感分析。杨俊哲等提出了一种结合ALBERT、LDA和K-means的LK-ALBERT模型,用于对中文文本的情感极性分类[11]。该模型的主题特征提取是利用LDA结合K-means从文本中抽取主题信息并将其表示为主题向量。有的学者针对句子语义的隐藏情感捕捉困难问题,提出了基于RoBERTa融合双向长短期记忆网络及注意力机制的RBLA模型[12]。此模型使用BiLSTM对隐式情感文本的上下文进行特征提取,弥补了预训练模型遗忘上下文信息的缺陷,同时引入Attention机制,对隐式情感文本中不同分类的隐式情感词进行权重计算,避免了重要语义信息的丢失,实现了对文本深层次特征的提取。
许多研究已广泛探讨了利用预训练模型进行舆情分析的方法。韩坤等提出了一种融合BERT多层次特征的文本分类模型(BERT-MLFF-TextCNN),用于对抖音短视频平台的评论文本进行情感分析[13]。该方法首先利用BERT预训练模型对输入文本进行编码,并提取各编码层的语义特征向量进行融合,然后融入自注意力机制突出关键特征,实现特征的有效利用。
上述研究中仍存在情感提取不够准确,情感细微差异捕捉不够敏感等局限性。基于此,本文提出了一种基于RoBERTa的融合模型——RoBERTa-BiLSTM-multihead Attention (RBMA)模型。
2. RBMA模型
为解决单一使用一种模型仍面临着提取文本深层语义特征不足、精确性差的问题,本文提出了基于RoBERTa的融合模型。首先使用RoBERTa预训练模型来捕获评论中字词的语义特征,进而使用双向长短期记忆网络(BiLSTM)来学习句子的正反向语义信息,以捕获句子内部的依赖关系,从而更好地理解文本的上下文,实现对文本深层次特征的提取。最终使用注意力机制进行情感权重计算,得出情感分析的结果。
RBMA模型包括输入层、预训练模型层、BiLSTM层、Attention层、全连接层和输出层,其模型结构如图1所示。
Figure 1. RBMA model
图1. RBMA模型
输入层:
输入层的主要作用是将原始文本数据转换为模型可以处理的数值化表示形式。这一过程首先通过加载和预处理数据集,包括文件编码检测和标签处理,确保数据的准备工作完备。然后,文本数据经过分词和编码转换,生成每个样本的标记序列(token IDs)和注意力掩码(attention mask)。最终,通过数据集对象的设计,将编码后的数据和对应的标签打包成模型能够接受的字典形式,以便于后续模型的训练和验证过程。
RoBERTa层:
RoBERTa层扮演了将输入文本转换为高维度语义表示的角色。它通过预训练模型学习到的语言模式和语义信息,将输入文本编码为密集的向量表示。这些向量不仅保留了单词级别的语义信息,还能够捕捉句子级别的上下文信息。RoBERTa层的输出,作为后续模型结构(双向LSTM和自注意力层)的输入,从而为模型提供了丰富的语义特征,支持模型在情感分析等任务中准确地理解和分类文本。在本模型中:
在输入阶段:RoBERTa层接收经过BertTokenizer处理的输入文本数据,包括文本的token IDs和attention mask。
编码阶段:通过调用预训练的RoBERTa模型(BertModel.from_pretrained),将输入的token IDs和attention mask传入RoBERTa模型中。RoBERTa模型内部由多层Transformer编码器组成,每层都有多头自注意力机制和前馈神经网络,用于逐层地编码输入文本的信息。
输出阶段:RoBERTa层的输出是最后一个隐藏状态(last_hidden_state),它包含了经过多层Transformer处理后的每个token的语义表示。这些表示保留了词汇在不同语境下的语义信息和上下文关系。
BiLSTM层:
BiLSTM层通过同时考虑当前输入序列的前向和后向信息,有效地捕捉到每个词语在其上下文中的语义关系和长程依赖。这种双向结构使得模型能够更全面地理解句子的语义组织和内部结构,进而提高情感分析等自然语言处理任务的准确性和表现力。
注意力机制层:
注意力机制是一种能够学习输入序列内各个元素之间关系的机制。对于输入序列中的每个元素,注意力机制可以根据其与序列中其他元素的关系,动态地分配权重。在Transformer模型中,自注意力层被广泛应用,它的核心思想是通过计算查询(query)、键(key)和值(value)的相似度来决定每个元素对其他元素的贡献程度,从而实现信息的加权整合。
在本模型中注意力层的作用是在BiLSTM编码器输出的文本表示基础上,通过引入多头注意力机制来建模全局依赖关系。自注意力机制允许模型在不同位置的词语之间建立权重不同的关联,从而更精确地捕捉长距离依赖和语义关系。而多头注意力机制允许模型同时从多个表征子空间(头)学习特征表示,相较于传统的自注意力,多头注意力提高了模型对输入序列中不同位置信息的感知能力。
池化层:
通过对Attention层输出的平均池化(mean pooling)来得到一个固定长度的特征表示从而使得模型可以处理不同长度的输入序列。
全连接层:
全连接层在学到的特征和最终决策之间起到了桥梁作用,使模型能够捕捉全局上下文并通过线性变换和非线性激活,将模型从提取的特征空间转换为适合用于分类预测的特征表示。
本模型中全连接层是一个线性层,它将输入的固定长度特征向量转换为输出类别数量相同的向量。
输出层:
在本模型中输出层(self.output_layer)的作用是将经过全连接层处理后的特征表示,通过softmax函数转换为每个类别的概率分布。这个过程使模型能够生成对输入文本分类的预测结果,并计算与真实标签的损失,用于训练和优化模型。
3. 实验结果与分析
3.1. 数据集设置
本文中使用的数据集来源为CSDN网站。该数据集涵盖了微博中多个话题下的评论内容,每条评论都经过了情感标注,标记为积极或消极。这些评论的标记是基于其对话题或事件的情感倾向进行分类,旨在帮助分析这些话题在公众中引发的情感反应。通过这些标注数据,我们可以训练和评估情感分析模型的性能,从而深入理解不同话题下公众的情感表达和态度。
数据集中的标签列(label)通过映射将文本形式(如“积极”和“消极”)转换为数值形式(1和0),以便模型能够处理和训练。接着,数据集被随机分割为训练集和验证集,这两部分数据将用于模型的训练和性能评估。最后,中文文本通过BertTokenizer进行编码和填充,以满足RoBERTa模型的输入要求。
在优化器中增加了weight_decay参数来实现L2正则化,并在模型中添加了Dropout层,以减少过拟合现象。训练和验证过程中,还添加了早停法来监控验证集的性能,并在验证损失不再降低时停止训练。
3.2. 参数设置
为了在情感分析上取得更准确的结果,本实验进行的参数设置如表1所示。
Table 1. Parameter list
表1. 参数表
参数 |
设置 |
Batch Size |
32 |
隐藏单元数 |
768 |
Epoch |
10 |
LR |
1e-5 |
注意力头数 |
8 |
dropout |
0.5 |
3.3. 评价方法
本实验选用准确率、精确率、召回率和F1分数作为模型的评价指标。其中TP (True Positives):真正例,模型正确预测为正类的样本数量。TN (True Negatives):真负例,模型正确预测为负类的样本数量。FP (False Positives):假正例。模型错误地将负类样本预测为正类的数量。FN (False Negatives):假负例。模型错误地将正类样本预测为负类的数量。
准确率(Accuracy):
准确率衡量了模型预测正确的样本比例,是最直观的评价指标之一。它对于所有类别的预测表现都有一定程度的反映。
精确率(Precision):
精确率衡量了模型在预测为正类的样本中,真正为正类的比例。它关注的是模型预测为正类的准确性。
召回率(Recall):
召回率衡量了模型能够正确预测出的正类样本比例。它关注的是模型对正类样本的识别能力。
F1分数(F1 Score):
F1分数是精确率和召回率的调和平均值,综合考虑了模型的准确性和召回能力。在不平衡类别的数据集中特别有用。
3.4. 对比模型
出于验证rbma模型准确性的目的,本文将rbma模型与以下5种现有的典型模型进行了对比实验。
LSTM:一种具有长期依赖记忆能力的递归神经网络,擅长处理和预测时间序列数据。
BiLSTM-CRF:利用双向LSTM捕捉上下文信息,并通过条件随机场(CRF)优化序列标注任务的标签序列输出。
BERT:使用双向Transformer编码器生成上下文相关的词嵌入,适用于各种自然语言处理任务的预训练模型。
BERT-CRF:在BERT生成的上下文嵌入基础上应用条件随机场,以优化序列标注任务的标签序列输出。
RoBERTa:作为BERT的改进版,RoBERTa通过去除BERT的Next Sentence Prediction任务并增加训练数据和训练时间,提升了预训练模型的性能。
实验结果与分析
为了rbma模型的准确性,本文将rbma模型与以下5种现有的典型模型进行了对比实验。测试了它们的准确率、精确率、召回率和F1值,其实验结果如表2所示。
Table 2. Comparison table of experimental results
表2. 实验结果对比表
模型名称 |
准确率 |
精确率 |
召回率 |
F1值 |
LSTM |
0.813 |
0.822 |
0.806 |
0.809 |
BiLSTM-CRF |
0.835 |
0.828 |
0.814 |
0.824 |
BERT |
0.917 |
0.923 |
0.914 |
0.915 |
BERT-CRF |
0.924 |
0.931 |
0.918 |
0.921 |
RoBERTa |
0.935 |
0.933 |
0.924 |
0.929 |
RBMA |
0.952 |
0.962 |
0.947 |
0.949 |
从表2中可以看出RBMA模型与LSTM、BiLSTM-CRF、BERT、BERT-CRF、RoBERTa中表现最好的RoBERTa模型相比,在准确率上提升了1.7%,在精确率上提升了2.9%,在召回率上提升了2.3%,在F1值上提升了2%,这说明RBMA模型不仅在识别情感极性的准确性上得到了改善,还在平衡精确率和召回率的表现上更加优异。从图2可以直观地看到,RBMA模型在各项指标上明显优于其他模型,特别是在精确率、召回率和F1值上,提升幅度较为突出。
Figure 2. Comparison chart of experimental results
图2. 实验结果对比图
通过结合RoBERTa模型的强大预训练语义表示、BiLSTM对长短期依赖关系的捕捉,以及多头注意力机制对重要情感信息的权重分配,RBMA模型能够更全面地获取文本的深层语义结构,多层次特征提取上的能力也得到提升。这使其在处理复杂情感转变和上下文依赖性较强的文本时,表现更加稳健和灵活。
3.5. 实例分析
为进一步验证rbma模型的准确性与实用性,本文使用网络爬虫对微博“33岁女性饿死在出租屋”话题下爬取2248条评论,下图为相关话题评论数量时序图。
Figure 3. Timing chart of the number of comments
图3. 评论数量时序图
从图3可以看出,事件开始时,评论数量增长迅速,随后众多媒体发表相关文章,引发评论数量到达高峰,随后在八月二十一日官方出面辟谣,热度下降,评论数量走低,事件影响逐渐消减。
使用python中的Jieba对数据进行预处理,进而使用rbma模型对处理后的文本进行情感分析。以时间戳为索引,统计每天文本的正向情感评论数量与负向情感评论数量,图为情感倾向变化时序图。可以看出舆情事件引起了强烈的公众情感波动。
Figure 4. Timing chart of the number of comments
图4. 情感倾向变化时序图
从图4中可以看出,随着事件热度的上升,负向情感评论迅速上升并达到峰值,而正向情感评论虽然也在上升,但与负向评论相比数量却非常稀少,并最终一同随热度下降而逐渐消减。
这一分析验证了RBMA模型在处理真实世界情感分析任务中的有效性,尤其是在应对突发事件的舆情分析中表现出色。通过分析情感评论的数量和比值变化,模型成功捕捉了公众情感的波动情况,也发现了进行辟谣等官方正向引导对舆情发展的有力作用,为舆情管理提供了有力支持。然而,分析过程中也发现,当涉及极端情感转变的文本时,模型的精准度仍有改进空间。未来可以考虑通过增强数据预处理和引入更多上下文信息,进一步提升模型在复杂情感分析场景中的表现。
4. 结论
本文提出的RoBERTa-BiLSTM-Multihead Attention (RBMA)模型在网络舆情情感分析中展现了较好的性能。通过结合RoBERTa预训练模型、BiLSTM网络以及多头注意力机制,RBMA模型能够有效地捕捉文本中的深层语义特征,从而提高情感分析的准确性和精确度。
实验结果表明,RBMA模型在不同数据集上的表现均优于传统的情感分析方法,相比单一模型,RBMA模型能够更全面地考虑上下文信息,避免了传统方法在处理长序列数据时易出现的梯度消失和信息丢失问题。
尽管如此,RBMA模型也存在一定的局限性。首先,模型的训练过程相对复杂,且对计算资源的需求较高,可能在大规模实时舆情监控中面临一定挑战。其次,由于模型复杂度较高,存在一定过拟合现象。最后尽管模型在多数情境下表现良好,但在处理具有强烈情感转变的文本时,模型的准确性仍有提升空间。
未来的研究可以考虑进一步优化模型结构,降低计算复杂度,并结合更为丰富的上下文信息以提升情感识别的细腻度。此外,还可以将RBMA模型应用于其他类型的文本数据分析,如产品评论、新闻分析等,以验证其通用性和扩展性。
基金项目
教育部人文社会科学研究青年基金项目(22YJC840038)。
NOTES
*通讯作者。