2010-06-30 125 views
1

我想实现一个名为stanfordparser宝石可以在这里找到:http://stanfordparser.rubyforge.org/未初始化的常量

这是一个Java自然语言解析器

我在NetBeans开发红宝石包装在Windows 7机器上使用rails/jruby上的红宝石。我的网络应用程序工作正常否则,但是当我尝试添加解析器包装它打破。

这是导致问题的代码:

gem 'stanfordparser' 

def show 
parser = StanfordParser::LexicalizedParser.new 
@words = parser.apply("This is a sentence.") 
end 

这是在taskscontroller

,当我去的任务/显示(其中,如果我删除此代码,正常工作)我收到以下错误

uninitialized constant TasksController::StanfordParser 

我已经确定了创业板被安装在NetBeans

我对轨道上的红宝石非常陌生,并且自学,所以它可能是明显的东西

谢谢!

编辑:我检查了我的GlassFish服务器日志,它说

SEVERE: Missing these required gems: 
    stanfordparser 

,因为我已经安装使用NetBeans宝石这是不可思议的,我已经做了耙宝石:安装和NetBeans说创业板已安装。我检查了netbeans gems文件夹,并在那里安装了gem。

编辑2:

于是,经过大量的研究和撞头,我决定只是试图使用JRuby中实现Java类把事情简单化了一点,现在我需要图了解如何导入stanfordparser java类(至少有50个),我想我需要将所有类压缩到jar中,以便jruby能够加载它。也许。

+0

这是什么'耙gems'报告? (是宝石安装,冻结或其他?) – 2010-07-01 02:40:19

+0

耙宝石无关,所以显然没有宝石被装载 I =安装 F =冷冻 R =框架(导轨之前加载开始) – Andrew 2010-07-01 04:21:02

回答

0

我能解决我的问题的方式如下:

,而不是使用stanfordparser红宝石包装(它实现了Java红宝石桥连接的Java斯坦福解析器纯Ruby),我使用JRuby中只需实现来自斯坦福解析器的java。

该结束了工作代码:

include Java 
require 'C:\\Stanford-Parser\\Current\\stanford-parser.jar' 
require 'rubygems' 
include_class 'edu.stanford.nlp.parser.lexparser.LexicalizedParser' 

lp = LexicalizedParser.new(args) #args is the arguments, not copied here 
0

如果您使用Rails 3,则需要在项目根目录中的Bundler的Gemfile中指定gem 'stanfordparser'语句。否则,对于Rails 2.x,您需要在config/environment.rb内的config.gem 'stanfordparser'语句。

+0

感谢 我加入“stanfordparser”到配置/ environment.rb文件和我得到了以下错误 org.jruby.exceptions.MainExitException:中止 java.util.concurrent.FutureTask中$ Sync.innerGet(FutureTask.java:222) java.util.concurrent.FutureTask.get(FutureTask.java: 83) com.sun.grizzly.jruby.RackGrizzlyAdapter.service(RackGrizzlyAdapter.java:289) etc等(它一直在荷兰国际集团一会儿) 我看着GlassFish服务器日志,它说,重度:缺少这些必要的宝石: stanfordparser 香港专业教育学院运行耙宝石:安装和NetBeans说,它是安装,所以我不知道是什么问题是 – Andrew 2010-06-30 20:54:58

相关问题