2012-07-04 2 views
35

NLTK를 사용하여 텍스트에서 명명 된 엔터티를 추출하려고합니다. 나는 NLTK NER이 나의 목적을 위해 매우 정확하지 않고 내 자신의 태그를 더 추가하기를 원한다. 나는 내 자신의 NER을 훈련 할 길을 찾고자했지만 올바른 자원을 찾을 수없는 것 같습니다. 나는 NLTK-NLTK 사용자 지정 데이터로 명명 된 엔터티 인식

  1. 내가 NLTK의 개체 명 인식기를 양성하는 내 자신의 데이터를 사용할 수에 대한 몇 가지 질문을 ?
  2. 내 데이터를 사용하여 훈련 할 수 있다면 named_entity.py 파일을 수정할 수 있습니까?
  3. 입력 파일 형식이 IOB에 있어야합니까? 에릭 NNP B-PERSON?
  4. nltk 요리 책과 nlp와 함께 사용할 수있는 파이썬이 있습니까?

정말

답변

18

당신이 NLTK/Python을 사용하기 위해 최선을 다하고 있습니다이 점에서 도움을 주셔서 감사합니다 것? 나는 당신과 같은 문제를 겪었고, 스탠포드의 명명 된 엔티티 인식기 인 http://nlp.stanford.edu/software/CRF-NER.shtml을 사용하면 더 나은 결과를 얻을 수있었습니다. 자신의 데이터를 사용하여 분류자를 학습하는 과정은 FAQ에서 잘 설명되어 있습니다.

정말 NLTK를 사용해야하는 경우 다른 사용자의 조언을 위해 메일 링리스트를 누르십시오 : http://groups.google.com/group/nltk-users.

희망이 도움이됩니다.

+1

SNER 사이트를 살펴보면 파이썬 인터페이스 (https://github.com/dat/pyner)도 있습니다. 얼마나 성숙했는지는 모르지만 도움이 될 수 있습니다. – senderle

+0

이 질문은 nltk라는 엔티티 인식을 개선하기위한 검색에서 많이 나오지만 'lol use something else'는 유익하지 않습니다. – blueblank

+5

나는 똑같은 문제가 있었고 나를 위해 일한 것을 공유했다. 죄송합니다, 당신을 괴롭 히면 : ( – jjdubs

10

nltk와 함께 Stanford NER를 쉽게 사용할 수 있습니다.

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- 태그 토큰)으로 교육 데이터를 가져와 교육 스크립트를 실행해야합니다. 자세한 정보는 내 저장소를 확인하십시오.

관련 문제