文档章节

Java开源项目cws_evaluation:中文分词器分词效果评估

杨尚川
 杨尚川
发布于 2014/08/30 23:02
字数 2133
阅读 1170
收藏 33
点赞 1
评论 5

cws_evaluation 是一个Java开源项目,用于对Java中文分词器分词效果进行评估

 

cws_evaluation 通过对前文《word分词器、ansj分词器、mmseg4j分词器、ik-analyzer分词器分词效果评估》中写的评估程序进行重构改进后形成的。

 

支持的分词器有:word分词器、ansj分词器、mmseg4j分词器、ik-analyzer分词器、jcseg分词器、fudannlp分词器、paoding分词器、jieba分词器、stanford分词器等9大中文分词器。

 

评估采用的测试文本有253 3709行,共2837 4490个字符。

 

cws_evaluation主页

可运行程序下载

 

最好的评估结果是word分词 全切分算法(trigram)

 

word分词 全切分算法(trigram):
分词速度:42.10602 字符/毫秒
行数完美率:65.04%  行数错误率:34.95%  总的行数:2533709  完美行数:1648163  错误行数:885546
字数完美率:56.3% 字数错误率:43.69% 总的字数:28374490 完美字数:15976750 错误字数:12397740

 

 

下面的评估数据中,word分词使用bigram,按行数完美率排序:

 

1:
word分词 全切分算法:
分词速度:40.259953 字符/毫秒
行数完美率:58.79%  行数错误率:41.2%  总的行数:2533709  完美行数:1489713  错误行数:1043996
字数完美率:49.53% 字数错误率:50.46% 总的字数:28374490 完美字数:14054431 错误字数:14320059

2:
Ansj ToAnalysis 精准分词:
分词速度:705.25415 字符/毫秒
行数完美率:58.6%  行数错误率:41.39%  总的行数:2533709  完美行数:1484830  错误行数:1048879
字数完美率:50.96% 字数错误率:49.03% 总的字数:28374490 完美字数:14462190 错误字数:13912300

3:
Stanford Beijing University segmentation:
分词速度:14.4612055 字符/毫秒
行数完美率:58.29%  行数错误率:41.7%  总的行数:2533709  完美行数:1477034  错误行数:1056675
字数完美率:51.36% 字数错误率:48.63% 总的字数:28374490 完美字数:14574120 错误字数:13800370

4:
Ansj NlpAnalysis NLP分词:
分词速度:171.70125 字符/毫秒
行数完美率:58.15%  行数错误率:41.84%  总的行数:2533687  完美行数:1473377  错误行数:1060310
字数完美率:49.8% 字数错误率:50.19% 总的字数:28374398 完美字数:14132290 错误字数:14242108

5:
Stanford Chinese Treebank segmentation:
分词速度:13.723294 字符/毫秒
行数完美率:55.45%  行数错误率:44.54%  总的行数:2533709  完美行数:1404968  错误行数:1128741
字数完美率:47.27% 字数错误率:52.72% 总的字数:28374490 完美字数:13414926 错误字数:14959564

6:
word分词 双向最大最小匹配算法:
分词速度:172.1868 字符/毫秒
行数完美率:55.31%  行数错误率:44.68%  总的行数:2533709  完美行数:1401582  错误行数:1132127
字数完美率:45.83% 字数错误率:54.16% 总的字数:28374490 完美字数:13005696 错误字数:15368794

7:
Ansj BaseAnalysis 基本分词:
分词速度:834.34753 字符/毫秒
行数完美率:55.31%  行数错误率:44.68%  总的行数:2533709  完美行数:1401582  错误行数:1132127
字数完美率:48.17% 字数错误率:51.82% 总的字数:28374490 完美字数:13670258 错误字数:14704232

8:
word分词 双向最大匹配算法:
分词速度:270.38776 字符/毫秒
行数完美率:52.01%  行数错误率:47.98%  总的行数:2533709  完美行数:1317801  错误行数:1215908
字数完美率:42.42% 字数错误率:57.57% 总的字数:28374490 完美字数:12038414 错误字数:16336076

9:
FudanNLP:
分词速度:94.249245 字符/毫秒
行数完美率:51.48%  行数错误率:48.51%  总的行数:2533709  完美行数:1304371  错误行数:1229338
字数完美率:43.22% 字数错误率:56.77% 总的字数:28374490 完美字数:12265742 错误字数:16108748

10:
Jieba SEARCH:
分词速度:662.1663 字符/毫秒
行数完美率:51.42%  行数错误率:48.57%  总的行数:2533709  完美行数:1303081  错误行数:1230628
字数完美率:42.09% 字数错误率:57.9% 总的字数:28374490 完美字数:11944313 错误字数:16430177

11:
Ansj IndexAnalysis 面向索引的分词:
分词速度:750.1914 字符/毫秒
行数完美率:50.89%  行数错误率:49.1%  总的行数:2533709  完美行数:1289517  错误行数:1244192
字数完美率:42.96% 字数错误率:57.03% 总的字数:28374490 完美字数:12191132 错误字数:16183358

12:
Jcseg 复杂模式:
分词速度:412.83997 字符/毫秒
行数完美率:48.64%  行数错误率:51.35%  总的行数:2533709  完美行数:1232550  错误行数:1301159
字数完美率:39.59% 字数错误率:60.4% 总的字数:28374490 完美字数:11236204 错误字数:17138286

13:
word分词 双向最小匹配算法:
分词速度:343.60004 字符/毫秒
行数完美率:46.76%  行数错误率:53.23%  总的行数:2533709  完美行数:1185013  错误行数:1348696
字数完美率:36.52% 字数错误率:63.47% 总的字数:28374490 完美字数:10365168 错误字数:18009322

14:
word分词 逆向最大匹配算法:
分词速度:607.2527 字符/毫秒
行数完美率:46.72%  行数错误率:53.27%  总的行数:2533709  完美行数:1183913  错误行数:1349796
字数完美率:36.67% 字数错误率:63.32% 总的字数:28374490 完美字数:10407342 错误字数:17967148

15:
word分词 正向最大匹配算法:
分词速度:615.3252 字符/毫秒
行数完美率:46.66%  行数错误率:53.33%  总的行数:2533709  完美行数:1182351  错误行数:1351358
字数完美率:36.73% 字数错误率:63.26% 总的字数:28374490 完美字数:10422209 错误字数:17952281

16:
Jcseg 简易模式:
分词速度:750.60815 字符/毫秒
行数完美率:45.24%  行数错误率:54.75%  总的行数:2533709  完美行数:1146355  错误行数:1387354
字数完美率:36.48% 字数错误率:63.51% 总的字数:28374490 完美字数:10352723 错误字数:18021767

17:
word分词 逆向最小匹配算法:
分词速度:970.16754 字符/毫秒
行数完美率:41.78%  行数错误率:58.21%  总的行数:2533709  完美行数:1058606  错误行数:1475103
字数完美率:31.68% 字数错误率:68.31% 总的字数:28374490 完美字数:8989797 错误字数:19384693

18:
MMSeg4j ComplexSeg:
分词速度:1071.8275 字符/毫秒
行数完美率:38.81%  行数错误率:61.18%  总的行数:2533688  完美行数:983517  错误行数:1550171
字数完美率:29.6% 字数错误率:70.39% 总的字数:28374428 完美字数:8400089 错误字数:19974339

19:
MMSeg4j SimpleSeg:
分词速度:1369.4913 字符/毫秒
行数完美率:37.57%  行数错误率:62.42%  总的行数:2533688  完美行数:951909  错误行数:1581779
字数完美率:28.45% 字数错误率:71.54% 总的字数:28374428 完美字数:8074021 错误字数:20300407

20:
IKAnalyzer 智能切分:
分词速度:350.47543 字符/毫秒
行数完美率:37.55%  行数错误率:62.44%  总的行数:2533686  完美行数:951638  错误行数:1582048
字数完美率:27.97% 字数错误率:72.02% 总的字数:28374416 完美字数:7938726 错误字数:20435690

21:
word分词 正向最小匹配算法:
分词速度:1079.0421 字符/毫秒
行数完美率:36.85%  行数错误率:63.14%  总的行数:2533709  完美行数:933769  错误行数:1599940
字数完美率:26.85% 字数错误率:73.14% 总的字数:28374490 完美字数:7621334 错误字数:20753156

22:
Jieba INDEX:
分词速度:622.5616 字符/毫秒
行数完美率:36.44%  行数错误率:63.55%  总的行数:2533709  完美行数:923459  错误行数:1610250
字数完美率:26.25% 字数错误率:73.74% 总的字数:28374490 完美字数:7448925 错误字数:20925565

23:
MMSeg4j MaxWordSeg:
分词速度:1064.9885 字符/毫秒
行数完美率:34.27%  行数错误率:65.72%  总的行数:2533688  完美行数:868440  错误行数:1665248
字数完美率:25.2% 字数错误率:74.79% 总的字数:28374428 完美字数:7152898 错误字数:21221530

24:
IKAnalyzer 细粒度切分:
分词速度:366.91785 字符/毫秒
行数完美率:18.87%  行数错误率:81.12%  总的行数:2533686  完美行数:478176  错误行数:2055510
字数完美率:10.93% 字数错误率:89.06% 总的字数:28374416 完美字数:3103178 错误字数:25271238

25:
Paoding MAX_WORD_LENGTH_MODE:
分词速度:1343.1075 字符/毫秒
行数完美率:14.19%  行数错误率:85.8%  总的行数:2533158  完美行数:359637  错误行数:2173521
字数完美率:7.72% 字数错误率:92.27% 总的字数:28373102 完美字数:2191349 错误字数:26181753

26:
Paoding MOST_WORDS_MODE:
分词速度:1338.9246 字符/毫秒
行数完美率:11.6%  行数错误率:88.39%  总的行数:2533158  完美行数:294011  错误行数:2239147
字数完美率:5.92% 字数错误率:94.07% 总的字数:28373102 完美字数:1680261 错误字数:26692841

 

 


© 著作权归作者所有

共有 人打赏支持
杨尚川

杨尚川

粉丝 1078
博文 218
码字总数 1620540
作品 12
东城
架构师
加载中

评论(5)

CheneyWong
CheneyWong
新浪云中文分词做得也不错。
杨尚川
杨尚川

引用来自“FiReKing_”的评论

我一直搞不懂分词是什么定义 能不能简单解释下
中文分词 (Chinese Word Segmentation) 指的是将一个汉字序列切分成一个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。我们知道,在英文的行文中,单词之间是以空格作为自然分界符的,而中文只是字、句和段能通过明显的分界符来简单划界,唯独词没有一个形式上的分界符,虽然英文也同样存在短语的划分问题,不过在词这一层上,中文比之英文要复杂的多、困难的多。
F1ReKing
F1ReKing
我一直搞不懂分词是什么定义 能不能简单解释下
杨尚川
杨尚川

引用来自“三平行者”的评论

中科院分词也不错,可以加进来比拼下!
中科院分词没有JAVA版本
三平行者
三平行者
中科院分词也不错,可以加进来比拼下!
Java中文分词组件 - word分词

Java分布式中文分词组件 - word分词 word分词是一个Java实现的分布式的中文分词组件,提供了多种基于词典的分词算法,并利用ngram模型来消除歧义。能准确识别英文、数字,以及日期、时间等数...

杨尚川
2014/04/29
0
47
cws_evaluation v1.1 发布,中文分词器分词效果评估对比

cws_evaluation 是一个Java开源项目,用于对中文分词器的分词效果进行评估对比,目前支持9大中文分词器。分别是:word分词器、ansj分词器、mmseg4j分词器、ik-analyzer分词器、jcseg分词器、...

杨尚川
2015/05/12
1K
0
cws_evaluation v1.0 发布,Java 中文分词器分词效果评估

cwsevaluation 是一个Java开源项目,用于对Java中文分词器分词效果进行评估。 支持的分词器有:word分词器、ansj分词器、mmseg4j分词器、ik-analyzer分词器、jcseg分词器、fudannlp分词器、p...

杨尚川
2014/05/02
929
4
11大Java开源中文分词器的使用方法和分词效果对比

本文的目标有两个: 1、学会使用11大Java开源中文分词器 2、对比分析11大Java开源中文分词器的分词效果 本文给出了11大Java开源中文分词的使用方法以及分词结果对比代码,至于效果哪个好,那...

杨尚川
2015/05/10
0
18
Lucene的中文分词器IKAnalyzer

分词器对英文的支持是非常好的。 一般分词经过的流程: 1)切分关键词 2)去除停用词 3)把英文单词转为小写 但是老外写的分词器对中文分词一般都是单字分词,分词的效果不好。 国人林良益写...

王国龙_成长
2013/02/05
0
3
Java分布式中文分词组件word分词v1.2发布

word分词是一个Java实现的分布式的中文分词组件,提供了多种基于词典的分词算法,并利用ngram模型来消除歧义。能准确识别英文、数字,以及日期、时间等数量词,能识别人名、地名、组织机构名...

杨尚川
2015/04/11
5.2K
5
word v1.3.1 发布,Java 分布式中文分词组件

word 分词是一个Java实现的分布式的中文分词组件,提供了多种基于词典的分词算法,并利用ngram模型来消除歧义。能准确识别英文、数字,以及日期、时间等数量词,能识别人名、地名、组织机构名...

杨尚川
2015/10/05
1K
9
word v1.3 发布,Java 分布式中文分词组件

word 分词是一个Java实现的分布式的中文分词组件,提供了多种基于词典的分词算法,并利用ngram模型来消除歧义。能准确识别英文、数字,以及日期、时间等数量词,能识别人名、地名、组织机构名...

杨尚川
2015/08/29
4.4K
0
JAVA自然语言处理NLP工具包

Java自然语言处理 LingPipe LingPipe 是一个自然语言处理的Java开源工具包。LingPipe目前已有很丰富的功能,包括主题分类(Top Classification)、命名实体识别(Named Entity Recognition)...

javaex999
2014/05/05
0
0
杨尚川/cws_evaluation

中文分词器分词效果评估对比 捐赠致谢 使用说明: 如何建立开发环境? 如果是使用Netbeans、IDEA,则直接打开项目如果是使用Eclipse、MyEclipse,则要执行导入操作推荐使用IDEA 评估采用的测...

杨尚川
2015/03/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Weblogic问题解决记录

问题:点击登录,页面刷新但是不进去管理界面。解决:删除cookies再登录。

wffger
10分钟前
0
0
RxJava2的错误处理方案

最近使用retrofit2 + rxKotlin2写接口访问,想尽量平铺代码,于是就想到当借口返回的状态码为「不成功」时(比如:code != 200),就连同网络错误一起,统一在onError方法中处理。想法总是好的...

猴亮屏
17分钟前
0
0
程序的调试信息

调试二进制程序时,经常要借助GDB工具,跟踪程序的执行流程,获取程序执行时变量的值,以发现问题所在。GDB能得到这些信息,是因为编译程序时,编译器保存了相应的信息。Linux下的可执行程序...

qlee
40分钟前
0
0
应用级缓存

缓存命中率 从缓存中读取数据的次数与总读取次数的比例,命中率越高越好 java缓存类型 堆缓存 guavaCache Ehcache3.x 没有序列化和反序列化 堆外缓存ehcache3.x 磁盘缓存 存储在磁盘上 分布式...

writeademo
今天
0
0
python爬虫日志(3)find(),find_all()函数

1.一般来说,为了找到BeautifulSoup对象内任何第一个标签入口,使用find()方法。 以上代码是一个生态金字塔的简单展示,为了找到第一生产者,第一消费者或第二消费者,可以使用Beautiful Sou...

茫羽行
今天
0
0
java:thread:顺序执行多条线程

实现方案: 1.调用线程的join方法:阻塞主线程 2.线程池 package com.java.thread.test;public class MyThread01 implements Runnable {@Overridepublic void run() {Syste...

人觉非常君
今天
0
0
ElasticSearch 重写IK分词器源码设置mysql热词更新词库

常用热词词库的配置方式 1.采用IK 内置词库 优点:部署方便,不用额外指定其他词库位置 缺点:分词单一化,不能指定想分词的词条 2.IK 外置静态词库 优点:部署相对方便,可以通过编辑指定文...

键走偏锋
今天
19
0
Git 2.18版本发布:支持Git协议v2,提升性能

Git 2.18版本发布:支持Git协议v2,提升性能Git 2.18版本发布:支持Git协议v2,提升性能 新版本协议的主要驱动力是使 Git 服务端能够对各种 ref(分支与 tag)进行过滤操作。 这就意味着,G...

linux-tao
今天
0
0
python浏览器自动化测试库【2018/7/22-更新】

64位py2.7版本 更新 document_GetResources 枚举页面资源 document_GetresourceText 获取指定url的内容 包括页面图片 下载地址下载地址 密码:upr47x...

开飞色
今天
42
0
关于DCL双重锁失效及解决方案

关于DCL双重锁失效及解决方案 Double Check Lock (DCL)实现单例 DCL 方式实现单例的优点是既能够在需要时才初始化单例,又能够保证线程安全,且单例对象初始化后调用getInstance方法不进行...

DannyCoder
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部