早上看到簡友@向右奔跑 的文章超簡單:快速制作一款高逼格詞云圖,試了一下介紹的工具真心好用,近期剛好想爬些數(shù)據(jù)做詞云藻肄,就嘗試了一下jieba分詞提取txt關(guān)鍵詞生成詞云。
先上效果圖:
用到的工具
- 原始數(shù)據(jù):《白夜行》小說拒担,txt格式(我是用calibre把原來mobi格式的書轉(zhuǎn)成txt的)嘹屯。后期可以用爬蟲爬點網(wǎng)頁數(shù)據(jù)做原始數(shù)據(jù)。為簡單就先用txt練手好了从撼。
- 提取關(guān)鍵詞:jieba分詞州弟、停用詞表
- 在線詞云生成工具:TAGUL
簡單分析一下
生成詞云最關(guān)鍵的問題是中文分詞,統(tǒng)計分析各個詞的權(quán)重(權(quán)重較高的字體顯示較大)低零。這些問題jieba分詞已經(jīng)幫我們解決了婆翔。我們只需要import jieba.analyse
,使用jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())
方法即可掏婶,當然只是提取關(guān)鍵詞還是不夠的啃奴,因為有些沒有意義的常用詞諸如“我的”、“或者”雄妥、“一個”等詞最蕾,會出現(xiàn)在結(jié)果里面,還需要一個“停用詞表”來幫我們過濾結(jié)果老厌。
我們的目標是提取關(guān)鍵詞瘟则,并得到“關(guān)鍵詞+制表符+權(quán)重”的文本,這里關(guān)鍵詞和權(quán)重用制表符隔開是為了在用在線工具的時候枝秤,能順利導入權(quán)重的值醋拧,決定詞的大小(size)淀弹。
關(guān)鍵詞和size中間用制表符分開
步驟:
- 安裝jieba
pip install jieba
- 準備好txt文件和停用詞表(網(wǎng)上可以下載到丹壕,txt格式即可)
- 編寫代碼
import jieba.analyse
path = '你的txt文件路徑'
file_in = open(path, 'r')
content = file_in.read()
try:
jieba.analyse.set_stop_words('你的停用詞表路徑')
tags = jieba.analyse.extract_tags(content, topK=100, withWeight=True)
for v, n in tags:
#權(quán)重是小數(shù),為了湊整垦页,乘了一萬
print v + '\t' + str(int(n * 10000))
finally:
file_in.close()
運行結(jié)果如下:
4.打開TAGUL雀费,開始制作詞云干奢,把結(jié)果貼進import words里
5.選個shape(詞云輪廓)
6.在fonts中痊焊,導入一個中文字體,我用的微軟雅黑:
7.點擊visualize即可生成
8.Download and Share里面可以下載需要的格式。
參考文章:
1.TF-IDF與余弦相似性的應用(一):自動提取關(guān)鍵詞
2.超簡單:快速制作一款高逼格詞云圖
3.jieba的github