NLTK使用自定义数据命名实体识别

use*_*248 47 python nlp named-entity-recognition nltk

我正在尝试使用NLTK从我的文本中提取命名实体.我发现NLTK NER对我的目的不是很准确,我想添加一些我自己的标签.我一直在努力寻找培养自己的NER的方法,但我似乎无法找到合适的资源.我有几个关于NLTK的问题 -

  1. 我可以使用自己的数据来训练NLTK中的命名实体识别器吗?
  2. 如果我可以使用自己的数据进行训练,那么named_entity.py文件是否需要修改?
  3. 输入文件格式是否必须在IOB中.Eric NNP B-PERSON?
  4. 有没有任何资源 - 除了nltk cookbook和我可以使用的python nlp?

我真的很感谢这方面的帮助

jjd*_*ubs 24

你是否致力于使用NLTK/Python?我遇到了和你一样的问题,并且使用斯坦福的命名实体识别器得到了更好的结果:http://nlp.stanford.edu/software/CRF-NER.shtml.FAQ中使用您自己的数据训练分类器的过程非常详细.

如果您确实需要使用NLTK,我会点击邮件列表以获取其他用户的一些建议:http://groups.google.com/group/nltk-users.

希望这可以帮助!

  • 斯坦福NER已被纳入NLTK 2.0.阅读更多 - http://www.nltk.org/api/nltk.tag.html#module-nltk.tag.stanford (7认同)
  • 我遇到了同样的问题并分享了对我有用的东西.对不起,如果那让你心烦意乱:( (6认同)
  • 大家好,我在这里编写脚本来下载并准备所有需要让Python,NLTK和Stanford NER一起工作 - https://gist.github.com/troyane/c9355a3103ea08679baf (3认同)

Roh*_*ute 14

您可以轻松地使用Stanford 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())   
Run Code Online (Sandbox Code Playgroud)

要训​​练您自己的数据并创建模型,您可以参考斯坦福NER常见问题解答的第一个问题.

链接是http://nlp.stanford.edu/software/crf-faq.shtml