记录一下相关代码
#coding:utf-8 # 导入需要模块 import jieba from PIL import Image import numpy as np import matplotlib.pyplot as plt from wordcloud import WordCloud, STOPWORDS import io ''' text = open(r'D:\test.txt','r').read() wc = WordCloud( background_color="white", max_font_size=300, width=800, height=600, margin=2 ) wc.generate(text) plt.imshow(wc) plt.axis("off") plt.show() wc.to_file('test.png') ''' #读取txt文件 text = io.open(r'D:\dong.txt','r',encoding='utf-8').read() print(u'加载txt文件成功') #进行分词 wordlist_after_jieba = jieba.cut(text, cut_all=False) wl_space_split = " ".join(wordlist_after_jieba) print(u'分词成功') # 读取照片通过numpy.array函数将照片等结构数据转化为np-array mask=np.array(Image.open( r'D:mask.png')) print(u'加载图片成功!') #选择屏蔽词,不显示在词云里面 stopwords = set(STOPWORDS) stopwords.add("此用户没有填写评价") # stopwords.add("收到”)可以加多个屏蔽词 #创建词云对象并设置参数 # 需要注意的是使用mask参数后不能使用width, height参数,因为图片大小已经确定 wc = WordCloud( #选择背景色 #设置字体,不指定就会出现乱码 font_path=r'C:\Windows\Fonts\SIMYOU.ttf', background_color="black", max_words=300, mask=mask, stopwords=stopwords, max_font_size=200, min_font_size = 10, # 设置有多少种随机生成状态,即有多少种配色方案 random_state=30 ) #生成词云 wc.generate(text) #存储并指定文件名称 wc.to_file( u"三体3死神永生词云.png") #通过matplotlib绘图库显示词云 plt.imshow(wc, interpolation='bilinear') plt.axis("off") #不显示坐标轴 plt.figure() plt.imshow(mask, cmap=plt.cm.gray, interpolation='bilinear') plt.axis("off") plt.show() print(u'生成词云成功!')