将单词嵌入到word2vec gensim模型中

问题描述 投票:5回答:1

[我正在寻找一种将预先训练的单词向量动态添加到word2vec gensim模型的方法。

我在txt中有一个经过训练的word2vec模型(单词及其嵌入),我需要获取特定语料库中的文档与新文档之间的单词移动器的距离(例如,通过gensim.models.Word2Vec.wmdistance)。

为了避免加载整个词汇表,我只想加载在语料库中找到的预训练模型词的子集。但是,如果新文档中的单词不在语料库中找到,而是在原始模型词汇表中,请将它们添加到模型中,以便在计算中考虑它们。

我想要的是节省RAM,所以可能的事情对我有帮助:

  • 有没有一种方法可以将单词向量直接添加到模型中?
  • 有没有一种方法可以从矩阵或其他对象加载到gensim?我可以在RAM中拥有该对象并将新单词附加到该对象上,然后再将其加载到模型中
  • 我不需要在gensim上使用它,因此,如果您知道WMD的另一种实现,可以将向量作为可以使用的输入(尽管我在Python中确实需要它)

谢谢。

python nlp word2vec
1个回答
0
投票

您可以只使用keyedvectors中的gensim.models.keyedvectors。它们非常易于使用。

from gensim.models.keyedvectors import WordEmbeddingsKeyedVectors

w2v = WordEmbeddingsKeyedVectors(50) # 50 = vec length
w2v.add(new_words, their_new_vecs)
© www.soinside.com 2019 - 2024. All rights reserved.