Spacy上如何提高非标准格式标签的命名实体识别准确率

3

我正在使用Spacy模型对我的数据集进行命名实体识别。但是在B-Address和I-ADDRESS的标记上表现不佳。原因是我的文档中存在不同类型的地址。有些以数字开头,有些以建筑物名称开头,有些以邮政信箱开头。您有什么办法可以提高地址标签的准确性吗?

1个回答

2
我能想到两种快速方法,你可以在尝试其他方法之前使用Spacy:
重新使用自定义示例对spacy NER进行训练:如果您有一些真实地址的几百个示例,可以手动标记它,然后重新训练spacy NER以过度拟合您特定的地址。您可以从头开始训练新的NER或微调现有的NER。我建议您开始微调“en_core_web_lg”NER。您可以按照官方文档中的说明进行操作。此外,也许这个答案对于另一个问题也会有所帮助。
固定规则方法:Spacy有一个名为EntityRuler的组件,它允许您在文本上进行基于规则的匹配。使用这个组件并使用类似于正则表达式的模式,您的模型管道可以识别例如您特定的地址。您可以在这里了解更多信息。
我希望这能对你有所帮助! 编辑 @polm23是正确的,EntityRuler不仅仅是正则表达式。我编辑了答案并添加了更多关于此组件的官方文档信息:

实体规则器让您可以使用基于标记的规则或精确短语匹配将跨度添加到Doc.ents中。它可以与统计实体识别器结合使用以提高准确性,也可以单独使用以实现纯基于规则的实体识别系统。有关用法示例,请参阅基于规则的实体识别的文档。


1
EntityRuler/Matchers不是正则表达式。它们支持一些基于正则表达式的匹配,但它们更加结构化,并且可以处理多字段对象。 - polm23
你是对的,我编辑了答案以反映你的评论。谢谢。 - Emiliano Viotti

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接