论坛首页 Java企业应用论坛

mmseg4j 1.7 beta 版发布

浏览 1804 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-04-14   最后修改:2009-04-14
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源码
   发表时间:2009-04-14  
之前从1.0到现在1.7,看来楼主持续更新呀,而且更新速度很快嘛
0 请登录后投票
   发表时间:2009-04-15  
flyfan 写道
之前从1.0到现在1.7,看来楼主持续更新呀,而且更新速度很快嘛


1.0 直接跳到 1.5

呵呵
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics