基于RNN-LSTM新冠肺炎疫情下的微博舆情分析

2022-12-16 09:43任伟建刘圆圆康朝海
吉林大学学报(信息科学版) 2022年4期
关键词:神经网络情感模型

任伟建,刘圆圆,计 妍,康朝海

(东北石油大学 a.电气信息工程学院;b.黑龙江省网络化与智能控制重点实验室,黑龙江 大庆 163318)

0 引 言

随着社交媒体的快速发展,以微博为载体的新闻传播途径也受到了越来越多媒体人的青睐。2020年初发生新冠肺炎疫情后,以微博为代表的社交媒体实时记录疫情蔓延情况和各地战役情况的新闻报道,其在宣传防疫措施等方面发挥了重要作用。各级政府纷纷选择注册官方微博账号,及时发布疫情相关信息,网民在评论区发表个人的看法,表达个人的观点和态度[1]。由于微博网民人数众多,时效性强,可代表大多数人的观点。笔者针对新冠肺炎疫情发生以来的相关微博话题以及评论进行情感分析,深度分析处于疫情不同期间,不同地点,网民们的情绪变化。

情感分析又称情感倾向性分析或意见挖掘,是从用户建议中提取信息的过程,通过文本、音频、图像获取用户的看法、态度以及情感等[2]。目前,情感分析方法可分两大类:基于情感词典与规则的方法和基于机器学习的方法。

基于情感词典和规则的方法是利用构建的情感词典获取文本中与情感相关词的加权情感值,并通过该值确定文本的情感倾向。中文情感词典应用的比较广泛的有知网词典HowNet、台湾大学的NTUSD(National Taiwan University School of Dentistry)和大连理工大学的中文情感词汇本体库[3]等。在数据缺乏的情况下,基于情感词典与规则的方法可取得较好的分类结果[4],但情感词典也存在一定的局限性,针对不同领域需要构建不同的情感词典,对不同领域,情感分类效果也有很大差距。

基于机器学习的方法,通过训练带有标签的数据,得到一个情感分类器,再预测测试集中句子的情感倾向,常用的机器学习算法有决策树、朴素贝叶斯和支持向量机[5]等。李锐等[6]对公开的微博情感分析语料对词向量进行加权,利用SVM(Support Vector Machine)模型进行训练,得到情感极性分类评估指标F1为89.35%。Britzolakis等[7]利用多个机器学习算法对推特上的新闻进行情感分析,都达到了较好的分类效果。与基于情感词典与规则的方法相比,机器学习的方法更简单,效果更好,但机器学习会忽略文本之间的相关性,分类效果一般。深度学习是机器学习的一种,含有多个隐藏层的多层感知器就是一种深度学习结构。Collobert等[8]将卷积神经网络引入了自然语言处理中的许多任务中,并证明了其提出的模型在各项任务中都获得了很好的表现;但在传统CNN(Convolation Neural Networks)深度模型中,卷积滤波器的词容量有限,导致其无法捕捉到句子中的词语间的长距离依赖关系。Socher等[9]提出使用递归神经网络(RNN:Recursive Neural Network),对文本进行更细致的分析,通过实践,传统RNN在解决长序列之间的关联时表现很差,原因是在进行反向传播时,过长的序列导致梯度的计算异常,发生梯度消失或爆炸。

笔者提出一种联合的模型架构,该模型将循环神经网络(RNN)与长短期记忆(LSTM:Long Short-Term Memory)网络连接,并在疫情语料库上进行情感分析测试。经过多次训练后,发现该模型在训练大语料时速度相比传统的深度学习算法有了很大的提高。而且经过RNN层处理后的文本大大的降低了词向量的维度,弥补了单一的RNN模型在处理长序列问题时的不足,使LSTM层能更快速、更准确地得出情感分析的结果。

1 情感分析模型的构建

1.1 基于FastText的词向量转化

为实现对微博文本的情感分析,笔者选择Word-Embedding编码方式[10],即词向量模式,表示微博用户的评论数据。自然语言处理中常用的编码方式是one-hot编码方式,但是这种方式每个词都需要占用很多空间,并且无法反映词汇之间的相关性。

FastText模型[11]是基于skip-gram基础上加以改进,对输入上下文的每个词汇采用基于词n-gram格式进行分解,并将分解处理后的所有单词n-gram和原词进行相加,代表上下文的语义信息,假设通过分解后得到n-gram的字典大小为G,对一个词汇w,记gw∈{1,…,G}为出现在词汇w中所有n-gram集合。对每个n-gram序列g使用向量Zg进行表示,因此评分函数为

(1)

其中vc是上下文词向量序列。

FastText模型输入一个词的序列(一段文本或一句话),输出这个词序列属于不同类别的概率[12-14]。序列中的词和词组组成特征向量,其通过线性变换映射到中间层,中间层再映射到标签。FastText在预测标签时使用了非线性激活函数,但在中间层不使用非线性激活函数。采用FastText预训练模型对词汇进行词嵌入表示可以大大减少one-hot编码带来的冗余和稀疏问题。FastText模型如图1所示。

图1 FastText模型结构Fig.1 FastText model structure

笔者首先利用jieba分词,将整句的文本分成词语和词语之间的组合,再利用FastText模型转化为词向量。

1.2 基于改进的LSTM情感分析模型

为实现中文微博情感分析,笔者提出了对LSTM进行改进后的深度学习模型。该模型融合了RNN和LSTM模型。

传统的神经网络(包括CNN),输入和输出都是互相独立的,不能很好地考虑上下文之间的联系,但RNN引入“记忆”的概念,能记录序列前的信息,简单看,就是把序列按时间展开,如图2所示。

图2 典型RNN网络Fig.2 Typical RNN network

其中Xt是时刻t处的输入,St是时间t时的“记忆”,St=(UXt+WSt-1),f可以是tanh等激活函数。Ot是时间t处的输出,比如在预测下个词时,softmax输出属于每个候选词的概率。可以把隐藏状态St视作“记忆体”,捕捉了之前时间点上的信息。输出Ot由当前时间及之前所有的“记忆”共同计算得到。不同于CNN,这里的RNN其整个神经网络都共享一组参数(U,V,W),极大地减小了需要训练和预估的参数量。

在传统的神经网络中,各个网络层无法进行参数共享[15]。而在循环神经网络中,由于循环神经网络的每个步骤都是做相同的工作,仅是输入不同,因此,每输入一步各层之间参数共享,则在网络中循环神经网络需要学习的参数就会减少,所需的训练时间会大幅减少。使用循环神经网络判别某句话的情感色彩,无需知道每个步长的输出,仅需要知道最后步长的输出,循环神经网络的核心是隐藏层能捕捉序列信息。

上面给出的RNN模型解决了对之前的信息保存的问题,但存在长期依赖的问题,随着时间间隔不断增大,储存的信息会无法连接,也就是说记忆容量有限。LSTM其实是RNN的一种,RNN-LSTM相较于传统循环神经网络,它从设计上就避免了时序数据预测过程中长短时依赖问题,而设计的关键就是隐藏层中独特的记忆单元。图3为 RNN-LSTM 隐藏层记忆单元结构,该结构包含了3种门,分别是输入门(Input Gate)、遗忘门(Forget Gate)和输出门(Output Gate)。

图3 RNN-LSTM隐藏层记忆单元结构Fig.3 RNN-LSTM hidden layer memory cell structure

将RNN-LSTM 隐藏层记忆单元结构比作一个记忆细胞(memory cell),该细胞控制着记忆单元中信息的传播途径。A区域表示遗忘区,遗忘门(Forget Gate)接收来自上一时刻隐藏层的输出(ht-1)和当前时刻输入(Xt)并决定丢弃当前状态下部分信息;B区域表示更新区,其决定了当前状态需要存储的新信息,并完成记忆细胞的信息更新;C区域表示输出区,输出门(Output Gate)决定了当前状态下细胞输出的内容。

经过上述分析,当输入的文本向量为X=[x1,x2,…,xn]时,LSTM的具体流程如下。

it=σ(Wi[ht-1,xt]+bi)

(2)

(3)

ft=σ(Wfxt+Ufht-1+bf)

(4)

(5)

第3步上述记忆状态单元都更新完毕后,计算输出门的值,具体公式如下

ot=σ(Woxt+Uoht-1+VoCt+bo)

(6)

ht=ottanh(Ct)

(7)

综上,将RNN和LSTM进行融合,RNN-LSTM模型通过门的控制,解决了时序数据预测过程中长短时依赖问题,这对于长时段历史数据预测研究有很大的帮助。结构如图4所示,主要由输入层、RNN层、Dropout层、LSTM层和全连接层组成。

文化与旅游产业融合是指两大产业之间相互交叉渗透而使产业边界模糊化,出现新型交融业态的过程。旅游产业结构升级是指产业结构由低阶向高阶的演进过程,主要体现在要素资源的流动与配置所产生的生产率提升效应。旅游产业结构的变动通常与消费需求、技术水平、空间要素紧密相关,而文化与旅游产业融合又是影响文化旅游消费、技术创新和空间集聚的重要因素。因此,本文主要从需求扩展路径、技术创新路径、协同集聚路径来剖析文化与旅游业融合对旅游产业升级的作用机制。

笔者模型的整体流程如图5所示,首先对输入的文本通过FastText模型进行词向量化,将句子转换为词向量后输入到RNN-LSTM模型,得到情感分析结果。

2 数据获取

2.1 数据的收集

Scrapy是Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据[16]。笔者利用此框架对微博上关于疫情的评论和话题进行爬取。

为了能爬取数据,首先查看浏览器发送给微博服务器的Request请求和服务器返回给浏览器的Response响应,寻找Request请求中网址中的相同点并总结出规律,然后运用Scrapy爬虫框架编写多个Request请求模仿浏览器的请求,最终获得数据。

笔者要针对全国网民在微博上发布的关于疫情的评论进行情感分析,所以分别对每个省的评论进行了爬取,共爬取全国34个地区关于疫情的微博评论。爬取的时间为2020年1月1日-2021年3月1日,总计爬取了3万多条数据。

2.2 数据的预处理

爬取到的评论,通过数据筛选、去除无效字符等数据清洗操作,共得到36 435条有效数据,将数据分为两大类:一类是积极的情感评论18 995条;另一类是消极的情感评论17 440条。数据标签的规定是:带有开心、致敬、加油等字眼且句子整体是积极阳光的为积极评论,带有失望、谣言等不满厌恶的视为消极评论。样本数据示例如表1所示。

表1 样本数据Tab.1 Sample data

3 实验和结果

3.1 实验环境

为验证RNN-LSTM模型预测性能,该模型和基准实验在Windows10系统上进行,CPU为Intel(R)Xeon(R)Bronze 3204 CPU@1.90 GHz,GPU为Quadro P6000,使用Python3.6编程语言,采用FastText表示语义信息。

3.2 模型参数设置

经过多轮测试调优,具体模型超参数如下。

1) 迭代次数设置。通过多次实验,模型在验证集的准确率大多在迭代50次之后基本不发生变化,所以将迭代次数设置为100。

2) Batchsize参数设置。实验中多次增大Batchsize值,计算模型运行时间,选择时间最为合适的Batchsize的值为64。

3) Dropout层参数设置。为避免模型过拟合,在模型中加入一层Dropout层,参数设置为0.2。

4) 损失函数设置。情感分析属于一个分类问题,因此采用交叉熵作为损失函数。交叉熵公式为

(8)

5) 激活函数设置。实验对比了Relu、Tanh、Sigmoid等激活函数,发现Sigmoid激活函数效果最佳,得到的损失值更小。Sigmoid激活函数是极端情况下(二分类)下的Softmax。

6) 优化器。选择Adam作为优化器优化目标函数。Adam使用动量和自适应学习率加快收敛速度,其计算效率高,内存需求少,非常适合数据或参数较大的问题。

3.3 模型评估标准

笔者采用分类任务中常见的评估标准:运用准确率、召回率F1值和ROC(Receiver Operating Characteristic Curve)值对RNN-LSTM模型进行评估,混淆矩阵如表2所示。

表2 混淆矩阵Tab.2 Confusion matrix

具体评估方法如下:

1) 准确率表示预测正确的样本占总样本的比重,计算公式如下

(9)

2) 召回率表示实际类别且预测类别都为正的样本占所有实际类别为正的样本比重,计算公式如下

(10)

3) F1值为准确率和召回率的加权调和平均值,计算公式如下

(11)

3.4 对比试验

笔者将训练数据的20%作为模型的验证集,即29 148条数据作为训练集,7 287条数据作为验证集。对比模型主要有3种,SVM模型、RNN模型和LSTM模型,利用这3种模型与笔者采用的RNN-LSTM模型进行训练结果进行对比。实验中,对选定的数据集执行相同的预处理步骤,此外,网络初始参数相同,激活函数相同都为Sigmoid函数。评估指标为准确率、召回率、F1-score、ROC,实验结果对比如表3所示。

表3 实验结果对比Tab.3 Comparison of experimental results

通过表3可以发现,笔者采用的模型框架RNN-LSTM模型较传统的分类模型正确率更高,分类效果更好。较单一的RNN、LSTM模型,分类效果也得到了提升,以上实验结果验证了RNN-LSTM模型可以有效提高情感分类效果。

应用RNN-LSTM模型得到情感均值作为情感指数,然后对不同地区的微博话题及评论做了地域性分析,得到网民情感值分布如图6,图7所示。

由图6可以看出,不同的省市在地图上显示的颜色都不一样。颜色越深代表这个地区的情感指数越高。网友发表的关于新冠的疫情的言论越积极。其中在2020年西藏、湖北、江苏、浙江以及台湾情感指数较高,由于西藏的网民基数较少,故不具有代表性,但在湖北等地区可以看出虽然疫情严重,但话题的导向是积极阳光的,网民的评论也具有正能量。

如图7所示,对2021年3月的话题和评论进行情感分析,可看出此时黑龙江等地区颜色较深,因为2021年初黑龙江疫情爆发,这时话题的导向也转变为积极阳光的,因此可得出结论,疫情越严重的地方情感指数越高,因为话题的导向是积极向上的,网民的评论也都是对抗击疫情充满信心和希望的。

图6 2020年网民情感值分布图 图7 2021年网民情感值分布图 Fig.6 Emotional value distribution Fig.7 Emotional value distribution of Internet users in 2020 of Internet users in 2021

4 结 语

笔者以新冠肺炎疫情为研究背景,研究使用Scrapy爬虫框架对微博热门话题以及评论进行爬取。针对爬取的话题及评论进行情感分析,基于FastText进行特征提取,提出了一种基于RNN-LSTM混合模型的情感分析的方法,且得到了较以往方法更优的准确率,证实笔者提出的模型能很好的对短文本进行情感分析。并将训练出来的情感得分与地图相结合,得出了全国网民情感分布地图。并且该地图反映出的结果与疫情实际发生状况相符。

猜你喜欢
神经网络情感模型
适用于BDS-3 PPP的随机模型
基于递归模糊神经网络的风电平滑控制策略
自制空间站模型
如何在情感中自我成长,保持独立
神经网络抑制无线通信干扰探究
情感
基于神经网络的中小学生情感分析
诗歌与情感的断想
台上
模型小览(二)