首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python生成词云图

闲话不多说,直接上干货!

STEP1

安装jieba包

点击桌面菜单栏的开始按钮,输入cmd回车,进入命令窗口。

在命令行输入 pip install jieba回车,安装jieba包。

安装wordcloud包

同jieba一样,也可以使用pip install wordcloud安装,但是安装速度很慢,通常使用whl文件安装。

python常用whl文件的下载地址:

https://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy

进入该网址,搜索wordcloud,小编下载的是图中红框所示文件

下载好whl文件后,在命令行中输入pip install和空格,将whl文件直接拖拽至命令行窗口,点击回车

jieba包和wordcloud包都安装完成后,准备工作就完成了。

STEP2

编写词云图代码

# 导入需要的包

import jieba

from wordcloudimportWordCloud

from scipy.miscimportimread

import matplotlib.pyplot as plt

其中imread用于读取图片,plt用于最后词云图展示

# 读取文本文件

text=open('G:/py/wc/text.txt','r',encoding='gbk').read()

# 对文本进行分词

cut_text=' '.join(jieba.cut(text))

# 读取图片

color_mask = imread("G:/py/wc/11.png")

文件路径最好为英文,尽量避免报错

若运行后提示encoding编码错误,将encoding更改为utf8或其他编码格式,或者删除encoding

图片有png、jpg等多种格式,按照实际情况输入

所有文件最好放在同一文件夹下,方便输入路径

# 生成词云

cloud =WordCloud(

font_path='G:/py/wc/new_songti.ttc',

background_color='white',

mask=color_mask,

max_words=2000,

max_font_size=80)

word_cloud = cloud.generate(cut_text)

字体路径必须设置

可以使用 help 功能查看WordCloud的所有参数

在spyder中,选中代码中的WordCloud,按住ctrl键,点击鼠标,也可以调出WordCloud的参数。通过调试参数,可以画出更加美观的词云图

# 输出图片

plt.axis('off')

plt.imshow(word_cloud)

plt.show()

删掉最后一行代码 plt.show(),对词云图是没有影响的,但是最好养成良好习惯,只要有图片展示的代码中,最好加上。

plt.show() 起到全局控制的作用,当一个脚本中出现多个图片展示时,不加plt.show() 会导致图片输出错误

最终生成的词云图:

观察词云图,发现“一个”、“知道”、“他们”、“我们”这些词汇,对于理解《三体》帮助不大,需要设置一个过滤机制,筛选掉这些意义不大的词汇。

首先我们创建一个用于存放过滤词的txt文件。

运行过滤词的代码

# 导入停止词

stopword = open('G:/py/wc/stopword.txt','r').read()

# 转换为列表

cut_text=cut_text.split(' ')

cut_text=list(cut_text)

stopword = stopword.split(' ')

stopword=list(stopword)

# 去除停止词

for i in stopword:

for j in cut_text:

if j == i:

cut_text.remove(j)

# 列表转字符串

cut_text=" ".join(cut_text)

word_cloud = cloud.generate(cut_text)

再次输出词云图

plt.axis('off')

plt.imshow(word_cloud)

plt.show()

过滤后的词云图比过滤前主题更明确了,现在没有读过三体的小伙伴也能大概了解到这本书是在讲什么啦!

为了方便小伙伴,本文提供所涉及材料的下载地址:

https://pan.baidu.com/s/1c1EbfuK

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171229G0UNNY00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券