使用 spaCy 命令行训练器管理训练/开发分割

W.P*_*ill 8 command-line-interface spacy train-test-split

我正在使用命令行工具训练 NER 模型python -m spacy train。我用来gold.docs_to_json将带注释的文档转换为JSON 可序列化格式

命令行训练工具同时使用训练集和开发集。我不确定命令行工具为我管理训练/开发拆分提供了多少帮助。

  1. 是否有命令行工具可以从一组数据创建训练/开发拆分?
  2. spaCy 训练命令会为我进行交叉验证,而不是让我创建开发集吗?
  3. 当需要根据所有数据训练生产模型时,我应该使用什么作为开发集?

我认为问题(1)和(2)的答案都是“否”,但我想仔细检查一下。

从实践来看,即使您正在训练生产模型进行固定次数的迭代,您也始终必须传递非空开发集。现在我只是传递了我的训练数据的副本,但看起来很奇怪,所以我想知道是否还缺少其他一些程序。

有关训练的 spaCy 文档主要讨论编写您自己的迭代循环。我已经做了足够多的工作,我确信如果我编写自己的代码,我可以完成上述任何工作,但对于这些基本的训练操作,我宁愿不编写代码,而只使用命令行工具来完成所有操作。