【发布时间】:2018-09-25 00:10:37
【问题描述】:
使用 Gensim 的 Doc2Vec 如何找到 Doctag 和 infer_vector() 之间的距离?
非常感谢
【问题讨论】:
使用 Gensim 的 Doc2Vec 如何找到 Doctag 和 infer_vector() 之间的距离?
非常感谢
【问题讨论】:
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 键名)已知的向量之间进行相似性/距离,位于:
【讨论】: