中文分词 mmseg4j

使用 paoding 的配置觉得有点复杂,而且管理词库也有点不方便,同时自己也想了解下中文分词算法,然后就想自己写个中文分词器,在lucene和solr中使用。在 javaeye 看到有关 mmseg 的简介,看了下还不错,简单方便,那就用它来写个java版吧,我搜索 mmseg的java版(好像是 solo,官方已经下载不了),弄清分词算法还是自己写写吧。

实在想不到其它名字,就称它为 mmseg4j。关于 mmseg的算法我先不在这介绍,
可以参考:
[list=1]
[*][url=http://technology.chtsai.org/mmseg/]mmseg[/url]
[*][url=http://www.coreseek.cn/opensource/mmseg/]libmmseg[/url]
[*][url=http://lifegoo.pluskid.org/?p=261]rmmseg[/url]
[/list]

mmseg4j 也实现了两种分词方式:Simple和Complex。

mmseg4j 扩展 lucene的analyzer,叫MMSegAnalyzer默认使用Complex方式,也可以用SimpleAnalyzer(Simple方式)。

来看下分词效果。

[quote]M:\mmseg4j\build>java -Dmmseg.dic.path=../data -jar mmseg4j-1.0.jar 羽毛球拍,研究生命起源,国际化,眼看就要来了,为首要考虑
2009-3-22 22:29:45 com.chenlb.mmseg4j.Dictionary
信息: look up in mmseg.dic.path=../data
2009-3-22 22:29:45 com.chenlb.mmseg4j.Dictionary init
信息: chars loaded time=297ms, line=12638, on file=..\data\chars.dic
2009-3-22 22:29:46 com.chenlb.mmseg4j.Dictionary init
信息: words loaded time=485ms, line=120330, on file=..\data\words.dic
2009-3-22 22:29:46 com.chenlb.mmseg4j.Dictionary init
信息: sort time=125ms
2009-3-22 22:29:46 com.chenlb.mmseg4j.Dictionary init
信息: load dic use time=937ms

羽毛 | 球拍 | 研究 | 生命 | 起源 | 国际化 | 眼看 | 就要 | 来 | 了 | 为首 | 要 | 考虑 |[/quote]

mmseg4j还扩展了solr的TokenizerFactory可以在Solr中方便的使用。可以指定词库的目录(paoding 到现在我还没搞懂怎么指定词库,在solr中使用,只能放到solr.war中)。mmseg4j在solr中使用的示例:
1、把mmseg4j-1.0.jar 放到solr.home/lib目录下(solr1.3支持)。
2、schema.xml定义field type
	<fieldType name="textComplex" class="solr.TextField" >
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" dicPath="dic"/>
</analyzer>
</fieldType>
<fieldType name="textSimple" class="solr.TextField" >
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple"
dicPath="n:/OpenSource/apache-solr-1.3.0/example/solr/my_dic"/>
</analyzer>
</fieldType>

3、打开[url]http://localhost:8080/solr/admin/analysis.jsp[/url] 察看分词效果。

MMSegTokenizerFactory 支持两个参数,mode=simple(默认是complex),dicPath可以用词库目录绝对路径或相对路径(相对路径是是相对solr.home目录)。可以为每个不同的MMSegTokenizerFactory指定不同的目录(一般应用中没有必要,一般用相同的目录,默认是CWD的data目录下找词库)。

词库,由于mmseg算法的特性要两个文件,我指定用chars.dic、words.dic,基本上chars.dic不需要改动,words.dic可以添加自己的词。现在用的是rmmseg的词库,当然你也可以用sogou的词库(下个版本准备用它)。

现在把 mmseg4j 发在 [url]http://code.google.com/p/mmseg4j/[/url] 上。可以下载 [url=http://mmseg4j.googlecode.com/files/mmseg4j-1.0.jar]mmseg4j-1.0.jar[/url]

发现有 bug,联系我 chenlb2008#gmail.com。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值