首页 > 解决方案 > 如何从 gensim word2vec 中提取矩阵 WI 和 WO?

问题描述

CBOW word2vec 方案如下所示:

在此处输入图像描述

如何从中提取矩阵 WI 和 WO gensim.models.word2vec.Word2Vec?我在 gensim w2v 模型中只找到了这些字段:

gensim.models.word2vec.Word2Vec.trainables.syn1neg

gensim.models.word2vec.Word2Vec.vw.syn1neg.vectors

我可以假设syn1negWI 和 WO = vectors-syn1neg吗?

为什么这个代码

sentences = [['car', 'tree', 'chip2'], ['chip1', 'sugar']]
model = Word2Vec(sentences, min_count=1, size = 5)

只给出Word2Vec.trainables.syn1neg零元素的矩阵?

对于 30MB 数据集Word2Vec.trainables.syn1neg矩阵也只包含零元素,日志在这里:

生成日志

标签: pythongensimword2vec

解决方案


w2v_model.wv.vectors是以前称为“syn0”的东西,用作“投影权重”,它本质上将单热词编码映射到N维。在您的图表中,这是WI

w2v_model.trainables.syn1neg是负采样模式的隐藏到输出权重,您的图表标记为WO


推荐阅读