2个数字列表之间的余弦相似度

新手上路,请多包涵

我想计算 两个列表 之间的 余弦相似度,例如列表 1 是 dataSetI 和列表 2 是 dataSetII

假设 dataSetI[3, 45, 7, 2]dataSetII[2, 54, 13, 15] 。列表的长度 总是 相等的。我想将余弦相似度报告为 0 到 1 之间的数字。

 dataSetI = [3, 45, 7, 2]
dataSetII = [2, 54, 13, 15]

def cosine_similarity(list1, list2):
  # How to?
  pass

print(cosine_similarity(dataSetI, dataSetII))

原文由 Rob Alsod 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 496
1 个回答

另一个版本仅基于 numpy

 from numpy import dot
from numpy.linalg import norm

cos_sim = dot(a, b)/(norm(a)*norm(b))

原文由 dontloo 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题