我正在做手动标记来训练我自己的NER 我是否必须在我准备进行命名实体识别的句子中包含未标记的文本?
<START:person> Olivier Grisel <END> is working on the <START:software> Stanbol <END> project .
或者我可以省略这样没有标记的部分吗?
<START:person> Olivier Grisel <END>
<START:software> Stanbol <END>
PS: 感谢所有的好答案。我尝试省略未标记的部分,在这种情况下,OpenNLP将每一行标记为实体,因此它不起作用。正如答案所解释的那样,未标记的部分是必要的。
答案 0 :(得分:3)
如果您正在进行手动标记以训练您自己的NER模型(您的问题并非100%明确),您应该包含您希望稍后标记的相同类型的数据,最有可能是完整的句子。默认模型功能(请参阅OpenNLP docs)在当前正在考虑的令牌的左侧和右侧包含一个令牌窗口,因此您希望标记的实体显示在其正常上下文中。您还希望您的模型了解哪些单词不应被标记为实体,因此它们还需要显示在训练数据的上下文中。
请参阅相关问题:Open NLP Name Finder Training
答案 1 :(得分:2)
这取决于您打算如何使用语料库。如果省略未标记的部分,则会错过文档中实体的位置。
在经典命名实体识别中,您还需要实体的确切位置。在您的系统中,您可能会有一些规则,词典,统计标记,并且您将遍历文本中的每个标记,检查它是否是命名实体(NE识别)的一部分以及它是什么类型(NE分类)。
如果您不知道实体出现在手动注释的语料库中的哪个位置,则不清楚如何使用它。如果您需要语料库只是比较实体列表(由您的系统创建并存在于语料库中),那么您可能没有位置,但您将无法检查实体出现的位置。
例如,如果您有一份文件:
“我知道巴拉克奥巴马是总统,但米歇尔奥巴马是谁? 巴拉克奥巴马绝对是总统。“
你的系统一旦获得“巴拉克奥巴马”而你的语料库有“巴拉克奥巴马”x2,你不知道你得到了哪一个。此外,你可以将奥巴马视为一个命名实体。
简而言之,我不会这样做:)