中文分词器IK和Paoding技术对比
来源:互联网 发布:n卡驱动负优化 编辑:程序博客网 时间:2024/05/22 06:35
1. IK和Paoding的技术介绍
一、Ik分词器介绍:
优点:
采用了特有的“正向迭代最细粒度切分算法”,具有60万字/秒的高速处理能力。
采用了多子处理器分析模式,支持:英文字母(IP地址、Email、URL)、数字(日期,常用中文数量词,罗马数字,科学计数法),中文词汇(姓名、地名处理)等分词处理。
优化的词典存储,更小的内存占用。支持用户词典扩展定义。
针对Lucene全文检索优化的查询分析器IKQueryParser,采用歧义分析算法优化查询关键字的搜索排列组合,能极大的提高Lucene检索的命中率。
缺点:
在出现连词时,不是顺序取词,而是取最后的词,如:“流体用”,(词典有‘流体’和‘体用’)本应该分为“流体 |用”,而IK却分成了“流 | 体用”。
二、Paoding分词器介绍:
优点:
高扩展性:能非常方便的扩充字典,也可以非常方便的添加停用词。
效率极高-极高效率的字典查找算法;尽量避免无谓试探查找。
算法简练-简单易理解的算法,但效率却是非常高效的。
轻松支持最大/最小切词。
缺点:
分词精确度不好,涉及了汉语语义的问题,几乎不可完全解决。如:“和服”实例。
2. IK和Paoding的技术对比
(评估:二者的分词方式很相近;且对未登录词都是采用二元分词。)
一、IK分词策略:
采用 “正向迭代最细粒度切分算法”细粒度全切分,对于不在词典中的词进行二元分词;多子处理器分析模式。
三个分词器:CJKSegmenter(中文分词),CN_QuantifierSegmenter(数量词分词),LetterSegmenter(字母分词)。
有两种分词模式:细粒度分词和智能分词。
二、Paoding分词策略:
细粒度全切分,对于不在词典中的词进行二元分词;
使用不同的 Knife(主要为CJKKnife、LetterKnife和NumberKnife)切不同类型的流,不算很复杂。
有两种分词模式:most-words(最大词量分词方式)和max-word-length(按词在词典中的原序来进行编译,基本不再做其他处理)。
max-word-length此种分词模式还有问题(不能加载所有数据),未能解决。
三、二者的分词区别:
细粒度分词
IK分词是“正向迭代最细粒度切分算法”,故它是从开始以循序分词。
而Paoding分词虽然也是正向分词(迭代器来进行的缓存),但是它是贪婪的切词,就是说找到一个词后,继续往下找,找到以这个字开头的所有词为止。
粗粒度分词
二者的粗粒度的结果是一样的,都是取最大词。
3. IK和Paoding实现数据对比
例句:“圆柱滚子轴承 N313EM-P4 SKF --流体用冷不锈钢无缝钢管 22*3 316L -- 45°无缝弯头 DN200 8mm 20# 219 1.5D -- 无缝等径三通 DN250 7mm 20# GB/T12459”
IK细粒度分词效果:
圆柱|滚子|滚|子|轴承|n313em-p4|n|313|em|p|4|skf
IK智能分词效果:
圆柱|滚子|轴承|n313em-p4|skf
Paoding细粒度分词效果:
圆柱|滚子|轴承|n|313|em|p|4|p4|em-p4|313em-p4|n313em-p4|skf
圆柱|滚|滚子|轴承|n|313|em|p|4|p4|em-p4|313em-p4|n313em-p4|skf|
Paoding粗粒度分词效果:
圆柱|滚子|轴承|n313em-p4|skf
出处:http://my.oschina.net/MrMichael/blog/361899
- 中文分词器IK和Paoding技术对比
- 中文分词器IK和Paoding技术对比
- 中文分词器IK和Paoding技术对比
- IK和Paoding分词器的区别
- paoding、imdict、mmseg4j、ik四种分词器的比较
- paoding 中文分词学习
- Paoding中文分词参考手册
- Lucene中文分词Paoding
- IK中文分词器简介
- IK中文分词器配置
- IK Analyzer中文分词器
- IK中文分词器原理
- Elasticsearch 中文分词器 IK 配置和使用
- Elasticsearch 中文分词器 IK 配置和使用
- 全文检索elasticsearch和IK中文分词器
- Elasticsearch 中文分词器 IK 配置和使用
- Elasticsearch 中文分词器 IK 配置和使用
- IK 中文分词的配置和使用
- 黑马程序员——java基础---网络编程
- extjs4 tooltip
- 装饰模式
- classpath路径
- python多线程编程(2): 线程的创建、启动、挂起和退出
- 中文分词器IK和Paoding技术对比
- 单词积累
- 【LeetCode】Reverse Bits 翻转二进制
- 使用dedecms构建响应式站点(一)——安装
- python多线程编程(3): 使用互斥锁同步线程
- cocos2d-x3.5获取cocostuio生成的lua界面
- prim 与dijkstra的异同 POJ 2485 Highways
- session和cookie的区别是什么
- Stencil Buffer(模板缓冲区)