习大大十九大讲话词云分析

前言

10月18日上午9:00,中国共产党第十九次全国代表大会开幕会在人民大会堂大礼堂举行,习近平总书记代表十八届中央委员会向大会作了报告。报告全文3万多字,讲话时长3个多小时,铿锵有力,振奋人心。

会后,本着认证学习并贯彻十九大精神的目的,本人使用用jieba+wordcloud对习总书记在十九大开幕式上的发言做了词云分析,以作为学习资料。

img


环境

  • Python 3.6.1
  • Windows 7 64位
  • PyCharm 2017.1.4

思路

首先获取分析文本,然后使用jieba包进行分词,最后用wordcloud包生成词云图。

获取分析文本

讲话当天很多网站便刊登了报告全文,在这里我选择了其中公信力较强的中国网发表的文章《中共十九大开幕,习近平代表十八届中央委员会作报告(直播全文)》作为文本来源

首先复制文本并转存为习近平十九大报告全文.txt文件,放入根目录下待处理。

jieba分词

“结巴”中文分词:做最好的 Python 中文分词组件。

jieba官方文档查看点这里

“Jieba” (Chinese for “to stutter”) Chinese text segmentation: built to be the best Python Chinese word segmentation module.

  • Scroll down for English documentation.

安装

代码对 Python 2/3 均兼容

安装:

1
pip install jieba

开始分词

1
2
3
4
5
import jieba

text = open(u'习近平十九大报告全文.txt','r').read() #以只读模式打开.txt
wordlist_after_jieba =jieba.cut(text,cut_all=True)
wl_space_split =" ".join(wordlist_after_jieba)

wordcloud词云

构建词云的方法很多, 但是个人觉得python的wordcloud包功能最为强大,可以自定义图片.
官网: https://amueller.github.io/word_cloud/
github: https://github.com/amueller/word_cloud

安装

方法:

1
pip install wordcloud

如果使用pip安装时出现以下错误

这里写图片描述

解决方案

http://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud下载
wrapt‑1.10.10‑cp36‑cp36m‑win_amd64.whl文件,然后到本文件所在目录执行

1
pip install wrapt‑1.10.10‑cp36‑cp36m‑win_amd64.whl

即可安装。

生成词云

首先我们把想要设置的词云背景图片存入根目录下(在这里我采用的是党徽)

img

生成词云的代码,具体逻辑看代码注释:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import matplotlib.pyplot as plt
import os
from wordcloud import WordCloud, ImageColorGenerator
import numpy as np
import PIL.Image as Image

# 获取当前文件路径
# __file__为当前文件,在ide中运行时会报错,可改为
# d = os.path.dirname('.')
d = os.path.dirname(__file__)
# 设置背景图片
alice_coloring = np.array(Image.open(os.path.join(d, "党徽.jpg")))
# 词云参数设置
# win的字体在c:/windows/Fonts中
my_wordcloud = WordCloud(font_path="HYQiHei-65J.ttf", # 设置字体
background_color="white", # 背景颜色
max_words=2000, # 词云显示的最大词数
mask=alice_coloring, # 设置背景图片
max_font_size=70, # 字体最大值
random_state=42, # 随机程度
).generate(wl_space_split) # 生成词云, 可以用generate输入全部文本
# 从背景图片生成颜色值
image_colors = ImageColorGenerator(alice_coloring)
# 采用颜色值生成图片
plt.imshow(my_wordcloud.recolor(color_func=image_colors))

plt.imshow(my_wordcloud)
plt.axis("off")
plt.show()

my_wordcloud.to_file(os.path.join(d, "nineteen_cloud.png")) #保存图片

结果展示

生成的过程可能较慢(我的笔记本大概花了1mins)中间会生成一个预览窗口,关闭后才会将.png保存出来

最后出来的效果:

img

注:关于图中出现的错误分词可在jieba分词的设置中逐个忽略掉。

最后,还是那句话:认证学习贯彻党的十九大精神,把学习作为自己的重要任务,不断在汲取各方面的知识,并在实践中不断磨练自己!(认真脸)

用钱砸我,不要停!