import jieba
import wordcloud
from imageio import imread
mask = imread("164459429.jpg")
with open("shijiudabaogao.txt",'r') as w:
t = w.read()
ls = jieba.lcut(t)
text = "".join(ls)
w = wordcloud.WordCloud(font_path = 'msyh.ttc',width = 1000,height = 800,background_color = 'white',mask = mask)
w.generate(text)
w.to_file("十九大报告.jpg")
首先导入三个第三方库(如果第三方库没有下载,请在命令窗口输入pip install 你需要的第三方库的名称),然后用imread方法传入图片(注意图片最好和程序在一个文件下)。然后打开需要生成词云的文件,我这个文件是十九大报告。然后将文件内容传给变量t。
紧接着,使用jieba库的lcut方法将文本进行分词返回的是一个列表类型。因为生成词云必须是文本格式。所以我们用join将改文件变成用空格分隔的文本。接着我们设置生成的词云的格式。font_path参数是设置字体。然后设置宽、长的值还有背景颜色。最后的将mask传给词云做背景(传入图片的背景必须是白色)。还有一个参数是设置生成词云的字数。使用方法:max_words = 15(根据个人需要输入)
最后向WordCloud对象w中加载文本text,保存图片。
背景图片:
生成词云:
``
import jieba
import wordcloud
'''from imageio import imread
mask = imread("164459429.jpg")'''
with open("shijiudabaogao.txt",'r') as w:
t = w.read()
ls = jieba.lcut(t)
text = "".join(ls)
w = wordcloud.WordCloud(font_path = 'msyh.ttc',width = 1000,height = 900,background_color = 'white')
w.generate(text)
w.to_file("十九大报告.jpg")
当然也可以不设置mask参数,这样生成的词云就是这样的
import jieba
import wordcloud
'''from imageio import imread
mask = imread("164459429.jpg")'''
with open("shijiudabaogao.txt",'r') as w:
t = w.read()
ls = jieba.lcut(t)
text = "".join(ls)
w = wordcloud.WordCloud(font_path = 'msyh.ttc',width = 1000,height = 900,background_color = 'white',max_words = 15)
w.generate(text)
w.to_file("十九大报告.jpg")
如果设置了max_words参数生成词云如下: