Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有效地计算余弦相似度之和_Python_Optimization_Trigonometry_Similarity_Cosine Similarity - Fatal编程技术网

Python 有效地计算余弦相似度之和

Python 有效地计算余弦相似度之和,python,optimization,trigonometry,similarity,cosine-similarity,Python,Optimization,Trigonometry,Similarity,Cosine Similarity,我试图有效地计算余弦相似度之和,但我目前的方法相当慢 假设我有三个向量v_1,v_2,和v_3。除了简单地执行以下操作之外,还有没有更有效的方法来计算余弦相似性之和:Cos(v_1,v_2)+Cos(v_1,v_3)+Cos(v_2,v_3) 如果可能的话,我希望避免并行化 下面是我当前方法的一个粗略示例: 将numpy导入为np def余弦sim(A、B): 点=np.点(A,B) norma=np.linalg.norm(A) normb=np.linalg.norm(B) cos=点/(正

我试图有效地计算余弦相似度之和,但我目前的方法相当慢

假设我有三个向量
v_1
v_2
,和
v_3
。除了简单地执行以下操作之外,还有没有更有效的方法来计算余弦相似性之和:
Cos(v_1,v_2)+Cos(v_1,v_3)+Cos(v_2,v_3)

如果可能的话,我希望避免并行化

下面是我当前方法的一个粗略示例:

将numpy导入为np
def余弦sim(A、B):
点=np.点(A,B)
norma=np.linalg.norm(A)
normb=np.linalg.norm(B)
cos=点/(正常值*正常值)
返回cos
向量=np.array([
[1,0,1,1,1,0,0,1,0,0,1,0,1],
[1,0,1,0,1,1,0,1,0,1,1,0,0],
[0,1,0,1,0,1,0,0,0,1,1,0,0]
])
_总和=0
对于范围内的i(len(向量)):
对于范围(i+1,len(向量))内的j:
_sum+=cosine_sim(向量[i],向量[j])

你能提供一些示例输入和预期输出以及你认为慢的源代码,以便其他人有一个性能基准的基线吗?@克里斯我增加了一个如何计算余弦相似度的例子。但我现在可以说的是,应该不惜一切代价避免
for
循环,尤其是在性能非常重要的情况下。还有,你为什么要寻找一种替代Cos(v_1,v_2)+····················································亚历山大,这样一来,余弦相似性函数只需运行一次。@jwnz这是为了好玩还是为了优化?