使用Python定製詞雲

在互聯網時代,人們獲取信息的途徑多種多樣,大量的信息充斥在我們周圍。此時,如何從浩如煙海的信息中提煉出關鍵信息,並讓人記住,顯得至關重要。本教程我們將教你如何使用Python,製作炫酷的詞雲效果!

本項目完整教程及在線練習地址:使用Python定製詞雲(更多項目請查看Python學習路徑)

大家平時上網,一定會經常看到下圖這樣的詞雲。

但你知道嗎,詞雲還可以長這樣:

或者這樣:

什麼是詞雲呢?

「詞雲」是對網路文本中出現頻率較高的「關鍵詞」予以視覺上的突出,形成「關鍵詞雲層」或「關鍵詞渲染」,從而過濾掉大量的無意義信息,使瀏覽者只要一眼掃過詞雲圖片就可以領略文章或者網頁內容的主旨。

不僅如此,一幅製作精美的詞雲圖片,可以起到一圖勝千言的效果,在報告或者PPT中適當的使用詞雲,會使表達更清晰充分,為演講者表達的意義加分。

本節課,我們就教你實現這種效果。

一、課程介紹

1. 內容簡介

本實驗將使用Python的wordcloud擴展包製作詞雲,生成圖片保存。並介紹如何改進wordcloud擴展包使其能顯示中文字元,最後介紹如何使用自己喜歡的圖片定製詞雲圖片輪廓。

2. 課程知識點

  • 製作詞雲的基本步驟和原理

  • Python代碼實現詞雲製作

  • wordcloud擴展包的使用

  • 使用自定義圖片製作詞雲,分析《三體》I、 II、 III的關鍵

3. 實驗原理

詞雲的原理是對輸入的文本數據進行詞頻統計,根據辭彙出現頻率的不同,按不同比例顯示出辭彙,生成圖片。頻率高的辭彙顯示的大,頻率低的辭彙顯示的小。文本數據可以是本地數據,也可是是爬蟲動態從網路中獲取的。

4. 效果截圖

二、開發準備

打開Xfce終端,進入 Code 目錄,創建 work 文件夾, 將其作為課程的工作目錄。下載並安裝實驗需要的擴展包 。如果大家平時想在自己的電腦上進行實驗,無論是Windows還是Linux還是Mac,都強烈推薦安裝Anaconda,這是一個Python的科學計算包,裡面幾乎包含了常用的所有擴展包,不用自己費力安裝了,該軟體由Python之父帶頭維護,三個平台同時更新。

$ mkdir work && cd workn$ sudo apt-get updaten$ sudo apt-get install python-devn$ sudo pip install numpyn$ sudo apt-get install python-matplotlibn$ sudo apt-get install python-piln

下載小說《三體》I、 II、 III。

$ wget http://labfile.oss.aliyuncs.com/courses/756/santi.txtn$ wget http://labfile.oss.aliyuncs.com/courses/756/santi2.txtn$ wget http://labfile.oss.aliyuncs.com/courses/756/santi3.txtn

安裝wordcloud擴展包。

$ sudo pip install wordcloudn

三、實驗步驟

本項目的詳細步驟及全部代碼可在實驗樓查看並在線完成:使用Python定製詞雲

1. 運行一個簡單工程,測試擴展包安裝是否正常

在對《三體》進行處理之前,我們先運行一下官方的示常式序,確保擴展包安裝正常,程序能夠正常工作。在work目錄下新建python腳本,命名為simple.py,

$ gedit simple.pyn

代碼如下:

#!/usr/bin/env pythonn"""nMinimal Examplen===============nGenerating a square wordcloud from the US constitution using default arguments.n"""nnfrom os import pathnfrom wordcloud import WordCloudnnd = path.dirname(__file__)nn# Read the whole text.ntext = open(path.join(d, constitution.txt)).read()nn# Generate a word cloud imagenwordcloud = WordCloud().generate(text)nn# Display the generated image:n# the matplotlib way:nimport matplotlib.pyplot as pltnplt.imshow(wordcloud)nplt.axis("off")nn# lower max_font_sizenwordcloud = WordCloud(max_font_size=40).generate(text)nplt.figure()nplt.imshow(wordcloud)nplt.axis("off")nplt.show()n

由代碼可見,程序運行時會搜尋腳本所在的路徑下的文本文件「constitution.txt」,所以我們在運行腳本前需要將這個文本放入work文件夾下面。 通過下面的命令下載文本:

$ wget http://labfile.oss.aliyuncs.com/courses/756/constitution.txtn

在work文件夾下啟動控制台,操作如下圖所示:

在控制台中運行腳本:

$ python simple.pyn

如果擴展包安裝一切正常,程序將輸出如下窗口:

至此,我們得到了一個英文詞雲。

其他問題

解決中文顯示問題

我們已經成功安裝了wordcloud擴展包,並成功運行了一個示例文件。但是這個示例文件有很多問題,首先,顯示的是英文字元,在面對中國同事或者老闆做報告和分享時,使用英文的詞雲明顯不合適,而且很多文本本身就是中文辭彙,沒法製作成英文詞雲;詞雲的外輪廓顯示的方方正正中規中矩,比較呆板,沒有美感。

定製詞雲

我們經常在網上看到別人家的詞雲都是奇形怪狀的,像下面這樣:

所以看著我們自己方方正正的詞雲,是不是感覺太中規中矩了?都不好意思拿出手了吧?

以上兩個問題,大家可以先開動腦筋思考下,然後去看下完整教程中的方法和你想的是否一樣,並動手實踐把問題一一解決。


推薦閱讀:

TAG:编程 | Python | Python入门 |