使用自定义实体标签从手动标记的数据中将训练数据创建到 TRAIN.spacy 文件中
Creating training data into a TRAIN.spacy file from manually tagged data with custom entity labels
我正在使用 spacy 构建自定义 NER 模型。我想使用我的训练数据创建 train.spacy 文件。我手动创建了一个 spacy.training.Example 对象列表,但我想使用配置文件使用 spacy v3 训练。
所以我有多个文本的单词及其相应标签形式的训练数据。例如:
words= ['Foreign' 'broking' 'houses' 'raised' 'the' 'target' 'price' 'of'
'Sun' 'Pharmaceutical' 'Industries,' 'Housing' 'Development' 'Finance'
'Corporation,' 'SAIL' 'India,' 'Cholamandalam' 'Investment,' 'Sun' 'TV'
'Network,' 'GAIL' 'India,' 'State' 'Bank' 'of' 'India' 'and' 'Eicher'
'Motors,' 'post' 'September' 'quarter' 'earnings' 'announcement:']
entity_labels= ['O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'B-ENTITY', 'I-ENTITY', 'L-ENTITY', 'B-ENTITY', 'I-ENTITY', 'I-ENTITY', 'L-ENTITY', 'B-ENTITY', 'L-ENTITY', 'B-ENTITY', 'L-ENTITY', 'B-ENTITY', 'I-ENTITY', 'L-ENTITY', 'B-ENTITY', 'L-ENTITY', 'B-ENTITY', 'I-ENTITY', 'I-ENTITY', 'L-ENTITY', 'O', 'B-ENTITY', 'L-ENTITY', 'O', 'O', 'O', 'O', 'O']
因为 spacy 要求训练标签采用这种格式
TRAIN_DATA=[(text,{"entities":[(start,end,label)]})]
有没有更快的方法将我的数据转换成这个?我目前计划实施的方法是手动遍历单词和实体并获取开始和结束索引。不过,我真的很感激有更好的方法来做到这一点。谢谢!
看起来将数据放入 IOB/NER 格式应该是微不足道的,spaCy 可以直接转换这种格式。看到here,格式有点像这样:
Foreign O
broking O
houses O
Since spacy requires training labels to be in this format
这是不正确的 - 该格式通常用于演示目的,但在 v3 中,唯一的要求是将训练数据保存为带注释的 Doc 对象。
我正在使用 spacy 构建自定义 NER 模型。我想使用我的训练数据创建 train.spacy 文件。我手动创建了一个 spacy.training.Example 对象列表,但我想使用配置文件使用 spacy v3 训练。 所以我有多个文本的单词及其相应标签形式的训练数据。例如:
words= ['Foreign' 'broking' 'houses' 'raised' 'the' 'target' 'price' 'of'
'Sun' 'Pharmaceutical' 'Industries,' 'Housing' 'Development' 'Finance'
'Corporation,' 'SAIL' 'India,' 'Cholamandalam' 'Investment,' 'Sun' 'TV'
'Network,' 'GAIL' 'India,' 'State' 'Bank' 'of' 'India' 'and' 'Eicher'
'Motors,' 'post' 'September' 'quarter' 'earnings' 'announcement:']
entity_labels= ['O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'B-ENTITY', 'I-ENTITY', 'L-ENTITY', 'B-ENTITY', 'I-ENTITY', 'I-ENTITY', 'L-ENTITY', 'B-ENTITY', 'L-ENTITY', 'B-ENTITY', 'L-ENTITY', 'B-ENTITY', 'I-ENTITY', 'L-ENTITY', 'B-ENTITY', 'L-ENTITY', 'B-ENTITY', 'I-ENTITY', 'I-ENTITY', 'L-ENTITY', 'O', 'B-ENTITY', 'L-ENTITY', 'O', 'O', 'O', 'O', 'O']
因为 spacy 要求训练标签采用这种格式
TRAIN_DATA=[(text,{"entities":[(start,end,label)]})]
有没有更快的方法将我的数据转换成这个?我目前计划实施的方法是手动遍历单词和实体并获取开始和结束索引。不过,我真的很感激有更好的方法来做到这一点。谢谢!
看起来将数据放入 IOB/NER 格式应该是微不足道的,spaCy 可以直接转换这种格式。看到here,格式有点像这样:
Foreign O
broking O
houses O
Since spacy requires training labels to be in this format
这是不正确的 - 该格式通常用于演示目的,但在 v3 中,唯一的要求是将训练数据保存为带注释的 Doc 对象。