我正在尋找在我的rails應用程序中添加一些文本分析,並且在過去的幾天中一直在尋找任何教程或提示以瞭解如何實現此工作。jruby中的斯坦福分析器入門
我對Java完全陌生,但沒有喜歡雙腳跳躍。
我懷疑下面的代碼不屬於我的控制器,應該可能在模型中,但我只是看到在這一點上我是否已將所有部分放在正確的位置。
我從這個SO問題借用了這段代碼,implementing custom java class in jruby,因爲我無法找到任何類型的示例代碼。
#my requires/imports/includes, included multiple versions to be safe require 'java' #include Java require '/media/sf_Ruby192/java_progs/parser/stanford-parser.jar' #require '/media/sf_Ruby192/java_progs/parser/' require 'rubygems' include_class 'edu.stanford.nlp.parser.lexparser.LexicalizedParser' class ParseController < ApplicationController def index lp = LexicalizedParser.new #check if regular Java is working list = java.util.ArrayList.new a = "1" b = "2" list.add(a) list.add(b) d = list[0] return render :text => list end end
不幸的是我,我得到的錯誤
java.lang.NullPointerException: null
當我包括
lp = LexicalizedParser.new
我該做的一切錯了嗎?當我註釋掉lp = ...時,我得到列表輸出,所以jruby正在工作,我可以在我的rails應用程序中編寫java並獲取輸出。
有人可以指出我正確的方向,也許告訴我這段代碼有什麼問題,但希望能讓我直接知道我應該如何使用jruby和rails。希望斯坦福大學分析家也能提供一些意見(我知道,這是很多要問的)。通過我找到的文檔或示例代碼的方式似乎很少。
感謝banzaiman,我已經通過了示例文檔,但我不得不承認,沒有代碼示例,我總是很難通過查看文檔來弄清楚。例如,在您鏈接到的lexparser頁面中,它包含多個LexicalizedParser()選項,其中沒有一個表示.new,並且列表中的第3個指定指向語法。我經常爲此苦苦掙扎,這就是爲什麼我更喜歡代碼示例來感受語言。但你得到了答案(請注意,這是你的代碼示例爲我解決了這個問題)。謝謝 – pedalpete