使用spaCy进行其他命名实体识别需要多少培训数据?

时间:2018-08-31 17:46:41

标签: machine-learning nlp spacy ner

我正在使用spaCy模块查找输入文本的名称实体。我正在训练模型以预测医学术语。我目前可以使用200万个医学笔记,我编写了一个程序来对这些笔记进行注释。

我对照约9万个术语的预定义列表交叉引用了医学注释,该列表用于注释任务。以目前的注释速度,注释10,000个笔记大约需要一个半小时。目前注释的工作方式,最终我得到大约90%的注释没有注释(我正在努力获得更好的交叉引用术语列表),因此我采用了〜1000个带注释的注释并训练了模型在这些上。

我已经检查过了,模型响应了它所看到的已知带注释的术语(例如,术语tachycardia以前已经从注释中看到过,有时会在术语出现在文本)。

此背景可能与我的特定问题不太相关,但我认为我会为当前职位提供一些背景信息。

我想知道是否有人在spaCy中成功培训了一个新实体,能否使我对他们的个人经验有所了解,而这对于获得至少某种程度可靠的实体认可是必需的。

谢谢!

1 个答案:

答案 0 :(得分:1)

由于没有可用的数据,我从头开始培训希腊语的命名实体识别器,因此,我将向您简要介绍我在本案中发现的内容。

我使用Prodigy批注工具培训了NER。 根据我的亲身经历,对您问题的答案取决于以下几项:

  • 您希望识别器能够预测的标签数量。有道理的是,当标签(可能的输出)的数量增加时,神经网络就很难区分它们,因此所需的数据量也会增加。
  • 标签有何不同。例如,GPE和LOC标签非常接近,并且经常在同一上下文中使用,因此神经网络在开始时就使它们非常困惑。建议提供更多与彼此靠近的标签相关的数据。
  • 培训方式。这里几乎有两种可能性:
    • 完整注释的句子。这意味着您告诉神经网络注释中没有缺失的标签。
    • 部分注释的句子。这意味着您告诉神经网络注解是正确的,但是可能缺少一些标签。这使得网络更加难以依靠您的数据,因此,需要提供更多的数据。
  • 超参数。调整网络以从数据集中获取最大价值非常重要。
  • 数据集的质量。这意味着,如果数据集可以代表您要要求网络预测较少数据的事物,那么就可以了。但是,如果您要建立一个更通用的神经网络(可以在不同情况下正确回答),则需要更多数据。

对于希腊模型,我试图在6个足够明显的标签中进行预测,我提供了大约2000个完全带注释的句子,并且花费了大量时间进行微调。

结果:F测度为70%,对于完成任务的复杂性来说是相当不错的。

希望有帮助!