锁定老帖子 主题:中文分词 mmseg4j
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-03-22
最后修改:2009-03-22
实在想不到其它名字,就称它为 mmseg4j。关于 mmseg的算法我先不在这介绍, 可以参考: mmseg4j 也实现了两种分词方式:Simple和Complex。 mmseg4j 扩展 lucene的analyzer,叫MMSegAnalyzer默认使用Complex方式,也可以用SimpleAnalyzer(Simple方式)。 来看下分词效果。 引用 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 羽毛 | 球拍 | 研究 | 生命 | 起源 | 国际化 | 眼看 | 就要 | 来 | 了 | 为首 | 要 | 考虑 | 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、打开http://localhost:8080/solr/admin/analysis.jsp 察看分词效果。 MMSegTokenizerFactory 支持两个参数,mode=simple(默认是complex),dicPath可以用词库目录绝对路径或相对路径(相对路径是是相对solr.home目录)。可以为每个不同的MMSegTokenizerFactory指定不同的目录(一般应用中没有必要,一般用相同的目录,默认是CWD的data目录下找词库)。 词库,由于mmseg算法的特性要两个文件,我指定用chars.dic、words.dic,基本上chars.dic不需要改动,words.dic可以添加自己的词。现在用的是rmmseg的词库,当然你也可以用sogou的词库(下个版本准备用它)。 现在把 mmseg4j 发在 http://code.google.com/p/mmseg4j/ 上。可以下载 mmseg4j-1.0.jar 发现有 bug,联系我 chenlb2008#gmail.com。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-03-28
mmseg4j-1.0有个bug:
MMSeg.next() 断句有个 bug。 空白字符后面的英文会丢失,且分词停止。 如:“手机电子书 http”空格后面的http丢了。 已经修复,请看 mmseg4j-1.patch 请用 mmseg4j-1.0.1.jar |
|
返回顶楼 | |
发表时间:2009-04-02
最后修改:2009-04-02
|
|
返回顶楼 | |
发表时间:2009-04-02
Solo L以前写过一个也是基于mmseg的分词(开源),可是他的网站已经很久都不能访问了,我手头只有jar包,找不到源代码了,先上传上来,有兴趣的话可以做个性能对比,或者反编译参考一下。
|
|
返回顶楼 | |
发表时间:2009-04-02
最大匹配优先算法?用的是什么词库?自己编的?
|
|
返回顶楼 | |
发表时间:2009-04-02
最后修改:2009-04-02
tibetjungle 写道 最大匹配优先算法?用的是什么词库?自己编的?
|
|
返回顶楼 | |
发表时间:2009-04-02
有空试试用在compass上,之前都是用paoding
|
|
返回顶楼 | |
发表时间:2009-04-02
个人觉得, paoding 还是很优秀的, 由于 mmseg算法的特性,没有多分词。
|
|
返回顶楼 | |
发表时间:2009-04-02
顶最早的mmseg for java的 Solol兄。由于其网站过期而弃用了。已通知solol放出原版下载。
|
|
返回顶楼 | |
发表时间:2009-04-02
你自己写的???
|
|
返回顶楼 | |