微信号:gh_1b396ada9905

介绍:本公众号专注于Python;一周一篇干货文章,让你轻松学python;我们一起共勉!

词云看两会,教你四步知道2016年政府重心在哪里!

2016-04-29 11:54 Python的一言堂

每年中央政府两会召开,都会吸引国际、国内社会各界的广泛关注,每一年政府工作也会有不同的重心,这也会在每年两会的政府工作报告中体现,正好我们也学习了文本挖掘和词云制作课程,那么我就可以利用这项技术来看一下2015年甚至2016年政府的工作重心在哪里,其中高频关键词又是哪些?

接下来,我教你利用Python,只用三步就能高出既漂亮又好看的词云!


第一步:爬取2016政府工作报告全文(也可收到下载)

这里我们爬取的是“应届毕业生网”上的“2016两会政府工作报告全文”,具体代码如下:


 # _*_ coding:utf-8 _*_
from
newspaper import Article                 #导入newspaper包中的Article函数
import
jieba                                 import csv                                     url = 'http://www.yjbys.com/news/422883.html'
a = Article(url, language='zh') # Chinesea.download() a.parse() title =  a.title content = a.text
print content data = [] csvfile = file(r'D:\python2.7\news.csv', "w")#打开并写入此路径下的csv文件
writer = csv.writer(csvfile,lineterminator='\n')  #定义写入的文件类型及模式
data.append((title.encode('utf-8'),content.encode('utf-8')))#向data中添加我们所获取的信息
writer.writerows(data)  #逐行写入data数据csvfile.close()     #关闭文件

爬取结果如下所示:


           图一 2016政府工作报告全文


第二步:文本分词及处理

接下来我们对爬取下来的报告全文进行分词及词频统计,具体代码如下:

import pandas as pd
news = pd.read_csv(r'C:\Users\Administrator\Desktop\news.csv',header=None,encoding='gbk')
import jieba wd2 = {}
for same_news11_s in news[1]:    s_w1 = jieba.cut(same_news11_s , cut_all=True)    nonsense2 = [u"以上", u"主要", u"实施",u"取得",u"我们",u"实现",u"中国",u"一个",u"月份",u"全国",u"随着",u"记者",u"进行",u"目前"]    
   try
:        
      for w2 in s_w1:            
          if len(w2) < 2:                
              continue
           elif w2 in nonsense2:                
              continue            try:               str(w2)                
              continue            except:                
              if
w2 not in wd2:                    wd2[w2] = 1               else:                    wd2[w2] += 1    except:        
       pass

key_t_list2 = []
for
e in range(0,len(tuple(wd2))):    key_tuple2 = (tuple(wd2)[e],wd2[tuple(wd2)[e]])    
   if
(key_tuple2[1]>5)&(key_tuple2[1]<300):        key_t_list2.append(key_tuple2)        print key_tuple2[0],key_tuple2[1]

经过以上代码的处理,统计出了每个词汇的词频如下:



       图二 词频统计

               

第三步:高频词分析

接下来,我们对词频进行高低排序,来看看到底政府工作报告中,那些词语出现的最为频繁,代码如下

dict1 = dict(key_t_list2)
freq = sorted(dict1.items(), key=lambda e:e[1], reverse=True)
for i in range(len(freq)):    
   print
freq[i][0],freq[i][1]

结果如下:


            
图三 高频率词语


第四步:词云制作

接下来,我们利用祖国地图作为背景,制作高频词语的词云展示,代码如下:

 %matplotlib inline
import imread
import
matplotlib.pyplot as plt
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
groud_coloring = imread( r"C:\Users\Administrator\Desktop\groud.jpg") wordcloud = WordCloud(font_path='C:\Users\Administrator\Desktop\python\simheittf\simhei.ttf',                        mask=groud_coloring,                          background_color="white",   #可以选择black或white                          margin=5, width=800, height=800) # 长宽度控制清晰程度

wordcloud = wordcloud.fit_words(freq)

plt.imshow(wordcloud) plt.axis("off")

制作结果如下:

 

图四  高频词词云

有以上词云结果,我们很容易看出,2016年两会政府工作报告的高频词汇分别是:‘发展’、‘经济’、‘改革’、‘增长’、‘社会’、‘建设’、‘人民’、‘创新’。说明2015到2016年政府的工作重心将主要是经济发展、政治及经济体制改革、社会民生、以及创新创业等。

 
Python的一言堂 更多文章 利用python进行数据分析案例一(一见钟情对python) Python基础教程1:Python简介 Python基础教程2:Python的环境搭建 Python基础教程3:基础语法 Python基础教程4:变量类型
猜您喜欢 【第2章第154回】深入浅出ES6(十六):模块 Modules 聚焦企业安全核心问题 WOT技术峰会再扬风帆 11个技巧让那些程序员对你刮目相看 用Pygame和Python做游戏-从入门到精通(2) Lightning JSON in Rails