Python 什么是gensim';s';docvecs';?
上图来自介绍Doc2Vec的论文。我正在使用Gensim对Word2Vec和Doc2Vec的实现,它们都很好,但我希望在一些问题上有清晰的认识Python 什么是gensim';s';docvecs';?,python,nlp,gensim,doc2vec,Python,Nlp,Gensim,Doc2vec,上图来自介绍Doc2Vec的论文。我正在使用Gensim对Word2Vec和Doc2Vec的实现,它们都很好,但我希望在一些问题上有清晰的认识 对于给定的doc2vec模型,什么是dvm.DOCVEC?我的印象是,它是一个平均的或串联的向量,包括所有单词嵌入和段落向量,d。这是对的,还是d 假设dvm.docvecs不是d,一个人可以自己访问d吗?怎么做 作为奖金,d如何计算?该报只说: 在我们的段落向量框架(见图2)中 段落映射到一个唯一的向量,由 矩阵D中的列,每个单词也映射到 唯一向量,由
d
。这是对的,还是ddvm.docvecs
不是d
,一个人可以自己访问d吗?怎么做d
如何计算?该报只说:谢谢你的任何线索 Doc2Vec模型的
docvecs
属性包含训练期间看到的“文档标签”的所有训练向量。(这些在源代码中也称为“doctags”。)
在最简单的情况下,与段落向量纸类似,每个文本示例(段落)都有一个序列号整数ID作为其“标记”,从0开始。这将是docvecs
对象的索引,而model.docvecs.doctag\u syn0
numpy数组本质上与您从段落向量论文中摘录的(大写)D相同
(Gensim还支持使用字符串标记作为文档标记,每个文档使用多个标记,并在许多培训文档中重复标记。对于字符串标记,如果有,它们将通过dict
model.docvecs.doctags
映射到docvecs
末尾附近的索引)感谢您的回复。如果我理解您的第一句话,docvecs
是唯一的文档向量,对应于上图中“平均/连接”旁边的向量。这是正确的吗?实际上,model.docvecs
是一个助手对象,包含所有正在训练的文档向量。参考它(特别是它的doctag_syn0
数组,它类似于图中的“段落矩阵”),以获得单个向量D(如橙色的图中所示),并与单个训练示例的单词向量混合。有趣。当dm=0
因此使用PV-DBOW算法时,model.docvecs
等于model.docvecs.doctag\u syn0
。我想这是有道理的,因为没有单词嵌入与段落矩阵连接。谢谢你的帮助!无论采用何种模式,model.docvecs
与其组成的原始numpy数组model.docvecs.doctag\u syn0
之间的关系都是相同的。在所有情况下,单个doctag键控向量都位于model.docvecs.doctag\u syn0
中。在纯DBOW中,这些向量是唯一用来预测文档单词的东西;在DM中,它们与词向量相结合来预测窗口中的邻近词。