几种开源分词工具的比較
搜集了一些资料,与同学一起进行了简单的測试,总结例如以下。
分词工 具 特点
|
支持语言 |
原理 |
词典及扩展性 |
StandardAnalyzer |
中文、英文(unicode) |
中文:单字符切分 英文:依据空格切分 |
|
ChineseAnalyzer |
中文,不支持中文和英文及数字混合的文本分词 |
按字分词,与StandardAnalyzer对中文的分词没有大的差别 |
|
CJKAnalyzer |
中文,英文,不支持中文和英文及数字混合的文本分词 |
採用的双字切分,也就是对一段文字按每两个字来进行切分 |
|
IKAnalyzer |
英文字母、数字、中文词汇等分词处理,兼容韩文、日文字符 |
正向迭代最细粒度切分算法(词典+文法分析) |
收录27万中文词汇, 支持用户词典扩展定义、支持自己定义停止词 |
paoding |
中文 |
支持不限制个数的用户自己定义词库 |
|
MMAnalyzer |
支持英文、数字、中文(简体)混合分词 |
正向最大匹配算法 |
支持动态扩展 |
MMSeg4j |
中文,包含一些字符的处理 英文、俄文、希腊、数字(包含①㈠⒈)的分出一连串的。眼下版本号没有处理小数字问题 |
用 Chih-Hao Tsai 的 MMSeg 算法。MMSeg 算法有两种分词方法:Simple和Complex,都是基于正向最大匹配。在complex基础上实现了最多分词(max-word) |
强制使用 UTF-8) 使用sougou词库,也可自己定义覆盖 |
imdict |
中文、英文、数字 |
隐马尔科夫模型 |
仅coredict核心字典、bigramdict词典,不含人名、地名词典。不支持自己定义词典 |
分词工具
特点 |
速度 |
文档完整性 |
大小 |
Lucene版本号 |
备注 |
StandardAnalyzer |
|||||
ChineseAnalyzer |
Lucene contrib中附带的分析器 |
||||
CJKAnalyzer |
Lucene contrib中附带的二元分词 |
||||
IKAnalyzer 3.2.8 |
83 万字/秒(1600KB/S) |
具体 |
2.62MB |
Lucene2.9、 Lucene3.0 |
支持细粒度和最大词长两种切分模式 |
paoding |
100万字/秒 |
差点儿无 |
1.3MB |
Lucene3.0 |
|
MMAnalyzer |
第一次分词须要1-2秒(读取词典),之后速度基本与Lucene自带分词持平 |
原始站点已经找不到下载,不提供维护和支持 |
内存消耗30M+ |
lucene 1.9到2.4之间 |
|
MMSeg4j |
complex 1200kb/s左右, simple 1900kb/s左右 |
MMSeg 算法是英文的,但原理比較简单。实现也比較清晰。 |
内存开销了50M左右 |
mmseg4j 1.8.3 仅仅支持 lucene 2.9/3.0 接口 。mmseg4j 1.8.5 支持 lucene 3.1。 |
|
imdict |
259517字/秒 |
较全 |
词典大小7.26MB |
Lucene2.9直接收录 |
分词效果演示:
消歧义效果:
分词工具 效果 |
张三买了张三角桌 |
南京市长江大桥 |
||
StandardAnalyzer |
张|三|买|了|张|三|角|桌 |
南|京|市|长|江|大|桥 |
||
ChineseAnalyzer |
张|三|买|了|张|三|角|桌 |
南|京|市|长|江|大|桥 |
||
CJKAnalyzer |
张三|三买|买了|了张|张三|三角|角桌 |
南京|京市|市长|长江|江大|大桥 |
||
IK Analyzer |
最大词长 |
张三|买了|张三|三角|桌 |
南京市|市长|长江大桥 |
|
最细粒度 |
张三|三|买了|张三|三角|三|角|桌 |
南京市|南京|市长|长江大桥|长江|大桥 |
||
paoding |
张三|买了|张三|三角| 桌 |
南|南京|南京市|长|市长|长江|大 |大桥 |
||
MMAnalyzer |
张三|买了|张三角|桌 |
南京市|长江大桥 |
||
MMSeg4j |
SimpleSeg |
张三|买了|张三|角|桌 |
南京市|长江大桥 |
|
ComplexSeg |
张三|买了|张三|角|桌 |
南京市|长江大桥 |
||
imdict |
张|三|买|了|张|三|三角|桌 |
南京市|长江|大桥 |
数字、英文混合分词效果:
分词工具 效果 |
我的QQ号是****** |
||
StandardAnalyzer |
我|的|qq|号|是|****** |
||
ChineseAnalyzer |
我|的|qq|号|是 |
||
CJKAnalyzer |
我的|qq|号|是|****** |
||
IKAnalyzer |
IK |
我|的|qq|号|是|****** |
|
MIK |
我|的|qq|号|是|****** |
||
MMAnalyzer |
我的|qq|号|是|****** |
||
MMSeg4j |
SimpleSeg |
我的|qq|号|是|****** |
|
ComplexSeg |
我的|qq|号|是|****** |
||
paoding |
我的|qq|号|****** |
||
Imdict |
我|的|qq|号|****** |