2015-02-17 2 views
1

Я использую интерфейс python Stanford Named Entity Recognizer (NER). Код можно найти на Pyner CodePyner пустой словарь

import ner 


if __name__ == "__main__": 
    tagger = ner.HttpNER(host='localhost', port=8080) 
    print tagger.get_entities("University of California is located in California, United States") 
    print tagger.json_entities("Alice went to the Museum of Natural History.") 

Воображаемых выходов:

{'LOCATION': ['California', 'United States'], 'ORGANIZATION': ['University of California']} 

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

Проблема: Я получаю пустые наборы почему?


Я попытался следующие solution-StackoverFlow, но это не сработало, я получил следующее исключение:

Exception in thread "main" java.net.BindException: Address already in use 
     at java.net.PlainSocketImpl.socketBind(Native Method) 
     at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376) 
     at java.net.ServerSocket.bind(ServerSocket.java:376) 
     at java.net.ServerSocket.<init>(ServerSocket.java:237) 
     at java.net.ServerSocket.<init>(ServerSocket.java:128) 
     at edu.stanford.nlp.ie.NERServer.<init>(NERServer.java:71) 
     at edu.stanford.nlp.ie.NERServer.main(NERServer.java:331) 

ответ

2

первого запуска Стэнфорд-нер сервер в режиме сокета с помощью:

ява -mx256m -cp stanford-ner.jar edu.stanford.nlp.ie.NERServer \ -loadClassifier классификаторы/english.muc.7class.distsim.crf.ser.gz \ -порт 8081 -outputFormat inlineXML.

Сохраните код в пакетном файле Windows и запустите его в командной строке.

Существует проблема с портом 8080. Вот почему я изменил порт на 8081. После того как сервер получает запуск введите питон code-

>>>import ner 
>>>tagger = ner.SocketNER(host='localhost', port=8081) 
>>>tagger.get_entities("University of California is located in California, United States") 
Смежные вопросы