ruby 下使用 ICTCLAS(JAVA)
2010-01-30 18:03
239 查看
ICTCLAS并没有RUBY开发版本,RUBY可以使用C版本和JAVA版本的ICTCLAS来做分词
RUBY用C的代码,涉及到重写接口和包装的问题,比较麻烦
在此讨论RUBY用JAVA版本的ICTCLAS实现分词
总体思想:RJB是个很精彩的库
1. 下载ICTCLAS4j
2. 目录结构
3. 环境
Windows 7
Ruby 1.8.6
rjb-1.2.0-x86-mswin32-60
4. 安装RJB
/article/7115792.html
这是我写的 [b]RJB 在windows下的一些安装事项[/b]
5. ICTCLAS.rb 的源代码
6. 在我们代码的根目录下(这点很重要,稍后讨论),运行
讨论:
1. 路径问题
前面提到过两个问题
1] 将ICTCLAS4j 的 DATA 文件夹 复制到代码根目录下
2] 必须从代码根目录启动程序
否则易出现以下错误
这样就可以从任意位置调用 ICTCLAS.fenci 方法 , DATA文件夹也可以放在ICTCLAS4j文件夹下
RUBY用C的代码,涉及到重写接口和包装的问题,比较麻烦
在此讨论RUBY用JAVA版本的ICTCLAS实现分词
总体思想:RJB是个很精彩的库
1. 下载ICTCLAS4j
2. 目录结构
==ICTCLAS.rb
==ICTCLAS(ICTCLAS4j的源文件)
==DATA(复制ICTCLAS4j的源文件中的DATA文件夹,为什么复制在此我们稍后讨论)
3. 环境
Windows 7
Ruby 1.8.6
rjb-1.2.0-x86-mswin32-60
4. 安装RJB
/article/7115792.html
这是我写的 [b]RJB 在windows下的一些安装事项[/b]
5. ICTCLAS.rb 的源代码
#代码用UTF-8格式保存 require "rubygems" require "rjb" require "iconv" class ICTCLAS def self.fenci(input) output = "" Rjb::load(classpath="ICTCLAS/bin") segtag_class = Rjb::import('org.ictclas4j.segment.SegTag') string_class = Rjb::import('java.lang.String') input = string_class.new_with_sig("Ljava.lang.String;" , input) segtag = segtag_class.new_with_sig("I",1) seg_res = segtag.split(input) output = seg_res.getFinalResult() output end end output = ICTCLAS.fenci("这篇文章摘自Tachikoma的乱七八糟") puts Iconv.iconv("GBK","utf-8",output) #转换码制以便输出
6. 在我们代码的根目录下(这点很重要,稍后讨论),运行
可以看到结果  ]这/r 篇/q 文章/n 摘自/v Tachikoma/nx 的/b 乱七八糟/i
讨论:
1. 路径问题
前面提到过两个问题
1] 将ICTCLAS4j 的 DATA 文件夹 复制到代码根目录下
2] 必须从代码根目录启动程序
否则易出现以下错误
require "rubygems" require "rjb" require "iconv" class ICTCLAS def self.fenci(input) root_path = "#{File.dirname(__FILE__)}/ICTCLAS" output = "" Dir.chdir(root_path) do |path| Rjb::load(classpath="bin") segtag_class = Rjb::import('org.ictclas4j.segment.SegTag') string_class = Rjb::import('java.lang.String') input = string_class.new_with_sig("Ljava.lang.String;" , input) segtag = segtag_class.new_with_sig("I",1) seg_res = segtag.split(input) output = seg_res.getFinalResult() end output end end
这样就可以从任意位置调用 ICTCLAS.fenci 方法 , DATA文件夹也可以放在ICTCLAS4j文件夹下
相关文章推荐
- 使用JAVA调用中科院ICTCLAS2015分词系统
- 使用Java调用中科院分词NLPIR/ICTCLAS
- ICTCLAS2015 Java版本的使用方法
- ICTCLAS2013(NLPIR汉语分词系统) Java版本的使用方法
- 使用 RJB(Ruby Java Bridge) 实现 Ruby 的CORBA RPC
- 免费云主机的使用:Heroku和Appfog,支持Node,PHP,Python,Java,ruby,Scala
- ICTCLAS2014 Java版本的使用方法
- ICTCLAS(Java)使用
- node 使用范围 和 node的优势 (为什么 创业公司 选择的不是 java php ruby 等)
- Ruby Python Java C C++ 数组使用方法对比
- NLP的两种工具的java版使用:复旦FudanNLP,中科院计算所ICTCLAS2013
- 10分钟开始使用ICTCLAS Java版——却花了我快一个小时
- 关于使用中文分词工具ICTCLAS2013 Java版本乱码的问题
- 没有Rails Java程序员如何使用Ruby
- 关于使用中文分词工具ICTCLAS2013 Java版本乱码的问题
- 使用ICTCLAS JAVA版(ictclas4j)进行中文分词
- 没有Rails Java程序员如何使用Ruby
- ictclas分词系统的使用,java调用,附带连接mysql进行读写。
- 利用RJB在Ruby on Rails中使用Java代码的教程
- 10分钟开始使用ICTCLAS Java版