我最近开始研究斯坦福NLP (使用C#端口)。我已经计划使用NER来识别商店位置名称和产品名称-要做到这一点,我需要训练标签者,我正在这样做。
然而,一些位置,例如“国王十字”,只有当两个令牌在一起时才真正被认为是一个位置。也就是说,当“国王”在句子中单独使用时,我不希望它被标记为位置。
所以我真正的问题是:有没有一种明确的方式来建议我处理其中有空格的位置/名称(在我的训练文件中和代码中)?
谢谢你的帮助。
发布于 2017-08-23 09:01:13
您的两个选择是训练统计标记算法并希望它做正确的事情,或者使用regexner注释器并为其提供已知命名实体的列表。例如,在您的已知命名实体列表中,您可以包含一个Kings Cross条目,只有当它看到完整的短语Kings Cross时,它才会起作用。
此处提供了有关regexner的更多文档:
发布于 2017-08-23 13:11:54
在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附加到该条目。
https://stackoverflow.com/questions/45819945
复制相似问题