genius中文分詞
Genius
Genius是一個開源的python中文分詞組件,采用 CRF(Conditional Random Field)條件隨機場算法。
Feature
- 支持python2.x、python3.x以及pypy2.x。
- 支持簡單的pinyin分詞
- 支持用戶自定義break
- 支持用戶自定義合并詞典
- 支持詞性標注
Source Install
- 安裝git: 1) ubuntu or debianapt-get install git2) fedora or redhatyum install git
- 下載代碼:git clone https://github.com/duanhongyi/genius.git
- 安裝代碼:python setup.py install
Pypi Install
- 執(zhí)行命令:easy_install genius或者pip install genius
Algorithm
- 采用trie樹進行合并詞典查找
- 基于wapiti實現(xiàn)條件隨機場分詞
- 可以通過genius.loader.ResourceLoader來重載默認的字典
功能 1):分詞genius.seg_text方法
- genius.seg_text函數(shù)接受5個參數(shù),其中text是必填參數(shù):
- text第一個參數(shù)為需要分詞的字符
- use_break代表對分詞結構進行打斷處理,默認值True
- use_combine代表是否使用字典進行詞合并,默認值False
- use_tagging代表是否進行詞性標注,默認值True
- use_pinyin_segment代表是否對拼音進行分詞處理,默認值True
代碼示例( 全功能分詞 )
#encoding=utf-8
import genius
text = u"""昨天,我和施瓦布先生一起與部分企業(yè)家進行了交流,大家對中國經(jīng)濟當前、未來發(fā)展的態(tài)勢、走勢都十分關心。"""
seg_list = genius.seg_text(
text,
use_combine=True,
use_pinyin_segment=True,
use_tagging=True,
use_break=True
)
print('\n'.join(['%s\t%s' % (word.text, word.tagging) for word in seg_list]))
功能 2):面向索引分詞
- genius.seg_keywords方法專門為搜索引擎索引準備,保留歧義分割,其中text是必填參數(shù)。
- text第一個參數(shù)為需要分詞的字符
- use_break代表對分詞結構進行打斷處理,默認值True
- use_tagging代表是否進行詞性標注,默認值False
- use_pinyin_segment代表是否對拼音進行分詞處理,默認值False
- 由于合并操作與此方法有意義上的沖突,此方法并不提供合并功能;并且如果采用此方法做索引時候,檢索時不推薦genius.seg_text使用use_combine=True參數(shù)。
代碼示例
#encoding=utf-8
import genius
seg_list = genius.seg_keywords(u'南京市長江大橋')
print('\n'.join([word.text for word in seg_list]))
功能 3):關鍵詞提取
- genius.tag_extract方法專門為提取tag關鍵字準備,其中text是必填參數(shù)。
- text第一個參數(shù)為需要分詞的字符
- use_break代表對分詞結構進行打斷處理,默認值True
- use_combine代表是否使用字典進行詞合并,默認值False
- use_pinyin_segment代表是否對拼音進行分詞處理,默認值False
代碼示例
#encoding=utf-8
import genius
tag_list = genius.extract_tag(u'南京市長江大橋')
print('\n'.join(tag_list))
其他說明 4):
- 目前分詞語料出自人民日報1998年1月份,所以對于新聞類文章分詞較為準確。
- CRF分詞效果很大程度上依賴于訓練語料的類別以及覆蓋度,若解決語料問題分詞和標注效果還有很大的提升空間。
評論
圖片
表情
