基于深度学习的疫情情感分析

2022-05-06 03:24祝小兰杨东晓
智能计算机与应用 2022年3期
关键词:卷积向量神经网络

张 苑, 祝小兰, 杨东晓

(青海大学 计算机技术与应用系, 西宁 810016)

0 引 言

2019 年新型冠状病毒肺炎疫情备受社会各界关注,2020 年1 月1 日~2 月20 日,疫情相关微博话题数超过200 个。 如何挖掘海量、多样化数据中的有价值信息已逐渐成为研究热点。 近年来,随着计算机技术的飞速发展和硬件的不断完善,深度学习技术得到了广泛的应用,其处理能力也得到了很大的提高,引起了许多学者的关注。 深度学习(Deep Learning)的概念最早是在2006 年,由多伦多大学的G.E.Hinton 等人提出,是一门用于学习和利用深度神经网络的机器学习技术,主流算法模型包括卷积神经网络(Convolutional Neural Networks,CNN)和循环神经网络(Recurrent Neural Networks,RNN)。 深度学习是指通过一定的训练方法,以大量的样本数据为基础,获得多层次深度网络模型结构,进而实现自动的分类识别的机器学习过程。 情感分析又称观点挖掘,是指在传递信息时,分析说话者所隐含的情绪、态度和观点,以便做出判断或评估。 就文本而言,一个句子的情感取向一般比较清晰,积极的情感代表积极的含义,如:赞美、喜悦、歌颂等;消极情绪表示消极的含义,如:贬损、悲伤、嫉妒等。

此次疫情为重大社会热点事件,对疫情期间的情感进行准确判别和可视化分析能客观反映出疫情舆情的发展动向。 因此,本文以与新冠疫情相关的微博文本内容为研究对象,使用深度学习技术对网民情感进行分析识别,为政府把握社会舆论,有效的做好预防和舆论引导,进而制定科学合理的决策提供辅助决策支持。

1 研究现状

随着深度学习的兴起和应用,很多学者开始采用深度学习技术来处理情感分类问题。 刘思琴等人提出基于双向编码器表征技术(Bidirectional Encoder Representations from Transformers,Bert)预训练语言模型与双向长短期记忆(Bidirectional Long Short Term Memory,Bi-LSTM)神经网络及注意力机制相结合的神经网络模型进行文本情感分析;谢润忠等人针对句子级文本情感分析问题,提出了基于Bert 和双通道注意力模型,实验结果表明:Bert模型能够较好的提取文本特征,有助于提高情感识别的准确度;陈珂等人使用了词语和单字粒度的特征信息,提出了一种多粒度门控卷积神经网络模型,并应用在中文微博情感分析任务中;王安君等人提出并扩展了一种基于Bert-Condition-CNN的检测模型,利用Bert 预训练模型来获取文本的句子向量,构造关系矩阵Condition 计算层来反映两个文本序列的关系特征,并使用卷积神经网络CNN 提取Condition 层的特征;陈珂等结合CNN 和特定的情感特征进行情感分析,提出了一种基于多通道卷积神经网络模型,用于中文微博情感分析;赵容梅等人使用CNN 提取文本特征,结合长短期记忆神经网络(Long Short-Term Memory,LSTM)结构来提取上下文的信息,并在模型中添加了注意力机制,建立了一个新的混合神经网络模型,实现分析文本隐含的情感;潘东行等人采用Word2vec 词嵌入技术提取文本的特征,分别研究了基于LSTM 和双向门控循环单元(Bidirectional Gated Recurrent Unit, Bi-GRU)的分类模型,并基于各种深度的分类模型研究了包含注意机制的分类模型;朱烨等人提出了一种结合注意力机制Condition 和CNN 的评论文本情感分类模型;罗春春等人提出了一个融合了双重注意力机制与Bi-LSTM 的模型,并证明在微博情感的分类效果上其优于其他模型;盖赟等人通过Word2vec 计算文本的词向量,利用LSTM 对舆情文本进行情感分析;张瑜结合了CNN 和RNN 的优势,提出了多重卷积循环网络,从而把握文本情感模式的变化。 针对商品评论的情感分析问题,苏秀芝等人应用LSTM 对文本进行情感分类;国显达等人提出了一种基于CNN-BiLSTM 的在线分析评论情感方法;史振杰等人提出了一种基于预先训练的Bert 网络和CNN 相结合的混合网络模型,该模型提取的情感特征可以捕获文本中更多的情感信息;常城扬等人对比了传统CNN 模型和RNN 模型在数据集上的分类效果,选择微调Bert 预训练模型得到分类器,再将未知的美国政客推文输入分类器,得到识别结果;黎洁君以微博上关于新疆的热门评论为样本,通过构建LSTM 模型对每条评论进行评分,分析其正负性;吴鹏等人提出了一种基于LSTM 和认知情感评价模型的网络;曹宇等人提出了一种基于Bi-GRU 的中文文本情感分析方法;缪亚林等人提出将Bi-GRU 与CNN 相结合的文本情感分析模型,通过CNN 和Bi-GRU 对文本的局部静态特征以及序列特征进行提取,然后进入(Gate Recurrent Unit,GRU)层进一步对数据降维,最后,使用Sigmoid 函数对情感进行分类。

深度学习技术在新型冠状病毒肺炎疫情情感分类方面也有诸多应用,刘洪浩等人采用Bert 模型对新冠肺炎疫情期间的微博评论进行分析,并基于词频和词云进行相关性分析,达到全面了解疫情期间社会情绪状态的目的;Müller 等人针对近期新冠疫情热点,在拥有1.6 亿条推文的大型数据集上训练出COVID-Twitter-Bert 预训练模型,该模型在完成来自社交媒体的有关新冠疫情文本的自然语言处理任务中相比其他基本模型,有10%~30%的效果提升;Yin 等人提出了一个基于词库和语法规则的情感识别方法,用以分析大量和疫情相关推文的情感随时间动态变化的规律;王楠等人提出了一种新的情绪分析框架,并结合社会网络分析法,分析了在疫情时期不同类的政务媒体在情感传播方面的特点,构建了基于LSTM 的情绪分类模型,研究用户的情感体验;刘忠宝等人利用条件随机场模型从微博新闻中提取疫情事件,以与新冠肺炎疫情相关的微博新闻及其评论为研究对象,构建与疫情相关的事件画像,进一步在情感词典的基础上引入Bi-LSTM 模型建立网民情感画像,利用基于自注意力机制的Bi-LSTM 模型分析疫情事件与网民情感之间的关系。

基于上述研究,本文基于深度学习技术分别构建了Bert 模型、Bert-CNN 模型和Bert-RCNN 模型对网民情感进行分析和识别。

2 深度神经网络模型

深度学习是机器学习研究的一个分支,其动机在于建立深度神经网络,模拟人类大脑进行分析学习,进一步实现物体的自动分类与识别。 主流的深度 神 经 网 络 模 型 有 许 多, 如 AlexNet、 VGG、GoogLeNet、ResNet 和MobileNet、LSTM 等。 本文主要研究Bert、Bert-CNN 和Bert-RCNN 3 种模型。

2.1 Bert 模型

Bert 模型拥有一套完整的自然语言处理方案,该模型具有强大的语义理解能力,包含了从训练数据集到微调指定任务的完整流程,该模型以Transformer 编码器为基础,主要内容包括基于Transformer 的模型结构、预训练和微调。

基于Transformer 的模型结构:首先,文本输入经过词嵌入层,将每个词映射到指定的维度,得到单词的词向量;其次,将词向量输入编码层,包含自注意力机制(Self-Attention) 层和前馈神经网络(Feedforward Neural Network)层。 Self-Attention 层帮助当前节点不仅仅只关注当前的词,从而能获取到上下文的语义,Self-Attention 处理数据后,把数据送给前馈神经网络,前馈神经网络的计算可以并行,得到的输出会输入到下一个编码器。

在预训练中,Bert 需完成两项任务,即随机预测遮盖词语,并判断后一句是否和前一句属于同一句子的二分类任务。 随机预测遮盖词语就是随机替换或遮蔽句子中的任何一个或多个单词,通过上下文理解,让模型预测被替换或遮蔽的部分。 此外,Bert 还需完成一个二分类任务,即判断B 句是不是A 句的下一句,能使Bert 学会如何输出一个更好的句子表达。

微调即添加相应的输出层,基于有监督的数据集训练整个模型,使模型的预测值与真实输出值之间的误差最小,进而得到最佳网络模型。 基于Bert的疫情情感分析模型,如图1 所示。

图1 基于Bert 的疫情情感分析模型Fig. 1 Epidemic sentiment analysis model based on Bert

2.2 Bert-CNN 模型

CNN 是一种带有卷积结构的神经网络,包括卷积层(Convolution)、池化层(Pooling)和全连接层(Fully Connected Neural network,FCN)。 其中,卷积层用于提取深层特征;池化层是一种降采样操作(Subsampling),主要作用是降维;全连接层实现从输入数据到分类标签集的映射,即分类操作。 此外,CNN 采用的局部感知、权值共享和下采样方式,减少了参数数量,使网络易于优化,进而提高了网络训练性能和分类效果。 本文Bert-CNN 模型由Bert 和CNN 融合而成,主要包括文本输入层、Bert 层、CNN层和输出层。

2.3 Bert-RCNN 模型

CNN 有一个缺陷,即卷积窗口的大小是静态的。 如何设置窗口的大小也是一个问题,如果设置过小,有效信息将丢失;如果设置太大,将添加许多参数。 因此,针对模型问题,Siwei Lai 等人提出了循环卷积神经网络模型(Recurrent Convolutional Neural Networks,RCNN)。 RCNN 将CNN 中的卷积层替换为带有递归结构的循环卷积层,并按照前馈连接方式构建网络结构,RCNN 能够较为均匀地利用单词的上下文信息,具有较好的文本特征提取效果。 本文中Bert 模型叠加的另外一个深度学习神经网络模型为RCNN,即Bert-RCNN 模型。

3 本文研究方法

本文基于深度学习的疫情情感分析模型,首先用文本分词及正则表达式、词性、停用词表过滤等方法进行预处理操作;其次,分别构建Bert-CNN 模型、Bert-RCNN 模型;最后,对模型进行训练和优化,得到最佳模型。

3.1 预处理

首先,使用jieb 文本进行分词;其次,用正则表达式来过滤一些原始数据中包含的一些无意义噪声,并进行词性与停用词表的过滤,本文保留了与情感表达相关的词(名词、形容词、副词、动词、助词、叹词),因为这些词对文本分类来说意义较大,使用HanLP 开源代码中的核心停用词表进行第二次过滤;最后,本文数据集中共有10 万条记录,按照18 ∶1 ∶1的比例进行数据划分。

3.2 数据输入

Bert 模型通过查询字向量表将文本中的每个字转换为一维向量作为模型输入,模型输出则是输入各字对应的融合全文语义信息后的向量表示。 此外,模型输入除了字向量,还包含另外两个部分:文本向量和位置向量。

(1)文本向量:该向量的取值在模型训练过程中自动学习,用于刻画文本的全局语义信息,并与单字或词的语义信息相融合。

(2)位置向量:由于出现在文本不同位置的字或词所携带的语义信息存在差异,因此,Bert 模型对不同位置的字或词分别附加一个不同的向量以作区分。

最后,Bert 模型将字向量、文本向量和位置向量的和作为模型输入,Bert-CNN 与Bert-RCNN 则将Bert 输出的相应的隐藏状态的完整序列作为输入。

3.3 模型构建

3.3.1 Bert-CNN 模型

首先,文本经过Bert 层以后,将Bert 输出的隐层状态的完整序列扩展一个维度;其次,采用激活函数将隐层神经元输出,接着输入到卷积层,通过卷积运算将输入矩阵映射为一个低维矩阵,并在卷积结果中,选择一个最大值作为输出,即最大池化(Max Pooling),进一步按照维度1 进行拼接;最后,输入到线性分类器(Linear),实现多分类任务,完成Bert-CNN 模型的构建。 基于Bert-CNN 的疫情情感分析模型如图2 所示。

图2 基于Bert-CNN 的疫情情感分析模型Fig. 2 Epidemic sentiment analysis model based on Bert-CNN

3.3.2 Bert-RCNN 模型

首先,将文本输入到Bert 层,并将Bert 输出的隐层状态完整序列作为RCNN 层的输入;其次,构建循环卷积神经网络层,该层是一个双向循环神经网络模型,一个单词的上下文是通过正向LSTM 和逆向LSTM 来构建的,将Bi-LSTM 获得的隐层输出和词向量拼接即可得到新的向量,采用激活函数将新的向量通过非线性操作映射到较低维度;向量中的每一个位置的值都取所有时序上的最大值,得到最终的特征向量;最后,将特征向量输入到Linear 分类器,实现多分类任务,完成Bert-RCNN模型的构建。 基于Bert-RCNN 的疫情情感分析模型如图3 所示。

图3 基于Bert-RCNN 的疫情情感分析模型Fig. 3 Epidemic sentiment analysis model based on Bert-RCNN

3.3.3 模型训练

本文中Bert 模型、Bert-CNN 模型及Bert-RCNN 模型的训练过程基本一致,具体流程如下:

(1)构建迭代器,分批将数据输入到模型,每批(batch)128 条数据,并设置学习率。

(2)训练模型参数,定义需要和不需要梯度衰减的参数,一般层标准化的偏差和权重以及模型的偏差不需要衰减,同时定义被衰减参数的衰减程度。

(3) 设置优化器,本文中采用Bert 优化器(BertAdam)。 进行迭代,先将训练数据输入到模型,在完成了一批数据的训练以后,手动将梯度清0。 此外,还需要计算损失值,同时反向传播更新梯度,在完成了上述操作之后,更新所有参数。 此处用交叉熵损失函数,其计算公式(1):

其中,为类别的数量;[,…,p] 是一个概率分布,每个元素p表示样本属于第类的概率;[,…,y]是样本标签的编码表示,当样本属于类别时y=1,否则y=0。

(4)设置模型训练终止条件,若超过500 batch效果还没提升,即校验集的损失值超过500 batch 没有下降,则结束模型训练过程。

4 实验与分析

4.1 实验环境

本文实验环境:操作系统为64 位Windows 10系统,Anaconda 版本为2019-10,Python 版本为3.7.4,Jieba 版本为0.42.1,Pytorch 版本为1.5。 内存8 G,硬盘由128 G 固态硬盘和1 T 机械硬盘组合而成,CPU 为因特尔酷睿i5-8300H 四核八线程处理器,显卡为英伟达GTX1050TI,4 G 独显。

4.2 实验数据集

数据集来源于官方竞赛平台(DataFountain),以与“新冠肺炎”有关的230 个主题词为数据采集依据,共爬取了2020 年1 月1 日~2020 年2 月20 日期间的100 万条微博数据,并对其中的10 万条进行手工标注,分为3 类:1(正向)、0(中性)和-1(负向)。 数据集的词云图如图4 所示,从词云可以看到,舆论关注的重点是新型冠状病毒及其相关内容,例如:疫情防控、冠状病毒感染、确诊病例等,并且也比较关心武汉的情况,会给武汉加油,给中国打气。

图4 数据集词云图Fig. 4 The word cloud map of data set

4.3 实验与分析

4.3.1 评价指标

本文文本分类模型的评价指标采用准确率() 和1 值(1) 两 个 指 标。代表分类器对整个样本判断正确的比重,精确率() 指被分类器判定正例中的正样本的比重,召回率() 指被预测为正例的占总的正例的比重,1值常用来最终评价分类模型的好坏,公式(2)(3):

其中,表示情感预测为正类且正确的数量;表示情感预测为负类且正确的数量;表示负类错误预测为正类的数量;表示正类错误预测为负类数量。

4.3.2 本文方法实验结果

本文通过实验进行对比分析,将需要衰减的参数衰减度值设置为0.01,不需要衰减的参数则设置为0.0。采用的和两种激活函数。函数的定义式(4),函数的定义式(5) 如下:

其中,是输入值;是具有0 均值和单位方差的高斯随机变量;(≤)是小于或等于给定值的概率;() 是(0,1) 时的分布函数。

此外,本文采用1和准确率指标评估模型的效果,进一步通过实验对比分析,寻找最优学习率参数值。 Bert-CNN 模型、Bert-RCNN 模型在测试集上的最优表现及其最佳学习率、1和准确率见表1,直观对比结果如图5 所示。

表1 本文模型在测试集上的最优表现Tab. 1 The optimal performance of the Proposed models on the test set

图5 本文模型在测试集上的表现对比图Fig. 5 The optimal performance comparison chart of the proposed models on test set

如图5 所示,当激活函数为时,模型Bert-RCNN和Bert-CNN 的效果最佳,最优学习率分别是0.000 2和0.000 3,Bert-RCNN 模型效果最好,1值为0.702,准确率为73.56%。 部分文本分词结果见表2。

4.3.3 与其他模型的对比

为了进一步验证本文两种模型的有效性,在相同的实验环境和评价指标条件下,将其与LSTM、Bi-LSTM、GRU、Bert 模型的实验效果进行了对比,对比结果见表3,直观对比如图6 所示。

表2 部分文本分词结果Tab. 2 Part of the text segmentation result

表3 不同模型在测试集上的分类效果Tab. 3 The performance of some models on the test set

图6 不同模型在测试集上的分类效果对比图Fig. 6 Comparison of the performance of some models on the test set

可以发现,Bert-RCNN 模型的分类效果最佳,准确率为73.56%,1为0.702;Bert-CNN 模型的表现与Bert-RCNN 模型接近,准确率达到了72.95%,1达到了0.701;本文的Bert-CNN模型和Bert-RCNN 模型的分类识别效果明显优于其他单个模型。

如果仅对比单个模型, Bert 模型的分类效果也是最佳的。 首先,Bert 模型拥有更深的层次,放弃了循环神经网络架构,采用注意力机制来解决长期依赖问题,并且叠加了12 层自注意力机制层;另一方面,Bert 模型在预训练中完成随机预测遮盖词语和二分类任务,使得Bert 能输出更好的句子表达。

本文在Bert 模型的基础上分别叠加了CNN 和RCNN 网络,也即Bert-CNN 模型和Bert-CNN 模型。 Bert 模型叠加了CNN 和RCNN 模型以后,分类效果对比单个Bert 模型有了一定的提升,是因为CNN 和RCNN 本身就是文本分类模型,模型叠加以后,能够学到Bert 模型未能学习到的内容,从而提高了分类效果。 而叠加RCNN 比CNN 模型表现更好,因为RCNN 模型结合了Bi-LSTM 和CNN 来实现文本分类任务。

5 结束语

本文以与新型冠状病毒肺炎疫情相关的微博内容为研究对象,首先,采用文本分词、正则表达式、词性和停用词表过滤等方法进行预处理操作;其次,基于深度学习分别构建了Bert-CNN 模型和Bert-RCNN 模型,对网民情感进行分析和识别;最后,实验验证和分析,得到了较好的识别效果,为政府进一步做好疫情预防控制工作的宣传、舆论引导、决策的制定提供辅助决策支持。

猜你喜欢
卷积向量神经网络
基于全卷积神经网络的猪背膘厚快速准确测定
基于人工智能LSTM循环神经网络的学习成绩预测
向量的分解
基于图像处理与卷积神经网络的零件识别
MIV-PSO-BP神经网络用户热负荷预测
基于深度卷积网络与空洞卷积融合的人群计数
三次样条和二次删除相辅助的WASD神经网络与日本人口预测
卷积神经网络概述
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线