本文主要介绍用wordcloud库制作《唐诗三百首》的词云图的方法,以及注意点。
根据北京理工大学嵩天老师《Python语言程序设计》课程的代码做了部分修改。
主要思路
- 读取《唐诗三百首》文件
- 使用jieba库分词,使用wordcloud库生成词云图
- 输出词云图
import os
from imageio import imread
import jieba
import wordcloud
d = os.getcwd()
#读取文件
f = open(os.path.join(d,'唐诗三百首.txt'),'r',encoding = 'utf-8') #这里可以直接输入路径,就不需要使用os.path.join()了,下面同理
t = f.read()
f.close()
#jieba分词
ls = jieba.lcut(t)
txt = ' '.join(ls)
#生成词云
mask = imread(os.path.join(d,'dufu.jpg')) #设置蒙版图形
w = wordcloud.WordCloud( width = 1000, height = 700,\
background_color = "white",
font_path = "msyh.ttc", mask = mask)
w.generate(txt)
#词云图输出
w.to_file(os.path.join(d,'tangshi2.png'))
生成的词云图效果如下
从中可以看出,唐诗三百首出现次数较多的诗人有杜甫、王维、李白、孟浩然等;而较常出现的词有万里、不见、何处、明月、故人、芙蓉、青山、相思、琵琶等。
注意点
模板图形的读入:最初使用的是代码是from scipy.misc import imread ,但是运行之后报错,如下:
DeprecationWarning:
imreadis deprecated!imreadis deprecated in SciPy 1.0.0, and will be removed in 1.2.0.
Useimageio.imreadinstead.
所以,改用imageio库的imread指令。
欢迎指正交流~