【问题标题】:Incorrect entity being returned by EntityLinker SpacyEntityLinker Spacy 返回的实体不正确
【发布时间】:2021-12-21 07:34:59
【问题描述】:

我一直在用 Spacy 训练一个实体链接器,它有 6,000 个来自 Wikidata 的实体。

训练数据包含 30,000 个句子。

我正在关注 Spacy https://github.com/explosion/projects/blob/v3/tutorials/nel_emerson/notebooks/notebook_video.ipynb提供的笔记本

训练进行得很好,准确度看起来也不错,直到我在一个明显不正确的字符串上测试模型。这样的“barack obama 是一位法国出生的花店,住在西班牙,有 36 只猫和两只仓鼠”,但模型预测此字符串中的人为https://www.wikidata.org/wiki/Q76

我尝试在配置中添加其他参数,例如n_sents

entity_linker = nlp.add_pipe("entity_linker", config={"incl_prior": False, "n_sents": 6}, last=True)

有没有办法改善这种情况?最好返回 NIL 而不是错误的答案。或者有没有可以输出的置信度分数?

【问题讨论】:

    标签: spacy entity-linking


    【解决方案1】:

    实体链接器的工作方式是,考虑到一个实体的所有潜在候选者,它会选择最有可能的一个。

    您遇到的问题是模特不认识您的花店,因此他不是候选人。因为模型只知道巴拉克奥巴马是美国前总统,所以模型可以肯定地说“巴拉克奥巴马”必须指的是总统。

    该模型没有机制来判断引用是否引用了不在知识库中的实体。它也永远不会弃权,如果有候选人,它会选择一个。 “NIL”不是弃权,它是用于当参考文献在知识库中没有条目时,所以没有什么可供选择的。

    如果您查看以“Emerson”为例的example project,这可能会更清楚。该模型不会决定“艾默生”是否是它认识的人——它假设它一定是它认识的人之一,并且它必须选择最有可能的人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-29
      • 1970-01-01
      • 2022-09-27
      相关资源
      最近更新 更多