- 浏览: 695573 次
- 性别:
- 来自: 杭州
文章列表
想发布新版的 mmseg4j 到现在已经有二个多月了。主要是因为这段时间忙其它事情了。现 Lucene 2.9 发布了,solr 1.4 也应该会比较快就要发布了。对 mmseg4j 兼容新版的 lucene/solr 也是个任务。
现 mmseg4j 发布新版 1.8,可以下载:mmseg4j-1.8.zip 包括了源码与词库,还有创建文件。下面说下此版的主要变更:
new:
1、有检测词典变更的接口,外部程序可以使用 wordsFileIsChange() 和 reload() 来完成检测与加载的工作. (内部不实现自动检测与加载,留给外部程序去做。)
...
- 2009-10-19 09:39
- 浏览 4518
- 评论(4)
发布最新一个 mmseg4 (1.7.2 与 1.6.2)版,距今也有几个月了。max-word 方式还不完善,有很多需要改进的地方。由于没有个好的想法,以至几个月都没更新。mmseg4j 项目也受到一些的关注,十分有必要改进。这贴说明下 mmseg4 的现状和 todo 功能,同时希望 javaeyer 们给予些建议或想法。
字符的处理:先断开不同类型的字符,断开的成为一个“句子”(类:Sentence)。
英文、俄文、希腊、数字、其它数字(如:①⑩㈠㈩⒈⒑⒒⒛⑴⑽⑾⒇),分出连续同类型字符。如:mmseg4j 会分出 mmseg,4,j 三个词。改进:英文开头的英文与数据混的应该 ...
中文分词 mmseg4j 1.7.2 版发布,其实两天前就发布了,只是没有写博客而已。与引版本发布的还有 1.6.2,两者基本一样,只是词库的数据结构不同,1.7的是键树,1.6的是数组与二分查找。
mmseg4j 1.7.2 版的主要更新:
修复由 1.7-beta 升级到 1.7 版的 bug:添加 lowerCaseFilter 后的一个 bug: NullPointerException。
核发程序与 lucene 和 solr 扩展分开打包, 同时给出低版本的 lucene 扩展(lucene 1.9 到 2.2; lucene 2.3)
如何从源码编译:
下载源码:m ...
mmseg4j 1.7 beta 版,主要改进分词速度。最大的变动是词库的数据结构改变了,改为key tree(键树)。有几点的性能改进:
要比较的词不从 char[] sen(代分词的句子) 里复制,直接与词库结构比较, 性能提升10%
用 key tree 的词库数据结构, 性能提升不少
用 key tree 里实现的 maxmatch, 同时返回所有相关词的长度(就不用从所有不同的词长去试匹配了), 性能提高很大
目前是用 HashMap 去实现 key tree的,固然内存开销增加,1.7 beta 版一个词库要 50M左右(15W词,有点多),之前的几个版都是10M左右。速度 ...
mmseg4j 1.6支持最多分词,应网友的要求:分词效果与 paoding 对比下。观察了 paoding 部分分词结果,现总结下。
paoding 分词效果:
--------------------------
清华大学
清华 | 大 | 华大 | 大学 |
--------------------------
华南理工大学
华南 | 理工 | 大 | 大学 |
--------------------------
广东工业大学
广东 | 工业 | 大 | 业大 | 大学 |
--------------------------
西伯利亚
西伯 | 伯利 | ...
经过几天的开发与调试,mmseg4j 1.6 版可以发布了。1.6 版主要实现与下功能:
实现多分词,在complex基础上,把长的词(大于2)拆出多个词。按二元分词,且把不存在的词去了,如:“西伯利亚” -> "西|伯利|利亚","西伯" 不存在词库中;“中国人民银行”-> "中国|国人|人民|银行"
支持多个词库文件,在词库目录中放"words"前缀且".dic"后缀的文件。如:data/words-my.dic
单字的单位独立一个文件(data/units.dic, 已经 ...
经过几天的开发与调试,新版的 mmseg4j 可以发布了。定为1.5版,是因为变动比较大。
mmseg4j 1.5变更:
使用 sogou 词库,是从 http://www.sogou.com/labs/dl/w.html ,下载的,然后转换下(一行一词)。
把chars.dic文件放到jar里, 我们不需要关心它,当然你在词库目录放这个文件可能覆盖它。
最长匹配遍历调整(基本不受长词的影响)
优化了程序,除去没有必要的数组复制等,性能提升40%
ant 在jdk 1.5 下也可以编译(上一版本用了Collections二分查找)
说明:
1、sogou 词库,不是用官方的 ...
- 2009-04-01 14:25
- 浏览 2622
- 评论(0)
看一下 mmseg4j 的分词速度如何,下载了两篇长篇小说共2.5M左右,可以到 http://mmseg4j.googlecode.com/files/txt.zip。2.5M的数据,用Complex模式是 5.3秒左右,不知是快还是慢(因为没有对比),Simple 模式用了2.9秒。(AMD athlon 64 2800+ 1G内存 xp)
以上数据是在 eclipse 上运行
代码有两个版本:用Analyzer方式的和不依赖Lucene Analyzer方式的,前者比较简洁
可以到 svn 上看:http://mmseg4j.googlecode.com/svn/trunk/exa ...
使用 paoding 的配置觉得有点复杂,而且管理词库也有点不方便,同时自己也想了解下中文分词算法,然后就想自己写个中文分词器,在lucene和solr中使用。在 javaeye 看到有关 mmseg 的简介,看了下还不错,简单方便,那就用它来写个java版吧,我搜索 mmseg的java版(好像是 solo,官方已经下载不了),弄清分词算法还是自己写写吧。
实在想不到其它名字,就称它为 mmseg4j。关于 mmseg的算法我先不在这介绍,
可以参考:
mmseg
libmmseg
rmmseg
mmseg4j 也实现了两种分词方式:Simple和Complex。
mmseg4j 扩 ...
上一篇记录了本机模式我虚拟分布模式。http://www.blogjava.net/chenlb/archive/2008/08/11/221311.html
现我在虚拟机里开三台机子,分别命名为:master(172.16.249.210),slave-1(172.16.249.211),slave-2(172.16.249.212)。
master可以无密码登录到slave机。
每台机子都匹配ip对应名。
127.0.0.1 localhost localhost
172.16.249.210 master
172.16.249.211 slave-1
17 ...
- 2008-08-11 15:45
- 浏览 2015
- 评论(0)
Required Software
JavaTM 1.5.x
ssh与sshd
如果没有安装请自行安装。我以CentOS 4.6为例。
下载hadoop,http://apache.mirror.phpchina.com/hadoop/core/ 我下载的是0.17.1版本。
解压hadoop-0.17.1.tar.gz,然后conf/hadoop-env.sh 设置JAVA_HOME ,我是可JAVA_HOME 去注释,值自己的路径。如:
export JAVA_HOME=/usr/java/jdk1.6.0_06
如果不设置启动后用不了。
先从简单开始。
1 ...
- 2008-08-11 15:28
- 浏览 2655
- 评论(0)
在linux下改了ip地址后,不能立即生效。以前是重启机器,我觉得这样很傻,后来知道网卡可以重启。
/etc/init.d/network restart
- 2008-08-11 09:34
- 浏览 3699
- 评论(0)
一直想了解分布搜索与索引。Lucene有MultiSearcher,solr1.2的只能有单个索引,现在1.3可以有Distributed Searching这玩意。可以从多个索引里搜索出并合并结果返回给你。这些索引不是replication的,是分割的。可以先%num方式索引在num台机器上,然后用solr的shards参数。
如:
shards=localhost:8080/use-solr1.3,localhost:9080/use-solr1.3&q=chenlb
测试后可以返回结果,但合并的时候发了点时间,我的机子上40-60ms,单个搜索基本是0ms
测试数据是14W结 ...
- 2008-08-07 18:31
- 浏览 2074
- 评论(0)
html 与 xml的转义符不同, xml就只有5个:
<
<
>
>
&
&
"
"
'
& ...
- 2008-08-06 12:40
- 浏览 2398
- 评论(0)
我比较喜欢免安装版(非安装版)的mysql,
下载如: mysql-noinstall-5.0.45-win32.zip
把它解压到如: E:/mysql-5.0.45, 当然可以任意位置。
然后改my-medium.ini文件为my.ini,当然也可以不改名,但要改内容
basedir="E:/mysql-5.0.45/"
datadir="E:/mysql-5.0.45/Data/"
如果上面,最好加个字符集,在[mysqld]和[mysql]下面加
default-character-set=utf8
当然可能是其它字符集, 如:gbk ...
- 2008-08-03 16:22
- 浏览 4947
- 评论(1)