from wordcloud import WordCloud import matplotlib.pyplot as plt import numpy as np from PIL import Image from jieba import * def Replace(text,old,new): #替换列表的字符串 for char in old: text = text.replace(char,new) return text def getText(filename): #读取文件内容(utf-8 编码格式) #特殊符号和部分无意义的词 sign = '''!~·@¥……*“”‘’\n(){}【】;:"'「,」。-、?''' with open('{}.txt'.format(filename), "r") as f: # 设置文件对象 txt = f.read() return Replace(txt,sign," ") def creat_word_cloud(filename): #将filename 文件的词语按出现次数输出为词云图 text = getText(filename) #读取文件 wordlist = lcut(text) #jieba库精确模式分词 wl = ' '.join(wordlist) #生成新的字符串 #设置词云图 font = r'C:\Windows\Fonts\simfang.ttf' #设置字体路径 wc = WordCloud( background_color = 'black', #背景颜色 max_words = 2000, #设置最大显示的词云数 font_path = font, #设置字体形式(在本机系统中) height = 1200, #图片高度 width = 1600, #图片宽度 max_font_size = 100, #字体最大值 random_state = 250, #配色方案的种类 ) myword = wc.generate(wl) #生成词云 #展示词云图 plt.imshow(myword) plt.axis('off') plt.show() #以原本的filename命名保存词云图 wc.to_file('{}.png'.format(filename)) if __name__ == '__main__': creat_word_cloud('data') #输入文件名生成词云图