一種用Python生成詞雲
我們在閱讀一篇很長的文章時,總先看看文章的關鍵詞來獲知文章的大概內容。今天我們就來製作一個詞雲程序,將文章中出現次數較多的詞語提取出來,生成一張詞雲圖。
詞雲圖的生成原理:
程序會將這篇文章中的所有詞組識別出來,然後統計每個詞組出現的次數,出現次數越多,詞組的字號越大,最後把所有詞組拼合成一張圖像,也就是我們想要的詞雲圖。我們需要把這篇文章儲存在一個txt文檔裡,把這個文檔和程序放在同一個文件夾下。
首先需要安裝好了python的運行環境,並且以pycharm作為默認工具,安裝所需的第三方庫,它們分別是jieba 和wordcloud.安裝可以參考:
https://www.jb51.net/article/141320.htm
然後開始製作詞雲程序。在pycharm中新建一個python文件。
首先調用jieba 和worldcloud模塊。
import jieba
import worldcloud
接著,我們把儲存在程序目錄下的txt文檔命名為」b站測試題.txt」
在程序中輸入以下代碼來讀取這個文檔。
f=open(「b站測試題.txt」,」r」,encoding=」gbk」)
現在我們要讀取文檔中的文字, 把它儲存在一個新的變量t中
t=f.read()
然後關閉文檔
f.close()
然後提取詞組
Is=jieba.icut(t)
Txt=」 」.join(Is)
現在我們已經將詞組提取出來並用空格分開,提取出來的詞組保存在一個新的變量txt 裡面
下一步我們要新建一個詞雲的對象, 並設定一些參數
W=wordcloud.wordcloud(width=2000,
Height=1400,
Font_path=」msyh.ttc」
)
在上面這段代碼中,我們新建了一個詞雲的對象並將其命名為w。我們設定生成詞雲圖片的寬度為2000像素,高度為1400像素,設定文字的字體為微軟雅黑。
現在我們要把之前生成的詞組變量txt導入詞雲對象w中。
w.generate(txt)
w.to_file(「pic.png」)
然後運行測試
打開程序所在的文件夾, 我們可以看到這裡生成了一個名為pic.png的圖片文件。
還可以進行個性化,譬如換個背景色
只需要加入一行代碼:
W=wordcloud.wordcloud(width=2000,
Height=1400,
Background_color=」Grey」
Font_path=」msyh.ttc」
)
顏色可以查詢下表
也可以用16進位數值模式,以#開頭的6位16進位數表示顏色,你可以在下面這個網站上找到自己想要的顏色的1 6進位顏色數值。
http://tool.oschina.net/commons?type=3
也可以使用colormap改變文字顏色
還以自定義詞雲顯示行狀,譬如奔馬、五角星等
我們需要準備一張白色背景的圖片,將其放到程序所在的文件夾裡,程序會把白色的背景摳除,將文字放在主體部分,再填充上背景顏色。這裡我選了一個五角星的圖片,將它放置在程序所在的目錄下
現在我們需要調用一個新的庫:imageio,imageio是python自帶的一個庫,可以用來讀取圖
像數據。
在程序開頭添加下面的代碼:
import imageio
然後建立一個變量mask來讀取圖像數據
Mask=imageio.imread(「五角星.png」)
然後我們需要在建立詞雲對象的代碼中添加一行代碼
W=wordcloud.wordcloud(width=2000,
Height=1400,
Font_path=」msyh.ttc」
Mask=mask,
)
運行,如下圖:
思路參考:威海市文登區七裡湯中學宋海霞《用python生成詞雲圖》
除了用Pycharm還可以用sublime,可以參考:
https://blog.csdn.net/ydydyd00/article/details/80665028
未來的編程就這樣,很多基礎的功能已經函數或者庫化了,直接調用就可以了。這樣避免了頻繁的製造錘子,但是這些庫大部分都是國外開發的,國內直接「拿來主義」了,未來會有越來越多的國產庫了。