首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以在spaCy中的实体链接候选生成中使用NER-Label?

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

Stack Overflow用户
提问于 2020-10-09 18:41:46
回答 2查看 355关注 0票数 1

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

在知识库( KB )中设置别名,知识库返回识别出的实体出现的候选,例如"Paris“的候选可以是维基数据条目Q47899 (巴黎希尔顿)、Q7137357 (巴黎西门)、Q5214166 (丹·巴黎)、Q90 (法国首都巴黎)或Q830149 (巴黎,美国得克萨斯州拉马尔县首府)。

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

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

EN

回答 2

Stack Overflow用户

发布于 2020-10-12 16:40:50

这目前还没有在spaCy中实现。一般来说,以下是获得所需功能所需的步骤:

  • 在您的知识库实体(维基数据标识符)和您的NER标签之间创建某种映射。这将不会是微不足道的。您需要解析wikidata“实例”元信息,或者使用Wikipedia分类系统。无论哪种方式,您最终都需要以一种自动的方式来定义Q830149 is-a "LOCATION"等。
  • 为每个实体存储"NER标签“。这可以在知识库中完成,但是然后Cython结构需要对候选生成进行提及(当前是KB:get_candidates方法的一部分),以采用文本提及+其NER标签,并且只输出该特定标签的相关候选标签。

我想指出的一个警告是,这种方法可能会放大NER步骤中的错误。想象一下,你正在谈论首都巴黎,但你的NER弄错了,并将其标记为“人”。使用这里描述的方法,NEL将无法从中恢复,并将输出它所能找到的最有可能的人,尽管这些人都不正确。

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

票数 1
EN

Stack Overflow用户

发布于 2020-10-13 18:13:36

我自己也有个想法。我猜有可能有两个管道,并为每个实体类型训练一个单独的NER模型。然后在每个管道中有一个单独的KB和EL-model。然后组合管道的结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64278426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档