space:每个句子只设置一个实体



我是spacy的新手,发现文档对于初学者来说相当复杂。我当前的项目要求我创建一个带有自定义实体的新模型,我在本文之后完成了这个任务。

现在,我正在处理的句子每个句子的每个类型只有一个或没有实体。
虚拟的例子:约翰(PERSON)是美国(NATIONALITY)句子中只有一个PERSON标签和一个NATIONALITY标签。

我遇到的问题是,当我将新句子传递给模型时,有时它会识别多个PERSON,即使总是有一个或没有。
虚拟的例子:约翰(PERSON)去麦当劳(PERSON)

问题是:有没有办法使模型在每个句子中每个类型只识别一个实体?
(在最后一个例子中,我认为模型会知道JohnMcDonald's更适合,并选择John作为唯一的PERSON)。

不,没有办法这样做。事先知道每句话只有一个特定实体是不典型的,所以NER通常不会考虑到这一点。

您可以使用spancat模型来获得分数并选择每种类型中得分最高的实体,但您必须从头开始训练它。此外,你的问题似乎与传统的NER足够接近,NER所做的假设应该有助于你的准确性。

我不认为您正在寻找的是开箱即用的空间。为了在每个句子中只保留一种类型的实体,您必须在spaCy提供的基础上实现一些东西。您将如何做到这一点也不清楚,因为基于转换的解析器NER没有为实体预测分配分数,以便您对这些预测进行排名以选择最佳预测。

根据你的用例,如果这些是简短的句子,并且你只需要每种类型的一个实体,那么选择第一个可能就足够了?

相关内容

最新更新