2010-06-30 206 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

相關問題