NLTK CoreNLPDependencyParser: не удалось установить соединение

Я пытаюсь использовать Stanford Parser через NLTK, следуя приведенному здесь примеру.

Я следую первым двум строкам примера (с необходимым импортом)

from nltk.parse.corenlp import CoreNLPDependencyParser
dep_parser = CoreNLPDependencyParser(url='http://localhost:9000')
parse, = dep_parser.raw_parse('The quick brown fox jumps over the lazy dog.')

но я получаю сообщение об ошибке:

[...] Failed to establish a new connection: [Errno 61] Connection refused"

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

dep_parser = CoreNLPDependencyParser(url='http://localhost:9000')

К какому URL я должен подключаться, если не к этому? Если это правильно, в чем проблема?

1 ответ

Решение

Вам необходимо сначала загрузить и запустить сервер CoreNLP на localhost:9000,

1) загрузить CoreNLP по адресу https://stanfordnlp.github.io/CoreNLP/download.html
2) разархивируйте файлы в какой-либо каталог, затем выполните следующую команду в этом каталоге, чтобы запустить сервер

java -mx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 9000 -timeout 15000

Ссылка: https://stanfordnlp.github.io/CoreNLP/corenlp-server.html

Результат приведенного выше кода похож на

>>> print(parse.to_conll(4))
The DT  4   det
quick   JJ  4   amod
brown   JJ  4   amod
fox NN  5   nsubj
jumps   VBZ 0   ROOT
over    IN  9   case
the DT  9   det
lazy    JJ  9   amod
dog NN  5   nmod
.   .   5   punct

Вы также можете запустить сервер через NLTK API (необходимо настроить CORENLP_HOME сначала переменная окружения)

os.environ["CORENLP_HOME"] = "dir"
client = corenlp.CoreNLPClient()
# do something
client.stop()
Другие вопросы по тегам