首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

mmseg4j 1.7 beta 版公布

2012-11-09 
mmseg4j 1.7 beta 版发布mmseg4j 1.7 beta 版,主要改进分词速度。最大的变动是词库的数据结构改变了,改为ke

mmseg4j 1.7 beta 版发布
mmseg4j 1.7 beta 版,主要改进分词速度。最大的变动是词库的数据结构改变了,改为key tree(键树)。有几点的性能改进:

要比较的词不从 char[] sen(代分词的句子) 里复制,直接与词库结构比较, 性能提升10% 用 key tree 的词库数据结构, 性能提升不少用 key tree 里实现的 maxmatch, 同时返回所有相关词的长度(就不用从所有不同的词长去试匹配了), 性能提高很大

目前是用 HashMap 去实现 key tree的,固然内存开销增加,1.7 beta 版一个词库要 50M左右(15W词,有点多),之前的几个版都是10M左右。速度:simple 算法 1900kb/s左右;complex 算法 1200kb/s左右;max-word 模式 930kb/s左右。测试机(测试机:AMD athlon 64 2800+ 1G内存 xp)。

之前的版本都是 ArrayList<char[]> 存储词库,加二分查找。光查找就没有 key tree 快;再加上 key tree 一次最长匹配下去可以知道所有有效的不同词的长度,而二分查找做不到这一点(要所有不同词长去试匹配),这一点改进在我机子上速度提高了300-400kb/s。

目前用 HashMap 实现的 key tree 的缺点是:加载词库长一些,内存开销大。这些缺点换来了速度。

下载 mmseg4j-1.7-beta.jar,源码
1 楼 flyfan 2009-04-14   之前从1.0到现在1.7,看来楼主持续更新呀,而且更新速度很快嘛 2 楼 chenlb 2009-04-15   flyfan 写道之前从1.0到现在1.7,看来楼主持续更新呀,而且更新速度很快嘛

1.0 直接跳到 1.5

呵呵 3 楼 单眼皮大娘 2012-04-12   你好~非常感谢你开放自己的源代码,最近在学习你的mmseg4j。
我对你字典的数据结构很困惑,你能把关于字典的类的设计图发我一份吗?或者给我大致讲讲你的字典的数据结构。谢谢~~
我的邮箱 fay19880111@yeah.net

热点排行