我想增量训练 NER Spacy 模型。
增量我的意思是发送第一批 N 个训练样本,获得第一个模型,然后发送第二批 M 个训练样本,并获得一个相同的模型,就像 N+M 个样本在一批中发送一样模型经过训练。
需要明确的是,这并不是在模型经过充分训练后添加样本。相反,它能够保存模型中的中间状态,以便我们可以“恢复”并添加更多训练样本。
如果样本数量很大或要创建“主动学习”系统,这非常有用。
根据this article,NLTK似乎是可行的:我想知道这是否可以用 Spacy 来完成。
到目前为止,我已经使用 nlp.update 通过 Spacy 训练了自己的自定义 NER 模型,但它似乎没有存储任何支持增量训练的中间状态。
最佳答案
是的,这在 spaCy 中是可能的。您使用 nlp.update
的方法是正确的;添加第二批训练样本后,您只需调用 nlp.to_disk("/path")
( https://spacy.io/usage/saving-loading )。然后您可以通过再次加载保存的模型来继续此过程。
关于spacy - 使用 Spacy 进行 NER 增量训练,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56144608/