如何用Python作詞雲?

臨淵羨魚,不如退而結網。咱們步步爲營,從頭開始幫助你用Python作出第一張詞雲圖來。歡迎嘗試哦!python

需求

在大數據時代,你常常能夠在媒體或者網站上看到一些很是漂亮的信息圖。編程

例如這個樣子。瀏覽器

或是這個樣子的。微信

看過以後你有什麼感受?想不想本身作一張出來?編程語言

若是你的答案是確定的,咱們就不要拖延了,今天就來一步步從零開始作個詞雲分析圖。固然,作爲基礎的詞雲圖,確定比不上剛纔那兩張信息圖酷炫。不過沒關係,好的開始是成功的一半嘛。食髓知味,後面你就能夠本身升級技能,進入你開掛的成功之路。工具

網上教你作信息圖的教程不少。許多都是利用了專用工具。這些工具好是好,便捷而強大。只是它們功能都太過專注,適用範圍有限。今天咱們要嘗試的,是用通用的編程語言Python來作詞雲。post

Python是一種時下很流行的編程語言。你不只能夠用它作數據分析和可視化,還能用來作網站、爬取數據、作數學題、寫腳本替你偷懶……字體

知道豆瓣嗎?它一開始就是用Python寫的。大數據

在目前的編程語言熱度排序裏,Python屈居第四(固然,不少人不一樣意,因此編程語言的排行榜有許多,你懂的)。但看問題要用發展眼光。隨着數據科學的發展,Python有爆發的趨勢。早點兒站上風口,頗有益處。網站

若是你以前沒有編程基礎,不要緊。從零開始,意味着我會教你如何安裝Python運行環境,一步步完成詞雲圖。但願你不要限於瀏覽,而是親自動手嘗試一番。到完成的那一步,你不只能夠作出第一張詞雲圖,並且這還將是你的第一個有用的編程做品。

心動了?那我們就開始吧。

安裝

首先,咱們須要安裝Python運行環境。

若是你用的是macOS,那麼你的系統裏面實際已經預裝好了Python。

然而咱們要使用到許多擴展包的功能。所以最好安裝一個Python工具套裝。只須要一次安裝,之後大部分的功能就都已集成了。沒必要每次使用新功能,都去零敲碎打地安裝新包了。

Python的套裝有許多種,這裏推薦給你們anaconda。由於通過我4年多的嘗試與對比,感受這款軟件包的安裝更爲便捷,擴展包的涵蓋範圍與結構更合理。

請你到 這個網址 下載anaconda套裝。下拉網頁找到下載位置。根據你的操做系統類型選擇合適的版本。

由於個人系統是macOS,因此網站直接給我推薦的就是macOS系統版本。但若是你用的是Windows或Linux,請切換到相應的標籤頁上面。

無論你用的是哪一個操做系統,請注意右側的兩個按鈕,分別對應Python 2.X和3.X版本。有人必定很納悶,既然有新的版本,我憑什麼用舊的?

不是這樣的。到2020年以前,Python的兩個版本會一直並存。Python的開發者確實但願你們升級切換到3.X版本。惋惜目前3.X版本兼容的擴展包數量比2.X版本要少,尤爲是涉及到數據科學類的軟件包,就尤爲明顯。因此若是你是初學者,我建議你下載2.X(目前是2.7)版本,這樣在之後的使用中,可能遇到的問題會少一些。等你運用熟練了,再遷移到3.X版本不遲。相信我,到那時你會很快適應新版本的。

下載後,執行安裝文件就好了。

根據你的電腦運行速度不一樣,安裝的時間長短不等。耐心點兒,只須要等這一次嘛。

安裝完畢以後,請你安裝一個「現代化」瀏覽器。若是你用的是macOS,那麼系統自帶的Safari就挺好。其餘的選擇包括Firefox和Google Chrome。

請安裝上述瀏覽器之一,而後將其設置爲系統默認的瀏覽器。

好了,下面請進入命令行模式。

在macOS和Linux下,你須要開啓一個終端(terminal)。

若是是Windows,請打開「開始」-「附件」-「命令提示符」。

鍵入如下命令:

mkdir demo
cd demo
複製代碼

好了,你如今有一個專用的目錄,叫作demo了。請到macOS的Finder或者Windows的「個人電腦」裏面,找到這個目錄而且打開它。

回到終端下面,macOS或者Linux用戶請鍵入如下命令:

pip install wordcloud
複製代碼

macOS會提示你先安裝XCode命令行工具,你按照默認設置一步步進行就能夠了。可是請注意,務必在WiFi環境下安裝。若是你用的是4G流量,那你可要破費一筆了。

若是你用的是Windows,那麼爲了使用這個詞雲包,就稍微麻煩一些,你須要到 這裏 下載 wordcloud‑1.3.1‑cp27‑cp27m‑win32.whl 這個文件。下載後將它拖拽到你的demo目錄裏。

在命令行下,先執行:

pip install wheel
複製代碼

而後,再執行:

pip install wordcloud‑1.3.1‑cp27‑cp27m‑win32.whl
複製代碼

好了,咱們須要的所有Python運行環境終於裝好了。

請務必按照上述步驟執行,確保每一步都已經順利完成。不然一旦遺漏,後面運行程序會報錯。

數據

詞雲分析的對象,是文本。

理論上講,文本能夠是各類語言的。英文、中文、法文、阿拉伯文……

爲了簡便,咱們這裏以英文文本爲例。你能夠隨意到網上找一篇英文文章做爲分析對象。我特別喜歡英劇"Yes, minister",因此到維基百科上找到了這部劇的介紹詞條。

我把其中的正文文字部分拷貝了下來,存儲爲一個文本文件,叫作yes-minister.txt。

把這個文件挪動到咱們的工做目錄demo裏。

好了,文本數據已經準備好了。開始進入編程的魔幻世界吧!

代碼

在命令行下,執行:

jupyter notebook
複製代碼

瀏覽器會自動開啓,而且顯示以下界面。

這就是我們剛纔的勞動成果——安裝好的運行環境了。咱們尚未編寫程序,目錄下只有一個剛纔生成的文本文件。

打開這個文件,瀏覽一下內容。

回到Jupyter筆記本的主頁面。咱們點擊New按鈕,新建一個筆記本(Notebook)。在Notebooks裏面,請選擇Python 2選項。

系統會提示咱們輸入Notebook的名稱。程序代碼文件的名稱,你能夠隨便起。可是我建議你起一個有意義的名字,未來好方便查找。因爲咱們要嘗試詞雲,就叫它wordcloud好了。

而後就出現了一個空白的筆記本,供咱們使用了。咱們在網頁裏惟一的代碼文本框裏,輸入如下3條語句。請務必逐字根據示例代碼輸入,空格數量都不能夠有差異。尤爲注意第三行,用4個空格,或者1個Tab開始。輸入後,按Shift+Enter鍵,就能夠執行了。

filename = "yes-minister.txt"
with open(filename) as f:
 mytext = f.read()
複製代碼

沒有任何結果啊。

對,由於咱們這裏沒有任何輸出動做,程序只是打開了你的yes-minister.txt文本文件,把裏面的內容都讀了出來,存儲到了一個叫作mytext的變量裏面。

而後咱們嘗試顯示mytext的內容。輸入如下語句以後,仍是得按Shift+Enter鍵,系統纔會實際執行該語句。

mytext
複製代碼

以後的步驟裏,也千萬不要忘了這一確認執行動做。

顯示的結果以下圖所示。

嗯,看來mytext變量裏存儲的文本就是咱們從網上摘來的文字。到目前爲止,一切正常。

而後咱們呼喚(import)詞雲包,利用mytext中存儲的文本內容來製造詞雲。

from wordcloud import WordCloud
wordcloud = WordCloud().generate(mytext)
複製代碼

這時程序可能會報警。別擔憂。警告(warning)不影響程序的正常運行。

此時詞雲分析已經完成了。你沒看錯,製做詞雲的核心步驟只須要這2行語句,並且第一條還只是從擴展包裏找外援。可是程序並不會給咱們顯示任何東西。

說好了的詞雲呢?折騰了這麼半天,卻啥也沒有,你蒙人嗎?!

別激動。輸入下面4行語句後,就是見證奇蹟發生的時刻了。

%pylab inline
import matplotlib.pyplot as plt
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
複製代碼

運行結果如圖所示:

不用那麼興奮嘛。

你能夠在詞雲圖片上單機鼠標右鍵,用「圖片另存爲」功能導出。

經過這張詞雲圖,咱們能夠看到不一樣單詞和詞組出現的頻率高低差異。高頻詞的字體明顯更大,並且顏色也很醒目。值得說明的是,最顯眼的單詞Hacker並非指黑客,而是指這部劇的主角之一——哈克首相。

包含程序完整代碼的ipynb文件,我也分享了出來,你能夠從 這裏 下載。

但願你在嘗試過程當中一切順利。對本身生成的詞雲圖滿意嗎?若是你不滿意,也沒關係,能夠挖掘wordcloud軟件包的其餘高級功能。嘗試一下,看本身能不能作出這樣的詞雲圖來?

討論

學完了本方法後,你作出了一張什麼樣的詞雲圖?除了本文介紹的方法之外,你還知道哪些便捷地製做詞雲或其餘信息圖的方式?歡迎留言,分享給你們。咱們共同交流討論。

喜歡請點贊。還能夠微信關注和置頂個人公衆號「玉樹芝蘭」(nkwangshuyi)

若是你對數據科學感興趣,不妨閱讀個人系列教程索引貼《如何高效入門數據科學?》,裏面還有更多的有趣問題及解法。

相關文章
相關標籤/搜索