python 向量余弦相似度

举报
风吹稻花香 发表于 2021/06/04 23:33:55 2021/06/04
【摘要】 方法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


  
  1. from math import sqrt
  2. import numpy as np
  3. def similarity(v1, v2):
  4. a=sqrt( np.dot(v1, v1))
  5. b=sqrt ( np.dot(v2, v2))
  6. if a==0 or b==0:
  7. return -1
  8. cos_dis=np.dot (v1, v2) / (b * a)
  9. print('cos:',cos_dis)
  10. return cos_dis
  11. v1=np.array([1,2,3,4])
  12. v2=np.array([1,2,2,3])
  13. print(similarity(v1,v2))

方法2


  
  1. import time
  2. from sklearn.metrics.pairwise import cosine_similarity
  3. a = [[1, 1], [1, 0.8]]
  4. start = time.time()
  5. #cosine_similarity 出来是对称矩阵,只需要取[0][1]就ok了
  6. print("1111",time.time() - start, cosine_similarity([[1,2,3,4],[1,2,2,3]])[0][1])

方法3


  
  1. def cos_sim(vector_a, vector_b):
  2. """
  3. 计算两个向量之间的余弦相似度
  4. :param vector_a: 向量 a
  5. :param vector_b: 向量 b
  6. :return: sim
  7. """
  8. vector_a = np.mat(vector_a)

文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/116865909

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。