【问题标题】:Problem adding custom entities to SpaCy's NER将自定义实体添加到 SpaCy 的 NER 时出现问题
【发布时间】:2020-04-28 17:45:58
【问题描述】:
  • 我使用https://spacy.io/usage/training#example-new-entity-type 向 en_core_web_lg 添加了一个名为“orgName”的新实体
  • 我所有的训练数据(26k 句)都标有“orgName”。
  • 为了处理灾难性的遗忘问题,我在这 26k 原始句子上运行 en_core_web_lg 并添加 ORG、PROD、FAC 等实体作为标签,而不是面对碰撞实体,我创建了重复项。 因此,对于一个标记为“orgName”的句子 A,我创建了一个重复的 A2,其中包含 ORG、PROD、FAC 等,最终得到大约 52k 个句子。
  • 我使用 100 次迭代进行了训练。

现在,问题是即使在训练句子上测试模型,它也没有显示 ORG、PROD、FAC 等,而只显示“orgName”。

你认为问题出在哪里?

【问题讨论】:

    标签: nlp spacy named-entity-recognition


    【解决方案1】:

    原则上,你试图解决灾难性遗忘问题的方式,通过重新训练它的旧预测,对我来说似乎是一个好方法。

    但是,如果您有相同句子的重复版本,但注释不同,并将其提供给 NER 分类器,您可能会混淆模型。原因是它不仅看正面例子,而且还明确地将未注释的单词视为负面案例。

    因此,如果您有“Bob 住在伦敦”,并且您只注释“London”,那么它会认为 Bob 肯定不是 NE。如果然后你有第二个句子你只注释 Bob,它将“忘记”伦敦是一个 NE,因为现在它没有被注释。所以一致性真的很重要。

    我建议实施更高级的算法来解决冲突。 一种选择是始终只采用最长Span 的注释实体。但如果跨度通常完全相同,您可能需要重新考虑您的标签方案。哪些实体最常发生碰撞?我会假设 ORG 和 OrgName?你真的需要ORG吗?也许两者可以“合并”为同一个实体?

    【讨论】:

      猜你喜欢
      • 2021-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-27
      • 1970-01-01
      • 2021-11-09
      • 1970-01-01
      相关资源
      最近更新 更多