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

时间:2019-08-08 14:32:43

标签: python-3.x nlp spacy named-entity-recognition

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

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

1 个答案:

答案 0 :(得分:2)

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