Используя Gensim Doc2Vec, как бы найти расстояние между Doctag
и infer_vector()
?
Большое спасибо
Doctag
- это внутреннее имя для ключей к doc-векторам. Результатом операции infer_vector()
является вектор. Так как вы буквально спросили, они не сопоставимы.
Вы можете спросить модель для известного doc-вектора с помощью ключа doc-тега, который был предоставлен во время обучения, с помощью model.docvecs[doctag]
. Это было бы сопоставимо с результатом 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()
: at: