【问题标题】:Finding the distance between 'Doctag' and 'infer_vector' with Gensim Doc2Vec?使用 Gensim Doc2Vec 查找“Doctag”和“infer_vector”之间的距离?
【发布时间】:2018-09-25 00:10:37
【问题描述】:

使用 Gensim 的 Doc2Vec 如何找到 Doctaginfer_vector() 之间的距离?

非常感谢

【问题讨论】:

    标签: python gensim doc2vec


    【解决方案1】:

    Doctag 是文档向量键的内部名称。 infer_vector() 操作的结果是一个向量。因此,正如您从字面上问的那样,这些没有可比性。

    您可以通过model.docvecs[doctag],通过训练期间提供的 doc-tag 键向模型询问已知的 doc-vector。这与infer_vector() 调用的结果相当。

    有了两个向量,你可以使用scipy 例程来计算各种距离。例如:

    import scipy.spatial.distance.cosine as cosine_distance
    vec_by_doctag = model.docvecs["doc0007"]
    vec_by_inference = model.infer_vector(['a', 'cat', 'was', 'in', 'a', 'hat'])
    dist = cosine_distance(vec_by_doctag, vec_by_inference)
    

    您还可以在其similarity()distance() 函数中查看 gensim 的 Doc2VecKeyedVectors 如何在模型内(通过其 doctag 键名)已知的向量之间进行相似性/距离,位于:

    https://github.com/RaRe-Technologies/gensim/blob/ca0dcaa1eca8b1764f6456adac5719309e0d8e6d/gensim/models/keyedvectors.py#L1701

    https://github.com/RaRe-Technologies/gensim/blob/ca0dcaa1eca8b1764f6456adac5719309e0d8e6d/gensim/models/keyedvectors.py#L1743

    【讨论】:

    • 为提供解决方案和最后的额外参考干杯! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-16
    相关资源
    最近更新 更多