【问题标题】:How to infer new word vectors from a gensim word2vec model?如何从 gensim word2vec 模型中推断出新的词向量?
【发布时间】:2018-08-18 23:37:39
【问题描述】:

我想使用新的文本数据集将新词添加到经过训练的 gensim word2vec 模型中。但是,我想保留旧词嵌入,只需将数据集中的新词添加到现有模型中。这意味着使用新文本数据集对旧模型进行简单的重新训练不是一种选择,因为它将重新调整也在新文本数据集中的先前词嵌入的向量。你能就这项任务提出任何建议吗?我想要类似 Gensim 的 doc2vec 推断功能,您可以在其中为模型提供一些文本输入,它会提供一个向量作为输出。谢谢。

【问题讨论】:

  • “重新调整前一个词嵌入的向量”是什么意思?因为即使你只是添加新词,当前词的值也会改变,因为它们与新词相关。
  • 平均词向量对你有用吗?对于看不见的单词,您可以平均 window 和所有出现的单词向量。我相信在某个时间点 infer_vector 平均词向量得到一个文档向量。

标签: neural-network word2vec gensim


【解决方案1】:

我会执行以下操作(伪 Python):

for word in new_words:
    # find words that should be nearby
    synonyms = thesaurus.lookup(word)

    # initialize an empty word vector
    new_word_embedding = np.zeros(number_of_dimensions_a_word_vector_is)

    # average the embeddings of synonyms
    for syn in synonyms:
        if w2v.get_embedding(syn):
            a = np.array(new_word_embedding, w2v.get_embedding(syn))
            new_word_embedding = np.mean(a, axis=0)

【讨论】:

    猜你喜欢
    • 2018-11-27
    • 2016-12-04
    • 2017-10-09
    • 1970-01-01
    • 1970-01-01
    • 2014-04-02
    • 1970-01-01
    • 2019-10-15
    • 2021-06-26
    相关资源
    最近更新 更多