余弦相似度

🤖 Cosine Similarity Calculator

Compute the cosine similarity of two vectors to measure how closely their directions agree. Common in text matching, recall and embedding comparison.

📐 计算公式 / 原理
三维向量余弦相似度(本页代码口径,完整公式):cos θ=(a₁b₁+a₂b₂+a₃b₃)÷(√(a₁²+a₂²+a₃²)×√(b₁²+b₂²+b₃²)),即点积除以两向量模之积,结果保留 4 位小数。校验:无强校验,空分量按 0 兜底;任一向量全零提示「零向量的模为 0,余弦相似度无定义」,结果非有限提示「部分结果无定义」。
余弦相似度取值范围 [−1,1],1 为同向、0 为正交、−1 为反向。因为做了模长归一化,它对向量整体缩放不敏感,适合比较长度差异很大的文本或特征向量;若需要同时反映模长差异应改回欧氏距离。

📐 计算公式与说明

余弦相似度判读(与上框公式同源的解读口径):cos=(A·B)÷(|A|×|B|),等于两向量夹角的余弦,取值域 −1 至 1。判读分级:接近 1 两向量方向几乎相同、接近 0 近似正交(不相关)、接近 −1 方向相反;本页面向三维向量相似度场景,取值越大越相似。零向量模为 0 无定义,两向量须各含至少一个非零分量。

取值 −1 到 1,越接近 1 越相似。

📚 深度解析:余弦相似度

💡 常见使用场景

x=(1,2,2), y=(2,4,4):‖x‖=3,‖y‖=6,内积=2+8+8=18 → cos=18/(3×6)=1,两向量同向(实际 y=2x),完全相似。

❓ 常见问题(FAQ)

余弦为负说明什么?
说明两向量夹角大于 90°,语义倾向相反(如反义句、对立情感)。多数相似度场景只取非负区间,需按业务决定是否保留负值。
为什么先归一化?
归一化后模长均为 1,余弦=内积,便于用内积加速检索(如 FAISS);且消除向量长度对相似度的影响,聚焦方向。

Formula & Standard References

Item Formula / Note Source / Standard
Definition cosine = dot product over magnitude product from minus one to one Vector metrics
Scale invariance the measure depends on direction only Vector metrics
Distance equivalence with unit norms cosine and Euclidean distance interconvert Vector metrics