多次训练 Word2Vec 模型会影响 `min_count` 参数吗?

数据挖掘 预测建模 词嵌入 word2vec gensim
2022-02-22 20:55:01

Word2Vec中,如果我多次训练一组句子并改变顺序(因为它增加了向量表示),一个单词的频率是否会因此而改变。?

例如,如果我的语料库中有 4 次“鹿”这个词,如果我将其设置min_count为 5,那么重复训练模型 3 次是否会以 12 的频率重复计算“鹿”并将被包含在模型中?

如果它知道它是同一个语料库,那么如何区分,如果我用新的语料库重新训练模型。

1个回答

Gordon mohr 在谷歌群组中已经回答了这个问题。

通常读取语料库以构建词汇表(包括根据学习的词汇量大小初始化模型),然后进行任意数量的额外训练。只有在一次词汇学习扫描之后才会查看字数(并与min_count修剪进行比较)。

如果您提供一个语料库(作为可重新启动的迭代器)作为初始创建 Word2Vec 模型的参数之一,所有这些步骤都会自动完成:一次读取语料库(通过该build_vocab()方法)以收集单词/计数,然后一个或更多通道(由“iter”参数控制并通过train()方法完成)进行训练。尽管如此,只有通过提供的语料库的单次计数对频率决策很重要。

如果您在模型初始化时不提供语料库,那么您可以调用build_vocab(…)train(…)自己。只有传递给build_vocab()保留的频率计数(以及语料库大小的估计)才重要。然后,您可以train(…)以其他方式或重复呼叫 - 它只是继续使用先前build_vocab(…)呼叫中的词汇。

(请注意,它train(…)确实尝试重用从词汇扫描过程中记住的单通道语料库大小,以提供准确的进度估计并安排训练率的衰减alpha。因此,如果您给 提供不同大小的语料库train(…),您还应该使用它的其他可选参数来提示它的大小。)