HanLP vs LTP 对比
两个NLP库对比
HanLP https://github.com/hankcs/HanLP 自然语言处理库。
LTP https://github.com/HIT-SCIR/ltp 哈工大 语言技术平台(Language Technology Platform,LTP)。
功能 | HanLP | LTP | 说明 |
---|---|---|---|
编程语言 | java | C++ | |
客户端语言支持 | java/python | C++/java/python | |
开源授权 | Apache 2.0 | 未注明 | |
是否收费 | 否 | 个人研究免费,商业用途收费 | |
中文分词 | 支持 | 支持 | |
词性标注 | 支持 | 支持 | |
词性标注集 | 148个。 | 28个。 | HanLP兼容《ICTPOS3.0汉语词性标记集》,《现代汉语语料库加工规范——词语切分与词性标注》共148个。LTP采用863词性标注集,共28个。 |
命名实体识别 | 支持(支持扩展NER类型) | 仅支持人名、地名、机构名,不支持扩展 | |
依存句法分析 | 支持(移植自LTP) | 支持 | |
语义依存分析 | 不支持 | 支持 | |
语义角色标注 | 不支持 | 支持 | |
模型训练 | 支持分词、词性标注、命名实体识别模型的训练 | 支持分词、词性标注、命名实体识别模型的训练 | |
增量训练 | 支持 | 不支持 | |
自定义词频词性词典 | 支持 | 支持 | 由于算法原因,向用户自定义词典添加词语未必会生效,HanLP支持调整用户自定义词典的优先级。LTP无优先级概念。 |
二元文法词典 | 支持 | 不支持 | |
命名实体识别词典 | 支持 | 不支持扩展 | |
新词发现 | 支持 | 不支持 | |
关键词提取 | 支持 | 不支持 | |
算法原理与性能 | http://www.hankcs.com/nlp/,未发现关于f1的文档 | http://ltp.ai/docs/theory.html | |
性能对比
利用同一份语料训练两个分词库,利用同一份测试数据测试两个分词库的性能。
语料库选取1998年01月的人民日报语料库。
测试数据选择SIGHan2005提供的开放测试集。
MSR测试集:
训练迭代次数 | RECALL | PRECISION | F1 | |
---|---|---|---|---|
HanLP | 5 | 0.870 | 0.848 | 0.859 |
LTP | 5 | 0.886 | 0.854 | 0.870 |
HanLP | 50 | 0.881 | 0.855 | 0.868 |
LTP | 50 | 0.888 | 0.859 | 0.873 |
PKU测试集:
训练迭代次数 | RECALL | PRECISION | F1 | |
---|---|---|---|---|
HanLP | 5 | 0.894 | 0.915 | 0.905 |
LTP | 5 | 0.928 | 0.939 | 0.934 |
HanLP | 50 | 0.908 | 0.922 | 0.915 |
LTP | 50 | 0.931 | 0.946 | 0.939 |
测试步骤详情见 HanLP vs LTP
处理速度对比
选取网上20M大小的电子小说,约140315句
机器配置:Intel Xeon CPU 2.50GHz *4 ,内存16G
总耗时 | 速度 | ||
---|---|---|---|
HanLP | 15.68 s | 1375k/s | |
LTP | 53.68 s | 389k/s |
2018-03-28