虚拟示例:
我希望NER能探测到地点,动物和运动团体
Matcher\PhraseMatcher\EntityRuler(哪个与此用例更相关?)可用于添加“简单”规则
比如:
地点:芝加哥,纽约
动物:公牛,鸡
团体:芝加哥公牛队
NER层应该能够了解芝加哥公牛队是一个群体,而不是一个地点和动物(就像单独使用一个火柴会给予)
位置+动物的其他组合是运动组,而不是位置-动物对(即使训练集中没有特定的组合)
TLDR:我不想按原样使用基于规则的提取实体,而是作为另一层的提示,该层将使用这些实体来改进实体提取
Tags:
正在从this issue复制我的答复:
是的,使用匹配模式来改进统计模型是非常有意义的,这实际上是我们在注释工具Prodigy中使用的一种方法,它使收集训练数据更容易。规则失效的模棱两可的例子(例如“多头”)确实很有趣,因为这些是你希望统计模型处理的。在
在实际实现方面,您仍然希望您的工作流有两个步骤:
你的模型不会只是在运行时快速更新,因为那不是那么有用——你通常需要一个专门的培训和评估步骤,这样你就可以使用一些机器学习技巧,同时确保你的模型确实在改进。在
另外,别忘了包括模型之前正确的实体——例如,如果你在“芝加哥公牛队”中的句子中也包含了一个人名,那么你也希望这个名字也包含在训练数据中。所以你的工作流程应该是这样的:
doc.ents
并获取现有的实体。在好的一点是,这大部分都可以通过Python脚本实现自动化。另请参见this docs section以获取示例。在
EntityRuler
基本上是一个更高级的组件,它使用Matcher
和{Doc
中查找匹配项,并自动将它们添加到doc.ents
。它还支持输入大模式文件,并在保存时用模型将其序列化。它还处理这样一个事实:根据定义,命名实体不能重叠,因为一个标记只能是一个实体的一部分。因此,如果你知道你要找的是实体,EntityRuler
可能会更方便,因为这意味着你将不得不自己编写更少的代码。在相关问题 更多 >
编程相关推荐