SPACY-关于单词向量和tok2vec的困惑

问题描述

如果您能帮助我了解一些有关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上的回答

如果您还有其他问题,欢迎在评论中进行讨论!