【问题标题】:Gensim word embedding training with initial values具有初始值的 Gensim 词嵌入训练
【发布时间】:2018-06-18 07:07:53
【问题描述】:

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

[0.22, 0.33, 0.20]

在第 2 年,情况有所不同:

[0.20, 0.35, 0.18]

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

【问题讨论】:

    标签: machine-learning nlp word2vec gensim word-embedding


    【解决方案1】:

    我认为最简单的解决方案是在对第一个数据集进行训练后保存嵌入,然后加载训练好的模型并继续对第二个数据集进行训练。这样一来,您不应该期望嵌入偏离已保存状态太多(除非您的数据集非常不同)。

    从所有文档中创建单个词汇表也很有意义:特定文档中不存在的词汇表会得到一些随机表示,但它仍然是一个有效的 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
    

    【讨论】:

    • 我应该如何进行第二次培训?我的意思是,在训练过程中,已经训练好的模型不是输入,是吗?
    猜你喜欢
    • 2019-03-02
    • 2019-10-27
    • 1970-01-01
    • 1970-01-01
    • 2021-03-29
    • 2019-11-23
    • 1970-01-01
    • 2019-11-26
    • 1970-01-01
    相关资源
    最近更新 更多