2015-12-23 3 views
1

Я хочу использовать библиотеку pyNER, чтобы извлечь имена из предложения.Библиотека Python PyNER не дает никакого вывода

Я установил ner на мою машину ubuntu, тогда я написал следующий скрипт для теста.

>>> import ner 
>>> tagger = ner.HttpNER(host='localhost', port=80) 
>>> tagger.json_entities("Alice went to the Museum of Natural History.") 

Обычно я должен получить этот результат:

'{"ORGANIZATION": ["Museum of Natural History"], "PERSON": ["Alice"]}' 

Но я ничего не получаю:

{} 

Как я могу решить эту проблему?

Спасибо,

ответ

1

Похоже, есть проблема (https://github.com/dat/pyner/issues/2)

Чтобы получить его работу, вы должны указать формат вывода (slashTags):

tagger = ner.SocketNER(host='localhost',port=80, output_format='slashTags') 

Кроме того, я бы рассмотрите возможность использования другого порта, кроме 80, поскольку он обычно зарезервирован для веб-трафика.

Кроме того, если это не работает, используйте SocketNER вместо HttpNER и следуйте инструкциям на FAQ NER в

http://nlp.stanford.edu/software/crf-faq.shtml#cc

cp stanford-ner.jar stanford-ner-with-classifier.jar 
jar -uf stanford-ner-with-classifier.jar classifiers/english.all.3class.distsim.crf.ser.gz 
java -mx500m -cp stanford-ner-with-classifier.jar edu.stanford.nlp.ie.NERServer -port 9191 -loadClassifier classifiers/english.all.3class.distsim.crf.ser.gz & 

И тогда в вашем питона скрипт

import ner 
tagger = ner.SocketNER(host='localhost',port=9191, output_format='slashTags') 
print tagger.get_entities("University of California is located in California, United States") 
+0

Я также сталкиваюсь с той же проблемой. Поэтому я выполнил каждый шаг. После последнего шага я получил сообщение об ошибке «Errno 107». Конечная точка транспортного средства не подключена. –