使用 Gensim Doc2Vec 查找 'Doctag' 和 'infer_vector' 之间的距离?
Finding the distance between 'Doctag' and 'infer_vector' with Gensim Doc2Vec?
如何使用 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)
您还可以查看 gensim 的 Doc2VecKeyedVectors
如何在模型内部已知的向量(通过其文档标签键名称)之间执行 similarity/distance,在其 similarity()
和 distance()
函数,位于:
如何使用 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)
您还可以查看 gensim 的 Doc2VecKeyedVectors
如何在模型内部已知的向量(通过其文档标签键名称)之间执行 similarity/distance,在其 similarity()
和 distance()
函数,位于: