Gensim 的 Word2Vec 没有训练提供的文档

Gensim's Word2Vec not training provided documents

我在使用 Word2Vec 时遇到了 Gensim 训练问题。 model.wv.vocab 没有从经过训练的语料库中得到任何进一步的词 中唯一的词来自初始化指令中的词!

事实上,在我自己的代码上尝试了很多次,连官方网站的例子都不行!

我尝试在我的代码中的很多地方保存模型 我什至尝试在训练指令的同时保存并重新加载语料库

from gensim.test.utils import common_texts, get_tmpfile
from gensim.models import Word2Vec

path = get_tmpfile("word2vec.model")

model = Word2Vec(common_texts, size=100, window=5, min_count=1, workers=4)
model.save("word2vec.model")

print(len(model.wv.vocab))

model.train([["hello", "world"]], total_examples=1, epochs=1)
model.save("word2vec.model")

print(len(model.wv.vocab))

第一个打印语句给出 12 是正确的

第二个 12 应该给出 14 (len(vocab + 'hello' + 'world'))

train() 的额外调用不会扩展已知词汇。因此,len(model.wv.vocab) 的值不可能在另一次调用 train() 后改变。 (模型已经知道 'hello' 和 'world',在这种情况下它们在原始计数中为 12,或者它们是未知的,在这种情况下它们被忽略。)

词汇表仅在特定的 build_vocab() 阶段建立,如果如您的代码所示,您在模型实例化中提供了训练语料库 (common_texts),则该阶段会自动发生。

您可以通过调用 build_vocab() 和可选的添加参数 update=True 来逐步更新模型的词汇表,但这最好被视为一种 advanced/experimental 技术,它会增加复杂性。 (这样的词汇扩展,然后是后续的增量训练,实际上是有益还是有害,将取决于对 alphaepochs、语料库大小、训练模式和语料库的许多其他模糊选择。内容正确。)