首页 > 代码库 > 几种开源分词工具的比較
几种开源分词工具的比較
搜集了一些资料,与同学一起进行了简单的測试,总结例如以下。
分词工 具 特点
| 支持语言 | 原理 | 词典及扩展性 |
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|号|****** |