Python Jieba WordCloud
jieba是一個可以用來處理文章斷詞分析的,這很有趣,也可以用來看什麼人的習慣用詞!
另外,jieba本身的預設是簡體的詞庫,如果要繁中的話還要再另外設置。
jieba的繁中字典檔在github上可以下載,不信任連結的話可以直接google jieba,就可以找到github的連結了。
首先,會用到的lib
import json
import jieba
from collections import Counter
from wordcloud import WordCloud
import matplotlib.pyplot as plt
jieba.set_dictionart('dict.txt.big') # 設置繁中字典檔,跟專案放一起就可以指到了
if __name__ == '__main__':
justDoit()
def justDoit():
with open('abc.json', 'r', encoding='utf-8') as f:
data = json.load(f) # 案例假裝是從json檔取資料
dicts = list()
for d in data.values():
dicts += [s for s in jieba.cut(d) if s.split() and len(s) > 1]
# 當斷詞之後的文字非空格而且長度大於1
countD = Counter(dicts) #Counter是上面import的一個lib,很好用,會回傳list內的出現次數
print(countD) # 就可以列印出各詞出現的次數了
# 接著是文字雲,如果是處理中文字,就要附上字型檔,與專案置於同一資料夾即可
wCloud = WordCloud(font_path='中文字型檔').generate(' '.join(dicts))
plt.imshow(wCloud)
plt.axis('off')
plt.show()
如果詞庫不足的部份也可以自訂延伸出去!
jieba本身的分詞模式包含了預設切分、全切分、搜尋引擎切分…
jieba本身的分詞模式包含了預設切分、全切分、搜尋引擎切分…
jieba.cut("來源字串", cut_all=False) # 預設切分
jieba.cut("來源字串", cut_all=True) # 全切分
jieba.cut_for_search("來源字串") # 搜尋引擎切分
jieba.cut("來源字串", cut_all=True) # 全切分
jieba.cut_for_search("來源字串") # 搜尋引擎切分
我以字串『藤原栗子準備在2017年6月26日去新公司報到了』下去測試。
得到的結果如下圖:
沒有留言:
張貼留言