Python培训
400-996-5531
闲话不多说,直接上干货!
STEP1
安装jieba包
点击桌面菜单栏的开始按钮,输入cmd回车,进入命令窗口。
在命令行输入 pip install jieba回车,安装jieba包。
安装wordcloud包
同jieba一样,也可以使用pip install wordcloud安装,但是安装速度很慢,通常使用whl文件安装。
python常用whl文件的下载地址:
#/~gohlke/pythonlibs/#scipy
进入该网址,搜索wordcloud,小编下载的是图中红框所示文件
下载好whl文件后,在命令行中输入pip install和空格,将whl文件直接拖拽至命令行窗口,点击回车
jieba包和wordcloud包都安装完成后,准备工作就完成了。
STEP2
编写词云图代码
# 导入需要的包
import jieba
from wordcloud import WordCloud
from scipy.misc import imread
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
填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
Copyright © 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有
Tedu.cn All Rights Reserved