如何另存为gensim word2vec文件?

时间:2019-10-15 10:58:26

标签: gensim word2vec

我有两个列表,A是单词列表,例如[“ hello”,“ world”,......],Len(A)是10000。列表B包含所有经过预训练的向量对应于A,即[10000,512],其中512为向量维。我想将两个列表转换成gensim word2vec模型格式,以便以后加载模型,例如model = Word2Vec.load("word2vec.model"),我该怎么做?

1 个答案:

答案 0 :(得分:1)

由于您只有单词及其向量,因此对于完整的Word2Vec模型(其中包括内部神经网络的隐藏权重和单词频率等其他信息),您的信息还不够。

但是您可以创建gensim KeyedVectors模型gensim属性中的一般类型的Word2Vec .wv对象。它具有许多您可能会感兴趣的辅助方法(例如most_similar())。

让我们假设您的 A 单词列表在一个名为words_list的更有用的Python列表中,而您的 B 矢量列表位于名为“ vectors_list`”的更有用的Python列表中。

尝试:

from gensim.models import KeyedVectors
kv = new KeyedVectors(512)
kv.add(words_list, vectors_list)
kv.save(`mywordvecs.kvmodel`)

然后您可以通过以下方式重新加载它们:

kv2 = KeyedVectors.load(`mywordvecs.kvmodel`)

(如果您还希望其他人也可以加载更简单的纯矢量格式,则也可以使用save_word2vec_format()load_word2vec_format()代替gensim的本机save() / load()使用该格式的工具。但是,如果您停留在gensim之内,则普通的save() / load()一样好-如果保存更复杂的受过训练的{{1 }}模型,因为它们将保留这些对象包含的额外信息。)