微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以在spaCy中的实体链接候选生成中使用NER-Label?

如何解决是否可以在spaCy中的实体链接候选生成中使用NER-Label?

我想使用spaCy进行实体链接(EL)。我已经用我的特定领域语料库上的自定义标签训练了spaCy命名实体识别(NER)模型。但是,我下面的示例将使用常规实体标签PERSON和LOCATION。

在知识库(KB)中设置别名后,KB会返回已识别实体出现的候选对象,例如“巴黎”的候选人可以是Wikidata条目Q47899(巴黎希尔顿),Q7137357(巴黎Themmen),Q5214166(丹巴黎),Q90(法国首都巴黎)或Q830149(巴黎,得克萨斯州拉马尔县县城,美国)。

我的问题与公认的实体标签有关。如果NER将“巴黎”识别为PERSON,则从候选人中排除Q90(法国首都巴黎)和Q830149(巴黎,美国得克萨斯州拉马尔县县城),剩下3名候选人。如果“巴黎”被认为是LOCATION,那么只有另外两个候选人。

在检测到NER标签的情况下,是否可以通过某种方式建议KB或EL模型从哪一组实体中选择候选者?在训练EL模型之前还是之后?

解决方法

当前在spaCy中未实现。一般来说,这些是获得所需功能所需的步骤:

  • 在您的KB实体(Wikidata标识符)和NER标签之间创建某种映射。这不会完全无关紧要。您需要解析wikidata元信息的“实例”,或者使用存在陷阱的Wikipedia分类系统。无论哪种方式,您都需要以一种自动的方式来定义Q830149 is-a "LOCATION"等。
  • 存储每个实体的“ NER标签”。可以在KB中完成此操作,但随后需要编辑Cython结构。
  • 重新实现候选生成(当前为KB:get_candidates方法的一部分)以添加文字说明及其NER标签,并仅输出该特定标签的相关候选。

我要指出的一个警告是,这种方法可能会放大NER步骤中的错误。想象一下,您在谈论首都巴黎,但是您的NER弄错了,并将其标记为“ PERSON”。使用此处介绍的方法,NEL将无法从中恢复,并且将输出它可以找到的最有可能的人,尽管他们都不对。

另一种方法是不更改候选生成器,而是将NER标签作为entity_linker管道中评分机制的一部分。当前,它已经结合了两个分数:一个来自先验概率(使用来自大型训练语料库的统计数据),以及一个来自上下文(使用ML和句子相似度)。可以将匹配NER标签的方面包括在该分数中,然后即使其NER标签错误,也仍然有机会将“ PARIS”识别为正确的实体。但这取决于您要执行的严格程度。

,

我自己一个主意。我想可能会有2条管道并为每种实体类型训练一个单独的NER模型。然后在每个管道中分别使用KB和EL模型。然后合并管道的结果。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。