斯坦福NLP - NER - 使用具有多个令牌的名称训练NER

时间:2017-08-22 14:08:24

标签: c# nlp stanford-nlp

我最近开始看看Stanford NLP(使用C#端口)。 我已经计划使用NER来识别商店位置名称和产品名称 - 为此我需要训练标签,我正在做的过程中。

但是,某些位置,例如“Kings Cross”,只有当两个令牌在一起时才应被视为一个位置。即我不希望“国王”在一个句子中单独使用时被标记为一个位置。

所以我的问题是:是否有一种定义的方式建议我处理其中有空格的位置/名称(在我的训练文件和代码中)?

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您的两个选项是训练统计标记算法并希望它做正确的事情,或者使用regexner注释器并为其提供已知命名实体的列表。例如,在您已知的命名实体列表中,您可以包含Kings Cross的条目,只有在看到完整的短语Kings Cross时才会有效。

此处提供了regexner的更多文档:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment

答案 1 :(得分:1)

在NER中处理此问题的标准方法是使用IOB标记or some variation。使用IOB的标签可能如下所示:

I        O
went     O
to       O
Kings    B-PLACE
Cross    I-PLACE

O表示“无标签”,B-XXX表示“XXX的开头”,I-XXX表示“在XXX中”。

标记系统将以B开始学习多字标记,有时会继续使用I标记;这只是另一个标签转换。要从标记器输出中收集多字标记,您只需浏览,为任何B创建条目,然后将I附加到其中。