制作词云需要两个python核心类库
1、jieba中文分词器
安装:pip install jieba
2、wordcloud:Python下的词云生成工具
安装:
下载https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud
下载完成后在该包的目录下执行
pip install wordcloud-1.6.0-cp36-cp36m-win_amd64.whl
wordcloud-1.6.0-cp36-cp36m-win_amd64.whl
安装完成!
准备一个text文档,上面写上要做的文字,以及一张图片作词云的背景图
# -*- coding: utf-8 -*-
import PIL
from os import path
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
import jieba
from wordcloud import WordCloud, STOPWORDS
d = path.dirname(__file__)
# 1.读入txt文本数据
txt = open("ciyun.txt", "r", encoding="utf-8").read()
# 2.结巴中文分词,生成字符串,默认精确模式,如果不通过分词,无法直接生成正确的中文词云
cut_text = jieba.cut(txt)
# 必须给个符号分隔开分词结果来形成字符串,否则不能绘制词云
result = " ".join(cut_text)
# 读取图片
alice_mask = np.array(PIL.Image.open(d+'/xin.png'))
# 要忽略的 不在词云显示的词组
stopwords = set(STOPWORDS)
stopwords.add("我们")
wc = WordCloud(font_path="C:/Windows/Fonts/simfang.ttf",
background_color="white",
max_words=2000,
mask=alice_mask,
stopwords=stopwords)
# 生成词云
wc.generate(result)
# 存储到当前文件 ,生成词云的名称
wc.to_file(r"wordcloud.png")
# show
plt.imshow(wc, interpolation='bilinear')
# 关闭图像坐标系
plt.axis("off")
plt.show()