首页 > 解决方案 > 如何为 spacy 的自定义命名实体识别准备数据?

问题描述

我正在尝试使用 spacy 为自定义命名实体识别准备一个训练数据集。我的数据有一个变量“Text”,其中包含一些句子,一个变量“Names”,其中包含来自前一个变量(句子)的人名。在浏览了一些示例和 spacy 的文档之后,我意识到在准备数据集时必须传递实体的索引。我想知道在准备数据集时是否有任何方法可以直接将实体作为字符串传递?

参考:“ https://medium.com/@manivannan_data/how-to-train-ner-with-custom-training-data-using-spacy-188e0e508c6

标签: python-3.xnlpspacynamed-entity-recognition

解决方案


不,spaCy 将需要您的实体字符串的确切开始和结束索引,因为字符串本身可能并不总是在源文本中唯一标识和解析。例子:

  • Apple通常是 ORG,但也可以是 PERSON。
  • Ann是一个人,但不在Annotation tools are best for this purpose.

在 python 中,您可以使用 re 模块来获取索引:

>>> import re
>>> [m.span() for m in re.finditer('Amazon', 'The Amazon is a river in South America.  Amazon Inc is a company.')]
[(4, 10), (41, 47)]

在创建 spaCy 训练集之前,您必须检查并验证索引。


推荐阅读