python wordcloud 词云

python wordcloud 词云

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

需要安装的包

使用pip安装下述包

  • jieba:一个国人开发的优秀的分词工具
  • wordcloud:词云的核心包
  • matplotlibPILnumpy用于处理和绘制图像

wordcloud安装的问题

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

  1. 此时想用minGW去编译,发现python3.5.2的版本在windows下不支持minGW。。。
  2. 于是转战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()

输出结果

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

词云图:

这里写图片描述

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

这里写图片描述

原图:

原图

参考


  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值