import numpy as np
from sklearn.metrics.pairwise import cosine_similarity

a = np.array([1, 2, 3, 4])
b = np.array([1, 2, 6, 8])
dot = np.dot(a, b)
norma = np.linalg.norm(a)
normb = np.linalg.norm(b)
cos = dot / (norma * normb)

skl_cos = cosine_similarity(a.reshape(1, 4), b.reshape(1, 4))
print(dot, norma, normb, cos, skl_cos[0][0])

 

需要注意的是,使用numpy计算余弦复杂度,可以直接使用一维向量进行计算,使用sklearn计算时,提供的是二维数组

posted on 2019-11-11 17:10  yytxdy  阅读(437)  评论(0编辑  收藏  举报