昨天,作的那個數據分析報告用到了jieba分詞。可是隻是借用了別人的部分代碼。具體函數表明什麼還不太明白。今天去官網研究了下.....python
「結巴」中文分詞:作最好的 Python 中文分詞組件git
"Jieba" (Chinese for "to stutter") Chinese text segmentation: built to be the best Python Chinese word segmentation module.github
支持三種分詞模式:函數
精確模式,試圖將句子最精確地切開,適合文本分析;
全模式,把句子中全部的能夠成詞的詞語都掃描出來, 速度很是快,可是不能解決歧義;
搜索引擎模式,在精確模式的基礎上,對長詞再次切分,提升召回率,適合用於搜索引擎分詞。
支持繁體分詞ui
支持自定義詞典搜索引擎
MIT 受權協議code
pip install jieba
jieba.cut 方法接受三個輸入參數: 須要分詞的字符串;cut_all 參數用來控制是否採用全模式;HMM 參數用來控制是否使用 HMM 模型
jieba.cut_for_search 方法接受兩個參數:須要分詞的字符串;是否使用 HMM 模型。該方法適合用於搜索引擎構建倒排索引的分詞,粒度比較細
待分詞的字符串能夠是 unicode 或 UTF-8 字符串、GBK 字符串。注意:不建議直接輸入 GBK 字符串,可能沒法預料地錯誤解碼成 UTF-8
jieba.cut 以及 jieba.cut_for_search 返回的結構都是一個可迭代的 generator,可使用 for 循環來得到分詞後獲得的每個詞語(unicode),或者用
jieba.lcut 以及 jieba.lcut_for_search 直接返回 list
jieba.Tokenizer(dictionary=DEFAULT_DICT) 新建自定義分詞器,可用於同時使用不一樣詞典。jieba.dt 爲默認分詞器,全部全局分詞相關函數都是該分詞器的映射。索引
因此大概明白了生成詞雲鬚要的cut方法的具體參數都表明什麼。ip
import jieba as jb str_li = jb.cut("我來到北京清華大學",cut_all=True) # 全模式 print(str_li) <generator object Tokenizer.cut at 0x00000298C3987FC0> # 能夠看到返回了一個生成器。 FullMode = 'Full mode :' + '/'.join(str_li) #全模式(不能解決歧義) print(FullMode) str_li = jb.cut("我來到北京清華大學",cut_all=False) # 精確模式 AccMode = 'AccurateMode: ' + '/'.join(str_li) print(AccMode) AccurateMode: 我/來到/北京/清華大學 #精確模式(適用於文本分析) str_li = jb.cut("我來到北京清華大學") #默認 DefMode = 'DefaultMode: ' + '/'.join(str_li) print(DefMode) DefaultMode: 我/來到/北京/清華大學 # 咱們能夠看到,默認是精確模式 long_sen = jb.cut_for_search("小明碩士畢業於中國科學院計算所,後在日本京都大學深造")# 搜索引擎模式 Long = 'search:'+','.join(long_sen) print(Long) search:小明,碩士,畢業,於,中國,科學,學院,科學院,中國科學院,計算,計算所,,,後,在,日本,京都,大學,日本京都大學,深造 # 最後統一對比一下: print(FullMode) print(AccMode) print(DefMode) print(Long) Full mode :我/來到/北京/清華/清華大學/華大/大學 AccurateMode: 我/來到/北京/清華大學 DefaultMode: 他/來到/了/網易/杭研/大廈 search:小明,碩士,畢業,於,中國,科學,學院,科學院,中國科學院,計算,計算所,,,後,在,日本,京都,大學,日本京都大學,深造
對於基本的詞雲及詞頻分析來講已經足夠了,詞典什麼的情感分析,下次研究。unicode
jeiba地址:https://github.com/fxsjy/jieba