餘弦相似度計算器 - 向量相似性分析

立即計算兩個向量之間的餘弦相似度。值為 1 表示方向相同,0 表示垂直,−1 表示方向相反。

輸入兩個長度相同的數值向量,以逗號或空格分隔,然後點擊「計算」查看餘弦相似度及相關指標。

餘弦相似度計算器 - 向量相似性分析
立即計算兩個向量之間的餘弦相似度。值為 1 表示方向相同,0 表示垂直,−1 表示方向相反。

輸入以逗號或空格分隔的數字

輸入以逗號或空格分隔的數字

關於餘弦相似度計算器

餘弦相似度是在多維空間中比較兩個非零向量相似性最常用的指標之一。不同於衡量兩個點相距多遠的歐幾里得距離,餘弦相似度只關注向量的朝向——更精確地說,就是它們夾角的餘弦值。因此,當大小不重要而方向更關鍵時,它特別實用,例如比較不同長度的文件,或活動程度不同的使用者偏好檔案。 公式很簡單:cos(θ) = (A · B) / (‖A‖ × ‖B‖),其中 A · B 是兩個向量的點積,‖A‖ 和 ‖B‖ 分別是它們的歐幾里得模長(範數)。點積是將對應元素相乘後再加總。向量的模長則是各分量平方和的平方根。 結果始終落在 [−1, 1] 範圍內。餘弦相似度為 1 表示兩個向量指向完全相同的方向——它們完全一致。值為 0 表示它們彼此垂直(正交)——在方向上沒有相關性。值為 −1 表示它們指向完全相反的方向。實務上,許多應用只考慮非負特徵(如詞頻或評分次數),此時相似度會被限制在 [0, 1]。 在自然語言處理與資訊檢索中,餘弦相似度是比較以 TF-IDF 或詞袋向量表示的文字文件的標準方法。由於長文件自然具有更大的向量模長,直接比較原始點積會不公平地偏向它們。透過以模長乘積進行歸一化,餘弦相似度消除了長度偏差,只聚焦於詞項的比例組成。 推薦系統使用餘弦相似度來配對使用者偏好向量。如果兩位使用者對相似項目的相對偏好模式相近——即使其中一位使用者整體評分的項目更多——他們的餘弦相似度也會很高,代表品味相近。同樣的邏輯也適用於影像辨識,神經網路提取的特徵描述向量可用餘弦相似度來比較,進而找出視覺上相似的影像。 對於這個計算器,只要兩個向量的維度數量相同,你就可以輸入任意長度的向量。數值可用逗號或空格分隔。計算器會顯示餘弦相似度、點積以及每個向量的模長,方便你逐步驗證計算過程。

餘弦相似度範例

三個代表性情境,展示不同程度的向量相似性。

向量相似度解釋
A = [1, 2, 3], B = [2, 4, 6]1.000000B 是 A 的純量倍數(方向相同)。不論縮放因子如何,餘弦相似度都等於 1。
A = [1, 0, 0], B = [0, 1, 0]0.000000標準基向量彼此垂直。點積 = 0,因此餘弦相似度 = 0。
A = [5, 3, 0, 2], B = [4, 2, 1, 3]0.947758在文件或使用者偏好比較中很常見的高相似度,大多數維度都有重疊。A·B=32,|A|=√38≈6.164,|B|=√30≈5.477。
A = [1, 0], B = [-1, 0]-1.000000完全相反方向的向量會得到餘弦相似度 = −1。

如何使用餘弦相似度計算器

  1. 在「第一個向量(A)」欄位中輸入第一個向量,數值可用逗號或空格分隔,例如:1, 2, 3。
  2. 在「第二個向量(B)」欄位中輸入第二個向量,它必須與第一個向量具有相同的元素個數。
  3. 點擊「計算相似度」。結果面板會顯示餘弦相似度分數、點積以及每個向量的模長。
  4. 使用表格下方的範例按鈕,可立即載入預設向量對並查看計算過程。
  5. 點擊「重設」即可清空所有欄位並開始新的計算。

餘弦相似度常見問題

餘弦相似度為 0.85 代表什麼?
這表示兩個向量之間的夾角約為 31.8 度,顯示方向相似度很高。在文字分析中,這通常表示兩篇文件在關鍵術語上有很大比例的重疊,而且相對頻率也相近。對多數應用來說,0.7 以上通常可視為高度相似。
為什麼文字比對更常使用餘弦相似度而不是歐幾里得距離?
歐幾里得距離對向量大小很敏感,因此一篇長文和一篇短文即使主題相同,也會因為長文的詞項計數更大而看起來差異很大。餘弦相似度會將大小歸一化,只關注夾角,因此不論長度如何都能比較文件。這種與長度無關的特性,是餘弦相似度主導文字應用的主要原因。
餘弦相似度可以是負數嗎?
可以,餘弦相似度的範圍是 −1 到 1。負值表示兩個向量之間的夾角大於 90 度——它們彼此更偏離,而不是彼此接近。在只使用非負特徵的應用中(如詞頻、評分),相似度都落在 [0, 1];但若使用有符號特徵,例如均值中心化後的評分或情感分數,就可能出現有意義的負相似度。
當一個向量全為零時會發生什麼?
如果任一向量是零向量,餘弦相似度在數學上是未定義的,因為歸一化步驟會發生除以零。這個計算器在這種情況下會顯示錯誤。實務上,在文字處理中出現零向量通常表示文件不包含詞彙表中的任何詞,這種情況本來就不太適合做相似性比較。
向量可以有多少維?
這個計算器支援任意長度的向量,只受瀏覽器效能限制。實際上,真實應用中常會使用成千上萬甚至數百萬維(例如詞嵌入空間)。不論維度多高,數學公式都完全相同。只要兩個向量的元素個數完全一致,計算就是有效的。
餘弦相似度和相關係數是一回事嗎?
餘弦相似度和皮爾森相關係數關係密切,但並不相同。皮爾森相關係數會先對每個向量做均值中心化(減去元素平均值),再計算中心化後向量的餘弦相似度。如果你的向量已經做過均值中心化,這兩個指標會得到相同結果。對於未做均值中心化的原始特徵向量,餘弦相似度和相關係數通常會不同。