透過 MCP 連接 →

輸入計算

數學公式

廣告

結果

餘弦相似度
0.974632
範圍 −1 至 1
點積 (a·b) 32
|A|(向量長度) 3.741657
|B|(向量長度) 8.774964
夾角(角度) 12.9332°
夾角(弧度) 0.225726

什麼是餘弦相似度?

餘弦相似度用來衡量兩個向量「方向」上有多接近。它就是兩向量夾角的餘弦值,範圍從 −1(方向完全相反)、經過 0(互相垂直),到 1(方向完全一致)。由於它只看方向、不受向量長度影響,因此在機器學習、文字探勘與推薦系統中被廣泛運用,常用來比較文件、嵌入向量(embeddings)與特徵向量之間的相似程度。

從同一原點出發的兩個向量,兩者之間為夾角 theta
餘弦相似度衡量的是兩個向量之間的夾角 θ,而非它們的長度。

計算器使用說明

分別輸入向量 A 與向量 B 的 x、y 以及(選填的)z 分量。如果只想在二維空間中計算,將 z 欄位留空或填 0 即可。計算器會回傳餘弦相似度,並一併顯示點積、各向量的長度,以及兩向量之間的夾角(同時提供角度與弧度兩種單位)。

公式解析

點積是各對應分量乘積的總和:

$$\vec{A}\cdot\vec{B} = \text{A}_x\,\text{B}_x + \text{A}_y\,\text{B}_y + \text{A}_z\,\text{B}_z$$

向量的長度(模)則是各分量平方和再開根號:

$$\lVert\vec{A}\rVert = \sqrt{\text{A}_x^{2} + \text{A}_y^{2} + \text{A}_z^{2}}$$

將點積除以兩向量長度的乘積,即可把結果歸一化到 −1 到 1 的範圍,得到夾角 \(\theta\) 的餘弦值:

$$\cos\theta = \frac{\vec{A}\cdot\vec{B}}{\lVert\vec{A}\rVert\,\lVert\vec{B}\rVert}$$

再取反餘弦(arccos),就能還原出夾角本身。

Advertisement
數軸顯示餘弦相似度的取值範圍,從負一到一
餘弦相似度的取值範圍從 -1(方向相反)經過 0(正交)到 1(方向相同)。

實際範例

假設 A = (1, 2, 3)、B = (4, 5, 6)。點積為

$$1\cdot 4 + 2\cdot 5 + 3\cdot 6 = 4 + 10 + 18 = 32$$

兩向量長度分別為

$$\lVert A\rVert = \sqrt{1+4+9} = \sqrt{14} \approx 3.7417$$$$\lVert B\rVert = \sqrt{16+25+36} = \sqrt{77} \approx 8.7750$$

因此

$$\cos\theta = \frac{32}{3.7417 \times 8.7750} \approx 0.9746$$

對應的夾角約為 12.93°。

常見問題

餘弦相似度為 0 代表什麼?表示兩向量互相正交(垂直),夾角為 90°,方向上完全沒有相似性。

結果可以是負數嗎?可以。負值代表兩向量的方向大致相反;若為 −1,則表示兩者完全反向(反平行)。

它和歐氏距離有什麼不同?餘弦相似度忽略向量長度,只比較方向;而歐氏距離量測的是兩個向量端點之間的直線距離。

最後更新: