python 向量余弦相似度
【摘要】 方法1
from math import sqrtimport numpy as npdef similarity(v1, v2): a=sqrt( np.dot(v1, v1)) b=sqrt ( np.dot(v2, v2)) if a==0 or b==0: return -1 cos_dis=np.dot (v1, v2) / (b * a) print('cos...
方法1
-
-
from math import sqrt
-
import numpy as np
-
def similarity(v1, v2):
-
a=sqrt( np.dot(v1, v1))
-
b=sqrt ( np.dot(v2, v2))
-
if a==0 or b==0:
-
return -1
-
cos_dis=np.dot (v1, v2) / (b * a)
-
print('cos:',cos_dis)
-
-
return cos_dis
-
-
-
v1=np.array([1,2,3,4])
-
v2=np.array([1,2,2,3])
-
-
print(similarity(v1,v2))
方法2
-
-
-
-
import time
-
-
from sklearn.metrics.pairwise import cosine_similarity
-
-
a = [[1, 1], [1, 0.8]]
-
start = time.time()
-
#cosine_similarity 出来是对称矩阵,只需要取[0][1]就ok了
-
print("1111",time.time() - start, cosine_similarity([[1,2,3,4],[1,2,2,3]])[0][1])
-
-
-
方法3
-
def cos_sim(vector_a, vector_b):
-
"""
-
计算两个向量之间的余弦相似度
-
:param vector_a: 向量 a
-
:param vector_b: 向量 b
-
:return: sim
-
"""
-
vector_a = np.mat(vector_a)
文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/jacke121/article/details/116865909
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)