jieba是中文文本用於分詞的庫,有3種模式:精確模式、全模式(所有可能的分割)、搜索引擎模式(在精確模式基礎上再進行分割)
具體參考PYPI
# coding=utf-8 import jieba #txt = open(u"D:\data\ebook\紅樓夢.txt","r").read() #,encoding='utf-8' txt = open("D:\\data\\ebook\\1.txt","r",encoding='utf-8').read() words = jieba.lcut_for_search(txt) # 使用搜索引擎模式對文本進行分詞 counts = {} # 通過鍵值對的形式存儲詞語及其出現的次數 for word in words: print(word) if len(word) == 1: # 長度為1的詞語不計算在內 continue else: counts[word] = counts.get(word, 0) + 1 # 遍歷所有詞語,每出現一次其對應的值加 1 items = list(counts.items())#將鍵值對轉換成列表 items.sort(key=lambda x: x[1], reverse=True) # 根據詞語出現的次數進行從大到小排序 for i in range(5): word, count = items[i] print("{0:<5}{1:>5}".format(word, count))
注:1.txt
王西風在吃大棗,林黛玉在看書,寶玉發呆呢。。。。。 王西風吃完大棗后被寶玉叫住問:”大棗好不好吃?“,西風苦澀地說:”不好吃,澀得很,你想吃嗎?“ 寶玉說,”不好吃的話我就不吃了,算了。“,接着他去黛玉那里看了看黛玉正在看的書,覺得都是寫傷感的東西,很不感興趣。
得到的分詞結果,統計次數的前5個答案如下,可以看出,這個中文文本分割只是簡單分割,有一定的缺點:不能根據語義進行分割,文本的意思是大棗不好吃,它分割成了好吃,林黛玉和黛玉是一個人,它分割成了兩個分詞。
('西風', 3),
('大棗', 3),
('寶玉', 3),
('好吃', 2),
('林黛玉', 1)