-
随着移动通信技术的发展,第三代、第四代移动通信技术系统的普及,开启了无处不在的3G、4G通信接入,使用互联网人群更为广泛,工作生活圈形同一个地球村,足不出户阅览和点评世间诸事成为可能。中国互联网络信息中心发布的第44次《中国互联网络发展状况统计报告》指出,截至2019年6月,中国网民规模达8.54亿,较2018年底增长2598万,互联网普及率达61.2%,较2018年底提升1.6个百分点;中国手机网民规模达8.47亿,较2018年底增长2 984万,网民使用手机上网的比例达99.1%,较2018年底提升0.5个百分点[1]。移动智能手机的普及,微博、支付宝、微信等APP的使用,逐步成为大部分移动用户的生活常识。据《微博发布2019年第4季度及全年财报》统计,微博2019年12月的月活跃用户数为5.16亿,较上年同期净增约5400万,月活跃用户数中约94%为移动端用户[2]。庞大移动用户群体的形成,通过互联网分享生活、发布新闻、推送紧急事件等,构建了“互联网+”生态。同时,人们逐渐认识到互联网产生的数据,除了直接表述的价值外,还可以利用大数据挖掘技术,将隐藏的价值从海量数据中挖掘出来。常见的有用户喜好分析、人口热点分布分析、产品正负面情感分析等。近年来,“互联网+”正在为地震行业的政务公开、科普知识、应急救援和数据分析等提供信息化技术支撑。董翔等2007年开始建设由灾情调查汇集系统、灾情分析处理系统、灾情反馈系统和管理系统4个子系统组成的基于网络的山东地震灾情收集分析处理系统,该系统通过网络向社会公众收集能够反映灾情的各种信息[3]。彭懋磊等在互联网的基础上提出一种地震实时预警方法,采用ETA数据预报法对危险区域进行预警,完成地震的实时预警。结果表明,基于互联网技术的预警方法实时性高[4]。齐文华等利用Google Earth影像、互联网地图等各类网络资源,借助ArcGIS、API和网络爬虫技术,获取分析房屋的结构类型、面积、分布等信息,研究区域房屋抗震能力状况,为地震应急基础数据生产及更新和地震灾害风险分析提供方法支持[5]。张颖等阐述了基于网络的舆情监控系统在芦山地震应急中的实践应用[6]。互联网的发展提高了灾情的快速获取和分析能力,提升了地震应急、震情发布、地震速报、灾害风险防范和科普宣传等地震服务工作能力。尤其是人民网舆情监测室、新浪网微舆情等利用自身丰富的资源数据为用户提供实时舆情监控报告,但针对地震事件尚未形成多个舆情事件数据的挖掘对比分析。本文采用网络爬虫、数据处理和可视化等信息化技术,通过获取2次新浪热点微博地震事件的用户评论数据,并挖掘存在的数据价值,为科学地利用地震舆情信息开展地震应急处置工作提供参考。
-
Python是一种开源的跨平台计算机高级程序设计语言,因拥有庞大的标准图形库,具备灵活的扩展性,用于可视化开发可节约大量的编写代码工作量。因而,被广泛应用于网站和后台开发、科学计算和统计、网络爬虫和人工智能。本研究使用Python 3.7.4版本。
-
NLP(自然语言处理)是人工智能(AI)的一个子领域,作为计算机理解并解释人类语言的技术,其主要作用在于通过算法在人与机器之间搭建可以沟通的桥梁,并实现海量数据的处理与分析,大大提高数据分析的可行性和时效性[7]。结巴分词开源工具支持精确模式、全模式和搜索引擎模式3种分词模式,本文在对文本处理时使用结巴分词的精确模式。
-
在信息检索中,为节省存储空间和提高搜索效率,在处理自然语言数据(或文本)之前或之后会自动过滤掉某些字或词,这些字或词被称为Stop Words(停用词)。停用词主要包括英文字符、数字、数学字符、标点符号及使用频率高的单汉字等[8]。本文在处理中将停用词作为句子噪音扔掉,降低句子噪音对理解句子的影响,同时减少检索量,提高检索效率。
-
央视新闻是中央电视台新闻中心官方认证微博。在2019年10月12日22时55分24秒广西北流市发生MS5.2地震和2019年11月25日9时18分19秒广西靖西市发生MS5.2地震的破坏性地震事件中,央视新闻微博相应发布了“广西#玉林5.2级地震#”(简称:北流MS5.2地震)和“#广西百色靖西发生5.2级地震#”(简称:靖西MS5.2地震)2条热点微博。本文研究以这2条热点微博的评论作为数据原始来源。
-
利用大数据技术、自动概率统计与可视化分析,可以大大提高重点信息的挖掘。WordCloud(词云)库不仅能够根据词语在文本中的出现频率绘制图片,还支持对文字的字体、颜色和形状等进行设定,从而从视觉上凸显高频词,揭示文本内容的大致关联脉络,是一款强大的文本可视化工具[9]。本文利用Python的WordCloud库统计高频词语。
-
首先,分析请求微博评论数据的URL规律,根据URL规律,采用Python开发程序,实现微博模拟登录,并将地震事件中用户的主、子评论数据使用网络爬虫进行爬取,作为原始数据。原始数据经过一系列数据清洗后得到预处理数据并保存到“.CSV”文件中。接着,将预处理数据进行结巴分词并去除停用词,获取实验数据。最后,调用词云绘图库将实验数据可视化,为数据挖掘分析提供词云图。具体技术路线流程如图1所示。
-
利用网络爬虫技术爬取微博评论数据主要有2种渠道,一是爬取电脑版微博网页提取相关数据。这种方式较为传统,因为爬取的网页存在大量的网页元素,需要对用于爬取的文本内容进行网页元素的定位;二是爬取手机版微博网页数据。通过分析评论请求的URL规律,获取返回的JSON格式数据,提取所需文本内容,较为简单。本文阐述以爬取手机版微博网页为技术手段,并采用火狐浏览器的控制台作为分析网络URL的工具。
北流MS5.2地震微博URL:https://m.weibo.cn/detail/4426709530951238
靖西MS5.2地震微博URL:https://m.weibo.cn/detail/4442447968739774
以靖西MS5.2地震微博评论为例,经分析请求URL和响应JSON数据,有如下规律:
1)主评论的首页URL格式:
https://m.weibo.cn/comments/hotflow?id=4442447968739774&mid=4442447968739774&max_id_type=0
从第2页开始的URL格式为:
https://m.weibo.cn/comments/hotflow?id=4442447968739774&mid=4442447968739774&max_id=145161931007254&max_id_type=0
2)子评论的首页URL格式:
https://m.weibo.cn/comments/hotflow?cid=4442448581715329&mid_id=0&max_id_type=0
从第2页开始的URL格式为:
https://m.weibo.cn/comments/hotflow?cid=4442448581715329&mid_id=141588520454075&max_id_type=0
3)JSON数据
返回的JSON数据(图2)包括评论的总数(total_number)、用户(id)、评论时间(created_at)、文本内容(text)、最大页数(max)等信息参数属性。
总体请求URL规律:主评论首页URL不变,id和mid不变(和热点微博ID一致),从第2页开始请求评论数据的URL由max_id(下一页请求数值)和max_id_type(排序方式)决定;子评论首页URL不变,cid(子评论用户ID)不变,从第2页开始请求评论数据的URL由max_id(下一页请求数值)和max_id_type(排序方式,0和1)决定。
-
模拟登录微博爬取微博评论数据。采用python中requests模块的requests.Session()会话对象,登录微博www.weibo.com页面,获取登录的cookie信息保存在本地的文本,然后跳转到手机版m.weibo.cn网页。每次爬取数据时,使用requests.utils.dict_from_cookiejar()函数将cookie传递给服务端,达到模拟用程序可以登录微博的环境。
同时,采用python中requests模块的requests.get()方法函数,每隔5 s循环发送1次携带Cookie的URL请求给微博服务端进行评论数据爬取,并运用json.loads()将返回的响应数据解析为JSON格式的字符字典数据。其中,当循环主评论时,某个主评论的子评论total_number不为0时,进一步循环子评论数据,并且主、子评论从第2页开始,都需要根据前文所述的URL请求规律,相应修改变量终拼接URL。最后,将返回JSON数据中的最大页数max参数作为循环爬取止条件。图3为爬取流程。
-
爬取获得的原始评论数据比较粗糙,要经过html标记、url标记、特殊符号、表情、图片、重复数据等一系列清洗步骤后,才能作为相对干净、可用的预处理数据,存储在“.CSV”文件中,待下一步使用(图4)。
通过上述过程,最终分别处理筛选出北流MS5.2地震和靖西MS5.2地震震后24 h内的3322条、1694条有效评论数据,CSV属性包括用户名(username)、用户ID(userid)、评论时间(created)、评论内容(user_text)、自定义的主、子评论标注(mark)。
-
对预处理数据进一步开展自然语言处理。调用python的Jieba结巴分词包,对每一条评论语句进行精确模式分词,并引用了互联网共享的1 426个中文停用词,对分词结果进行去除停用词处理,获得自然语言处理后的最终实验数据。图5为分词和去除停用词的片段代码:
-
通过最终筛选处理分别得到北流MS5.2地震和靖西MS5.2级地震震后24 h内的3 322条、1 694条有效评论数据。调用wordcloud词云库和二维绘图库Matplotlib.pyplot绘图库对爬取到的2次地震事件产出的实验数据在同一个纵向坐标中产出可视化词云图,并计算每个地震事件前10位评论词语的百分比。其中,通过设置字体颜色colormap和最小字体大小min_font_size等属性可以使词云图渲染更清晰。词云图中词语字体越大,表明该词语出现的频率越高。
表 1 地震事件中前10位评论热频词百分比统计
北流MS5.2地震 靖西MS5.2地震 平安 5.80% 平安 10.37% 震感 5.62% 愿 5.34% 愿 4.07% 地震 4.27% 感觉 3.28% 广西 2.41% 地震 2.05% 感觉 2.17% 南宁 1.88% 南宁 1.63% 广东 1.61% 希望 1.48% 晃 1.22% 震感 1.42% 广西 1.12% 晃 1.11% 玉林 1.11% 百色 0.91% 1)整个词云图中,“平安”词语比较直观,且“愿”词语也较为突显,可以推测在2次地震事件中表达平安愿望是微博用户评论的主要内容;
2)北流MS5.2地震事件词云图中,“震感”、“感觉”词语较为突显,且否定词之类词语不突显,推测出用户在该地震事件中有明显的物理感觉。
3)北流MS5.2地震事件词云图中,“广东”、“广西”、“广州”等地理位置词语高频显现,说明该地震影响的用户主要分布在广西和广东2省区。
4)靖西MS5.2地震事件词云图中,只有表示同一区域的“广西”、“南宁”、“百色”地理位置词语出现,推测该地震影响中国境内范围的用户主要分布在广西省内。
5)北流MS5.2地震和靖西MS5.2地震震后24 h内的有效评论数据分别为3 322条、1 694条,数值相差较大,可以推测北流MS5.2地震中网民参与度、活跃度更高。同时,“震感”、“感觉”、“晃”在每单个地震事件中所占比例均排在前10,并且北流MS5.2地震事件中,“震感”、“感觉”、“晃”这些热频词分别排在前2、前4、前8名,较靖西市MS5.2地震事件这些热频词更靠前,可以推测同样震级的2个地震事件中,北流地震相较靖西地震影响用户范围更广。
-
本文以北流MS5.2地震事件和靖西MS5.2地震事件热点微博的用户评论为数据源,在简要介绍网络爬虫、自然语言处理和可视化技术的同时,通过信息化技术生成了评论数据词云图。最后,挖掘分析词云图的舆情信息,发现用户在2次热点地震事件都理性表达了平安愿望的共同点,并且北流MS5.2地震事件相较靖西MS5.2地震事件网民参与度、活跃度更高,影响用户范围更广。通过本文研究,为今后及时开展地震事件舆情工作提供新的决策思路和科学方法。
Mining and Analysis of Two Earthquake Event Review Data based on Information Technology
-
摘要: 通过网络爬虫爬取央视新闻微博发布的北流MS5.2地震和靖西MS5.2地震2条热点事件微博下用户评论数据,并经过清洗、分词、去掉停用词和词云统计等数据处理技术,产出每单个地震事件的可视化词云图和前10位热频词统计表。经挖掘分析词云图和热频词统计表的舆情信息,发现在2次热点地震事件中,微博用户评论的主要内容是表达平安愿望,前者用户的参与度更活跃,前者影响的用户范围比后者更广。Abstract: Using web crawler, we crawled users’ comment data on two hot events, MS5.2 earthquake in Beiliu and MS5.2 earthquake in Jingxi released by CCTV News microblog, the visualized word cloud picture of each individual earthquake event and the statistical table of the top ten hot frequency words were produced using data processing techniques such as cleaning, word segmentation, removing stop-words and word cloud statistics. Through mining and analyzing the public opinion information of the word cloud chart and the hot frequency word statistical table, it is found that in two hot issues about earthquake, the main content of microblog users' comments was to express their wishes for peace; participation of users in the former are more engaged; compared with the latter, the former has a wider range of users.
-
Key words:
- microblog /
- crawler /
- visualization /
- mining analysis
-
表 1 地震事件中前10位评论热频词百分比统计
北流MS5.2地震 靖西MS5.2地震 平安 5.80% 平安 10.37% 震感 5.62% 愿 5.34% 愿 4.07% 地震 4.27% 感觉 3.28% 广西 2.41% 地震 2.05% 感觉 2.17% 南宁 1.88% 南宁 1.63% 广东 1.61% 希望 1.48% 晃 1.22% 震感 1.42% 广西 1.12% 晃 1.11% 玉林 1.11% 百色 0.91% -
[1] 于朝晖. CNNIC发布第44次《中国互联网络发展状况统计报告》[J]. 网信军民融合, 2019(9): 30-31. [2] IT之家. 微博发布2019 Q4即全年财报: 月活跃用户达5.16亿[EB/OL]. (2020-02-26)[2020-02-26]. https://baijiahao.baidu.com/s?id=1659608982134967924&wfr=spider&for=pc. [3] 董翔, 肖兰喜, 杜宪宋. 基于网络的山东地震灾情收集分析处理系统[J]. 华北地震科学, 2007, 25(3): 6-10. doi: 10.3969/j.issn.1003-1375.2007.03.002 [4] 彭懋磊, 刘可, 魏贵春. 基于互联网地震实时预警仿真[J]. 计算机仿真, 2018, 35(12): 380-383. doi: 10.3969/j.issn.1006-9348.2018.12.088 [5] 齐文华, 杨凡, 刘耀辉. 基于网络数据的居住用房属性信息分析方法及其示范[J]. 华北地震科学, 2020, 38(4): 1-7. [6] 张颖, 林洋. 网络舆情监控系统在芦山地震应急中的应用[J]. 四川地震, 2014, 152(3): 30-33. [7] 百度百科. https://baike.baidu.com/item/%E5%81%9C%E7%94%A8%E8%AF%8D/4531676?fr=Aladdin. [8] 高雅, 苏艳, 席方园. 基于Python的新浪微博用户数据采集与分析[J]. 电子设计工程, 2019, 27(20): 157-165. doi: 10.3969/j.issn.1674-6236.2019.20.034 [9] 宋永生, 黄蓉美, 王军. 基于Python的数据分析与可视化平台研究[J]. 现代信息科技, 2019, 3(21): 7-9. doi: 10.3969/j.issn.2096-4706.2019.21.004 -