【问题标题】:Creating training data into a TRAIN.spacy file from manually tagged data with custom entity labels从带有自定义实体标签的手动标记数据中将训练数据创建到 TRAIN.spacy 文件中
【发布时间】:2021-12-30 10:26:10
【问题描述】:

我正在使用 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)]})]

有没有更快的方法将我的数据转换成这个?我目前计划实施的方法是手动遍历单词和实体并获取开始和结束索引。不过,我真的很感激有更好的方法来做到这一点。谢谢!

【问题讨论】:

    标签: python nlp spacy-3


    【解决方案1】:

    看起来将您的数据放入 IOB/NER 格式应该很简单,spaCy 可以直接转换。见here,格式有点像这样:

    Foreign   O
    broking   O
    houses    O
    

    因为 spacy 要求训练标签采用这种格式

    这是不正确的 - 该格式通常用于演示目的,但在 v3 中,唯一的要求是将训练数据保存为带注释的 Doc 对象。

    【讨论】:

    • 嗨!非常感谢!我正在使用 BILOU 方案进行标记,并浏览了文档和示例。我现在明白我可以使用 convert 命令并生成训练文件。但是,我将数据以 BILOU 标记格式存储在多个 csv 中。我可以继续运行命令并写入相同的输出 train.spacy 文件吗?
    • 您可以将目录传递给转换命令,它将处理目录中的所有文件。
    • 这样就解决了。非常感谢!
    猜你喜欢
    • 2012-09-25
    • 2019-06-20
    • 2020-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-24
    • 2018-09-21
    • 1970-01-01
    相关资源
    最近更新 更多