前言
在大數(shù)據(jù)時(shí)代夯膀,你竟然會(huì)在網(wǎng)上看到的詞云邓线,例如這樣的币狠。
Python學(xué)習(xí)資料或者需要代碼藤肢、視頻加Python學(xué)習(xí)群:960410445
看到之后你是什么感覺(jué)?想不想自己做一個(gè)?
如果你的答案是正確的环形,那就不要拖延了策泣,現(xiàn)在我們就開(kāi)始衙傀,做一個(gè)詞云分析圖抬吟,Python是一個(gè)當(dāng)下很流行的編程語(yǔ)言,你不僅可以用它做數(shù)據(jù)分析和可視化统抬,還能用來(lái)做網(wǎng)站火本、爬取數(shù)據(jù)、做數(shù)學(xué)題聪建、寫腳本替你偷懶……
如果你之前沒(méi)有編程基礎(chǔ)钙畔,沒(méi)關(guān)系。希望你不要限于瀏覽金麸,而是親自動(dòng)手嘗試一番擎析。到完成的那一步,你不僅可以做出第一張?jiān)~云圖挥下,而且這還將是你的第一個(gè)有用的編程作品揍魂。
安裝?wordcloud庫(kù)
請(qǐng)確保你的python環(huán)境沒(méi)有問(wèn)題,我用的開(kāi)發(fā)工具是VsCode棚瘟,首先你要在Python擴(kuò)展中安裝python開(kāi)發(fā)環(huán)境(當(dāng)然现斋,這不是為你的windows安裝python)
那么你還需要安裝所需要的第三方庫(kù),那么在VSCode中并沒(méi)有PyCharm那么專業(yè)偎蘸,這里需要獲得你自己的Python腳本位置庄蹋。
我們可以發(fā)現(xiàn)里面有一個(gè)名為pip.exe文件,這個(gè)文件就是python官方給我們?nèi)グ惭bpython第三方庫(kù)的一個(gè)程序迷雪,那么我們可以在VsCode的終端中就可以去通過(guò)它限书,這也是我們?yōu)槭裁匆@取python安裝位置的根本原因。
例如我們安裝WordCloud章咧,我們的操作如下:
pipinstall WordCloud
數(shù)據(jù)
這個(gè)時(shí)候我們就要開(kāi)始Code了倦西,我們一定需要數(shù)據(jù),這里我自己找了一個(gè)繞口令慧邮,內(nèi)容如下:
Betty Botter bought some butter but she said the butter's bitter. If I put it in my batter it will make my batter bitter. So, she bought some better butter, better than the bitter butter and she put it in her batter and her batter was not bitter. So 'twas good that Betty Botter bought some better butter.
翻譯: 貝蒂·波特買牛油调限, 可她說(shuō):“牛油是苦的舟陆。 不過(guò)加上一點(diǎn)好牛油—— 可以使苦牛油更好點(diǎn)〕馨” 于是她買了一點(diǎn)牛油秦躯, 比苦牛油好點(diǎn)的牛油。 摻了之后苦牛油真的變的好多了裆装。 所以這就是貝蒂·波特買的一點(diǎn)比苦牛油好點(diǎn)的牛油踱承。
我把其中的文字存儲(chǔ)成了一個(gè)文本,叫做minister.txt哨免。
Code
python做詞云呢茎活,需要導(dǎo)入的包有wordcloud和PIL,其中PIL(Python Image Library)是python平臺(tái)圖像處理標(biāo)準(zhǔn)庫(kù)琢唾,功能是真的強(qiáng)大载荔。首先需要讀取文件 。
首先我們要讀取我們的txt文件采桃,那么代碼如下:
運(yùn)行腳本結(jié)果如下:
接下來(lái)導(dǎo)包懒熙,我們看看如何生成最簡(jiǎn)單的詞云:
如果python引入無(wú)誤,并代碼無(wú)誤普办,那么會(huì)彈出你生成的圖片工扎,該圖片會(huì)儲(chǔ)存在你的系統(tǒng)。詳細(xì)位置一般為:?C:\Users\MACHENIKE\AppData\Local\Temp?中衔蹲。
帶形狀的詞云
一般來(lái)說(shuō)肢娘,我們不想要這么方的詞云,肯定喜歡一些有形狀的舆驶,
接下來(lái)是生成那種有輪廓的詞云橱健,這里就需要繼續(xù)導(dǎo)入其他包,這里導(dǎo)入的包為numpy贞远,numpy系統(tǒng)是python的一種開(kāi)源的數(shù)值計(jì)算擴(kuò)展畴博,這種工具可以用來(lái)存儲(chǔ)和處理大型矩陣。這里在處理的時(shí)候?qū)⒔o出形狀的圖片表示為一個(gè)大型矩陣蓝仲,再有顏色的地方來(lái)進(jìn)行填詞(導(dǎo)包 :import numpy as np)俱病。導(dǎo)包之后需添加一個(gè)遮罩層,遮罩層就是用來(lái)限制生成圖片的形狀 袱结。
網(wǎng)上隨便找個(gè)圖片放入到項(xiàng)目當(dāng)中(這里我找的是一個(gè):heartpulse:)亮隙,然后開(kāi)始code:
結(jié)果如下:
不支持中文的解決方案
我又從網(wǎng)上摘抄了一段文字,文字內(nèi)容如下:
生活星期天早上和朋友一起聊天垢夹,朋友說(shuō)了一個(gè)他們聽(tīng)過(guò)的故事:“一尊佛像前有一條鋪著石板的路溢吻,人們每天都踏著這一階一階的石板去膜拜佛像。石階看著人們踏著自己去膜拜佛像,心里很不舒服促王。石階心里想犀盟,自己和佛本來(lái)就來(lái)自同一塊石頭,為什么自己要成為踏腳石蝇狼,讓人們踩著自去去膜拜它呢阅畴!它對(duì)佛抱怨說(shuō)這樣太不公平!佛像說(shuō):這沒(méi)有什么不公平迅耘,你們成為臺(tái)階只需挨了四刀贱枣,而我是挨了千刀萬(wàn)剮才成了人們膜拜的佛像。
重新運(yùn)行颤专,發(fā)現(xiàn)雪崩了纽哥。
如果需要生成中文的詞云,還需導(dǎo)入jieba分詞的包栖秕。jieba分詞的切分還是蠻準(zhǔn)的春塌。
C盤中有font字體,那么這些呢你可以自己去找累魔,trans_CN方法是分詞用的摔笤,通過(guò)font-path就可以指定里面的生成文本。這大概就是詞云的基礎(chǔ)了垦写,可以將爬蟲和詞云生成結(jié)合在一起,在爬取信息之后生成這樣的詞云彰触。