2012-07-04 48 views
35

我試圖從我的文本中使用NLTK提取命名實體。我發現NLTK NER對我的目的不太準確,我想添加一些我自己的標籤。我一直在試圖找到一種方法來訓練我自己的NER,但我似乎無法找到合適的資源。 我有一個關於NLTK-NLTK用自定義數據命名實體識別

  1. 我可以用我自己的數據來訓練命名實體識別在NLTK幾個問題嗎?
  2. 如果我可以使用我自己的數據進行訓練,那麼named_entity.py是要修改的文件嗎?
  3. 輸入文件格式是否必須在IOB中,例如。 Eric NNP B-PERSON?
  4. 是否有任何資源 - 除了nltk食譜和nlp與python,我可以使用?

我非常感謝幫助在此方面

回答

18

你致力於使用NLTK/Python的?我碰到了和你一樣的問題,並且使用斯坦福的命名實體識別器得到了更好的結果:http://nlp.stanford.edu/software/CRF-NER.shtml。常見問題解答中記錄了使用自己的數據對分類器進行培訓的過程。

如果你真的需要使用NLTK,我會打電話給其他用戶的建議:http://groups.google.com/group/nltk-users

希望這會有所幫助!

+1

通過瀏覽SNER網站,我看到甚至有一個python界面[在這裏](https://github.com/dat/pyner)。不知道它有多成熟,但它可能有幫助。 – senderle

+0

這個問題在改進nltk命名實體識別的搜索中出現了很多,但是說'大聲笑使用別的東西'並不是那種提供信息的。 – blueblank

+5

我遇到了同樣的問題,並分享了爲我工作的內容。對不起,如果你不高興你兄弟:( – jjdubs

10

您可以輕鬆使用斯坦福NER和nltk。 的Python腳本就像

from nltk.tag.stanford import NERTagger 
import os 
java_path = "/Java/jdk1.8.0_45/bin/java.exe" 
os.environ['JAVAHOME'] = java_path 
st = NERTagger('../ner-model.ser.gz','../stanford-ner.jar') 
tagging = st.tag(text.split()) 

要訓練自己的數據,並創建可以參考斯坦福NER常見問題解答第一個問題的典範。

的聯繫是http://nlp.stanford.edu/software/crf-faq.shtml

0

我也有這個問題,但我設法去解決它。 您可以使用自己的訓練數據。我在我的github repository中記錄了這方面的主要要求/步驟。

我用NLTK-trainer,所以基本上你必須以正確的格式(令牌NNP B-tag)得到訓練數據,然後運行訓練腳本。檢查我的存儲庫以獲取更多信息