2015-01-15 3 views
1

Этот вопрос был отвечен несколько раз (What does "Could not find or load main class" mean? и https://stackoverflow.com/a/16208709/2771315), но почему-то никто из общих методов не работает.Stanford-NLP: Не удалось найти ошибку основного класса.

Что я сделал до сих пор.

1) перемещаться в каталог, содержащий исходные файлы CoreNLP в терминале: ~/Downloads/CoreNLP-master/src

2) Выбрать один из пакетов в качестве тестового примера, например, выполнив команду java -cp "*" -mx5g edu.stanford.nlp.sentiment.SentimentPipeline -file foo.txt (согласно документации, http://nlp.stanford.edu/sentiment/code.html)

Я пробовал вариации выше, изменяя условия -cp и классам установить его с помощью set CLASSPATH = $CLASSPATH=~/Downloads/CoreNLP-master/src, но не могу показаться, чтобы получить результат. Кто-нибудь знает, что я делаю неправильно? Если мне угрожать догадка, я думаю, что что-то не так с classpath, но я не уверен, что.

+0

Проблема в том, что вы используете более поздний выпуск, чем релиз 3.3.1, который поддерживается https://github.com/xissy/node-stanford-simple-nlp/issues/15. Текущая версия на веб-сайте Stanford составляет 3,6,0. – buley

ответ

0

Вы пытаетесь запустить программу вместо ее компиляции.

1

Путь к классам должен указывать на классы, а не на исходные файлы. Если вы используете версию GitHub коды, вы можете установить путь к классам быть:

-cp ~/Downloads/CoreNLP-master/classes:/path/to/corenlp/models.jar 

Вы можете найти самую последнюю версию модели CoreNLP по адресу: http://nlp.stanford.edu/software/stanford-corenlp-models-current.jar (предупреждение:> файл 200MB)

Если у вас есть один из corenlp релизов, вы должны установить путь к классам:

-cp /path/to/corenlp.jar:/path/to/corenlp/models.jar 

и corenlp банки и модель банка должна отображаться в архивном выпуске коды (например, от http://nlp.stanford.edu/software/corenlp.shtml)

+0

Привет, Габор, спасибо за ваш ответ. Когда я использую версию кода GitHub, '~/Downloads/CoreNLP-master/classes' кажется пустым. В результате я загрузил версию CoreNLP 3.5.0. Я пробовал следующее: «java -cp ~/Downloads/stanford-corenlp-full-2014-10-31/stanford-corenlp-3.5.0.jar: ~/Downloads/stanford-corenlp-full-2014-10 -31/stanford-corenlp-3.5.0-models.jar edu.stanford.nlp.sentiment.Evaluate edu/stanford/nlp/models/sentiment/sentiment.ser.gz test.txt', который является другим примером, представленным на http: //nlp.stanford.edu/sentiment/code.html. Правильна ли моя команда выше? – Black

+0

Эта команда выглядит правильно. Для версии кода Github вам сначала нужно скомпилировать проект с ant («$ ant»). Если у вас есть другие классы, которые не найдены, вам может потребоваться включить другие библиотеки, включенные в выпуск (см. Https://github.com/stanfordnlp/CoreNLP/tree/master/lib - xom, jodatime и jollyday. общие расходы). –

+0

Используя версию non-Github, я получаю исключение «NoClassDefFoundError» в 'org/ejml/simple/SimpleBase'. Просматривая 'org/ejml/simple /', я вижу, что существует класс SimpleBase. Я заменил 'ejml-0.23.jar' из репозитория библиотеки, который вы предложили, но безрезультатно. Вы знаете, почему это происходит? – Black

0

Это работало отлично для меня.

java -cp "../*" -mx1g edu.stanford.nlp.sentiment.SentimentPipeline -file test.txt 

Запустите эту команду, пока вы находитесь в каталоге классов.

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