用於中文詞語切分的庫。切分模式有以下三種:
全模式:返回句子中所有可能的詞語,可重複使用字。
精確模式:將句子精確劃分成多個詞語,字不能複用。
搜索引擎模式:在精確模式的基礎上近一步劃分長詞
常用方法
jieba模塊中有Tokenizer類型,很多模塊方法也是Tokenizer實例的屬性。以下僅介紹常用方法(屬性),實現切分中文字符串的功能。
jieba還有其他有用的函數,比如load_userdict可以載入個人字典,提升分詞結果的準確性。
jieba.cut(sentence, cut_all=False, HMM=True, use_paddle=False)
'''
返回Tokenizer類型,參數:
sentence:輸入要切分的句子,str類型
cut_all:模式。True:全模式 False:精確模式(默認)
HMM: 是否使用隱馬爾科夫模型
'''
jieba.cut_for_search(sentence, HMM=True)
#返回Tokenizer類型,切分模式:搜索引擎模式
jieba.lcut
jieba.lcut_for_search
#返回切分結果的列表(list),用法和前兩個方法分別類似
示例
cut
import jieba
words=jieba.cut('這是一個非常有趣的中文分詞庫')
#<generator object Tokenizer.cut at 0x7f01ca5322b0>
'/'.join(words) #'這是/一個/非常/有趣/的/中文/分/詞庫'
words=jieba.cut('這是一個非常有趣的中文分詞庫',cut_all=True) #全模式
'/'.join(words) #'這/是/一個/非常/常有/有趣/的/中文/分詞/詞庫'
cut_for_search
import jieba
words=jieba.cut_for_search('這是一個非常有趣的中文分詞庫')
'/'.join(words) #'這是/一個/非常/有趣/的/中文/分/詞庫'
*注:*cut和cut_for_search方法返回的都是Tokenizer對象,需要使用join或list轉爲字符串或列表顯示。
lcut
import jieba
jieba.lcut('這是一個非常有趣的中文分詞庫')
#['這是', '一個', '非常', '有趣', '的', '中文', '分', '詞庫']
jieba.lcut('這是一個非常有趣的中文分詞庫',cut_all=True) #全模式
#['這', '是', '一個', '非常', '常有', '有趣', '的', '中文', '分詞', '詞庫']
jieba.lcut('這是一個非常有interesting趣的中文分詞庫',cut_all=True)
#['這', '是', '一個', '非常', '常有', 'interesting', '趣', '的', '中文', '分詞', '詞庫']
*注:*若在輸出中文字符串中包括英文字母、數字、符號等,相當於將句子斷開,即使斷開地方可以組成詞語(比如:”有趣“),但是三種切分模式都不會將它組成詞語。
lcut_for_search
import jieba
jieba.lcut_for_search('這是一個非常有趣的中文分詞庫')
#['這是', '一個', '非常', '有趣', '的', '中文', '分', '詞庫']