使用現有的txt文本和圖片,就可以用wordcloud包生成詞雲圖。大致步驟是:
1、讀取txt文本並簡單處理;
2、讀取圖片,以用作背景;
3、生成詞雲對象,保存為文件。
需要用到3個庫:jieba(用於分割文本為詞語)、imageio(用於讀取圖片)、wordcloud(功能核心,用於生成詞雲)。
我用簡歷和我的照片,生成了一個詞雲圖:
代碼如下:
import jieba import imageio import wordcloud # 讀取txt文本 with open('resume.txt','r',encoding='utf-8') as f: text = f.read() # 簡單處理文本,刪除空格等多余字符 text = text.replace(' ','').replace('\t','').replace('\n','') # 使用jieba分隔詞語 wordlist = jieba.lcut(text) # ['aa','bb','cc'...] # print(wordlist) # 用空格連接各個詞語,又形成一個大字符串 string = ' '.join(wordlist) # 'aa bb cc' # 讀取圖片 image = imageio.imread('ding.jpg') # 生成詞雲圖片 # 先實例化一個詞雲對象 wc = wordcloud.WordCloud(width=image.shape[0], # 詞雲圖寬度同原圖片寬度 height=image.shape[1], background_color='white', # 背景顏色白色 font_path='msyh.ttc', # 指定字體路徑,微軟雅黑,可從win自帶的字體庫中找 mask=image, # mask 指定詞雲形狀圖片,默認為矩形 scale=3) # 默認為1,越大越清晰 # 再給詞雲輸入文字 wc.generate(string) # 保存成文件 wc.to_file('wordcloud21.png')