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计算时,提供的是二维数组