代码之家  ›  专栏  ›  技术社区  ›  richards

具有初始值的Gensim单词嵌入训练

  •  1
  • richards  · 技术社区  · 6 年前

    我有一个将文档分为不同年份的数据集,我的目标是为每年的数据训练一个嵌入模型,同时,不同年份出现的相同单词将具有相似的向量表示。这样:对于单词“compute”,它在第1年的向量是

    [0.22, 0.33, 0.20]
    

    在第二年,它是围绕着:

    [0.20, 0.35, 0.18]
    

    有没有办法做到这一点?例如,使用初始值(如果单词已在第1年训练,请修改其向量)和随机性(如果这是语料库中的新词)训练第2年的模型。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Maxim    6 年前

    我认为最简单的解决办法是 拯救 在第一个数据集上训练后的嵌入,然后 负载 训练后的模型,并继续训练第二个数据集。这样,您就不应该期望嵌入偏离保存状态太多(除非您的数据集非常不同)。

    从所有文档中创建单个词汇也是有意义的:特定文档中不存在的词汇将得到一些随机表示,但它仍然是一个有效的word2vec模型。

    示例来自 documentation :

    >>> model = Word2Vec(sentences, size=100, window=5, min_count=5, workers=4)
    >>> model.save(fname)
    >>> model = Word2Vec.load(fname)  # continue training with the loaded model