您好,登錄后才能下訂單哦!
小編給大家分享一下Python如何制作個(gè)性化的詞云圖,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
詞云圖可以讓我們方便地識(shí)別出文本中的關(guān)鍵詞,其中單詞的大小代表它們的頻率。有了這個(gè),我們甚至在閱讀之前就可以很好地了解文本的內(nèi)容。雖然有很多免費(fèi)的工具可以在線制作文字云,但我們可以使用萬(wàn)能的Python來(lái)定制個(gè)性化的詞云圖。
在本文中,我們將使用第三方Python庫(kù)stylecloud,有了該庫(kù),可以通過(guò)簡(jiǎn)短的幾行代碼來(lái)制作漂亮的詞云圖。如下所示:
接下來(lái),我們將用來(lái)制作詞云圖的文本是偶像喬布斯在斯坦福大學(xué)演講的一部分。點(diǎn)擊這里可以獲得對(duì)應(yīng)的 .txt 文件或使用任何其他的文本來(lái)制作你自己的詞云圖。
這里我們可以直接使用pip來(lái)安裝該詞云庫(kù),代碼如下:
pip3 install stylecloud
接著我們可以使用stylecloud.gen_stylecloud() 方法來(lái)生成詞云圖,通過(guò)傳遞相應(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格式保存詞云圖,如下所示:
仔細(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é)果如下:
我們可以使用stop_words庫(kù)來(lái)處理文本中的停用詞,可以使用pip install stop_words
來(lái)安裝該庫(kù)。有了停用詞列表,我們也可以將其傳遞給在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é)果如下:
在上述網(wǎng)站上有數(shù)百個(gè)免費(fèi)圖標(biāo)可用于 stylecloud,但是但有時(shí)我們可能希望使用自己的圖像來(lái)為創(chuàng)建更加個(gè)性化的詞云圖。此時(shí),我們可以使用PIL庫(kù)來(lái)讀取圖像,使用matplotlib來(lái)繪制我們的圖像,使用wordcloud來(lái)制作對(duì)應(yīng)的詞云圖。
下述代碼中使用蝙蝠的圖案來(lái)生成對(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é)果如下:
以上是“Python如何制作個(gè)性化的詞云圖”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。