导入需要的模块
import jieba jieba.setLogLevel(jieba.logging.INFO) # 设置日志等级,使底层日志不要打印出来 import jieba.analyse from wordcloud import WordCloud from wordcloud import ImageColorGenerator import matplotlib.pyplot as plt
使用jieba生成字符串:浮点数的键值对来表示的关键词及频率,这个地方可以根据需要自定义很多参数,具体参考jieba文档
frequencies = {} for word,m in jieba.analyse.textrank(text_file,topK=100,withWeight=True,allowPOS=('ns','n','vn','v','nr','nt','nw','nz','PER','LOC','ORG')): frequencies[word] = m
生成词云
backgroud_Image = plt.imread(pic_file) wc= WordCloud( font_path = font_path, # 字体文件的路径,字符串 width = 1000, # 绘图区宽度,默认400,整型 height = 700, # 绘图区高度,默认200,整型 mask = backgroud_Image, scale = 2, # 计算过程和实际绘图的比例,浮点型,默认1,数值越大图片越清晰 max_words = 200, # 绘图使用的最大单词数,整型,默认200 background_color = None, # 背景颜色,颜色值,默认为'black' mode = 'RGBA', # 模式,默认为'RGB',当为'RGBA'时,倘若背景颜色为None,则会得到透明的背景 relative_scaling = 0.5, # 单词出现频率对其字体大小的权重,值为0时,只考虑单词排名对字体大小的影响,值为1时,具有2倍出现频率的单词具有2倍的字体大小,一般值设置为0.5最棒,浮点型 ).generate_from_frequencies( frequencies ) image_colors = ImageColorGenerator(backgroud_Image) wc.recolor(color_func=image_colors) # 重新上色 plt.imshow(wc) # 生成图片 plt.axis('off') # 关闭坐标轴 plt.show() # 显示图片 wc.to_file(ciyun_file)