導入需要的模塊
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, # 繪圖區(qū)寬度菜拓,默認400,整型
? ? height = 700, # 繪圖區(qū)高度笛厦,默認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)