看起來酷炫的詞雲,用python輕鬆實現
“詞雲”:是對網絡文本中出現頻率較高的“關鍵詞”予以視覺上的突出,形成“關鍵詞雲層”或“關鍵詞渲染”,從而過濾掉大量的文本信息,使瀏覽網頁者只要一眼掃過文本就可以領略文本的主旨。
1.安裝相關庫
詞雲庫(wordcloud):pip install wordcloud
詞文分割庫(jieba):pip install jieba 詳情說明請點擊
2.實現源碼
from wordcloud import WordCloud
import jieba
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image
def get_wordcloud():
file_path='./三毛經典語錄.txt'
background_image_1=np.array(Image.open('./love2.jpg'))
background_image_2 = np.array(Image.open('./suoda.jpg'))
background_image_3 = np.array(Image.open('./namei.jpeg'))
background_image=[background_image_1,background_image_2,background_image_3]
with open(file_path,'r',encoding='utf-8') as f:
txt=f.read()
# jieba.cut 詞文分割,返回列表 cut_all=False爲精確模式
wordlist = jieba.cut(txt, cut_all=False)
# 將列表元素以空格拼接起來
jieba_txt = " ".join(wordlist)
# 用了三張不同的效果圖,循環10次 (看着玩。。)
i=0
while i<10:
for image in background_image:
# 生成詞雲
wordcloud = WordCloud(font_path=r'C:\Windows\Fonts\msyh.ttc', # 調用系統自帶字體(微軟雅黑)
background_color='white', # 背景色
max_words=500, # 最大顯示單詞數
max_font_size=60, # 頻率最大單詞字體大小
mask=image # 自定義顯示的效果圖
).generate(jieba_txt)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
i+=1
if __name__ == '__main__':
get_wordcloud()
3. 運行結果
原圖:
效果圖:
參考:https://www.cnblogs.com/jiangchengzi93812/p/9450455.html