多个向量计算余弦相似度
时间: 2023-09-28 21:04:42 浏览: 198
余弦相似度算法(python代码)
5星 · 资源好评率100%
计算多个向量之间的余弦相似度,可以使用矩阵运算来实现。假设有 $n$ 个向量,每个向量的维度为 $d$,可以将它们组成一个 $n \times d$ 的矩阵 $A$,其中矩阵的每一行代表一个向量。然后计算矩阵 $A$ 与自身的转置矩阵 $A^T$ 的乘积 $C=A \cdot A^T$,得到一个 $n\times n$ 的矩阵 $C$,其中 $C_{i,j}$ 表示向量 $i$ 和向量 $j$ 的余弦相似度。具体计算方式如下:
$$\cos(\theta_{i,j}) = \frac{\mathbf{a_i} \cdot \mathbf{a_j}}{\|\mathbf{a_i}\|\|\mathbf{a_j}\|}$$
其中 $\mathbf{a_i}$ 和 $\mathbf{a_j}$ 分别表示向量 $i$ 和向量 $j$,$\|\cdot\|$ 表示向量的范数。
矩阵 $C$ 的对角线上的元素都是 $1$,因为每个向量与自身的余弦相似度为 $1$。同时,由于余弦相似度的取值范围为 $[-1,1]$,所以 $C$ 矩阵是一个对称矩阵,并且所有非对角线上的元素都大于等于 $-1$,小于等于 $1$。
阅读全文