基于Python的新浪微博舆情监控系统设计

2023-02-08 05:11张亚娟孙如浩张汝峰等
计算机应用文摘·触控 2023年2期
关键词:新浪微博自然语言处理

张亚娟 孙如浩 张汝峰等

关键词:舆情监控;新浪微博;爬虫工具;Scrapy;自然语言处理

中图法分类号:TP311 文献标识码:A

1引言

目前,网络普及率高,网络信息传播速度快,涉及人民群众切身利益问题,会第一时间出现在网络上,并迅速传播,形成网络舆情。网络舆情传播成放射状,速度快且不断迭代,部分人在传播时会根据自己的态度、看法和认识进行加工,或者在传播过程中产生误传,在这个反复迭代的过程中,会导致舆情产生源头到最后传送的结果不一致情况,会出现误导大家的情况,因此,舆情监控和应对处理尤为重要。网络舆情表达了群众对某一事件的想法和态度,可以理解社会各个层面的人们的感情、态度、见解、意见、行动倾向等,对于相关管理部门制定相关应对策略具有重要的意义。实现舆情监控并有效引导舆论走向,对于社会良好运转有着积极的意义。

对于相关部门来讲,网络舆情代表部分网民的看法和态度,根据舆情了解人民群众的所需所想,是施政的重要参考,也是制定相关政策的重要依据;对于企业来讲,及时发现企业品牌相关网络舆情,然后积极应对、化解矛盾,对于树立良好的企业形象和提升品牌价值具有重要的意义;對于高校来讲,及时发现校园网络舆情,关注学生思想动态,以及学生的真实需求,并针对具体问题正确引导学生舆情走向,是高校开展思政工作的重要途径。

综上所述,获取网络舆情对于社会良好运转,打造积极向上的网络环境尤为重要,因此,舆情监控具有重要的作用。

2国内外研究现状

舆情监控是利用数据采集、智能分析等技术,在海量的网络信息中自动抓取、文本分析、语义分类、自动聚类,从而实现舆情监控,得到舆论走向,掌握网民对于某一事件的态度。目前,舆情监控是研究的热点问题,国内外众多学者关于网络舆情监控构建及舆情应对和处理方面提出了较多方法。

在舆情监控系统构建方面,杨浩等提出了自组织网络的方法,通过构造控制模型和目标函数,实现了突发性舆情交互信息监控:王越将聚类算法应用在了校园网络舆情监控中,对获取的数据进行相似度计算,并利用K-means算法提取热门话题,实现舆情监控与预警:杨寒冰等提出利用贝叶斯网络对情感倾向进行分类,并结合堆叠降噪自编码器,构造了舆情分析监控模型:郝立华针对高职院校校园舆情管理提出了基于SQL Server数据库舆情监控系统,采用SVM算法提取数据特征:Hu等提出信息自动采集、信息预处理、舆情数据库、舆情分析与服务、舆情可视化与报告等舆情监测系统的架构。

在舆情应对和处理方面,梁瑛楠等提出了突发公共事件的相关部门应对方法,研究了舆情预警机制、舆情处理机制、法律法规及问责机制、强化公民认识等问题;何剑宇从提升舆情风险预警、加强监测预警和强化立法与管理三个方面,研究了网络舆情监控工作的风险防范及处理:高亚飞等提出了利用多数据源信息实现基于大数据的新媒体舆情优化,将多种维度因素有机结合,推进了新媒体舆情的决策优化:莫扬海提出了四个层次的“信息生态型”舆情知识服务运行结构,分析了舆情知识服务与舆情服务的差异。

本文以新浪微博为例,利用Scrapy爬虫获取数据,利用百度大脑的自然语言处理接口AipNlp库进行数据分析,从而构建舆情监控系统。新浪微博是新浪旗下基于用户关系的社交媒体平台,以文字、图像、视频等媒体形式,实现信息的即时分享和传播互动。截至2021年底,新浪微博的月活跃用户数为5.73亿,平均日活跃用户数为2.49亿,是网络信息传播的重要平台。

3系统构建

基于Python的新浪微博舆情监控系统架构主要分为数据采集层、分析层和应用层,系统框架图如图1所示。数据采集层主要是进行数据采集,在微博上抓取相关数据,并进行存储。分析层主要是对采集的数据进行分析,首先进行数据清洗,去除无关和冗余数据,并获取相关特征,实现词频统计、情感分析和趋势分析,并将分析结果进行储存。在应用层,主要是构建网页,实现人机操作,并将上述分析结果进行可视化。

在数据采集层,利用Scrapy爬取相关网络信息,并按照一定规则存储到MySQL数据库中。在分析层,利用pandas对数据进行清洗,使数据具有统一的格式,WordCloud对网络信息数据进行统计词频,并按照词频多少生成词云,百度大脑的自然语言处理接口AipNlp库进行情感分析,Scrapy抓取微博热度生成趋势图,相关数据存储到MySQL中。在应用层,利用Django框架开发Web网页,便于人机操作,并通过ECharts将分析结果和数据进行可视化。

3.1网络爬虫

网络爬虫是自动抓取网络信息的程序,能够自动抓取需要获取的数据。网络爬虫是舆情监控的第一步,为保证舆情分析的准确性和可靠性,需要大而全的获取网络信息。本文利用Scrapy框架开发网络信息爬虫工具进行网络爬虫,然后爬取的网络数据利用MySQL进行储存。

Scrapy是利用Python开发的能够爬取网站数据、提取结构性数据而编写的应用框架,具有引擎模块、调度器模块、下载器、爬虫模块、管道模块、下载器中间件、爬虫中间件等组件。Scrapy框架用途广泛,可用于数据挖掘、数据检测等方面,且程序开发简单,Scrapy框架主要包括引擎、调度器、下载器、爬虫、管道、下载中间件和Spider中间件等。至于爬虫工具开发,主要为新建项目、创建应用、明确字段、制作爬虫和存储内容五步。

Scrapy框架有数据处理和存储模块,通过PyMySQL的模块将网络数据信息数据存储到MySQL数据库。MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,从而方便访问。将获取的网络数据信息储存在MySQL数据库中,便于后续信息处理。

3.2舆情分析

在数据爬虫时,为保证舆情监测的准确性,爬取的信息容量大且比较全面,因此,数据格式会比较混乱、噪声信息多、干扰大。另外,存在一定冗余信息,所以需要对抓取的数据进行数据清洗。利用Python中pandas工具进行数据清洗,pandas是基于Numpy的一种工具,能够对各种数据进行清洗和加工。首先去除冗余数据,然后对数据格式进行归一化,从而得到质量高的网络信息数据。

利用WordCloud对网络信息数据进行统计词频,并生成词云。词云也称为文字云,是将频率出现高的词汇显示更加显著,而频率出现低的词汇显示弱化,甚至不显示的一种表现形式,观看者能直观地看到要表达的主旨。WordCloud是Python的一个第三方库,以词语为基本单位,对文本内容中的词频进行可视化汇总,更加直观和美观地展示文本词频。另外,词云的形状、尺寸和颜色可以进行设置。

在情感分析时,利用百度大脑的自然语言处理接口AipNlp库。AipNlp库具有词法分析、依存句法分析、词向量表示、中文DNN语言模型接口、词义相似度、短文本相似度、评论观点抽取、情感倾向分析、文章分类、对话情绪识别接口等功能。AipNlp库功能丰富,能够对数十种自然语言实现处理,能够满足多种场景需求,具有标准的封装接口,可以降低人工开发成本,并可以通过云计算,降低硬件需求,另外支持用户多,可以满足千亿量级用户调用。

3.3结果可视化

利用Django框架开发Web网页,实现人机交互和信息的展示,并通过ECharts对分析结果进行可视化。

Django是一个由Python开发的一个开放源代码的Web应用框架,采用了MVT框架,即模型(Model,数据存取层)、视图(View,表现层)和模板(Template,业务逻辑层)。Django框架功能完善、要素齐全,自带大量常用工具和框架,拥有丰富、动态的数据库操作接口,数据模型的设计不依赖特定的数据库,适合快速开发各种类型的网站。

最后,利用ECharts对分析结果进行可视化,ECharts是使用JavaScript开发的开源可视化库,可以直观显示数据可视化图表,并可以对可视化图表形式进行设置。ECharts可以生成的图表种类丰富,视觉效果好。

4新浪微博舆情监控系统

按照上述系统架构,通过Python及相关模块开发,采用Web网页进行交互操作和可视化显示,可以对网络文本实现词频统计、情感分析和趋势分析,并将分析结果进行储存,从而实现新浪微博的舆情监控系统。

以热点“新冠疫情”为关键词进行网络信息抓取,然后对舆情进行分析,并分析变化趋势。通过词频分析,前10的词汇有:疫情、防控、新冠、肺炎、核酸、工作、检测、人员、病例、区域,然后生成词云图(如图2所示)。通过词云图可以看出疫情防控是人们关注的重点,其次是核酸检测,此前核酸检测是阻断疫情的有效手段。另外,病例、区域也是人们关注的重点。

通过情感分析,生成饼状图(如图3所示),消极态度占50.03%,积极态度占49.97%。人们对于疫情的态度是一半是消极的,说明部分人们生活和工作状态比较消极,需要相关部门进行积极引导。通过爬虫工具在新浪微博上爬取相关微博的热度,并构建热度趋势图,24小时讨论热度图如图4(a)所示,7天讨论热度图如图4(b)所示。

5结束语

本文设计了基于Python的新浪微博舆情监控系统,提出了三层系统框架,在设计过程中使用了Django, Scrapy, MySQL,pandas,WordCloud,AipNlp等工具,該系统能够通过网页进行交互操作,并通过图表进行可视化。最后,以“新冠疫情”为热点问题,对舆情监控系统进行测试,可以有效对舆情信息进行监控。未来将扩大信息采集面,获得更全面、更真实的舆情信息,便于有效引导化解矛盾,构建和谐的网络环境。

作者简介:

张亚娟(1988—),硕士,讲师,研究方向:信号检测与处理。

张汝峰(1992—),硕士,讲师,研究方向:计算机视觉、信息处理(通信作者)。

猜你喜欢
新浪微博自然语言处理
新浪微博数据爬取研究
基于组合分类算法的源代码注释质量评估方法
新浪微博热点事件的舆论传播与群体心理
新浪微博娱乐明星的社会网络分析
社交媒体平台医患关系报道特点研究
微博的社会公信力现状探究及其未来构建研究
社交媒体的用户生成内容(UGC)动机浅析
面向机器人导航的汉语路径自然语言组块分析方法研究
词向量的语义学规范化
汉哈机器翻译中的文字转换技术研究