推荐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很简单:
然后就可以在应用程序当中构造RMMSeg的中文分词器了:
RMMSeg项目相当令人振奋,有了好的中文分词器,RoR在国内的互联网应用就扫除了一大障碍。在这里也呼吁大家关注和使用RMMSeg项目,帮助RMMSeg项目发展的更好。
RMMSeg的官方网站在: http://rmmseg.rubyforge.org/
pluskid的博客:http://pluskid.lifegoo.com
作者的Email: pluskid AT gmail DOT com
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