我正在尝试在字符串上运行 CRFClassifier 以从字符串中提取实体。我从这里为斯坦福 NLP 实体识别器使用 Ruby 绑定:https ://github.com/tiendung/ruby-nlp
它在自己的类(nlp.rb)上运行良好。当我运行ruby nlp.rb
它工作正常。但是,我尝试在我的 rails 应用程序的一个控制器中创建此类的对象,但由于某种原因,我收到以下错误:
java.lang.NoClassDefFoundError: edu/stanford/nlp/ie/crf/CRFClassifier
这是可以自己正常工作但不在控制器内部的代码。
def initialize
Rjb::load('stanford-postagger.jar:stanford-ner.jar', ['-Xmx200m'])
crfclassifier = Rjb::import('edu.stanford.nlp.ie.crf.CRFClassifier')
maxentTagger = Rjb::import('edu.stanford.nlp.tagger.maxent.MaxentTagger')
maxentTagger.init("left3words-wsj-0-18.tagger")
sentence = Rjb::import('edu.stanford.nlp.ling.Sentence')
@classifier = crfclassifier.getClassifierNoExceptions("ner-eng-ie.crf-4-conll.ser.gz")
end
def get_entities(sentence)
sent = sentence
@classifier.testStringInlineXML( sent )
end
两种情况下的代码完全相同。任何人都知道这里发生了什么!?
提前致谢!