爬虫系列 | 看看历年政府报告,都说了些什么?
大家好,我是Jinyi。再转这篇文章,因为我发现 CSDN 类似的文章是收费的!
今天的主题,考察1954-2016年政府工作报告中的单词共现情况,来理解历年政府工作报告最重视哪些问题。
关于词语共现提取
基本思想:文本中的两个特征单词经常出现在同一段落,则认为这两个特征单词在词义上相互关联,也称“共现”。一般而言,共现频率越高,则关系越紧密。
本文算法中,计算两个单词在某句句子中共同出现的次数,并以这些次数作为研究对象,考察政工作报告的单词分布情况。由于算法是遍历的,因此取出共现次数最高的单词组,可以认为是报告中出现次数最多的单词。
先看看分析结果
首先,我们看看53篇报告中,共现次数最高的短语,图中出现的经济发展 ,我们称之为短语,也就是说,在挖掘时被认为是经济+发展 两个单词的组合形式;同样,排在第4位的经济建设,实质上是经济+建设 。1954年至2016年的政府工作报告文本中,短语出现出现频率超过100次的有36组,其出现次数下降趋势,呈对数形态。
图1 1954-2016年政府工作报告中共现超过100次的短语
其中,经济发展 一直是政府工作报告的重中之重,在53篇样本报告中共出现了385次;出现200次以上的短语共有8个,分别是:经济发展、现代化建设、各级政府、经济建设、人民生活、各位代表、人民群众、政府工作。我国社会主义 出现了100次。
接着,我们再取单个单词,即以经济 为一个单元进行分析,选取出现次数最多的40个单词,画出2X2矩阵气泡图,气泡大小表示共同出现次数多少,结果如下。
图2 1954-2016年政府工作报告中频率最高的前40个单词矩阵气泡图
第一,该矩阵是对称的。第二,以经济发展 为例,该短语出现次数最多,因此气泡的半径最大,见图中黑色虚线部分,虚线交点对应圆心。
然后,考察这40个单词之间的联系,使得单词之间的关系可视化。采用的研究方法是画出单词共现关系图,单词是整个网络中的节点,单词之间的连接为边。
图3 频率最高的前40个单词词网络图
如上图所示,每个单词形成一个节点,单词之间的连接形成边,出现次数显示为边的粗细。用这个方法可视化单词之间的联系之后,我们可以发现,某些高频单词自然而然形成分群。
最集中的是中间部分,涵盖经济、发展、健康、建设、农业、改革、增长、生产、经济社会 等,是政府每年最关心的事情,这些单词相互之间联系也更紧密;
其次是人民、生活、群众、全国、各级人民 这类机关类的词语;
最后是各级、政府、世界、和平、五年计划、我们、国家、必须,这些关乎世界、关乎国家的顶层设计内容。
接下来,我们看看单个词语出现的变化情况。
单词频率趋势分析
1.关于发展势
图4 报告中 发展 出现的次数变化趋势
图中,灰色柱状图是单词出现次数,红色虚线是5年移动平均,该词出现频率从90年代起开始平稳,近几年略有上升趋势,唯独在2006-2009年,全球经济危机时期提及甚少,而后被提及次数又创新高。
2.关于改革
图5 报告中 改革 出现的次数变化趋势
无独有偶,90年代起,改革一词出现次数开始趋于稳定,在2006年至2009年全球金融危机期间被提及甚少,近几年又开始强调,提及频率仅恢复到危机之前的水平。相信大家对 改革进入深水区 这样的说辞应该不陌生。
3.关于创业
图6 报告中 创业 出现的次数变化趋势
与前两组超过100次的出现次数相比,创业 一词是全球金融危机之后才被高频提及的词,2010年忽然创新高,但也少于10次。虽然 大众创业、万众创新 在市场上传得沸沸扬扬,但从上层建筑的角度来看,并不算重点关注对象。不过,确实在金融危机之后,提及频率急速上升,主要为了缓解金融危机后续冲击,鼓励人们自主创业就业的能力,带动社会就业率,起到维护经济体健康发展以及国家稳定的作用。
当然,2013年掀起创业潮,被业界戏称为创业元年,似乎也是互联网金融的元年,主要是支付宝通过余额宝,实现了跨界的、断层的突破。今后,国企改革等大型项目逐渐开展,也是在释放体制内部积蓄的力量,由国家养活群体,转向群体养活群体,大锅饭找靠山的年代正在消退,自力更生的时代开始兴起。
4.关于美国
图7 报告中 美国 出现的次数变化趋势
笔者饶有兴趣地考察了美国 这个词。有意思的是,两德统一之后,美国 一词被提及甚少,同一时期,美苏冷战结束,英镑被狙击,以至于未入欧元体系。2002年之后,就没再提及该词了。
彼得蒂尔在《从0到1》一书中提及对中国的担忧,其也是在硅谷地区最支持特朗普的企业家。然而,这位受美中地带欢迎、不受东西两海岸富裕人民待见的地产大亨,虽然与奥巴马风格迥异,却也实行着社会主义感的政策,包括抵制进口、带动国内就业,与阿里协议创造就业机会等,之前奥巴马的医疗体系建设,也是在基础设施上花了点力气。
所以,政治自信、文化自信、制度自信、道路自信,还是有点道理的。
5.关于三农
图8 农业、农村、农民 出现次数变化趋势
该数据原本被用作考察三农问题,因此,这三个单词笔者还是单独研究了一下趋势。从图中不难发现,农业、农民 提及次数都呈现缓慢下降趋势,但农民 一词近几年有所提升,特别是2000年之后,重视程度堪比60年代;农村 一词53年来呈逐渐上升趋势,政府在三农问题上,更注重农村建设、城镇化等类似问题,围绕改善农村人民生活展开。
6.关于人民
图9 报告中 人民 出现次数变化趋势
90年代兴建经济基础开始,便呈现下降趋势,标志着内部阶级斗争的结束,大力发展经济时代的开启。2008年金融危机之后,该词出现频率略微上扬,一个可能的原因,是经济结构转型,由外部投资转向内部需求拉动,也就是说,经济发展转向更以人为本的理念。
分析方法与技术
这一部分主要解释技术问题,供感兴趣的小朋友交流学习。
步骤一,文本预处理,利用python中的request和BeautifulSoup爬取网站文本,去除虚词(比如:的、和)以及标点。
import pandas as pd
import requests
import re
from bs4 import BeautifulSoup
req = requests.get(url = url)
req.encoding = 'utf-8'
html_doc = req.text
standard_html = BeautifulSoup(html_doc, 'lxml')
步骤二,进行分词,一般较多用jieba分词,截取文章内长度大于2的词,在python中有独立的package,代码如下。
import jieba
def word_segment(text_in):
    word_list = []
    seg_list = jieba.lcut(text_in, cut_all=False)
    filter_seg_list = [fil for fil in seg_list if len(fil) >= 2]
    for item in filter_seg_list:
        word_list.append(item)
    return word_list
步骤三,构建同现网络。其中,每个单词构成节点,单词之间的连接(或称关系)为边,比如经济发展,经济 为节点1,发展 为节点2,两个单词之间的连接为边。同现网络一词,在本文中的含义是,两个词在句子中一定范围内共同出现,则计数+1。
步骤四,同现网络形成,进行可视化分析。
该项目代码可在Github上找到:
点击阅读原文
后记
其实还有一些疑问没有解开,比如同现网络的N-Order Markov Chain转移,项目中没有体现Markov Chain Random Matrix Transfer的代码,所以我没有按照作者原来的声称来写这篇文章,代码和分析方法按照自己的理解做了不小的改动。欢迎大神指出错误!
另外,本文仅代表笔者个人观点。辩证看待哦。:)
Jingyi
2019年3月23日