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

时间:2010-11-20 23:39:13

标签: java stanford-nlp named-entity-recognition

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

5 个答案:

答案 0 :(得分: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')

答案 1 :(得分:4)

我担心没有一种简单的方法可以获得我们分发的训练模型,以便在运行时忽略案例信息。所以,是的,他们通常只标记大写的名字。有可能训练一个无情的模型,这个模型可以合理地工作(但在封套文本上却不是很好,因为案例是英语的一个大线索(但不是德语,中文,阿拉伯语等)。

答案 2 :(得分:2)

与其他人的建议一起。如果您正在使用基于特征的分类器,我肯定会在人们的名字中添加100-200个最常见的3-4个字母子串,或者在一个公认的特征下制作一个gazzeteer。某些模式必然会出现在个人名称中,而这些模式在其他类型的单词中并不常见,例如“eli”。

答案 3 :(得分:1)

我认为推特对这个应用来说非常困难。大写字母是一个很大的线索,正如你所说,在Twitter上经常丢失。删除有效英语单词的字典检查用途有限,因为Twitter文本包含大量缩写,而且它们通常是唯一的。

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

答案 4 :(得分:1)

问题有点陈旧,但其他人可能会从这个想法中受益。

可能训练小写分类器的一种方法是运行已经具有适当英语的大型数据集的大写分类器,然后处理该标记文本以移除大小写。然后你有一个标记的语料库,你可以用它来训练一个新的分类器。由于推文的特殊性,这种新的分类器不会完美地反对Twitter,但它是一种快速的引导方式。