为SpaCy模型创建培训数据的方法?

时间:2017-10-19 09:16:52

标签: nlp training-data spacy

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

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

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

3 个答案:

答案 0 :(得分:6)

我是spaCy的维护者之一,我们实际上一直在考虑这个问题!因此,我们构建了Prodigy,这是一个与spaCy集成的注释工具,并将模型放入循环中,以帮助您更快地训练和评估模型。它目前处于测试阶段,但您可以注册免费邀请。 Prodigy对其他注释工具的click-drag-highlight-select概念略有不同。它使用循环中的模型来建议具有最相关梯度的注释用于训练,并且仅询问您简单的二进制反馈:接受或拒绝。这使您可以快速浏览示例。在您注释时,循环中的模型会更新,其预测将影响Prodigy接下来要求的内容。

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

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

答案 1 :(得分:2)

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

答案 2 :(得分:0)

您可以使用任何文档数据库(例如Mongo DB)来代替excel工作表,以将语音和标签保存在JSON结构中。 像

treatmentInstruction = new BehaviorSubject(this.myGlobalVar);
currentTreatmentInstruction = this.treatmentInstruction.asObservable();