如何保存为gensim word2vec文件?
How to save as a gensim word2vec file?
我有两个列表,A是单词列表,例如["hello","world",......],Len(A)是10000。列表B包含A对应的所有预训练向量,是一个[10000,512],512是向量维度。我想将两个列表转换成gensim word2vec模型格式,以便稍后加载模型,例如model = Word2Vec.load("word2vec.model")
我应该怎么做?
由于您只有单词及其向量,因此您没有足够的信息来构建完整的 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()
也一样好——如果保存更复杂的经过训练的 Word2Vec
模型,因为它们会保留那些对象包含的额外信息。)
我有两个列表,A是单词列表,例如["hello","world",......],Len(A)是10000。列表B包含A对应的所有预训练向量,是一个[10000,512],512是向量维度。我想将两个列表转换成gensim word2vec模型格式,以便稍后加载模型,例如model = Word2Vec.load("word2vec.model")
我应该怎么做?
由于您只有单词及其向量,因此您没有足够的信息来构建完整的 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()
也一样好——如果保存更复杂的经过训练的 Word2Vec
模型,因为它们会保留那些对象包含的额外信息。)