日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

利用wordcloud库生成词云(Python)

發(fā)布時間:2023/12/31 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用wordcloud库生成词云(Python) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

大二寒假,在公司閑暇時間完成了Python課程作業(yè),記錄一下:

題目:完成兩個詞云圖

(1)完成《中共中央關(guān)于黨的百年奮斗重大成就和歷史經(jīng)驗的決議》的詞云,并解釋詞云體現(xiàn)的內(nèi)涵意義。文本文檔建文件“中共中央關(guān)于黨的百年奮斗重大成就和歷史經(jīng)驗的決議.txt”。決議總共七個部分,也可以只選擇其中一部分或者幾個部分形成新的.txt文件再做詞云。(要求背景圖片形狀是一幅中國地圖)。

(2)完成“鄭州市第29場新冠肺炎疫情防控新聞發(fā)布會”的詞云圖,文本文件見“鄭州市第29場新冠肺炎疫情防控新聞發(fā)布會.txt”。(要求背景圖片形狀是一幅穿防護服的白衣天使背景圖像)。

完整代碼:

import wordcloud from PIL import Image import numpy as np import matplotlib.pyplot as pltdef first_wordcloud():with open("中共中央關(guān)于黨的百年奮斗重大成就和歷史經(jīng)驗的決議.txt", "r", encoding="utf-8") as f:mask = np.array(Image.open("image/china-map.png"))text = f.read()w = wordcloud.WordCloud(background_color="white",font_path="C:/Windows/Fonts/simhei.ttf",mask=mask)w.generate(text)w.to_file("output/中共中央關(guān)于黨的百年奮斗重大成就和歷史經(jīng)驗的決議.png")plt.imshow(w) plt.show() def second_wordcloud():with open("鄭州市第29場新冠肺炎疫情防控新聞發(fā)布會.txt", "r", encoding="utf-8") as f:mask = np.array(Image.open("image/white-angel-withWhiteBackground-Highppi.png"))text = f.read()w = wordcloud.WordCloud(background_color='white',font_path="C:/Windows/Fonts/simhei.ttf",mask=mask)w.generate(text)w.to_file("output/鄭州市第29場新冠肺炎疫情防控新聞發(fā)布會.png")plt.imshow(w) plt.show() if __name__ == '__main__':first_wordcloud()second_wordcloud()

?因為之前做過詞云,所以這次很快就做出來了,這是所呈現(xiàn)的效果(不要糾結(jié)為什么臺灣沒有畫出來,這是因為那一塊太小所以wordcloud沒有填充進去):

其中遇到的問題:

找mask圖片是一個大問題。中國地圖比較好找,我就在網(wǎng)上隨便找了一個。但是發(fā)現(xiàn)生成的詞云清晰度太低太低,連字都看不清。嘗試改生成函數(shù)中的參數(shù),發(fā)現(xiàn)不管用,因為用mask的情況下會強制以mask的分辨率作為最終生成圖片的分辨率。

?

?生成出來的圖片很大很大:

當然圖片分辨率也不能提升太多,不然會報錯:

?matplotlib庫可以展示圖片?

?

在做第二張詞云圖的時候,遇到了一個棘手的問題。因為我找的醫(yī)生圖片背景是transparent的,在生成詞云的時候效果很差。在網(wǎng)上找了很久,最終在Stack Overflow上找到解決方案:

python - wordcloud words not fitting to mask - Stack Overflow

于是在網(wǎng)站上用工具把圖片的transparent北京改成純白RGB 255,255,255,就可以正常生成了

?

總結(jié)

以上是生活随笔為你收集整理的利用wordcloud库生成词云(Python)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。