(一) 词云是什么?
词云:指突出中心的词组群,就是对文本中出现频率较高的“关键字(词)”,给予视觉上的突出显示,形成关键字词云,使浏览者一眼就可以掌握文本的大概信息。如下图:
(二) python形成词云
准备工作:
1.配置python环境
2.安装所需要的第三方库:wordcloud库,imageio库,jieba库,matplotlib库
2.1 英文文本词云
import wordcloud
from imageio import imread# 用于png模式的图片导入
mk=imread("心形形状.png")# 作为词云的形状,路径在当前源文件中时省略
f = open("C:\\Users\\lu\\Desktop\\哈姆雷特.txt")# 打开英文文本
t = f.read()
f.close()
w = wordcloud.WordCloud( \
width = 1000, height = 700,\
background_color = "white",
font_path = "msyh.ttc",
mask=mk,
max_words=300
)# 建立词云对象
w.generate(t)# j将文本加入词云对象中
w.to_file("哈姆雷特词云.png")# 输出图片
2.2 中文文本词云
import jieba# 利用jieba库对中文文本进行分词
import wordcloud
from imageio import imread
mk=imread("心形形状.png")
f = open("C:\\Users\\lu\\Desktop\\全面建成小康社会.txt", "r", encoding="utf-8")# 打开中文文本,utf-8为文本编码格式
t = f.read()
f.close()
ls = jieba.lcut(t)# 对中文文本进行分词
txt = " ".join(ls)# 用空格分隔上面分好的词组列表
w = wordcloud.WordCloud( \
width = 1000, height = 700,\
background_color = "white",
font_path = "msyh.ttc",
mask=mk,
max_words=1000
)
w.generate(txt)
w.to_file("全面建成小康社会词云词云.png")
3.3 注意事项
注意:
- 如果覆盖层图片为jpg格式,则用matplotlib库的matplotlib.pyplot.imread()函数导入
- 如果覆盖层图片为png格式,则用imageio库imageio.imread()函数导入
- 覆盖层图片的背景必须是白色,因为词云填充时是在非白色区域显示词云,从而形成词云的形状
代码如下:
import jieba# 利用jieba库对中文文本进行分词
import wordcloud
import matplotlib.pyplot as plt# jpg模式图片
mk=plt.imread("中国地图形状.jpg")
f = open("C:\\Users\\lu\\Desktop\\全面建成小康社会.txt", "r", encoding="utf-8")# 打开中文文本,utf-8为文本编码格式
t = f.read()
f.close()
ls = jieba.lcut(t)# 对中文文本进行分词
txt = " ".join(ls)# 用空格分隔上面分好的词组列表
w = wordcloud.WordCloud( \
width = 1000, height = 700,\
background_color = "white",
font_path = "msyh.ttc",
mask=mk,
max_words=1000
)
w.generate(txt)
w.to_file("全面建成小康社会词云词云.jpg")