斯坦福NER工具包 - 小写实体识别

Anu*_*Anu 5 java named-entity-recognition stanford-nlp

我是NLP的新手,并试图找出命名实体识别器如何注释命名实体.我正在试验斯坦福NER工具包.当我在标准的更正式的数据集上使用NER时,其中遵循所有命名约定来表示命名实体,例如在新闻专线或新闻博客中,NER正确地注释实体.但是,当我使用非正式数据集(例如twitter)运行NER时,命名实体可能没有按原样大写,NER不会对实体进行注释.我使用的分类器是3-CRF序列化分类器.任何人都可以告诉我如何让NER识别小写实体?关于如何破解NER以及在何处进行改进的任何有用建议都非常感谢.在此先感谢您的帮助.

Chr*_*ing 5

恐怕没有一种简单的方法可以让我们分发的训练模型在运行时忽略案例信息。所以,是的,他们通常只会标记大写的名字。有可能训练一个无大小写的模型,它可以合理地工作(但在大小写文本上效果不佳,因为案例是英语中的一个重要线索(但不是德语、中文、阿拉伯语等)。

  • 修订后的答案:我们现在正在为我们的几个工具分发无因模型,这些模型在无大小写的文本上运行得更好。(虽然不如在 cased 文本上运行 cased 模型,因为大写确实提供了有用的英语信息!)您可以从这里单独下载它们:http://nlp.stanford.edu/software/CRF-NER.shtml。 (3认同)

小智 5

我知道这是一个老线程,但希望它会帮助某人.正如克里斯托弗·曼宁回答的那样,检测到小写的方法是将english.muc.7class.distsim.crf.ser.gz替换为english.muc.7class.caseless.distsim.crf.ser.gz,当你获得时解压缩核心nlp无壳jar文件.

例如,在我的python文件中,我保持一切相同,除了更改为新文件,它完美地工作(好吧,大部分时间)

st = NERTagger('/Users/username/stanford-corenlp-python/stanford-ner-2014-10-26/classifiers/english.muc.7class.caseless.distsim.crf.ser.gz', '/Users/username/stanford-corenlp-python/stanford-ner-2014-10-26/stanford-ner.jar')
Run Code Online (Sandbox Code Playgroud)


win*_*aed 1

我认为 Twitter 对于这个应用程序来说将会非常困难。大写字母是一个重要线索,正如你所说,Twitter 上经常缺少它。通过字典检查来删除有效的英语单词的作用有限,因为 Twitter 文本包含大量缩写,而且它们通常是唯一的。

也许词性标记和频率分析都可以用来帮助改进专有名词的检测?

  • 感谢您的答复。我打算做的是,使用包含大写和小写字母实体的新功能集来生成斯坦福 NLP 序列化器,然后使用斯坦福 NER 对其进行注释。它应该像我相信的那样工作,但不知何故,在我让所有东西工作并获得序列化器并在其上运行 stanford NER 后,它将所有实体命名为 PERSON,尽管我在训练数据中只有一个注释为 PERS 的实体。 (2认同)