APP下载

基于深度学习的网络舆情监测系统研究

2022-12-21孙培洋

电子科技 2022年12期
关键词:舆情监测模块

邓 磊,孙培洋

(1.西北政法大学 新闻传播学院, 陕西 西安 710000;2.西安理工大学 自动化与信息工程学院,陕西 西安 710000)

在互联网飞速发展的时代,基于联联网的各种自媒体平台层出不穷。与传统媒体相比,网络舆论的表达具有快速性、随机性、匿名性和便捷性等特点。截至2021年12月,我国网民规模达10.32亿,较2020年12月增长4 296万,互联网普及率达73.0%,较2020 年12月提升2.6个百分点;我国手机网民规模达10.29亿,较2020年12月增长4 298万,网民使用手机上网的比例为99.7%[1]。通过网络媒体,越来越多的网民可通过网络自主获取信息,自由地发表看法和分享观点。这样比较容易引起突发公共事件,甚至影响社会稳定。

利用舆情监测系统对网络热点事件进行及时监测和研究判断,适时化解舆情危机并引导正确发展,可使网络舆情成为民们发表意见的窗口以及领导者和相关部门决策重要依据,因此建立网络舆情监测系统,对网络信息进行及时有效的监测、预警和引导尤为重要。

本文提出一种基于深度学习的网络舆情监测系统框架。该系统能自动采集全网多数门户网站、微博和微信公众号中包括文章与评论在内的数据。在数据处理时,该系统先对文本进行清洗,再进行分词、过滤停用词,然后利用Word2Vec等进行词嵌入,将文本矢量化。随后该系统可将矢量化的文本导入LSTM(Long Short-Term Memory)模型中进行情感分析,做出舆情判断,并最终对舆情预警进行可视化展示。测试结果表明,利用本系统能及时、准确、客观地向有关部门和管理人员反映重点舆情。

1 网络舆情监测系统架构

基于深度学习的网络舆情监测系统共分4层,包括信息采集层、数据资源层、数据分析应用层和应用服务层。系统架构如图1所示。

图1 网络舆情监测系统架构图

信息采集层负责从各门户网站、微博、微信公众号等网络平台自动采集数据。数据资源层负责数据存储,系统数据库分为两大类,一类为常规的关系数据格式,另一类则为数据量更大的NoSQL数据格式。数据采集时采用MySQL数据库,数据仓库则采用Hive数据库。数据分析应用层首先需要进行数据预处理,对信息采集层采集到的内容进一步处理,例如网页解析、去重网页消除、文本提纯、语音文本属性分析、分词和词性标注等,然后进行文本挖掘和情感分析,最后做出可视化舆情预警,并提供统计分析功能。应用服务层可为不同的用户提供相应的接口。

2 关键模块实现技术

2.1 信息采集模块

在信息采集模块中,本系统采用Scrapy框架开发爬虫模块。Scrapy框架是用 Python实现的一个方便爬取网站数据、提取结构性数据的应用框架,常被应用在数据挖掘、信息处理和存储历史数据等程序中。将Scrapy-Redis组件集成到Scrapy框架中可以较好地利用Redis分布式的功能,使本文所提系统的爬虫模块实现分布式爬取数据,有效提高爬行效率[2]。

本文系统对门户网站抓取的策略如下:首先根据关键词搜索实现深度优先策略,其次实现广度优先策略。该策略可对微博和微信公众号实现定向抓取,即可定时抓取预先设定账号的文章和评论,还可对微博根据关键词实现数据抓取。

2.2 数据存储模块

本系统存储模块采用Hadoop框架,关系数据库采用MySQL数据库,NoSQL数据库采用Hbase,数据仓库则采用Hive。

Hadoop框架是一个处理、存储和分析海量的分布式、非结构化数据的开源框架,可方便地部署到多台性能一般的计算机集群里,具有较好的跨平台特性[3]。Hive是一个建立在Hadoop上的数据仓库基础构架,它提供一系列的工具,可以较好地实现数据的提取转化加载[4]。

本系统数据库的微信公众号文章表结构如图2所示。其中,mid为文章id,biz为公众号的id,title为文章名,content_url为文章url链接,time为文章发布时间,author为发文作者,comment_num为评论数量,read_num为阅读数,like_num为点赞数,copyright_stat为状态码,is_headline为是否头条,crawlingtime为抓取时间。

图2 微信公众号文章表结构

微信公众号文章评论表的结构如图3所示。其中,content_id为内容id,mid为评论所对应的文章id,nick_name为评论作者昵称,logo_url为头像url链接,comment_id为评论id,content为评论内容,like_num为点赞数,comment_time为评论时间,create_time为抓取时间。

图3 微信公众号文章评论表结构

2.3 信息预处理模块

在信息预处理模块中,为了得到矢量化的文本,需要进一步处理由舆情信息采集模块采集到的内容。

本系统对文本数据预处理流程如图4所示。首先对网页文章或评论内容的文本进行分词,分词工具采用Jieba分词、NLTK(Natural Language Toolkit)或者HanLP(Han Language Processing);然后过滤停用词,再利用Word2Vec或者ELMO(Embeddings from Language Models)等进行词嵌入,从而将文本矢量化。

图4 文本处理流程图

Word2Vec的本意就是“词到向量”,使用它来矢量化文本,可以获得上下文的关系,能较好地保证词与词之间的语义和句法关系[5]。

Word2Vec包含CBOW(Continuous Bag of Words Model)和Skip-gram(Continuous Skip-gram Model)两种模型。Skip-gram模型是根据词语w(t)预测上下文2n个词语,而CBOW模型是根据w(t)上下文2n个词语来预测w(t)[6-8]。CBOW模型结构如图5所示,Skip-gram模型结构如图6所示。因为CBOW模型适用于文本量较大的运算,而网络舆情监测系统预处理后的数据量相对较大,故本文所提出的系统使用CBOW模型来矢量化文本。

图5 CBOW模型结构

图6 Skip-gram模型结构

2.4 数据挖掘模块

处理和挖掘模块是整个系统中的关键模块。该模块利用数据挖掘算法对经过预处理得到的矢量化文本数据进行挖掘,得到有用的舆情信息。本文系统使用了TDT(Topic Detection and Tracking)、命名实体识别、文本分类算法、文本聚类算法、关联分析和情感倾向分析等关键技术。

对于舆情监测系统,情感分析技术尤为关键。情感分析是一种常见的自然语言处理方法的应用,其主要目的是将需要进行情感分析的文本划分为其所属类别,例如敏感、非敏感和中性等。情感分析的常用方法有两种,一种是基于词典的传统分析方法,一种是基于机器学习算法的方法。基于词典的方法主要通过制定一系列的情感词典和规则,对文本进行分词、关键词提取统计、计算情感值,最后将情感值作为文本的情感倾向依据。这种方法依赖于情感词典的好坏。国内常用的情感词典有知网(HowNet)情感词典、台湾大学(NTSUSD)简体中文情感极性词典和大连理工大学情感词汇本体[9]。基于机器学习的方法利用数据和算法的支持,底层利用的词嵌入技术可以降低文字长短不均带来的处理困难,使用深度学习的抽象特征可以减少人工提取特征的工作量,还可以模拟词与词之间的联系,提高处理灵活度[10-11]。

舆情传播过程随着时间序列的变化而变化的。递归神经网络(Recursive Neural Network, RNN)有较好的处理时间序列数据的能力,但RNN在处理过程中需要保留前面的输入数据,会导致长距离依赖问题。长短期记忆网络(Long Short-term Memory, LSTM)具有保持长期记忆性的特点,在时间序列数据处理方面有着更好的性能,被广泛用于处理文本数据和声音数据等时间序列任务[12-15]。因此,本系统采用LSTM来实现情感分析。

LSTM模型结构如图7所示,其各部分定义与命名为:(1)Cell为记忆单元,表示神经元的状态的记忆,记作ct;(2)Input Gate为输入门限,用以控制信息是否流入Memory Cell中,记作it; (3)Forget Gate为遗忘门限,用来控制上一时刻Memory Cell中的信息是否累积到当前时刻,记作ft; (4)Output Gate为输出门限,控制当前时刻Memory Cell中的信息是否流入当前隐藏状态ht中,记作ot[16-18]。

图7 LSTM模型结构

在t时刻,LSTM常用的计算式为

ft=Sigmoid(Wf×[ht-1,xt]+bf)

(1)

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

(2)

ot=Sigmoid(Wo×[ht-1,xt]+bo)

(3)

(4)

(5)

ht=ot×tanh(ct)

(6)

式中,W分别代表其相应门限的递归连接权重;Sigmoid和tanh为两种激活函数。当给定当前输入和上一时刻状态后,LSTM网络将逐步更新其隐藏状态ht,直至输出层产生预测值。

本系统数据挖掘模块中所应用的模型均通过PyTorch框架实现。PyTorch是一个开源的Python优先的深度学习框架,利用它不仅可以使用较强的GPU加速Tensor计算,构建动态神经网络也更为容易。

3 系统测试

以2022年5月17日西安3岁男孩掉进下水道失踪事件作为测试内容,利用关键词全网搜索爬取数据,爬取数据总量为11 248条。经系统分析发现,其中敏感数据量7 505条,非敏感数据量3 310条,中性数据量433条,比例如图8所示。

图8 情感分析结果图

为使用户能够及时观察舆情信息,系统自动将与搜索关键词相近的、转发或评论较多的信息以“重要信息提醒”的形式向用户发出告警,如图9所示。

图9 重要信息图

系统还能将搜索到的舆情数据以发文日期为橫轴(可自定义发文日期范围),以每天发文数量为纵轴给出舆情走势图,方便用户做出判断。舆情走势图示例如图10所示。

图10 舆情走势图

系统将分词时产生的高频词语,以热点词云的形式展示,使用户更容易掌控舆情的特征,如图11所示。

图11 热点词云图

4 结束语

随着网络用户数量的不断增加,对网络舆情的监测和分析愈发重要。本文给出了一个完整的网络舆情监测系统框架,该系统包括信息采集层、数据资源层、数据分析应用层和应用服务层4部分。本文讨论了实现该系统所需要的关键技术,并给出了实验结果。后期将围绕舆情信息分析的具体需求,针对舆情服务的特点,将研究预测舆情的发展趋势作为研究的重点。

猜你喜欢

舆情监测模块
28通道收发处理模块设计
“选修3—3”模块的复习备考
特色“三四五六”返贫监测帮扶做实做细
数字舆情
数字舆情
消费舆情
网络安全监测数据分析——2015年12月
网络安全监测数据分析——2015年11月
不穿戴也能监测睡眠
集成水空中冷器的进气模块