導(dǎo)入需要的模塊
import jieba
jieba.setLogLevel(jieba.logging.INFO) # 設(shè)置日志等級,使底層日志不要打印出來
import jieba.analyse
from wordcloud import WordCloud
from wordcloud import ImageColorGenerator
import matplotlib.pyplot as plt
使用jieba生成字符串:浮點數(shù)的鍵值對來表示的關(guān)鍵詞及頻率,這個地方可以根據(jù)需要自定義很多參數(shù),具體參考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ū)寬度,默認(rèn)400,整型
? ? height = 700, # 繪圖區(qū)高度,默認(rèn)200,整型
? ? mask = backgroud_Image,
? ? scale = 2, # 計算過程和實際繪圖的比例,浮點型,默認(rèn)1,數(shù)值越大圖片越清晰
? ? max_words = 200, # 繪圖使用的最大單詞數(shù),整型,默認(rèn)200
? ? background_color = None, # 背景顏色,顏色值,默認(rèn)為'black'
? ? mode = 'RGBA', # 模式,默認(rèn)為'RGB',當(dāng)為'RGBA'時,倘若背景顏色為None,則會得到透明的背景
? ? relative_scaling = 0.5, # 單詞出現(xiàn)頻率對其字體大小的權(quán)重,值為0時,只考慮單詞排名對字體大小的影響,值為1時,具有2倍出現(xiàn)頻率的單詞具有2倍的字體大小,一般值設(shè)置為0.5最棒,浮點型
).generate_from_frequencies( frequencies )
image_colors = ImageColorGenerator(backgroud_Image)
wc.recolor(color_func=image_colors) # 重新上色
plt.imshow(wc) # 生成圖片
plt.axis('off') # 關(guān)閉坐標(biāo)軸
plt.show() # 顯示圖片
wc.to_file(ciyun_file)