有效计算余弦相似度之和

我正在尝试有效地计算余弦相似度之和,但是我目前的方法相当慢。

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

如果可能,我想避免并行化。

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

import numpy as np

def cosine_sim(A,B):
    dot = np.dot(A,B)
    norma = np.linalg.norm(A)
    normb = np.linalg.norm(B)
    cos = dot / (norma * normb)
    return cos

vectors = np.array([
    [1,1,1],[1,0],[0,0]
])

_sum =0
for i in range(len(vectors)):
    for j in range(i+1,len(vectors)):
        _sum += cosine_sim(vectors[i],vectors[j])      
ali_324 回答:有效计算余弦相似度之和

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3126536.html

大家都在问