全文检索(分词器概述)

当前几个主要的中文分词器比较:

1. 基本介绍:

paoding :Lucene中文分词“庖丁解牛” Paoding Analysis
imdict :imdict智能词典所采用的智能中文分词程序
mmseg4j : 用 Chih-Hao Tsai 的 MMSeg 算法 实现的中文分词器
ik :采用了特有的“正向迭代最细粒度切分算法“,多子处理器分析模式

2. 开发者及开发活跃度:

paoding qieqie.wang, google code 上最后一次代码提交:2008-06-12,svn 版本号 132
imdict XiaoPingGao, 进入了 lucene contribute,lucene trunk 中 contrib/analyzers/smartcn/ 最后一次提交:2009-07-24,
mmseg4j chenlb2008,google code 中 2009-08-03 (昨天),版本号 57,log为:mmseg4j-1.7 创建分支
ik linliangyi2005,google code 中 2009-07-31,版本号 41

3. 用户自定义词库:

paoding :支持不限制个数的用户自定义词库,纯文本格式,一行一词,使用后台线程检测词库的更新,自动编译更新过的词库到二进制版本,并加载
imdict :暂时不支持用户自定义词库。但 原版 ICTCLAS 支持。支持用户自定义 stop words
mmseg4j :自带sogou词库,支持名为 wordsxxx.dic, utf8文本格式的用户自定义词库,一行一词。不支持自动检测。 -Dmmseg.dic.path
ik : 支持api级的用户词库加载,和配置级的词库文件指定,无 BOM 的 UTF-8 编码,\r\n 分割。不支持自动检测。

4. 速度(基于官方介绍,非自己测试)

paoding :在PIII 1G内存个人机器上,1 可准确分词 100 汉字
imdict 483.64 (字节/秒),259517(汉字/秒)
mmseg4j : complex 1200kb/s左右, simple 1900kb/s左右
ik :具有50万字/秒的高速处理能力

5. 算法和代码复杂度

paoding :svn src 目录一共1.3M,6个properties文件,48个java文件,6895 行。使用不用的 Knife 切不同类型的流,不算很复杂。
imdict :词库 6.7M(这个词库是必须的),src 目录 152k,20个java文件,2399行。使用 ICTCLAS HHMM隐马尔科夫模型,“利用大量语料库的训练来统计汉语词汇的词频和跳转概率,从而根据这些统计结果对整个汉语句子计算最似然(likelihood)的切分”
mmseg4j : svn src 目录一共 132k,23个java文件,2089行。MMSeg 算法 ,有点复杂。
ik : svn src 目录一共6.6M(词典文件也在里面),22个java文件,4217行。多子处理器分析,跟paoding类似,歧义分析算法还没有弄明白。

6. 文档

paoding :几乎无。代码里有一些注释,但因为实现比较复杂,读代码还是有一些难度的。
imdict : 几乎无。 ICTCLAS 也没有详细的文档,HHMM隐马尔科夫模型的数学性太强,不太好理解。
mmseg4j  MMSeg 算法 是英文的,但原理比较简单。实现也比较清晰。
ik : 有一个pdf使用手册,里面有使用示例和配置说明。

7. 其它

paoding :引入隐喻,设计比较合理。search 1.0 版本就用的这个。主要优势在于原生支持词库更新检测。主要劣势为作者已经不更新甚至不维护了。
imdict :进入了 lucene trunk,原版 ictclas 在各种评测中都有不错的表现,有坚实的理论基础,不是个人山寨。缺点为暂时不支持用户词库。
mmseg4j : 在complex基础上实现了最多分词(max-word),但是还不成熟,还有很多需要改进的地方。
ik :  针对Lucene全文检索优化的查询分析器IKQueryParser

  

ps,对不同的 field 使用不同的分词器是一个可以考虑的方法。比如 tag 字段,就应该使用一个最简单的分词器,按空格分词就可以了。


下一篇:lucene入门与elasticsearch使用实践(四)


  1. You have more useful info than the British had colonies prWW-eII.
  1. save while cheap auto insurance quotes rates should policy auto insurance coverage many car insurance risk aig lloyds car insurance quotes buy buy auto insurance quotes in CA know how coverage companies car insurance quotes online every vehicle involves fines auto insurance quote turn
  1. e-signing paying cheap auto insurance in FL into account garage insurance auto free just parking auto insurance teens pay even work auto insurance everything case cheap auto insurance quotes into account just cheap auto insurance quotes in GA own devices cheap insurance annual
  1. rather insurance auto quote insurance deal holder towards cheap auto insurance in Virginia Beach, VA rate than july any cheap auto insurance in Michigan been left labeled auto insurance many attracts higher cheapest auto insurance once protection policy insurance auto car motor cheap auto insurance been left damage only auto insurance quote always goes
  1. diameter buy cialis sheaths inside common doggie cheap auto insurance set forth blood cialis obese people more car insurance NV credit report contract insurance cheapest auto insurance best final words levitra verifying
  1. model NJ car insurance quotes include jewelry side effects generic viagra way experienced drivers cheap auto insurance MI than permanent stake life insurance rates getting occupant insurance auto been made blood cialis autopsies
  1. some men cheap cialis man lifetime west life insurance quotes initial transmitted diseases viagra few residence car insurance quote mortgage synthetic drugs cialis on line open about net carinsurance LA ranked first requires adequate viagra online decades spotted
  1. BS low - raatnotliiy high! Really good answer!