SPACY - 关于词向量和 tok2vec 的混淆

Bal*_*dML 6 python nlp spacy fasttext

如果您能帮助我理解 Spacy 的一些基本概念,那对我来说真的很有帮助。

我知道一些 spacy 模型有一些预定义的静态向量,例如,对于西班牙模型,这些是由 FastText 生成的向量。我还了解到,有一个 tok2vec 层可以从标记生成向量,例如用作模型 NER 组件的输入。

如果以上是正确的,那么我有几个问题:

  • NER 组件也使用静态向量吗?
    • 如果是,那么 tok2vec 层在哪里发挥作用?
    • 如果不是,那么如果您只想将模型用于 NER 组件,那么使用 lg 或 md 模型是否有任何优势?
  • tok2vec 层是否已经针对预训练的下载模型进行了训练,例如西班牙语?
  • 如果我替换预训练模型的 NER 组件,它是否会保持 tok2vec 层不变,即使用学习到的权重?
  • 当我训练 NER 模型时,tok2vec 层是否也被训练?
  • pretrain 命令是否可以帮助 tok2vec 层学习一些可能是 OOV 的特定领域单词?

多谢!

Sof*_* VL 6

NER 组件也使用静态向量吗?

我的回答的第 2 点和第 3 点对此进行了解决。

tok2vec 层是否已经针对预训练的下载模型进行了训练,例如西班牙语?

是的,完整的模型已经过训练,而该tok2vec层是其中的一部分。

如果我替换预训练模型的 NER 组件,它是否会保持 tok2vec 层不变,即使用学习到的权重?

不,当前的 spaCy v2 中没有。该tok2vec层是模型的一部分,如果删除模型,您也会删除 tok2vec 层。在即将推出的 v3 中,您将能够将它们分开,这样您实际上就可以tok2vec单独保留模型,并在组件之间共享它。

当我训练 NER 模型时,tok2vec 层是否也被训练?

是的 - 见上文

pretrain 命令是否可以帮助 tok2vec 层学习一些可能是 OOV 的特定领域单词?

另请参阅我的回答/sf/answers/4446418371/

如果您还有其他问题 - 乐意在评论中讨论!