build_vocab() 到底做了什么?

What does build_vocab() do exactly?

我正在尝试构建 Doc2Vec 模型。我有一个带有标签的句子列表,使用 Gensim 的 LabeledSentence() 函数进行标记。建立模型后,我看到他们在训练模型之前对标记的句子使用了 build_vocab()。

谁能解释一下 build_vocab() 的作用以及如果我不使用它会发生什么!?

请查看以下图片:

labeled sentences

model

build_vocab() 步骤是模型如何发现所有可能 words/doc-tags 的集合——在单词的情况下,找到出现次数超过 min_count 的单词。

您必须使用它:尝试训练未经过该发现步骤的模型将会出错。

(如果您使用模型实例化的形式在创建对象时提供您的语料库,那么 build_vocab()train() 都会自动为您调用。)

关于你提到的 LabeledSentence

要与首选 terminology/types 保持同步,您应该使用 TaggedDocument class。将单个训练项目描述为文档比句子更好,并且在模型中,它们的全文文档向量键称为标签,而不是标签。 (在某些情况下,它们也可能是 classifier 使用的那种标签,但并非总是如此,而且大多数情况下,标签是每个文档的唯一 ID。因此术语 'tag' 在阻止将这些 keys-for-doc-vector 与其他可能是“标签”的东西混为一谈的代码。)

( LabeledSentence class 是一个旧名称,现在只是 TaggedDocument 的别名。因此将它用作名称可以,但与其他名称不匹配的代码。)