python生成词云很慢吗_词云制作没那么难,Python 10 行代码就实现了!
寫在前面
想必大家有一個問題。什么是詞云呢?
詞云又叫名字云,是對文本數(shù)據(jù)中出現(xiàn)頻率較高的“關(guān)鍵詞”在視覺上的突出呈現(xiàn),形成關(guān)鍵詞的渲染形成類似云一樣的彩色圖片,從而一眼就可以領(lǐng)略文本數(shù)據(jù)的主要表達意思。、
網(wǎng)頁上有許多詞云的效果圖:
而且,目前有許多制作詞云的工具:
但是作為一個學(xué)習Python的程序員來說,我更喜歡通過自己的編程去解決問題。
而且用Python制作詞云只需十行代碼就行了哦~
一起來看看吧!
代碼塊import matplotlib.pyplot as plt
from wordcloud import WordCloud
import jieba
text_from_file_with_apath = open('/Users/hecom/23tips.txt').read()
wordlist_after_jieba = jieba.cut(text_from_file_with_apath, cut_all = True)
wl_space_split = " ".join(wordlist_after_jieba)
my_wordcloud = WordCloud().generate(wl_space_split)
plt.imshow(my_wordcloud)
plt.axis("off")
plt.show()
代碼效果圖:
下面咱們解析一下代碼塊:1~3 行分別導(dǎo)入了畫圖的庫,詞云生成庫和jieba的分詞庫;
4 行是讀取本地的文件,代碼中使用的文本是本公眾號中的《老曹眼中研發(fā)管理二三事》。
5~6 行使用jieba進行分詞,并對分詞的結(jié)果以空格隔開;
7行對分詞后的文本生成詞云;
8~10行用pyplot展示詞云圖。
這是我喜歡python的一個原因吧,簡潔明快。
當然,這只是一個簡單得不能再簡單得編程,實現(xiàn)的效果也非常簡單
但是Python是一門開源的語言,這時候就體現(xiàn)出開源的特性了,任何人都能對一個項目加以修改,使項目不斷的完善。
Github上有許多開源的項目,小編找到一個做詞云的項目,鏈接如下:
咱們可以直接進入wordcloud.py 源碼進行字體,詞云效果進行修改。
源碼解析:
wordcloud.py總共不過600行,其間有著大量的注釋,讀起來很方便。其中用到了較多的庫,常見的random,os,sys,re(正則)和可愛的numpy,還采用了PIL繪圖,估計一些人又會遇到安裝PIL的那些坑.
生產(chǎn)詞云的原理其實并不復(fù)雜,大體分成5步:對文本數(shù)據(jù)進行分詞,也是眾多NLP文本處理的第一步,對于wordcloud中的process_text()方法,主要是停詞的處理
計算每個詞在文本中出現(xiàn)的頻率,生成一個哈希表。詞頻計算相當于各種分布式計算平臺的第一案例wordcount, 和各種語言的hello world 程序具有相同的地位了,呵呵。
根據(jù)詞頻的數(shù)值按比例生成一個圖片的布局,類IntegralOccupancyMap 是該詞云的算法所在,是詞云的數(shù)據(jù)可視化方式的核心。
將詞按對應(yīng)的詞頻在詞云布局圖上生成圖片,核心方法是generate_from_frequencies,不論是generate()還是generate_from_text()都最終到generate_from_frequencies
完成詞云上各詞的著色,默認是隨機著色
詞語的各種增強功能大都可以通過wordcloud的構(gòu)造函數(shù)實現(xiàn),里面提供了22個參數(shù),還可以自行擴展。
效果圖:
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的python生成词云很慢吗_词云制作没那么难,Python 10 行代码就实现了!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何判断两物体加速度相等_高中物理:速度
- 下一篇: 白钢条用什么可以切割_错怪李佳琦了!原来