Python 什么是gensim';s';docvecs';?

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中的列,每个单词也映射到 唯一向量,由

上图来自介绍Doc2Vec的论文。我正在使用Gensim对Word2Vec和Doc2Vec的实现,它们都很好,但我希望在一些问题上有清晰的认识

  • 对于给定的doc2vec模型,什么是dvm.DOCVEC?我的印象是,它是一个平均的或串联的向量,包括所有单词嵌入和段落向量,
    d
    。这是对的,还是d
  • 假设
    dvm.docvecs
    不是
    d
    ,一个人可以自己访问d吗?怎么做
  • 作为奖金,
    d
    如何计算?该报只说:
  • 在我们的段落向量框架(见图2)中 段落映射到一个唯一的向量,由 矩阵D中的列,每个单词也映射到 唯一向量,由矩阵W中的一列表示


    谢谢你的任何线索

    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中,它们与词向量相结合来预测窗口中的邻近词。