2013-03-30 120 views
14

我想在Python中使用pyner庫來使用Stanford NER。這是一個基本的代碼片段。如何使用斯坦福NER(命名實體識別器)的Python界面?

import ner 
tagger = ner.HttpNER(host='localhost', port=80) 
tagger.get_entities("University of California is located in California, United States") 

當我在我的本地python控制檯(IDLE)上運行這個。它應該給我這樣的輸出

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

但是當我執行這個,它顯示空的括號。我實際上對這一切都是新的。

+0

您使用什麼方法來運行stanford-ner服務器作爲http服務器?我可以成功運行它作爲套接字服務器,並使用pyner客戶端和tagger = ner.SocketNER(host ='localhost',port = 8080)並獲得您希望收到的答案。 –

+0

你可以發佈你的代碼嗎? ...我想在我的空閒控制檯上輸出NER的輸出@Ryan O'Neill –

回答

28

我能夠使用運行在插座模式斯坦福-NER服務器:

java -mx1000m -cp stanford-ner.jar edu.stanford.nlp.ie.NERServer \ 
    -loadClassifier classifiers/english.muc.7class.distsim.crf.ser.gz \ 
    -port 8080 -outputFormat inlineXML 

,並接收來自以下命令行輸出:

Loading classifier from 
/Users/roneill/stanford-ner-2012-11-11/classifiers/english.muc.7class.distsim.crf.ser.gz 
... done [1.7 sec]. 

然後在蟒蛇REPL:

Python 2.7.2 (default, Jun 20 2012, 16:23:33) 
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import ner 
>>> tagger = ner.SocketNER(host='localhost', port=8080) 
>>> tagger.get_entities("University of California is located in California, United States") 
{'ORGANIZATION': ['University of California'], 'LOCATION': ['California', 'United States']} 
+0

在這之前你下載了什麼? ...如何準確地啓動服務器?...截至目前,我已經下載了斯坦福命名實體識別器1.2.7版本? –

+1

我下載位於[斯坦福命名實體識別器(NER)](http://nlp.stanford.edu/software/CRF-NER.shtml)網站上的zip文件。一個說[下載斯坦福命名實體識別器版本1.2.7](http://nlp.stanford.edu/software/stanford-ner-2012-11-11.zip) –

+0

賓果...感謝的人...基本瞭解 –

相關問題