文章会有【原创】或者【转载】标示,部分来自Google Baidu的学习结果 {Java/PHP/Python/Ruby/Go}

Rseg: 纯Ruby中文分词插件【转载】  


转载自http://www.letrails.cn/archives/rseg-a-chinese-word-segment-gem-in-pure-ruby/

Rseg: 纯Ruby中文分词插件

Rseg是一个基于纯Ruby的中文分词插件,内置了CC-CEDICT和维基百科两本字典,目前只支持Ruby 187以上版本及UTF8编码。

项目地址:http://github.com/yzhang/rseg
分词算法:http://xiecc.blog.163.com/blog/static/14032200671110224190/

安装

sudo gem install rseg –source=http://gemcutter.org

使用

Rseg目前支持两种用法,本地调用或者C/S模式调用。

1. 本地调用


> require 'rubygems'
> require 'rseg'
> Rseg.segment("需要分词的文章")
['需要', '分词', '的', '文章']

第一次执行需要加载字典,大概需要30秒,不过你也可以调用Rseg#load来手动加载字典。

2. C/S方式

$ rseg_server

这条命令会监听4100端口,你可以通过http://localhost:4100/ 访问Web界面,也可以通过rseg命令远程调用:

$ rseg ‘需要分词的文章’
需要 分词 的 文章

还可以调用Rseg#remote_segment


> require 'rubygems'
> require 'rseg'
> RSeg.remote_segment("需要分词的文章")
['需要', '分词', '的', '文章']

这次就不需要加载字典了。

性能

很多人比较关心性能,用我的小白测了一下,大概在5M/s,欢迎大家多提意见。

更新:很多人问如何自制字典,其实很简单,从github checkout源代码,然后将你的字典文件放到dict目录下,格式为每行一个词,然后修改lib/builder/dict.rb,在第24行的数组中插入你的字典文件的名字:

dictionaries = ['cedict.zh_CN.utf8', 'wikipedia.zh.utf8', 'your_dict.utf8']

然后执行:

$ ruby lib/builder/dict.rb

用生成的dict/dict.hash覆盖gem包中的dict.hash就可以了。