【问题标题】:Methods for creating training data for SpaCy models?为 SpaCy 模型创建训练数据的方法?
【发布时间】:2017-10-19 09:16:52
【问题描述】:

我最近开始使用 SpaCy 进行 NLP 之旅,我有大约 5,500 个字符串要标记。对于前 100 个,我使用带有自定义列的电子表格来执行此操作,然后通过脚本运行该电子表格以生成 Python 字典。在工作表中,我存储了字符串、标签类型、标签值。然后脚本从字符串中计算出标签值的位置。

以这种方式生成训练数据相当耗时,而且容易出错。

是否有任何工具可以帮助解决这个问题?我实际上只需要能够突出显示子字符串,然后选择标签类型。我可以自己构建它,但我觉得它可能已经存在。

【问题讨论】:

    标签: nlp training-data spacy


    【解决方案1】:

    我是 spaCy 的维护者之一,我们实际上一直在思考这个问题!因此,我们构建了Prodigy,这是一个与 spaCy 集成的注释工具,可将模型置于循环中,以帮助您更快地训练和评估模型。它目前处于测试阶段,但您可以注册免费邀请。 Prodigy 对其他注释工具的单击-拖动-突出显示-选择概念采用了稍微不同的方法。它使用循环中的模型来建议具有最相关梯度的注释以进行训练,并且只要求您提供一个简单的二元反馈:接受或拒绝。这使您可以快速浏览示例。正如您所注释的那样,循环中的模型会更新,其预测将影响 Prodigy 下一步的要求。

    如果您希望改进 spaCy 模型中存在的现有实体类型,或者如果您正在处理要用于注释的大型示例文本语料库,则此方法尤其适用。

    如果您正在寻找一种更专门用于突出显示和注释文本范围的工具,您还应该查看Brat。我不是 100% 确定输出是什么样的,但你绝对应该能够将其转换为 spaCy 的训练格式。还有一个trainable version of the displaCy ENT visualizer,由社区人士开发。

    【讨论】:

    • 嗨,Ines,感谢您的回复。实际上我昨天注册了测试版,只是在等待被接受。
    • 啊酷!我们一直在小批量发送邀请,以确保我们能够快速修复错误。如果您愿意,可以给我发一封电子邮件,以便我知道您是谁,并确保我们将您添加到下一批邀请中:)
    • 太棒了,已发送电子邮件。谢谢!
    【解决方案2】:

    Spacy 还有PhraseMatcher,可用于编码匹配的令牌。请注意,它返回标记的位置。您仍然需要将其转换为开始和结束索引,以使其与训练格式兼容。我也提到了this

    【讨论】:

      【解决方案3】:

      您可以使用任何文档数据库(如 Mongo DB)将话语和标签保存在 JSON 结构中,而不是使用 Excel 表。 像

       { "text": "who is John", "entities" : [ { "type": "PER" "startPos" :7 "endPos" :11 } ] }

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-10-23
        • 2022-01-21
        • 2021-07-30
        • 2019-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多