溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何在Python中生成任何形狀的詞云

發(fā)布時(shí)間:2021-12-22 16:30:55 來源:億速云 閱讀:558 作者:柒染 欄目:互聯(lián)網(wǎng)科技

這篇文章給大家介紹如何在Python中生成任何形狀的詞云,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

什么是詞云呢?簡(jiǎn)單來說就是,將提供的一段文本,根據(jù)關(guān)鍵詞的出現(xiàn)頻率而生成的一幅圖像,人們只要掃一眼就能夠明白文章主旨。今天我們用python來實(shí)現(xiàn)這樣一個(gè)項(xiàng)目。如果成功,生成的結(jié)果會(huì)如下所示

如何在Python中生成任何形狀的詞云

 

生成中文詞云的PYTHON步驟

需要你的電腦安裝Python 接著利用pip工具安裝需要的jieba、wordcloud、PIL模塊

1.安裝依賴

$ pip install jieba
$ pip install wordcloud
$ pip install PIL

2.添加想要用來生成文本的文章

小編蹭一波最近比較火的電視劇沉香蜜蜜燼如霜的熱度,用主題曲歌詞制作了一個(gè)文本,放在data目錄下。Ok,DJ drop the beat

回憶輾轉(zhuǎn)來回 痛不過這心扉

愿只愿余生無悔 隨花香遠(yuǎn)飛

一壺清酒 一身塵灰

一念來回度余生無悔

一場(chǎng)春秋 生生滅滅 浮華是非

待花開之時(shí)再醉一回

不愿染是與非 怎料事與愿違

心中的花枯萎 時(shí)光它去不回

回憶輾轉(zhuǎn)來回 痛不過這心扉

3.選擇生成詞云的形狀

Hold,現(xiàn)在要找一張圖片,用它來定義你最后生成的詞云形狀。ok,我找來了一張打碟的DJ的圖片放在根目錄下。

如何在Python中生成任何形狀的詞云

 

4.代碼部分

a)用jieba成詞和權(quán)重的字典 

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中。

第二步 按照權(quán)重抽取前50個(gè)詞,并轉(zhuǎn)換成詞典的形式。

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')

注意的事項(xiàng):

1:注意如果使用的是蘋果電腦,macOSX系統(tǒng)。需要在引包的時(shí)候添加 

import matplotlib
matplotlib.use('TkAgg')

2:如果是windows系統(tǒng)中,需要找到具體的中文字體,并定義下中文字體路徑,例如如下。

font = r'C:\Windows\Fonts\simhei.ttf'

關(guān)于如何在Python中生成任何形狀的詞云就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI