a * bsim(a,b) =--------|a|*|b|
a * b是点积
一些细节:
def dot(a,b): n = length(a) sum = 0 for i in xrange(n): sum += a[i] * b[i]; return sumdef norm(a): n = length(a) for i in xrange(n): sum += a[i] * a[i] return math.sqrt(sum)def cossim(a,b): return dot(a,b) / (norm(a) * norm(b))
是。在某种程度上,a和b必须具有相同的长度。但是a和b通常具有稀疏表示,您只需要存储非零条目,就可以更快地计算范数和点。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)