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()