日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【通俗解释】余弦相似度

發(fā)布時(shí)間:2025/1/21 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【通俗解释】余弦相似度 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

對(duì)于多個(gè)不同的文本或者短文本對(duì)話消息要來(lái)計(jì)算他們之間的相似度如何,一個(gè)好的做法就是將這些文本中詞語(yǔ),映射到向量空間,形成文本中文字和向量數(shù)據(jù)的映射關(guān)系,通過(guò)計(jì)算幾個(gè)或者多個(gè)不同的向量的差異的大小,來(lái)計(jì)算文本的相似度。下面介紹一個(gè)詳細(xì)成熟的向量空間余弦相似度方法計(jì)算相似度

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

余弦相似度用向量空間中兩個(gè)向量夾角的余弦值作為衡量?jī)蓚€(gè)個(gè)體間差異的大小。余弦值越接近1,就表明夾角越接近0度,也就是兩個(gè)向量越相似,這就叫"余弦相似性"。

上圖兩個(gè)向量a,b的夾角很小可以說(shuō)a向量和b向量有很高的的相似性,極端情況下,a和b向量完全重合。如下圖:

如上圖二:可以認(rèn)為a和b向量是相等的,也即a,b向量代表的文本是完全相似的,或者說(shuō)是相等的。如果a和b向量夾角較大,或者反方向。如下圖

如上圖三: 兩個(gè)向量a,b的夾角很大可以說(shuō)a向量和b向量有很底的的相似性,或者說(shuō)a和b向量代表的文本基本不相似。那么是否可以用兩個(gè)向量的夾角大小的函數(shù)值來(lái)計(jì)算個(gè)體的相似度呢?

向量空間余弦相似度理論就是基于上述來(lái)計(jì)算個(gè)體相似度的一種方法。下面做詳細(xì)的推理過(guò)程分析。

想到余弦公式,最基本計(jì)算方法就是初中的最簡(jiǎn)單的計(jì)算公式,計(jì)算夾角

?

圖(4)

的余弦定值公式為:

但是這個(gè)是只適用于直角三角形的,而在非直角三角形中,余弦定理的公式是

圖(5)

三角形中邊a和b的夾角 的余弦計(jì)算公式為:

公式(2)

在向量表示的三角形中,假設(shè)a向量是(x1, y1),b向量是(x2, y2),那么可以將余弦定理改寫(xiě)成下面的形式:

圖(6)

向量a和向量b的夾角 的余弦計(jì)算如下

?

擴(kuò)展,如果向量a和b不是二維而是n維,上述余弦的計(jì)算法仍然正確。假定a和b是兩個(gè)n維向量,a是 ?,b是 ?,則a與b的夾角 的余弦等于:

余弦值越接近1,就表明夾角越接近0度,也就是兩個(gè)向量越相似,夾角等于0,即兩個(gè)向量相等,這就叫"余弦相似性"。

【下面舉一個(gè)例子,來(lái)說(shuō)明余弦計(jì)算文本相似度】

????舉一個(gè)例子來(lái)說(shuō)明,用上述理論計(jì)算文本的相似性。為了簡(jiǎn)單起見(jiàn),先從句子著手。

  ???????句子A:這只皮靴號(hào)碼大了。那只號(hào)碼合適

句子B:這只皮靴號(hào)碼不小,那只更合適

怎樣計(jì)算上面兩句話的相似程度?

基本思路是:如果這兩句話的用詞越相似,它們的內(nèi)容就應(yīng)該越相似。因此,可以從詞頻入手,計(jì)算它們的相似程度。

第一步,分詞

句子A:這只/皮靴/號(hào)碼/大了。那只/號(hào)碼/合適。

句子B:這只/皮靴/號(hào)碼/不/小,那只/更/合適。

第二步,列出所有的詞。

這只,皮靴,號(hào)碼,大了。那只,合適,不,小,很

第三步,計(jì)算詞頻。

句子A這只1,皮靴1,號(hào)碼2,大了1。那只1,合適1,不0,小0,更0

句子B這只1,皮靴1,號(hào)碼1,大了0。那只1,合適1,不1,小1,更1

第四步,寫(xiě)出詞頻向量。

  句子A:(1,1,2,1,1,1,0,0,0)

  句子B:(1,1,1,0,1,1,1,1,1)

到這里,問(wèn)題就變成了如何計(jì)算這兩個(gè)向量的相似程度。我們可以把它們想象成空間中的兩條線段,都是從原點(diǎn)([0, 0, ...])出發(fā),指向不同的方向。兩條線段之間形成一個(gè)夾角,如果夾角為0度,意味著方向相同、線段重合,這是表示兩個(gè)向量代表的文本完全相等;如果夾角為90度,意味著形成直角,方向完全不相似;如果夾角為180度,意味著方向正好相反。因此,我們可以通過(guò)夾角的大小,來(lái)判斷向量的相似程度。夾角越小,就代表越相似。

使用上面的公式(4)

?

計(jì)算兩個(gè)句子向量

句子A:(1,1,2,1,1,1,0,0,0)

和句子B:(1,1,1,0,1,1,1,1,1)的向量余弦值來(lái)確定兩個(gè)句子的相似度。

計(jì)算過(guò)程如下:

計(jì)算結(jié)果中夾角的余弦值為0.81非常接近于1,所以,上面的句子A和句子B是基本相似的

由此,我們就得到了文本相似度計(jì)算的處理流程是:

????(1)找出兩篇文章的關(guān)鍵詞;

 (2)每篇文章各取出若干個(gè)關(guān)鍵詞,合并成一個(gè)集合,計(jì)算每篇文章對(duì)于這個(gè)集合中的詞的詞頻

 (3)生成兩篇文章各自的詞頻向量;

 (4)計(jì)算兩個(gè)向量的余弦相似度,值越大就表示越相似。


參考文章:http://blog.sina.com.cn/s/blog_4a6b27a30102vbr0.html


總結(jié)

以上是生活随笔為你收集整理的【通俗解释】余弦相似度的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。