Genius是一个开源的python中文分词组件,采用CRF(ConditionalRandomField)条件随机场算法。
Feature支持python2.x、python3.x以及pypy2.x。支持简单的pinyin分词支持用户自定义break支持用户自定义合并词典支持词性标注SourceInstall安装git:1)ubuntuordebianapt-getinstallgit2)fedoraorredhatyuminstallgit下载代码:gitclonehttps://github.com/duanhongyi/genius.git安装代码:pythonsetup.pyinstallPypiInstall执行命令:easy_installgenius或者pipinstallgeniusAlgorithm采用trie树进行合并词典查找基于wapiti实现条件随机场分词可以通过genius.loader.ResourceLoader来重载默认的字典功能1):分词genius.seg_text方法genius.seg_text函数接受5个参数,其中text是必填参数:text第一个参数为需要分词的字符use_break代表对分词结构进行打断处理,默认值Trueuse_combine代表是否使用字典进行词合并,默认值Falseuse_tagging代表是否进行词性标注,默认值Trueuse_pinyin_segment代表是否对拼音进行分词处理,默认值True代码示例(全功能分词)
#encoding=utf-8importgeniustext=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)forwordinseg_list]))功能2):面向索引分词genius.seg_keywords方法专门为搜索引擎索引准备,保留歧义分割,其中text是必填参数。text第一个参数为需要分词的字符use_break代表对分词结构进行打断处理,默认值Trueuse_tagging代表是否进行词性标注,默认值Falseuse_pinyin_segment代表是否对拼音进行分词处理,默认值False由于合并操作与此方法有意义上的冲突,此方法并不提供合并功能;并且如果采用此方法做索引时候,检索时不推荐genius.seg_text使用use_combine=True参数。代码示例
#encoding=utf-8importgeniusseg_list=genius.seg_keywords(u'南京市长江大桥')print('\n'.join([word.textforwordinseg_list]))功能3):关键词提取genius.tag_extract方法专门为提取tag关键字准备,其中text是必填参数。text第一个参数为需要分词的字符use_break代表对分词结构进行打断处理,默认值Trueuse_combine代表是否使用字典进行词合并,默认值Falseuse_pinyin_segment代表是否对拼音进行分词处理,默认值False代码示例
#encoding=utf-8importgeniustag_list=genius.extract_tag(u'南京市长江大桥')print('\n'.join(tag_list))其他说明4):目前分词语料出自人民日报1998年1月份,所以对于新闻类文章分词较为准确。CRF分词效果很大程度上依赖于训练语料的类别以及覆盖度,若解决语料问题分词和标注效果还有很大的提升空间。
评论