可使用 jieba.cut 和 jieba.cut_for_search 方法進行分詞,兩者所返回的結構都是一個可迭代的 generator,可使用 for 循環來獲得分詞後得到的每一個詞語(unicode),或者直接使用 jieba.lcut 以及 jieba.lcut_for_search 直接返回 list。其中:
# 儘量不要使用 GBK 字符串,可能無法預料地錯誤解碼成 UTF-8
seg_list = jieba.cut("他來到上海交通大學", cut_all=True)
print("【全模式】:" + "/ ".join(seg_list))
【全模式】:他/ 來到/ 上海/ 上海交通大學/ 交通/ 大學
seg_list = jieba.cut("他來到上海交通大學", cut_all=False)
print("【精確模式】:" + "/ ".join(seg_list))
type(seg_list)
seg_list = jieba.lcut("他來到上海交通大學", cut_all=True)
print("【返回列表】:{0}".format(seg_list))
【返回列表】:['他', '來到', '上海', '上海交通大學', '交通', '大學']type(seg_list)
簡單應用:
需求:使用 jieba 分詞對一個文本進行分詞,統計次數出現最多的詞語,這裡以三國演義為例
import jieba
txt = open("三國演義.txt", "r", encoding='utf-8').read()words = jieba.lcut(txt) counts = {}
for word in words: if len(word) == 1: continue else: counts[word] = counts.get(word, 0) + 1
items = list(counts.items())items.sort(key=lambda x: x[1], reverse=True)
for i in range(3): word, count = items[i] print("{0:<5}{1:>5}".format(word, count))