我正在尝试在一个简单的 ruby 脚本中使用stanfordparser
( gem install stanfordparser
),但是我遇到了一些问题。我确实必须先安装一些依赖项(rjb
& treebank
),但是我没有遇到我认为源于这个 gem 的时代的问题,也许它不支持 ruby 1.9。
我得到的错误是:
/Users/username/.rvm/gems/ruby-1.9.3-p362@all/gems/stanfordparser-2.2.0/lib/stanfordparser.rb:150:in 'gsub': can't convert Pathname into String (TypeError)
似乎我需要修改像这样调用的任何 gsub 实例?
def initialize(grammar = ENGLISH_PCFG_MODEL, options = [])
@grammar = Pathname.new(grammar.gsub(/\$\(ROOT\)/, ROOT))
super("edu.stanford.nlp.parser.lexparser.LexicalizedParser", @grammar.to_s)
@java_object.setOptionFlags(options)
end
根据评论中的要求,grammar
以 Nil 的形式出现,所以这绝对是一个问题,但我不知道如何解决这个问题。
如果您访问http://stanfordparser.rubyforge.org上的文档并尝试按照 irb 中的说明进行操作,您会得到以下结果:
>> require "stanfordparser"
=> true
>> preproc = StanfordParser::DocumentPreprocessor.new
NoClassDefFoundError: edu/stanford/nlp/process/DocumentPreprocessor
from /Users/username/.rvm/gems/ruby-1.9.3-p362@all/gems/stanfordparser-2.2.0/lib/java_object.rb:40:in `import'
from /Users/username/.rvm/gems/ruby-1.9.3-p362@all/gems/stanfordparser-2.2.0/lib/java_object.rb:40:in `initialize'
from /Users/username/.rvm/gems/ruby-1.9.3-p362@all/gems/stanfordparser-2.2.0/lib/stanfordparser.rb:240:in `initialize'
from (irb):2:in `new'
from (irb):2
from /Users/username/.rvm/rubies/ruby-1.9.3-p362/bin/irb:16:in `<main>'
有没有其他人有运气让这个工作?