python+wordcloud+jieba實現製作詞雲

看起來酷炫的詞雲,用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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章