问题描述
如果您能帮助我了解一些有关Spacy的基本概念,那对我真的很有帮助。
我了解一些spacy模型具有一些预定义的静态向量,例如,对于西班牙模型,这些是FastText生成的向量。 我还了解到,有一个tok2vec层可以从标记生成矢量,例如,它用作模型NER组件的输入。
如果以上正确,那么我有一些问题:
- NER组件也使用静态向量吗?
- 如果是,那么tok2vec层在哪里起作用?
- 如果没有,那么如果您仅打算将模型用于lg或md模型,则有任何优势。 NER组件?
- tok2vec层是否已经针对预训练的下载模型进行了训练,例如西班牙语?
- 如果我替换了预训练模型的NER组件,它是否使tok2vec层保持不变,即是否具有学习的权重?
- 训练NER模型时,tok2vec层也被训练了吗?
- pretrain命令是否可以帮助tok2vec层学习一些可能是OOV的特定领域单词?
非常感谢!
解决方法
NER组件也使用静态向量吗?
我的回答者here的第2点和第3点解决了这个问题。
tok2vec层是否已经针对预训练的下载模型进行了训练,例如西班牙语?
是的,完整的模型已经过训练,tok2vec
层是其中的一部分。
如果我替换了预训练模型的NER组件,是否会使tok2vec层保持不变,即是否具有学习的权重?
否,不是当前的spaCy v2中的版本。 tok2vec
层是模型的一部分,如果删除模型,则还将删除tok2vec层。在即将发布的v3中,您将能够将它们分开,从而实际上可以单独保留tok2vec
模型,并在组件之间共享它。
训练NER模型时,tok2vec层也被训练了吗?
是-见上文
pretrain命令是否可以帮助tok2vec层学习一些可能是OOV的特定领域单词?
另请参阅我在https://stackoverflow.com/a/63520262/7961860上的回答
如果您还有其他问题,欢迎在评论中进行讨论!