Python天然語言處理學習——jieba分詞

jieba——「結巴」中文分詞sunjunyi開發的一款Python中文分詞組件,能夠在Github上查看jieba項目python

要使用jieba中文分詞,首先須要安裝jieba中文分詞,做者給出了以下的安裝方法git

1.全自動安裝:easy_install jieba 或者 pip install jieba / pip3 install jiebagithub

2.半自動安裝:先下載 http://pypi.python.org/pypi/jieba/ ,解壓後運行 python setup.py install算法

3.手動安裝:將 jieba 目錄放置於當前目錄或者 site-packages 目錄函數

 

做者介紹其採用的算法搜索引擎

1.基於前綴詞典實現高效的詞圖掃描,生成句子中漢字全部可能成詞狀況所構成的有向無環圖 (DAG)spa

2.採用了動態規劃查找最大機率路徑, 找出基於詞頻的最大切分組合code

3.對於未登陸詞,採用了基於漢字成詞能力的 HMM 模型,使用了 Viterbi 算法blog

 

主要功能索引

1.分詞

  分詞功能主要有兩個方法 jieba.cut jieba.cut_for_search

其中 jieba.cut方法 接受三個輸入參數:

  1.須要分詞的字符串;

  2.cut_all 參數用來控制是否採用全模式;

  3.HMM 參數用來控制是否使用 HMM 模型

jieba.cut("我來到北京清華大學", cut_all=True)

 其中 jieba.cut_for_search方法 接受兩個輸入參數:

  1.須要分詞的字符串;

  2.是否使用 HMM 模型。

  該方法適合用於搜索引擎構建倒排索引的分詞,粒度比較細

jieba.cut_for_search("小明碩士畢業於中國科學院計算所,後在日本京都大學深造")

 jieba.cut方法 和 jieba.cut_for_search方法 返回的結構都是一個可迭代的 generator,可使用 for 循環來得到分詞後獲得的每個詞語(unicode)

也可使用 jieba.lcut方法 和 jieba.lcut_for_search方法 直接返回 list

 

做者的說明:待分詞的字符串能夠是 unicode 或 UTF-8 字符串、GBK 字符串。

注意:不建議直接輸入 GBK 字符串,可能沒法預料地錯誤解碼成 UTF-8

 

如下是做者給出的demo和運行結果

# coding:utf-8
# !/usr/bin/env python

import jieba 

if __name__ == '__main__':
	seg_list = jieba.cut("我來到北京清華大學", cut_all=True) 
	print("Full Mode: " + "/ ".join(seg_list))		#全模式 
	seg_list = jieba.cut("我來到北京清華大學", cut_all=False) 
	print("Default Mode: " + "/ ".join(seg_list))	#精確模式 
	seg_list = jieba.cut("他來到了網易杭研大廈")		#默認是精確模式 
	print(", ".join(seg_list)) 
	seg_list = jieba.cut_for_search("小明碩士畢業於中國科學院計算所,後在日本京都大學深造")	#搜索引擎模式 
	print(", ".join(seg_list))

輸出的結果

能夠看到:

  全模式試圖將句子最精確地切開,適合文本分析,輸出的是全部可能的分詞組合,好比清華大學,會被分紅:清華,清華大學,華大,大學

  默認模型(精確模型)把句子中全部的能夠成詞的詞語都掃描出來, 速度很是快,可是不能解決歧義,好比清華大學,只會輸出清華大學

  搜索引擎模式:在精確模式的基礎上,對長詞再次切分,提升召回率,適合用於搜索引擎分詞

還有另一個方法 jieba.Tokenizer(dictionary=DEFAULT_DICT),用於新建自定義分詞器,可用於同時使用不一樣詞典。

jieba.dt 爲默認分詞器,全部全局分詞相關函數都是該分詞器的映射。

相關文章
相關標籤/搜索