如何为spacy的自定义命名实体识别准备数据?

How to prepare data for spacy's custom named entity recognition?

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

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

不,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 训练集之前,您必须仔细检查并验证索引。