我正在尝试在jRuby中实现来自Stanford NLP Parser的一组java类
我可以用jRuby实现常规的Java,但不能实现斯坦福的解析器类
#my requires/imports/includes, included multiple versions to be safe
require 'java'
include Java
require 'c:\\stanford-parser\\stanfordparser.jar'
require 'C:\\Stanford-Parser\\Current\\stanford-parser.jar'
require 'c:\\sun\\stanfordparser'
require 'rubygems'
include_class 'edu.stanford.nlp.parser.lexparser.LexicalizedParser'
#try to create an object of the java class i am importing, LexicalizedParser
lp = edu.stanford.nlp.parser.lexparser.LexicalizedParser
#the line above is what causes the error
#check if regular Java is working
list = java.util.ArrayList.new
a = "1"
b = "2"
list.add(a)
list.add(b)
d = list[0]
puts d # all of this works我得到了这个错误
~\rubyjavatest\lib\main.rb:15: undefined local variable or method `edu' for main:Object (NameError)(~表示我剪掉了整个路径以缩短此路径)
另外,如果我尝试这样做:
lp = java::edu::stanford::nlp.parser::lexparser::LexicalizedParser我得到了这个错误
~\rubyjavatest\lib\main.rb:15: cannot load Java class java.edu.stanford.nlp.parser.lexparser.LexicalizedParser (NameError)任何帮助都是最好的!
发布于 2010-07-02 04:15:43
试试这个:lp = LexicalizedParser.new
您需要像处理ArrrayList一样调用new。此外,在调用include_class之后,您不应该需要列出完全限定的类名。
我不熟悉斯坦福的NLP解析器,所以我假设它会工作。可能需要将额外的参数传递给构造函数。
https://stackoverflow.com/questions/3161312
复制相似问题