小編給大家分享一下Python如何制作個性化的詞云圖,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
詞云圖可以讓我們方便地識別出文本中的關鍵詞,其中單詞的大小代表它們的頻率。有了這個,我們甚至在閱讀之前就可以很好地了解文本的內容。雖然有很多免費的工具可以在線制作文字云,但我們可以使用萬能的Python來定制個性化的詞云圖。
在本文中,我們將使用第三方Python庫stylecloud,有了該庫,可以通過簡短的幾行代碼來制作漂亮的詞云圖。如下所示:

接下來,我們將用來制作詞云圖的文本是偶像喬布斯在斯坦福大學演講的一部分。點擊這里可以獲得對應的 .txt 文件或使用任何其他的文本來制作你自己的詞云圖。
這里我們可以直接使用pip來安裝該詞云庫,代碼如下:
pip3 install stylecloud
接著我們可以使用stylecloud.gen_stylecloud() 方法來生成詞云圖,通過傳遞相應的文本 .txt 文件的路徑和生成詞云的圖標樣式。
在網站上,我們可以方便的找到可用于 stylecloud 的圖標樣式列表。在此示例中,我選擇了一個蘋果作為圖標。代碼如下:
import stylecloud stylecloud.gen_stylecloud(file_path='SJ-Speech.txt', icon_name="fas fa-apple-alt")
上述代碼運行后,在當前python文件目錄下生成以png格式保存詞云圖,如下所示:

仔細觀察gen_stylecloud函數的相關參數,我們可以控制背景顏色、單詞的顏色、輸出文件的名稱等。為此,我們查看下面的代碼:
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)
運行結果如下:

我們可以使用stop_words庫來處理文本中的停用詞,可以使用pip install stop_words來安裝該庫。有了停用詞列表,我們也可以將其傳遞給在gen_stylecloud函數中的custom_stopwords參數。
樣例代碼如下:
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)上述代碼的運行結果如下:

在上述網站上有數百個免費圖標可用于 stylecloud,但是但有時我們可能希望使用自己的圖像來為創建更加個性化的詞云圖。此時,我們可以使用PIL庫來讀取圖像,使用matplotlib來繪制我們的圖像,使用wordcloud來制作對應的詞云圖。
下述代碼中使用蝙蝠的圖案來生成對應的詞云圖,代碼如下:
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()運行結果如下:

以上是“Python如何制作個性化的詞云圖”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。