在Word2Vec中,如果我多次训练一组句子并改变顺序(因为它增加了向量表示),一个单词的频率是否会因此而改变。?
例如,如果我的语料库中有 4 次“鹿”这个词,如果我将其设置min_count为 5,那么重复训练模型 3 次是否会以 12 的频率重复计算“鹿”并将被包含在模型中?
如果它知道它是同一个语料库,那么如何区分,如果我用新的语料库重新训练模型。
在Word2Vec中,如果我多次训练一组句子并改变顺序(因为它增加了向量表示),一个单词的频率是否会因此而改变。?
例如,如果我的语料库中有 4 次“鹿”这个词,如果我将其设置min_count为 5,那么重复训练模型 3 次是否会以 12 的频率重复计算“鹿”并将被包含在模型中?
如果它知道它是同一个语料库,那么如何区分,如果我用新的语料库重新训练模型。
Gordon mohr 在谷歌群组中已经回答了这个问题。
通常读取语料库以构建词汇表(包括根据学习的词汇量大小初始化模型),然后进行任意数量的额外训练。只有在一次词汇学习扫描之后才会查看字数(并与
min_count修剪进行比较)。如果您提供一个语料库(作为可重新启动的迭代器)作为初始创建 Word2Vec 模型的参数之一,所有这些步骤都会自动完成:一次读取语料库(通过该
build_vocab()方法)以收集单词/计数,然后一个或更多通道(由“iter”参数控制并通过train()方法完成)进行训练。尽管如此,只有通过提供的语料库的单次计数对频率决策很重要。如果您在模型初始化时不提供语料库,那么您可以调用
build_vocab(…)和train(…)自己。只有传递给build_vocab()保留的频率计数(以及语料库大小的估计)才重要。然后,您可以train(…)以其他方式或重复呼叫 - 它只是继续使用先前build_vocab(…)呼叫中的词汇。(请注意,它
train(…)确实尝试重用从词汇扫描过程中记住的单通道语料库大小,以提供准确的进度估计并安排训练率的衰减alpha。因此,如果您给 提供不同大小的语料库train(…),您还应该使用它的其他可选参数来提示它的大小。)