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