作者:robbin 来源:JavaEye   酷勤网收集 2008-05-28

摘要
  RMMSeg0.1.5版本已经可以在小型的ruby应用当中实际使用了,分词的效果也还不错。当然由于RMMSeg目前是纯ruby代码的实现,因此索引的性能还是有点慢,比目前JavaEye的单字拆分算法慢5倍左右。但考虑到全文检索的索引都是后台job去运行,所以稍微慢一点也可以接受。
用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很简单:

Ruby代码 复制代码
  1. gem install rmmseg   


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

Ruby代码 复制代码
  1. require 'rmmseg'  
  2. require 'rmmseg/ferret'  
  3.   
  4. analyzer = RMMSeg::Ferret::Analyzer.new do |tokenizer|   
  5.   Ferret::Analysis::LowerCaseFilter.new(tokenizer)   
  6. end  


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

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

作者的Email: pluskid AT gmail DOT com

来自:推荐ruby中文分词器 - RMMSeg

相关阅读:rmmseg-cpp - 简洁高效的ruby中文分词程序

分类: 搜索引擎技术 人工智能



关于酷勤 | 联系方式 | 免责声明 | 友情链接