Python制作個(gè)性化的詞云圖實(shí)例講解
1. 引言
詞云圖可以讓我們方便地識(shí)別出文本中的關(guān)鍵詞,其中單詞的大小代表它們的頻率。有了這個(gè),我們甚至在閱讀之前就可以很好地了解文本的內(nèi)容。雖然有很多免費(fèi)的工具可以在線制作文字云,但我們可以使用萬能的Python來定制個(gè)性化的詞云圖。
在本文中,我們將使用第三方Python庫stylecloud,有了該庫,可以通過簡短的幾行代碼來制作漂亮的詞云圖。如下所示:
閑話少說,我們直接開始吧。 :)
2. 舉個(gè)栗子
接下來,我們將用來制作詞云圖的文本是偶像喬布斯在斯坦福大學(xué)演講的一部分。點(diǎn)擊這里可以獲得對(duì)應(yīng)的 .txt 文件或使用任何其他的文本來制作你自己的詞云圖。
2.1 安裝stylecloud庫
這里我們可以直接使用pip來安裝該詞云庫,代碼如下:
pip3 install stylecloud
2.2 生成詞云圖
接著我們可以使用stylecloud.gen_stylecloud() 方法來生成詞云圖,通過傳遞相應(yīng)的文本 .txt 文件的路徑和生成詞云的圖標(biāo)樣式。
在網(wǎng)站上,我們可以方便的找到可用于 stylecloud 的圖標(biāo)樣式列表。在此示例中,我選擇了一個(gè)蘋果作為圖標(biāo)。代碼如下:
import stylecloud stylecloud.gen_stylecloud(file_path='SJ-Speech.txt', icon_name="fas fa-apple-alt")
上述代碼運(yùn)行后,在當(dāng)前python文件目錄下生成以png格式保存詞云圖,如下所示:
2.3 美化顯示效果
仔細(xì)觀察gen_stylecloud函數(shù)的相關(guān)參數(shù),我們可以控制背景顏色、單詞的顏色、輸出文件的名稱等。為此,我們查看下面的代碼:
stylecloud.gen_stylecloud(file_path='SJ-Speech.txt', icon_name='fas fa-apple-alt', colors='white', background_color='black', output_name='apple.png', collocations=False)
運(yùn)行結(jié)果如下:
2.4 處理停用詞
我們可以使用stop_words庫來處理文本中的停用詞,可以使用pip install stop_words
來安裝該庫。有了停用詞列表,我們也可以將其傳遞給在gen_stylecloud函數(shù)中的custom_stopwords參數(shù)。
樣例代碼如下:
from stop_words import get_stop_words stop_words = get_stop_words('english') stylecloud.gen_stylecloud(file_path='SJ-Speech.txt', icon_name='fas fa-apple-alt', palette='cartocolors.qualitative.Pastel_3', background_color='black', output_name='apple.png', collocations=False, custom_stopwords=stop_words)
上述代碼的運(yùn)行結(jié)果如下:
2.5 使用自定義背景圖像
在上述網(wǎng)站上有數(shù)百個(gè)免費(fèi)圖標(biāo)可用于 stylecloud,但是但有時(shí)我們可能希望使用自己的圖像來為創(chuàng)建更加個(gè)性化的詞云圖。此時(shí),我們可以使用PIL庫來讀取圖像,使用matplotlib來繪制我們的圖像,使用wordcloud來制作對(duì)應(yīng)的詞云圖。
下述代碼中使用蝙蝠的圖案來生成對(duì)應(yīng)的詞云圖,代碼如下:
from wordcloud import WordCloud, ImageColorGenerator from PIL import Image import matplotlib.pyplot as plt import numpy as np # create a mask based on the image we wish to include my_mask = np.array(Image.open('batman-logo.png')) # create a wordcloud wc = WordCloud(background_color='white', mask=my_mask, collocations=False, width=600, height=300, contour_width=3, contour_color='black', stopwords=stop_words) with open('SJ-Speech.txt',encoding='gb18030',errors='ignore') as txt_file: texto = txt_file.read() wc.generate(texto) image_colors = ImageColorGenerator(my_mask) wc.recolor(color_func=image_colors) plt.figure(figsize=(20, 10)) plt.imshow(wc, interpolation='bilinear') plt.axis('off') wc.to_file('wordcloud2.png') plt.show()
運(yùn)行結(jié)果如下:
3. 總結(jié)
本文詳細(xì)介紹了如何使用stylecloud庫來繪制各種樣式的詞云圖,以突出顯示文本中相應(yīng)的關(guān)鍵詞,并給出了定制化改進(jìn)顯示效果的樣例代碼。
到此這篇關(guān)于Python制作個(gè)性化的詞云圖實(shí)例講解的文章就介紹到這了,更多相關(guān)Python詞云圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)在線程里運(yùn)行scrapy的方法
這篇文章主要介紹了Python實(shí)現(xiàn)在線程里運(yùn)行scrapy的方法,涉及Python線程操作的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04python機(jī)器基礎(chǔ)邏輯回歸與非監(jiān)督學(xué)習(xí)
這篇文章主要為大家介紹了python機(jī)器基礎(chǔ)邏輯回歸與非監(jiān)督的學(xué)習(xí)講解u,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11pandas DataFrame 警告(SettingWithCopyWarning)的解決
這篇文章主要介紹了pandas DataFrame 警告(SettingWithCopyWarning)的解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07Python中數(shù)字(Number)數(shù)據(jù)類型常用操作
本文主要介紹了Python中數(shù)字(Number)數(shù)據(jù)類型常用操作,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02Manjaro、pip、conda更換國內(nèi)源的方法
這篇文章主要介紹了Manjaro、pip、conda更換國內(nèi)源的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11Python實(shí)現(xiàn)利用最大公約數(shù)求三個(gè)正整數(shù)的最小公倍數(shù)示例
這篇文章主要介紹了Python實(shí)現(xiàn)利用最大公約數(shù)求三個(gè)正整數(shù)的最小公倍數(shù),涉及Python數(shù)學(xué)運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2017-09-09Python快速實(shí)現(xiàn)分列轉(zhuǎn)到行的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用Python快速實(shí)現(xiàn)分列轉(zhuǎn)到行的效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)一下2023-03-03