如何生成炫酷的詞云(已驗證)

wordcloud是什么?

wordcloud是python的一個第三方庫,稱為詞云也叫做文字云,是根據文本中的詞頻,對內容進行可視化的匯總,可以用來繪制用戶畫像。

安裝wordcloud

這里用conda新建一個環境來演示

conda create --name wordcloud python=3.9.12conda activate wordcloud

需要安裝4個包

conda install -y -n wordcloud numpyconda install -y -n wordcloud pillowconda install -y -n wordcloud matplotlibconda install -y -n wordcloud wordcloud

使用 wordcloud

wordcloud庫把詞云當作一個 WordCloud 對象,所以使用wordcloud可以大致分為三個步驟

from wordcloud import WordCloudwc= WordCloud() # 1.創建對象:    wc.generate("Choose a life of action, not one of oste-ntation.") # 2.加載文本wc.to_file("./word.png") # 3.輸出文件

[圖片上傳失敗...(image-3b9b66-1667396394553)]

<figcaption style="line-height: inherit; margin: 0px; padding: 0px; margin-top: 10px; text-align: center; color: rgb(153, 153, 153); font-size: 0.7em;">word</figcaption>

wordcloud 基礎實戰

指定中文字體,不然會亂碼

from PIL import Imagefrom wordcloud import WordCloud, STOPWORDSimport matplotlib.pyplot as pltimport numpy as npwc = WordCloud(background_color="white",# 設置背景顏色           max_words=2000, # 詞云顯示的最大詞數           height=400, # 圖片高度           width=800, # 圖片寬度           max_font_size=50, #最大字體                stopwords=STOPWORDS, # 設置停用詞           font_path='C:/Windows/Fonts/simhei.ttf', # 兼容中文字體,不然中文會顯示亂碼           )# 生成詞云 wc.generate('詩詞,是指以古體詩、張三。 亦是漢字文化圈的特色之一。 李四。 詩詞是闡述心靈的文學藝術,而詩人、趙文,并按照嚴格韻律要求,用凝練的語言、綿密的章法、王五。') # 此處的text便是分好詞的19大文本# 生成的詞云圖像保存到本地wc.to_file("./result2.png")# 顯示圖像plt.imshow(wc, interpolation='bilinear')# interpolation='bilinear' 表示插值方法為雙線性插值plt.axis("off")# 關掉圖像的坐標plt.show()

[圖片上傳失敗...(image-39937f-1667396394553)]

<figcaption style="line-height: inherit; margin: 0px; padding: 0px; margin-top: 10px; text-align: center; color: rgb(153, 153, 153); font-size: 0.7em;">result2</figcaption>

附上wordcloud內的配置參數

[圖片上傳失敗...(image-6bbb0b-1667396394553)]

<figcaption style="line-height: inherit; margin: 0px; padding: 0px; margin-top: 10px; text-align: center; color: rgb(153, 153, 153); font-size: 0.7em;">img</figcaption>

wordcloud 高級實戰

在本節,本文將介紹如何將詞云繪制在預設定好的背景圖片上。例如:以我們最熟悉的中國地圖為背景,我們將在此基礎上繪制詞云,只需修改wordcloud里的“mask”屬性值,詳細代碼如下所示。

from PIL import Imagefrom wordcloud import WordCloud, STOPWORDSimport matplotlib.pyplot as pltimport numpy as npwc = WordCloud(background_color="white",# 設置背景顏色           max_words=2000, # 詞云顯示的最大詞數           max_font_size=60, #最大字體                stopwords=STOPWORDS, # 設置停用詞            mask=np.array(Image.open("./china.jpg")), # 選擇背景圖片為中國地圖           font_path='C:/Windows/Fonts/simhei.ttf', # 兼容中文字體,不然中文會顯示亂碼           )# 生成詞云 wc.generate('尤韞素。福敏博。歷靈秀。但紫云。司馬渺。黎梓玥。毛半蕾。太叔睿范。褒華婉。勞子明。仵芷容。索聽楓。蕢慕凝。邢恬欣。展向露。五江雪。靖允。邛孟。天夢山。繁孤丹。談清悅。操樂志。甲小蕾。滿辰。銀長。初春雪。眭若云。庹嘉怡。奚醉巧。閭丘令怡。憑香天。古飛章。厙薇。圣瑩琇。程思。功知。郜陽霽。揚澹。戈綠蝶。薛吉月。冷明軒。廉吉星。佟以軒。勇代天。蘇平靈') # 此處的text便是分好詞的女排評論文本# 生成的詞云圖像保存到本地wc.to_file("./result3.png")# 顯示圖像plt.imshow(wc, interpolation='bilinear')# interpolation='bilinear' 表示插值方法為雙線性插值plt.axis("off")# 關掉圖像的坐標plt.show()

準備的地圖是

[圖片上傳失敗...(image-b03ce9-1667396394553)]

<figcaption style="line-height: inherit; margin: 0px; padding: 0px; margin-top: 10px; text-align: center; color: rgb(153, 153, 153); font-size: 0.7em;">china</figcaption>

效果如下

[圖片上傳失敗...(image-55f128-1667396394553)]

<figcaption style="line-height: inherit; margin: 0px; padding: 0px; margin-top: 10px; text-align: center; color: rgb(153, 153, 153); font-size: 0.7em;">result3</figcaption>

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容