pip install jieba
安裝jieba模塊
如果網速比較慢,
可以使用豆瓣的Python源:
pip install -i https://pypi.douban.com/simple/ jieba
一、分詞:

import jieba
seg_list = jieba.cut("從沒見過我這么弱的垃圾", cut_all=True)
print("全模式:" + " ".join(seg_list))
# 全模式,把句子中所有的可以成詞的詞語都掃描出來, 速度非常快,但是不能解決歧義
seg_list = jieba.cut("從沒見過我這么弱的垃圾")
print("精確模式:" + " ".join(seg_list))
# 精確模式,試圖將句子最精確地切開,適合文本分析
seg_list = jieba.cut_for_search("從沒見過我這么弱的垃圾")
print("搜索引擎模式:" + " ".join(seg_list))
# 搜索引擎模式,在精確模式的基礎上,對長詞再次切分,提高召回率,適合用於搜索引擎分詞,符合中國人的使用習慣
打印結果:
全模式:從沒 沒見 過 我 這么 弱 的 垃圾
精確模式:從沒 見 過 我 這么 弱 的 垃圾
搜索引擎模式:從沒 見 過 我 這么 弱 的 垃圾
也可以這樣寫:
import jieba
seg_list = jieba.cut("從沒見過我這么弱的垃圾", cut_all=True)
for i in seg_list:
print(i)
# 全模式,把句子中所有的可以成詞的詞語都掃描出來, 速度非常快,但是不能解決歧義
seg_list = jieba.cut("從沒見過我這么弱的垃圾")
for i in seg_list:
print(i)
# 精確模式,試圖將句子最精確地切開,適合文本分析
seg_list = jieba.cut_for_search("從沒見過我這么弱的垃圾")
for i in seg_list:
print(i)
# 搜索引擎模式,在精確模式的基礎上,對長詞再次切分,提高召回率,適合用於搜索引擎分詞,符合中國人的使用習慣
打印結果:
從沒
沒見
過
我
這么
弱
的
垃圾
從沒
見
過
我
這么
弱
的
垃圾
從沒
見
過
我
這么
弱
的
垃圾
jieba.cut 方法接受三個輸入參數:
1、需要分詞的字符串;
2、cut_all 參數用來控制模式,
cut_all=True or False,
默認為False(精確模式);
3、HMM 參數用來控制是否使用HMM模型,
HMM=True or False,
默認為True(新詞識別)。
jieba.cut_for_search 方法接受兩個參數:
1、需要分詞的字符串;
2、是否使用 HMM 模型。
該方法適合用於搜索引擎構建倒排索引的分詞,粒度比較細
jieba.cut 以及 jieba.cut_for_search 返回的結構都是一個可迭代的generator,
可以使用 for 循環來獲得分詞后得到的每一個詞語(unicode),
或者用
jieba.lcut 以及 jieba.lcut_for_search 直接返回 list
二、添加自定義的詞典:
import jieba
jieba.add_word("牛肉餅干")
# 當只用jieba的默認字典時,牛肉和餅干被默認為兩個詞語
# 可以使用jieba.add_word方法直接添加“牛肉餅干”這個詞,將“牛肉餅干”輸入進去,作為一個詞組
seg_list = jieba.cut("牛肉餅干很好吃")
print(" ".join(seg_list))
打印結果:
牛肉餅干 很 好吃
還可以這樣寫:
import jieba
jieba.load_userdict("add.txt")
# 當只用jieba的默認字典時,牛肉和餅干被默認為兩個詞語
# 還可以用load_userdict(file_name)添加自己想添加的字典,讓判斷變得更加的准確
# 在與本文件相同目錄的地方創建一個文本文檔,將’牛肉餅干’輸入進去,作為一個詞組
seg_list = jieba.cut("牛肉餅干很好吃")
print(" ".join(seg_list))
打印結果:
牛肉餅干 很 好吃
三、調整詞典:
import jieba
jieba.suggest_freq(("垃", "圾"), tune=True)
# 使用suggest_freq(segment, tune=True)可調節單個詞語的詞頻
# 使其能(或不能)被分出來,默認為False
# “垃圾”原為一個詞,這樣可以可以拆分為"垃"、"圾"兩個詞
seg_list = jieba.cut("從沒見過我這么弱的垃圾", HMM=False)
# 注意:自動計算的詞頻在使用HMM新詞發現功能時可能無效
print(" ".join(seg_list))
打印結果:
從沒 見 過 我 這么 弱 的 垃 圾
補充:
1、文件名不可命令為jieba.py
否則會報錯:
AttributeError: module 'jieba' has no attribute 'cut'
2、join()方法:
連接字符串數組,
將字符串、元組、列表中的元素以指定的字符(分隔符)連接生成一個新的字符串