這篇文章給大家介紹如何在Python中生成任何形狀的詞云,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
成都創(chuàng)新互聯公司主營三臺網站建設的網絡公司,主營網站建設方案,成都app軟件開發(fā)公司,三臺h5重慶小程序開發(fā)公司搭建,三臺網站營銷推廣歡迎三臺等地區(qū)企業(yè)咨詢
什么是詞云呢?簡單來說就是,將提供的一段文本,根據關鍵詞的出現頻率而生成的一幅圖像,人們只要掃一眼就能夠明白文章主旨。今天我們用python來實現這樣一個項目。如果成功,生成的結果會如下所示
生成中文詞云的PYTHON步驟
需要你的電腦安裝Python 接著利用pip工具安裝需要的jieba、wordcloud、PIL模塊
1.安裝依賴
$ pip install jieba
$ pip install wordcloud
$ pip install PIL
2.添加想要用來生成文本的文章
小編蹭一波最近比較火的電視劇沉香蜜蜜燼如霜的熱度,用主題曲歌詞制作了一個文本,放在data目錄下。Ok,DJ drop the beat
回憶輾轉來回 痛不過這心扉
愿只愿余生無悔 隨花香遠飛
一壺清酒 一身塵灰
一念來回度余生無悔
一場春秋 生生滅滅 浮華是非
待花開之時再醉一回
不愿染是與非 怎料事與愿違
心中的花枯萎 時光它去不回
回憶輾轉來回 痛不過這心扉
3.選擇生成詞云的形狀
Hold,現在要找一張圖片,用它來定義你最后生成的詞云形狀。ok,我找來了一張打碟的DJ的圖片放在根目錄下。
4.代碼部分
a)用jieba成詞和權重的字典
def tokenize_content(content):
jieba.analyse.set_stop_words("data/stop_words.txt")
tags = jieba.analyse.extract_tags(content, topK=50, withWeight=True)
word_tokens_rank = dict()
for tag in tags:
word_tokens_rank[tag[0]] = tag[1]
return word_tokens_rank
第一步 還是去掉一些停用詞,例如口語詞匯或者意義不大的詞,停用詞可以自定義,在data目錄下的stop_words.txt中。
第二步 按照權重抽取前50個詞,并轉換成詞典的形式。
b)用上面的生成的字典,傳入word_cloud生成最后的效果
def generate_wordcloud(tags, mask):
word_cloud = WordCloud(width=512, height=512, random_state=10, background_color='white', font_path=font,stopwords=STOPWORDS, mask=mask)
word_cloud.generate_from_frequencies(tags)
plt.figure(figsize=(10, 8), facecolor='white', edgecolor='blue')
plt.imshow(word_cloud)
plt.axis('off')
plt.tight_layout(pad=0)
plt.show()
注意如果使用的是蘋果電腦,macOSX系統(tǒng)。需要添加
import matplotlib
matplotlib.use('TkAgg')
注意的事項:
1:注意如果使用的是蘋果電腦,macOSX系統(tǒng)。需要在引包的時候添加
import matplotlib
matplotlib.use('TkAgg')
2:如果是windows系統(tǒng)中,需要找到具體的中文字體,并定義下中文字體路徑,例如如下。
font = r'C:\Windows\Fonts\simhei.ttf'
關于如何在Python中生成任何形狀的詞云就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。