阅读更多

20顶
0踩

编程语言

原创新闻 推荐ruby中文分词器 - RMMSeg

2008-03-05 10:57 by 见习编辑 robbin 评论(5) 有13264人浏览
用RoR开发网站经常遇到的一个困扰就是Ruby缺乏良好的中文分词器,虽然ferret可以实现lucene的绝大部分功能,但是ferret自身并没有中文分词器,甚至连CJK两分分词器都没有,因此很多RoR网站不得不通过各种方式去访问lucene来解决分词问题,但RMMSeg项目发布以后,这一切已经成为历史。

RMMSeg是pluskid(浙江大学的学生)开发的ruby中文分词器,在2008年2月份刚刚发布的。RMMSeg使用了基于词库的最大匹配算法进行中文分词,并且辅以相应的修正算法,而RMMSeg带的词库有大约12万中文词汇,已经比较全面了。根据作者自己博客上面的测试,中文分词的准确率可以达到98%以上。

经过JavaEye网站的试用,RMMSeg当前的0.1.5版本已经可以在小型的ruby应用当中实际使用了,分词的效果也还不错。当然由于RMMSeg目前是纯ruby代码的实现,因此索引的性能还是有点慢,比目前JavaEye的单字拆分算法慢5倍左右。但考虑到全文检索的索引都是后台job去运行,所以稍微慢一点也可以接受。pluskid计划在接下来的版本当中使用C来实现一部分功能,提高性能,降低内存耗用。

安装rmmseg很简单:

gem install rmmseg 


然后就可以在应用程序当中构造RMMSeg的中文分词器了:

require 'rmmseg'
require 'rmmseg/ferret'

analyzer = RMMSeg::Ferret::Analyzer.new do |tokenizer|
  Ferret::Analysis::LowerCaseFilter.new(tokenizer)
end


RMMSeg项目相当令人振奋,有了好的中文分词器,RoR在国内的互联网应用就扫除了一大障碍。在这里也呼吁大家关注和使用RMMSeg项目,帮助RMMSeg项目发展的更好。

RMMSeg的官方网站在: http://rmmseg.rubyforge.org/
pluskid的博客:http://pluskid.lifegoo.com

作者的Email: pluskid AT gmail DOT com


20
0
评论 共 5 条 请登录后发表评论
5 楼 tianshuaiorc 2012-03-30 13:04
 
4 楼 tianshuaiorc 2012-03-30 13:04
    
3 楼 carlosbdw 2008-03-07 00:30
ruby如何调用MMSEG呢?
2 楼 carlosbdw 2008-03-06 17:12
以上哪种中文分词工具可以辨别出词形?
1 楼 我想我是海 2008-03-05 13:11
MMSEG算法是台湾一个朋友的作品:
[url]http://technology.chtsai.org/mmseg/[url]
在Java方面,早就有一个实现:
[url]http://www.solol.org/projects/mmseg/[url]
与Lucene的整合也提供了:
[url]http://www.solol.org/blogs/200710/200710242000.html[url]

实践过程中,分词效果的确极佳。以前通过比较,比Javaeye上现有的分词算法效果都要好。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

Global site tag (gtag.js) - Google Analytics