2010-06-30 2 views
1

Я пытаюсь реализовать драгоценный камень под названием stanfordparser, который можно найти здесь: http://stanfordparser.rubyforge.org/неинициализированным постоянны на классе из рубинового самоцвета

Это рубин обертка для Java естественного языка парсер

Я развивается в NetBeans используя ruby ​​on rails/jruby на машине Windows 7. В противном случае мое веб-приложение работает нормально, но когда я пытаюсь добавить оболочку синтаксического анализатора, он прерывается.

Вот код, который вызывает проблему:

gem 'stanfordparser' 

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

это в taskscontroller

и когда я иду к задачам/шоу (которое, если я удалить этот код работает отлично) Я получаю следующую ошибку

uninitialized constant TasksController::StanfordParser 

Я убедился, что драгоценный камень установлен в NetBeans

Я очень новичок в рубинах на рельсах и преподаю сам, так что это может быть что-то очевидное

Спасибо!

EDIT: Я проверил мои GlassFish журналов сервера и говорит

SEVERE: Missing these required gems: 
    stanfordparser 

что странно, потому что я установил камень с помощью NetBeans, я сделал грабли драгоценных камней: установить и говорит NetBeans камень установлен. Я проверил в папке gems netbeans и там установлен камень.

EDIT 2:

Таким образом, после того, как много исследований, и битье головой, я решил упростить вещи немного, просто пытается использовать JRuby реализовать классы Java, теперь мне нужно фигуры как импортировать классы java stanfordparser (их как минимум 50), я думаю, мне нужно сжать все классы в банку, чтобы jruby мог ее загрузить. может быть.

+0

Что делает 'отчет gems' грабли? (Установлен ли камень, заморожен или что-то еще?) –

+0

грабли драгоценных камней не имеет ничего, так что видимо не драгоценные камни не загружаются I = Установленная F = Frozen R = Framework (загружен до рельсов начинается) – Andrew

ответ

0

Я был в состоянии решить мою проблему следующим образом:

вместо использования stanfordparser рубиновой обертки (который реализует Java-рубиновый мост для подключения Java Стэнфордском парсера чистого рубина), я использую JRuby просто реализовать java от парсера stanford.

код, который в конечном итоге работает:

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, то оператор gem 'stanfordparser' должен быть указан в файле Bundler Gemfile в корне проекта. В противном случае для Rails 2.x вам понадобится оператор config.gem 'stanfordparser' в пределах config/environment.rb.

+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) и т. Д. И т. Д. (Он продолжал идти ING на некоторое время) Я смотрел на GlassFish лог сервера и говорит СИЛЬНЫМ: Missing этих необходимые драгоценных камней: stanfordparser IVE запустить грабли драгоценных камней: установить, и говорит, что NetBeans он установлен, так что я не знаю, что проблема в – Andrew

Смежные вопросы