Genius 分詞 3.1.6 版本發布
Genius 分詞 3.1.6 版本發布
本次更新的主要更新:
1、修復在python3.x情況下,默認系統編碼不為utf8導致無法安裝的情況。
2、修復wapiti在python3.x下調用出錯問題。
更新方法執行命令:easy_install --upgrade genius或者pip install genius --upgrade
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
執行命令:easy_install genius或者pip install genius
Algorithm
采用trie樹進行合并詞典查找
基于wapiti實現條件隨機場分詞
可以通過genius.loader.ResourceLoader來重載默認的字典
功能 1):分詞genius.seg_text方法
genius.seg_text函數接受5個參數,其中text是必填參數:
text第一個參數為需要分詞的字符
use_break代表對分詞結構進行打斷處理,默認值True
use_combine代表是否使用字典進行詞合并,默認值False
use_tagging代表是否進行詞性標注,默認值True
use_pinyin_segment代表是否對拼音進行分詞處理,默認值True
代碼示例( 全功能分詞 )
#encoding=utf-8 import genius text = u"""昨天,我和施瓦布先生一起與部分企業家進行了交流,大家對中國經濟當前、未來發展的態勢、走勢都十分關心。""" 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是必填參數。
text第一個參數為需要分詞的字符
use_break代表對分詞結構進行打斷處理,默認值True
use_tagging代表是否進行詞性標注,默認值False
use_pinyin_segment代表是否對拼音進行分詞處理,默認值False
由于合并操作與此方法有意義上的沖突,此方法并不提供合并功能;并且如果采用此方法做索引時候,檢索時不推薦genius.seg_text使用use_combine=True參數。
代碼示例
#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是必填參數。
text第一個參數為需要分詞的字符
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分詞效果很大程度上依賴于訓練語料的類別以及覆蓋度,若解決語料問題分詞和標注效果還有很大的提升空間。