分词工具比较
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
IKAnalyzer
IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer已经推出了3个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。新版本的IKAnalyzer3.0则发展为面向Java的公用分词组件,独立于Lucene 项目,同时提供了对Lucene的默认优化实现。
语言和平台:基于java 语言开发,最初,它是以开源项目Luence 为应用主体的,结合词典分词和文法分析算法的中文分词组件。新版本的IKAnalyzer 3.0 则发展为面向 Java 的公用分词组件,独立于 Lucene 项目,同时提供了对Lucene 的默认优化实现。
算法:采用了特有的“正向迭代最细粒度切分算法”。采用了多子处理器分析模式,支持:英文字母( IP 地址、 Email 、 URL )、数字(日期,常用中文数量词,罗马数字,科学计数法),中文词汇(姓名、地名处理)等分词处理。优化的词典存储,更小的内存占用。支持用户词典扩展定义。针对 Lucene 全文检索优化的查询分析器 IKQueryParser ;采用歧义分析算法优化查询关键字的搜索排列组合,能极大的提高 Lucene 检索的命中率。
性能:60 万字 / 秒
IKAnalyzer基于lucene2.0版本API开发,实现了以词典分词为基础的正反向全切分算法,是LuceneAnalyzer接口的实现。该算法适合与互联网用户的搜索习惯和企业知识库检索,用户可以用句子中涵盖的中文词汇搜索,如用"人民"搜索含"人民币"的文章,这是大部分用户的搜索思维;不适合用于知识挖掘和网络爬虫技术,全切分法容易造成知识歧义,因为在语义学上"人民"和"人民币"是完全搭不上关系的。
je-anlysis的分词(基于java实现)
1. 分词效率:每秒30万字(测试环境迅驰1.6,第一次分词需要1-2秒加载词典)
2. 运行环境: Lucene 2.0
3. 免费安装使用传播,无限制商业应用,但暂不开源,也不提供任何保证
4. 优点:全面支持Lucene 2.0;增强了词典维护的API;增加了商品编码的匹配;增加了Mail地址的匹配;实现了词尾消歧算法第二层的过滤;整理优化了词库;
支持词典的动态扩展;支持中文数字的匹配(如:二零零六);数量词采用“n”;作为数字通配符优化词典结构以便修改调整;支持英文、数字、中文(简体)混合分词;常用的数量和人名的匹配;超过22万词的词库整理;实现正向最大匹配算法;支持分词粒度控制
ictclas4j
ictclas4j中文分词系统是sinboy在中科院张华平和刘群老师的研制的FreeICTCLAS的基础上完成的一个java开源分词项目,简化了原分词程序的复
杂度,旨在为广大的中文分词爱好者一个更好的学习机会。
性能:分词速度单机996KB/s ,API 不超过200KB ,各种词典数据压缩后不到3M.
准确率:分词精度98.45%
语言和平台:ICTCLAS 全部采用 C/C++ 编写,支持 Linux 、 FreeBSD 及Windows 系列操作系统,支持 C/C++ 、 C# 、 Delphi 、 Java 等主流的开发语言。
Author:中国科学院计算技术研究所
主要功能:中文分词;词性标注;命名实体识别;新词识别;未登录词识别;同时支持用户词典;支持繁体中文;支持GBK 、 UTF-8 、 UTF-7 、 UNICODE 等多种编码格式。
算法:完美PDAT 大规模知识库管理技术(200510130690.3 ),在高速度与高精度之间取得了重大突破,该技术可以管理百万级别的词典知识库,单机每秒可以查询100 万词条,而内存消耗不到知识库大小的 1.5 倍。层叠隐马尔可夫模型(Hierarchical Hidden Markov Model ),该分词系统的主要是思想是先通过CHMM( 层叠形马尔可夫模型) 进行分词, 通过分层, 既增加了分词的准确性, 又保证了分词的效率. 共分五层, 如下图所示。基本思路是进行原子切分, 然后在此基础上进行N- 最短路径粗切分, 找出前N 个最符合的切分结果, 生成二元分词表, 然后生成分词结果, 接着进行词性标注并完成主要分词步骤.
imdict
imdict-chinese-analyzer是imdict智能词典的智能中文分词模块,算法基于隐马尔科夫模型(Hidden Markov Model,HMM),是中国科学院计算技术研究所的ictclas中文分词程序的重新实现(基于Java),可以直接为lucene搜索引擎提供简体中文分词支持。
imdict-chinese-analyzer 是imdict智能词典的智能中文分词模块
算法:基于隐马尔科夫模型(Hidden Markov Model , HMM) ,是中国科学院计算技术研究所的 ictclas 中文分词程序的重新实现(基于 Java ),可以直接为lucene 搜索引擎提供简体中文分词支持
主要功能:
1,完全 Unicode 支持
分词核心模块完全采用Unicode 编码,无须各种汉字编码的转换,极大的提升了分词的效率。
2. 提升搜索效率
根据imdict智能词典的实践,在有智能中文分词的情况下,索引文件比没有中文分词的索引文件小 1/3
3. 提高搜索准确度
imdict -chinese-analyzer采用了 HHMM 分词模型,极大的提高了分词的准确率,在此基础上的搜索,比对汉字逐个切分要准确得多!
4. 更高效的数据结构
为了提高效率,针对常用中文检索的应用场景,imdict-chinese-analyzer 对一些不必要的功能进行了删减,例如词性标注、人名识别、时间识别等等。另外还修改了算法的数据结构,在内存占用量缩减到1/3 的情况下把效率提升了数倍。
paoding
Paoding's Knives中文分词基于Java的开源中文分词组件,提供lucene和solr 接口,具有极高效率和高扩展性。。引入隐喻,采用完全的面向对象设计,构思先进。高效率:在PIII 1G内存个人机器上,1秒可准确分词100万汉字。采用基于不限制个数的词典文件对文章进行有效切分,使能够将对词汇分类定义。能够对未知的词汇进行合理解析。
语言和平台:Java 提供lucence 3.0 接口,仅支持Java 语言。Paoding(庖丁解牛分词)基于Java的开源中文分词组件,提供lucene和solr 接口,具有极高效率和高扩展性。引入隐喻,采用完全的面向对象设计,构思先进。
高效率:在PIII 1G内存个人机器上,1秒可准确分词100万汉字。
采用基于不限制个数的词典文件对文章进行有效切分,使能够将对词汇分类定义。
能够对未知的词汇进行合理解析
仅支持Java语言
MMSEG4J
基于Java的开源中文分词组件,提供lucene和solr 接口
1、mmseg4j 用 Chih-Hao Tsai 的 MMSeg 算法实现的中文分词器,并实现 lucene 的 analyzer 和 solr 的TokenizerFactory 以方便在Lucene和Solr中使用。
2、MMSeg 算法有两种分词方法:Simple和Complex,都是基于正向最大匹配。Complex 加了四个规则过虑。官方说:词语的正确识别率达到了98.41% ,mmseg4j 已经实现了这两种分词算法。