如何用餘弦定理來進行文本相似度的度量

在做文本分析的時候,經常會到說將文本轉化爲對應的向量,之後利用餘弦定理來計算文本之間的相似度。但是最近在面試時,重複上面這句話,卻被面試官問到:“什麼是餘弦定理?”當時就比較懵逼,於是把餘弦定理求文本相似度的過程敘述了一遍:“將樣本轉化爲對應的空間中的兩個向量,然後計算兩個向量餘弦值,之後根據餘弦值的大小來判斷兩個樣本相似度有多少”,但是話音剛落就被面試官否定了,當時感覺自己說的是正確的,但是由於自己的確記不記得餘弦定理的數學含義以及公式,所以也就沒有和面試官辯論,當時想請教下面試官他理解的餘弦定理是什麼,卻被一句“回去自己查”給堵死。。。之後對這件事一直耿耿於懷,不過又一想,也是,面試官問的是餘弦定理,但是我說的是餘弦定理在空間向量中如何計算相似度,好像是有點跑題。。。anyway,過去的已經過去了,只要有收穫就行。於是回來查了一下餘弦定理是怎麼應用於文本相似的度量的,下面是整個過程,其實很簡單,只不過當時把餘弦定理的公式忘了,不然很容易就能解釋通(數學知識全還給老師了)。。。

相似度度量(Similarity),即計算個體間的相似程度,相似度度量的值越小,說明個體間相似度越小,相似度的值越大說明個體差異越大。

對於多個不同的文本或者短文本對話消息要來計算他們之間的相似度如何,一個好的做法就是將這些文本中詞語,映射到向量空間,形成文本中文字和向量數據的映射關係,通過計算幾個或者多個不同的向量的差異的大小,來計算文本的相似度。下面介紹一個詳細成熟的向量空間餘弦相似度方法計算相似度

向量空間餘弦相似度(Cosine Similarity)

餘弦相似度用向量空間中兩個向量夾角的餘弦值作爲衡量兩個個體間差異的大小。餘弦值越接近1,就表明夾角越接近0度,也就是兩個向量越相似,這就叫”餘弦相似性”。
這裏寫圖片描述

上圖兩個向量a,b的夾角很小可以說a向量和b向量有很高的的相似性,極端情況下,a和b向量完全重合。如下圖:
這裏寫圖片描述

如上圖二:可以認爲a和b向量是相等的,也即a,b向量代表的文本是完全相似的,或者說是相等的。如果a和b向量夾角較大,或者反方向。如下圖
這裏寫圖片描述

如上圖三: 兩個向量a,b的夾角很大可以說a向量和b向量有很底的的相似性,或者說a和b向量代表的文本基本不相似。那麼是否可以用兩個向量的夾角大小的函數值來計算個體的相似度呢?

向量空間餘弦相似度理論就是基於上述來計算個體相似度的一種方法。下面做詳細的推理過程分析。

想到餘弦公式,最基本計算方法就是初中的最簡單的計算公式,計算夾角θ的餘弦定值公式爲:
這裏寫圖片描述
這裏寫圖片描述

但是這個是隻適用於直角三角形的,而在非直角三角形中,餘弦定理的公式是
這裏寫圖片描述

三角形中邊a和b的夾角 的餘弦計算公式爲:
這裏寫圖片描述

在向量表示的三角形中,假設a向量是(x1, y1),b向量是(x2, y2),那麼可以將餘弦定理改寫成下面的形式:
這裏寫圖片描述

向量a和向量b的夾角 的餘弦計算如下
這裏寫圖片描述

擴展,如果向量a和b不是二維而是n維,上述餘弦的計算法仍然正確。假定a和b是兩個n維向量,a是 ,b是 ,則a與b的夾角 的餘弦等於:
這裏寫圖片描述

餘弦值越接近1,就表明夾角越接近0度,也就是兩個向量越相似,夾角等於0,即兩個向量相等,這就叫”餘弦相似性”。

總結:

其實只要知道餘弦定理餘弦值的計算公式,然後轉化爲空間中的兩個向量後,直接就能代入餘弦定理來得到對應的餘弦值,畢竟你知道兩個向量的座標,也就意味着你知道了餘弦定理公式中三角形的三條邊a、b、c的值。
參考:https://blog.csdn.net/u012160689/article/details/15341303

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章