https://github.com/lunarwhite/covid-social-analysis

1 引言

1.1 编写目的

公众情绪一直复杂多元,随着信息化程度的提高与大数据、人工智能等技术的不断普及又得以放大,让更多人的情感和想法得以在网络上得到表达与传播,传播范围比以往更大。新冠疫情于去年一月开始爆发,转眼间已经过去了一年多,疫情在国内得到了有效的控制。回顾这个过程,疫情下形成了特殊的网络社会心态和公众情绪。多元复杂的公众情绪,借助网络的力量传播和放大。但也方便了收集数据,并研究情绪变化的具体过程。

因此基于此次疫情,借助适宜的数据、分析手段和自然语言处理技术,希望在一定程度上了解新冠疫情这一特殊事件,在其自身不同发展阶段对中国大众心态的影响,以大数据技术研究中国大众的网络社会心态及其变化规律,进而形成引导公众情绪、维护社会稳定的参考性依据,或许有助于未来的类似事件的应对。

1.2 项目概述

以微博为代表的社交媒体上广泛的传播各种疫情信息,在疫情阶段发挥着比较重要的信息传输作用。本次作业的目的就是深入分析疫情信息中蕴含的网民情绪及其变化情况。以新冠肺炎疫情相关的短微博和相关新闻下的评论作为主要研究对象,首先爬取大量数据,利用心态词典方法可以大致观察心态演变,并结合层次聚类法从中分析网民关注热点,最后通过可视化方法展现相应的结果。

1.3 可行性分析

1)市场可行性:有助于平台运营人员乃至普通群众以可视化这种友好的交互方式分析、及时准确把握舆情变化,和不同阶段大众心态的影响。进而便于引导公众情绪、维护社会稳定,并对未来的类似突发事件的应对产生参考性意义。

2)技术可行性:数据源、数据量的支持,爬虫技术的成熟,机器学习尤其是自然语言处理方向发展如火如荼,文本情感分析技术趋于成熟,Python 有大量的可视化分析的第三方库,如pyecharts、matplotlib等。

1.4 术语和缩略语

[1] 聚类分析:聚类分析(英语:Cluster analysis)亦称为群集分析,是对于统计数据分析的一门技术,在许多领域受到广泛应用,包括机器学习,数据挖掘,模式识别,图像分析以及生物信息。聚类是把相似的对象通过静态分类的方法分成不同的组别或者更多的子集(subset),这样让在同一个子集中的成员对象都有相似的一些属性,常见的包括在坐标系中更加短的空间距离等。一般把数据聚类归纳为一种非监督式学习。

[2] 文本情感分析:文本情感分析(也称为意见挖掘)是指用自然语言处理、文本挖掘以及计算机语言学等方法来识别和提取原素材中的主观信息。通常来说,情感分析的目的是为了找出说话者/作者在某些话题上或者针对一个文本两极的观点的态度。这个态度或许是他或她的个人判断或是评估,也许是他当时的情感状态(就是说,作者在做出这个言论时的情绪状态),或是作者有意向的情感交流(就是作者想要读者所体验的情绪)。

[3] 文本分割:文本分割(Text segmentation)将书面文本分割成有意义单位的过程,如单词、句子或主题。这个术语既适用于人类阅读文本时的心理过程,也适用于在计算机中实现的人工过程,后者属于自然语言处理的领域。一些书面语言有明确的单词分界标记,例如英语的词之间有空格标识,阿拉伯语有独特的首、中、末字母形状,但这种标记不是所有书面语言都有。

[4] 停用词:在信息检索中,为节省存储空间和提高搜索效率,在自然语言处理数据(或文本)之前或之后会自动过滤掉某些字或词,这些字或词即被称为Stop Words(停用词)。不要把停用词与安全口令混淆。 这些停用词都是人工输入、非自动化生成的,生成后的停用词会形成一个停用词表。但是,并没有一个明确的停用词表能够适用于所有的工具。甚至有一些工具是明确地避免使用停用词来支持短语搜索的。

[5] 网络爬虫:网络爬虫(英语:web crawler),也叫网络蜘蛛(spider),是一种用来自动浏览万维网的网络机器人。其目的一般为编纂网络索引。 网络搜索引擎等站点通过爬虫软件更新自身的网站内容或其对其他网站的索引。网络爬虫可以将自己所访问的页面保存下来,以便搜索引擎事后生成索引供用户搜索。 爬虫访问网站的过程会消耗目标系统资源。不少网络系统并不默许爬虫工作。因此在访问大量页面时,爬虫需要考虑到规划、负载,还需要讲“礼貌”。 不愿意被爬虫访问、被爬虫主人知晓的公开站点可以使用 robots.txt 文件之类的方法避免访问。这个文件可以要求机器人只对网站的一部分进行索引,或完全不作处理。

2 开发计划

2.1 呈现形式

借助pyecharts和matplotlib可视化绘图的形式,来展示用户微博文本中提取的关键词并生成词云,以统计图表的形式展示对用户发文分析不同阶段主要事件下的网民心态极性,并结合层次聚类法从中抽取网民关注热点,最后通过可视化方法展现相应的结果,并进行总结分析。