Word2vec使用新语料库重新训练,如何更新现有词汇的权重?

时间:2018-01-12 06:01:13

标签: python word2vec

Scenerio:在语料库C1上训练word2vec模型,词汇量为V1。如果我们想要使用train()API将另一个具有词汇表V2的语料库C2重新训练相同的模型,那么将会发生以下两种情况:

  1. 对于模型,将重置V1交叉点V2的权重,并使用语料库C2重新训练所有新权重
  2. 对于模型,将继续使用现有的词汇V1交叉点V2的重量训练来进行语料库C2的重新训练。
  3. 上述哪两个是正确的假设?

2 个答案:

答案 0 :(得分:0)

  1. 如果我正确理解了这个选项,你将重置共享单词的所有权重,然后在C2数据上训练它们......这意味着C1中共享单词的所有信息都会丢失,这对我来说似乎是一个巨大的损失。 (我不知道语料库大小)。另外,这两个语料库有多么不同?这个交叉点有多大?语料库是否涵盖类似的主题/领域?这也可能影响您决定是否丢失C1语料库中的所有信息是否合适。

  2. 这对我来说似乎更合乎逻辑......但是语料库/词汇的差异在这里也很重要。如果由于交叉点而遗漏了C2中的大量单词,您可以想办法以这种或那种方式添加未知单词。

  3. 但是为了评估哪个选项真的是最好的'在您的情况下,创建一个案例,您可以衡量如何“好”'一种方法是根据另一种方法。在大多数情况下,这涉及一些相似性度量......但也许你的情况不同......

答案 1 :(得分:0)

为什么不使用每次运行随机生成的数字来初始化每个word2vec参数?我可以做到这一点,并通过仔细选择每个参数(numFeatures,contextWindow,seed)的随机数,我能够获得我的用例想要的随机相似元组。模拟整体架构。

别人怎么看?请回答。

相关问题