您的位置:首页 > 编程语言 > Python开发

python wordcloud 词云

2017-12-15 21:57 344 查看

python wordcloud 词云

词云是对文本数据中出现频率较高的“关键词”在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意思。

而python在生成词云上也是非常的方便。

需要安装的包

使用pip安装下述包

jieba
:一个国人开发的优秀的分词工具

wordcloud
:词云的核心包

matplotlib
PIL
numpy
用于处理和绘制图像

wordcloud安装的问题

我是windows下安装,由于缺乏VS编译器在
pip install
时无法正确安装wordcloud。

此时想用minGW去编译,发现python3.5.2的版本在windows下不支持minGW。。。

于是转战linux平台,发现安装还是出问题。提示没有
python-tk
。即tkinter,一个python默认使用的GUI平台。此平台在windows下是随安装包可选安装的,但linux下并未安装。于是使用apt来安装。之后就开开心心的安装成功了。

注意使用的python版本

sudo apt-get Install python3-tk


代码

生成词云的大致过程可分为:

读取和处理文本

读取背景

设置参数并生成词云

绘图

具体使用请见下述源码

import jieba
import wordcloud
import matplotlib.pyplot as plt
import PIL
import numpy as np

# Read raw file
with open('word.txt', 'r') as f:
raw_txt = f.read()

# Read background pic
pic = PIL.Image.open("backgroud.jpg")
pic_mask = np.array(pic)

# word split
raw_txt = jieba.cut(raw_txt, cut_all=True)
raw_txt = ' '.join(raw_txt) # split word with space

# Make word cloud, The parameters setting please see help()
wc = wordcloud.WordCloud()
wc.font_path        = 'msyh.ttf' # microsoft yahei
wc.width            = 1200
wc.height           = 800
wc.max_word         = 2000
wc.mask             = pic_mask
wc.radom_state      = 42
wc.max_font_size    = 84
wc.min_font_size    = 16
wc.background_color = "white"
word_cloud = wc.generate(raw_txt)

# plot word cloud
plt.imshow(word_cloud)
plt.axis('off')
plt.figure()

# plot word cloud with re-color by mask
img_color   = wordcloud.ImageColorGenerator(pic_mask)
img_recolor = word_cloud.recolor(color_func=img_color)
plt.imshow(img_recolor)
plt.axis("off")
plt.show()


输出结果

由于背景图片没有处理过,所以看上去有些凌乱。但还是能够看出大致轮廓和相似的色彩。另外,大家看的出用于词云分析的是什么文章吗?:)

词云图:



结合原图颜色处理后的词云图:



原图:



参考

10行python代码的词云

python词云 wordcloud 入门
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python wordcloud