欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  资讯频道

推荐ruby中文分词器 - RMMSeg

程序员文章站 2022-05-17 15:48:53
...
用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


相关标签: rmmseg Ruby RoR