总结Gensim生成的word2vec向量的正确方法是什么



我得到了四个300维的word2vec向量,比如:

v1=model.wv.get_vector('A')
v2=model.wv.get_vector('B')
v3=model.wv.get_vector('C')
v4=model.wv.get_vector('D')

我想比较v1+v2v3+v4的余弦相似性。

我应该先把它们减少两个二元向量吗?

我应该使用什么numpy函数?

您可以使用简单的Python数学运算符添加向量:

va = v1 + v2
vb = v3 + v4

numpy实际上没有余弦相似性(或余弦距离(函数,所以你必须使用从点积&单位范数(numpy同时具有:

cossim = np.dot(va, vb) / (np.linalg.norm(va) * np.linalg.norm(vb))

或者,您可以利用scipy中的余弦距离函数,并通过从1:中减去它来将其转换为余弦相似性

cosdist = scipy.spatial.distance.cosine(va, vb)
cossim = 1 - cosdist

相关内容

最新更新