如何用Python做詞云询张?

臨淵羨魚(yú),不如退而結(jié)網(wǎng)浙炼。我們步步為營(yíng)份氧,從頭開(kāi)始幫助你用Python做出第一張?jiān)~云圖來(lái)。歡迎嘗試哦鼓拧!

在大數(shù)據(jù)時(shí)代半火,你經(jīng)吃铰瑁可以在媒體或者網(wǎng)站上看到一些非常漂亮的信息圖季俩。

例如這個(gè)樣子。

看過(guò)之后你有什么感覺(jué)梅掠?想不想自己做一張出來(lái)酌住?

如果你的答案是肯定的,我們就不要拖延了阎抒,現(xiàn)在就開(kāi)始酪我,做個(gè)詞云分析圖。當(dāng)然且叁,做為基礎(chǔ)的詞云圖都哭,肯定比不上剛才那兩張信息圖酷炫。不過(guò)不要緊,好的開(kāi)始是成功的一半欺矫。食髓知味纱新,后面你就可以自己升級(jí)技能,進(jìn)入你開(kāi)掛的成功之路穆趴。

網(wǎng)上教你做信息圖的教程很多脸爱。許多都是利用了專(zhuān)用工具。這些工具好是好未妹,便捷而強(qiáng)大簿废。只是它們功能都太過(guò)專(zhuān)一,適用范圍有限络它。今天我們要嘗試的族檬,是用通用的編程語(yǔ)言 Python 來(lái)做詞云。

Python 是一種時(shí)下很流行的編程語(yǔ)言酪耕。你不僅可以用它做數(shù)據(jù)分析和可視化导梆,還能用來(lái)做網(wǎng)站、爬取數(shù)據(jù)迂烁、做數(shù)學(xué)題看尼、寫(xiě)腳本替你偷懶……

知道豆瓣嗎?它一開(kāi)始就是用 Python 寫(xiě)的盟步。

在目前的編程語(yǔ)言熱度排序里藏斩,Python 屈居第四(當(dāng)然,很多人不同意却盘,所以編程語(yǔ)言的排行榜有許多狰域,你懂的)。但看問(wèn)題要用發(fā)展眼光黄橘。隨著數(shù)據(jù)科學(xué)的發(fā)展兆览,Python 有爆發(fā)的趨勢(shì)。早點(diǎn)兒站上風(fēng)口塞关,很有益處抬探。

如果你之前沒(méi)有編程基礎(chǔ),沒(méi)關(guān)系帆赢。從零開(kāi)始小压,意味著我會(huì)教你如何安裝Python運(yùn)行環(huán)境,一步步完成詞云圖椰于。希望你不要限于瀏覽怠益,而是親自動(dòng)手嘗試一番。到完成的那一步瘾婿,你不僅可以做出第一張?jiān)~云圖蜻牢,而且這還將是你的第一個(gè)有用的編程作品烤咧。

心動(dòng)了?那咱們就開(kāi)始吧抢呆。

安裝

首先髓削,我們需要安裝 Python 運(yùn)行環(huán)境。我專(zhuān)門(mén)為你錄制了一個(gè)視頻教程镀娶,請(qǐng)點(diǎn)擊這個(gè)鏈接查看立膛,并仿照安裝。

進(jìn)行下一步之前梯码,請(qǐng)確保你已經(jīng)安裝好了 Anaconda 宝泵,并且已經(jīng)進(jìn)入了終端。

請(qǐng)鍵入以下命令:

pip install wordcloud

如果你用的操作系統(tǒng)是蘋(píng)果的 macOS 轩娶,系統(tǒng)就會(huì)提示你先安裝 XCode 命令行工具儿奶,你按照默認(rèn)設(shè)置一步步進(jìn)行就可以了。

如果你用的是 Windows鳄抒,那么為了使用這個(gè)詞云包闯捎,就稍微麻煩一些。好在我為你錄制了在 Windows 下用 Python 制作詞云的完整視頻教程许溅,請(qǐng)點(diǎn)擊這個(gè)鏈接查看瓤鼻。

數(shù)據(jù)

安裝了 Python 的運(yùn)行環(huán)境,我們還需要數(shù)據(jù)贤重。

詞云分析的對(duì)象茬祷,是文本。

理論上講并蝗,文本可以是各種語(yǔ)言的祭犯。英文、中文滚停、法文沃粗、阿拉伯文……

為了簡(jiǎn)便,我們這里以英文文本為例键畴。你可以隨意到網(wǎng)上找一篇英文文章作為分析對(duì)象最盅。我特別喜歡英劇"Yes, minister",所以到維基百科上找到了這部劇的介紹詞條镰吵。

我把其中的正文文字部分拷貝了下來(lái)檩禾,存儲(chǔ)為一個(gè)文本文件挂签,叫做 yes-minister.txt 疤祭。

請(qǐng)你點(diǎn)擊這個(gè)網(wǎng)址鏈接,下載壓縮包饵婆。并且把壓縮包解壓勺馆,將其中的 yes-minister.txt 文件挪動(dòng)到工作目錄 demo 里戏售。

好了,文本數(shù)據(jù)已經(jīng)準(zhǔn)備好了草穆。開(kāi)始進(jìn)入編程的魔幻世界吧灌灾!

代碼

你會(huì)注意到,剛才壓縮包里面其實(shí)還有一個(gè)文件悲柱,就是咱們?cè)~云繪制的完整代碼 ipynb 文件锋喜。

不過(guò)我建議你還是自己跟著教程做一遍。這樣印象更深刻豌鸡,不是嗎嘿般?

在命令行下,執(zhí)行:

jupyter notebook

瀏覽器會(huì)自動(dòng)開(kāi)啟涯冠,并且顯示如下界面炉奴。

這就是咱們剛才的勞動(dòng)成果——安裝好的運(yùn)行環(huán)境了。我們還沒(méi)有編寫(xiě)程序蛇更,目錄下只有一個(gè)剛才生成的文本文件瞻赶。

打開(kāi)這個(gè)文件,瀏覽一下內(nèi)容派任。

回到 Jupyter 筆記本的主頁(yè)面砸逊。我們點(diǎn)擊 New 按鈕,新建一個(gè)筆記本(Notebook)掌逛。在 Notebooks 里面痹兜,請(qǐng)選擇 Python 3 選項(xiàng)。

系統(tǒng)會(huì)提示我們輸入 Notebook 的名稱(chēng)颤诀。程序代碼文件的名稱(chēng)字旭,你可以隨便起。但是我建議你起一個(gè)有意義的名字崖叫,將來(lái)好方便查找遗淳。由于我們要嘗試詞云,就叫它 wordcloud 好了心傀。

然后就出現(xiàn)了一個(gè)空白的筆記本屈暗,供我們使用了。我們?cè)诰W(wǎng)頁(yè)里唯一的代碼文本框里脂男,輸入以下3條語(yǔ)句养叛。請(qǐng)務(wù)必逐字根據(jù)示例代碼輸入,空格數(shù)量都不可以有差別宰翅。尤其注意第三行弃甥,用4個(gè)空格,或者1個(gè) Tab 開(kāi)始汁讼。輸入后淆攻,按 Shift+Enter 鍵阔墩,就可以執(zhí)行了。

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

沒(méi)有任何結(jié)果啊瓶珊。

對(duì)啸箫,因?yàn)槲覀冞@里沒(méi)有任何輸出動(dòng)作,程序只是打開(kāi)了你的 yes-minister.txt 文本文件伞芹,把里面的內(nèi)容都讀了出來(lái)忘苛,存儲(chǔ)到了一個(gè)叫做mytext 的變量里面。

然后我們嘗試顯示 mytext 的內(nèi)容唱较。輸入以下語(yǔ)句之后柑土,還是得按 Shift+Enter 鍵,系統(tǒng)才會(huì)實(shí)際執(zhí)行該語(yǔ)句绊汹。

mytext

之后的步驟里稽屏,也千萬(wàn)不要忘了這一確認(rèn)執(zhí)行動(dòng)作。

顯示的結(jié)果如下圖所示西乖。

嗯狐榔,看來(lái) mytext 變量里存儲(chǔ)的文本就是我們從網(wǎng)上摘來(lái)的文字。到目前為止获雕,一切正常薄腻。

然后我們呼喚(import)詞云包,利用 mytext 中存儲(chǔ)的文本內(nèi)容來(lái)制造詞云届案。

from wordcloud import WordCloud
wordcloud = WordCloud().generate(mytext)

這時(shí)程序可能會(huì)報(bào)警庵楷。別擔(dān)心。警告(warning)不影響程序的正常運(yùn)行楣颠。

此時(shí)詞云分析已經(jīng)完成了尽纽。你沒(méi)看錯(cuò),制作詞云的核心步驟只需要這2行語(yǔ)句童漩,而且第一條還只是從擴(kuò)展包里找外援弄贿。但是程序并不會(huì)給我們顯示任何東西。

說(shuō)好了的詞云呢矫膨?折騰了這么半天差凹,卻啥也沒(méi)有,你蒙人嗎侧馅?危尿!

別激動(dòng)。輸入下面4行語(yǔ)句后馁痴,就是見(jiàn)證奇跡發(fā)生的時(shí)刻了谊娇。

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

運(yùn)行結(jié)果如圖所示:

不用那么興奮嘛。

你可以在詞云圖片上單機(jī)鼠標(biāo)右鍵弥搞,用“圖片另存為”功能導(dǎo)出邮绿。

通過(guò)這張?jiān)~云圖,我們可以看到不同單詞和詞組出現(xiàn)的頻率高低差別攀例。高頻詞的字體明顯更大船逮,而且顏色也很醒目。值得說(shuō)明的是粤铭,最顯眼的單詞 Hacker 并不是指黑客挖胃,而是指這部劇的主角之一——哈克首相。

希望你在嘗試過(guò)程中一切順利梆惯。對(duì)自己生成的詞云圖滿意嗎酱鸭?如果你不滿意,也不要緊垛吗,可以挖掘 wordcloud 軟件包的其他高級(jí)功能凹髓。嘗試一下,看自己能不能做出這樣的詞云圖來(lái)怯屉?

討論

學(xué)完了本方法后蔚舀,你做出了一張什么樣的詞云圖?除了本文介紹的方法以外锨络,你還知道哪些便捷地制作詞云或其他信息圖的方式赌躺?歡迎留言,分享給大家羡儿。我們共同交流討論礼患。

喜歡請(qǐng)點(diǎn)贊。還可以微信關(guān)注和置頂我的公眾號(hào)“玉樹(shù)芝蘭”(nkwangshuyi)掠归。

如果你對(duì)數(shù)據(jù)科學(xué)感興趣缅叠,不妨閱讀我的系列教程索引貼《如何高效入門(mén)數(shù)據(jù)科學(xué)?》虏冻,里面還有更多的有趣問(wèn)題及解法痪署。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市兄旬,隨后出現(xiàn)的幾起案子狼犯,更是在濱河造成了極大的恐慌,老刑警劉巖领铐,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件悯森,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡绪撵,警方通過(guò)查閱死者的電腦和手機(jī)瓢姻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)音诈,“玉大人幻碱,你說(shuō)我怎么就攤上這事绎狭。” “怎么了褥傍?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵儡嘶,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我恍风,道長(zhǎng)蹦狂,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任朋贬,我火速辦了婚禮凯楔,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘锦募。我一直安慰自己摆屯,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布糠亩。 她就那樣靜靜地躺著鸥拧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪削解。 梳的紋絲不亂的頭發(fā)上富弦,一...
    開(kāi)封第一講書(shū)人閱讀 48,970評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音氛驮,去河邊找鬼腕柜。 笑死,一個(gè)胖子當(dāng)著我的面吹牛矫废,可吹牛的內(nèi)容都是我干的盏缤。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼蓖扑,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼唉铜!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起律杠,我...
    開(kāi)封第一講書(shū)人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤潭流,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后柜去,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體灰嫉,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年嗓奢,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了讼撒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖根盒,靈堂內(nèi)的尸體忽然破棺而出钳幅,到底是詐尸還是另有隱情,我是刑警寧澤炎滞,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布敢艰,位于F島的核電站,受9級(jí)特大地震影響厂榛,放射性物質(zhì)發(fā)生泄漏盖矫。R本人自食惡果不足惜丽惭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一击奶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧责掏,春花似錦柜砾、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至瞳浦,卻和暖如春担映,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背叫潦。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工蝇完, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人矗蕊。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓短蜕,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親傻咖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子朋魔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個(gè) Awesome - XXX 系列...
    aimaile閱讀 26,441評(píng)論 6 428
  • GitHub 上有一個(gè) Awesome - XXX 系列的資源整理,資源非常豐富,涉及面非常廣卿操。awesome-p...
    若與閱讀 18,615評(píng)論 4 418
  • 環(huán)境管理管理Python版本和環(huán)境的工具警检。p–非常簡(jiǎn)單的交互式python版本管理工具。pyenv–簡(jiǎn)單的Pyth...
    MrHamster閱讀 3,783評(píng)論 1 61
  • 每日一題: MVP開(kāi)發(fā)模式 面試率: ★★★★★ 面試提醒 在Android中MVP已經(jīng)不算是什么新鮮東西了,記得...
    林銳波閱讀 1,384評(píng)論 0 5
  • 肢體語(yǔ)言靈魂語(yǔ)害淤,容貌呈現(xiàn)靈魂美解滓。靈魂化身處處顯,生命就是在探索筝家。生活就是在創(chuàng)造洼裤,創(chuàng)造各種靈魂美。美的靈魂美的家,美...
    禪意自在閱讀 356評(píng)論 0 0