2

我正在尝试在 spacy v3 中准备一个自定义 ner 模型。从训练的角度来看,v3 与 v2 相比发生了显着变化。

我正在使用 en_web_lg 的默认配置。我已经使用 convert 命令准备了训练数据(training.spacy)。但是,训练命令需要一个 dev.spacy 文件。

不确定 dev.spacy 中需要哪些数据。这是在询问 training.spacy 文件的纯文本语料库吗?但是有没有办法将纯文本文件转换为 spacy 格式..

来自 spacy 站点的命令 - python -m spacy train config.cfg --output ./output --paths.train ./train.spacy --paths.dev ./dev.spacy

有人可以帮助解释如何准备 dev.spacy。

4

2 回答 2

3

train.spacy 是“培训”文件集合的占位符 - 通常使用 Spacy 转换实用程序的文件目录。dev.spacy 是“验证”文件集合的占位符 - 与训练文件格式相同,但在训练期间用作验证样本(用于在每次训练迭代后计算预测、召回和 f 分数的 NER)。通常建议的验证样本“大小”在训练样本的 10% 到 20% 之间。我倾向于使用 20%,因为我的数据有很大的变化——但更大的验证样本会增加训练开销。

于 2021-04-14T14:24:46.273 回答
2

dev.spacy文件应与该文件完全相同train.spacy,但应包含训练过程以前从未见过的新示例,以便对模型的性能进行真实评估。

要创建这个开发集,您可以首先将原始数据拆分为训练/开发部分,然后convert在每个部分上单独运行,调用较大的部分train.spacy和较小的部分dev.spacy。正如@mbrunecky 建议的那样,80-20 的拆分通常很好,但这取决于数据集。

于 2021-04-15T15:52:26.913 回答