明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

搜索引擎判定相似文章頁(yè)面的原理大解析

[摘要]在上一篇文章中已經(jīng)詳細(xì)的介紹了利用TF-IDF算法自動(dòng)提取文章關(guān)鍵詞的原理。接下來(lái),我們?cè)賮?lái)研究一下另一個(gè)相關(guān)的問(wèn)題。這個(gè)問(wèn)題也是我們做 SEO的最關(guān)心的,有些時(shí)候,我們除了要明白如何找到并提取文...

  在上一篇文章中已經(jīng)詳細(xì)的介紹了利用TF-IDF算法自動(dòng)提取文章關(guān)鍵詞的原理。接下來(lái),我們?cè)賮?lái)研究一下另一個(gè)相關(guān)的問(wèn)題。這個(gè)問(wèn)題也是我們做 SEO的最關(guān)心的,有些時(shí)候,我們除了要明白如何找到并提取文章關(guān)鍵詞,我們還需要找到與原文章相似的其他文章。比如,我們平時(shí)在搜索引擎的新聞欄目下搜索某條新聞的時(shí)候,在主新聞下方,還提供了多條相似的新聞。如下圖所示:

搜索引擎判定相似文章網(wǎng)頁(yè)的原理大解析 三聯(lián)

  為了找出相似的文章,我們就需要用到另外一個(gè)公式原理了,那就是“余弦相似性(cosine similiarity)”。

  一、什么是"余弦相似性"?

  余弦相似性是指通過(guò)測(cè)量?jī)蓚(gè)向量?jī)?nèi)積空間的夾角的余弦值來(lái)度量它們之間的相似性。0度角的余弦值是1,而其他任何角度的余弦值都不大于1;并且其最小值是-1。從而兩個(gè)向量之間的角度的余弦值確定兩個(gè)向量是否大致指向相同的方向。兩個(gè)向量有相同的指向時(shí),余弦相似度的值為1;兩個(gè)向量夾角為90° 時(shí),余弦相似度的值為0;兩個(gè)向量指向完全相反的方向時(shí),余弦相似度的值為-1。在比較過(guò)程中,向量的規(guī)模大小不予考慮,僅僅考慮到向量的指向方向。余弦相似度通常用于兩個(gè)向量的夾角小于90°之內(nèi),因此余弦相似度的值為0到1之間。

  值得注意的是余弦相似度可以用在任何維度的向量比較中,它尤其在高維正空間中的利用尤為頻繁。例如在信息檢索中,每個(gè)詞條擁有不同的度,一個(gè)文檔是由一個(gè)由有權(quán)值的特征向量表示的,權(quán)值的計(jì)算取決于詞條在該文檔中出現(xiàn)的頻率。余弦相似度因此可以給出兩篇文檔其主題方面的相似度。

  二、搜索引擎是如何判定相似文章的?

  下面,馬海祥還是以舉例子的方式來(lái)說(shuō)明如何才能找出相似文章?

  為了簡(jiǎn)單起見(jiàn),我們先從句子著手。

  句子A: 我喜歡看電視,不喜歡看電影。

  句子B: 我不喜歡看電視,也不喜歡看電影。

  那么我們?cè)鯓硬拍苡?jì)算出上面兩句話的相似程度呢?

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

  第1步:分詞

  句子A:我/喜歡/看/電視,不/喜歡/看/電影。

  句子B:我/不/喜歡/看/電視,也/不/喜歡/看/電影。

  第2步:列出所有的詞

  我,喜歡,看,電視,電影,不,也。

  第3步:計(jì)算詞頻

  句子A:我 1,喜歡 2,看 2,電視 1,電影 1,不 1,也 0。

  句子B:我 1,喜歡 2,看 2,電視 1,電影 1,不 2,也 1。

  第4步:寫(xiě)出詞頻向量

  句子A:[1, 2, 2, 1, 1, 1, 0]

  句子B:[1, 2, 2, 1, 1, 2, 1]

  到這里,問(wèn)題就變成了如何計(jì)算這兩個(gè)向量的相似程度。

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

2

  以二維空間為例,上圖的a和b是兩個(gè)向量,我們要計(jì)算它們的夾角θ。余弦定理告訴我們,可以用下面的公式求得:

3
4

  假定a向量是[x1, y1],b向量是[x2, y2],那么馬海祥覺(jué)得就可以將余弦定理改寫(xiě)成下面的形式:

5
6

  數(shù)學(xué)家也已經(jīng)證明,余弦的這種計(jì)算方法對(duì)n維向量也成立。假定A和B是兩個(gè)n維向量,A是 [A1, A2, ..., An] ,B是 [B1, B2, ..., Bn] ,則A與B的夾角θ的余弦等于:

7

  使用這個(gè)公式,我們就可以得到,句子A與句子B的夾角的余弦,如下圖所示:

8

  余弦值越接近1,就表明夾角越接近0度,也就是兩個(gè)向量越相似,這就叫“余弦相似性”。所以,上面的句子A和句子B是很相似的,事實(shí)上它們的夾角大約為20.3度。

  由此,我們就得到了“找出相似文章”的一種算法:

  (1)使用TF-IDF算法,找出兩篇文章的關(guān)鍵詞;

  (2)每篇文章各取出若干個(gè)關(guān)鍵詞(比如20個(gè)),合并成一個(gè)集合,計(jì)算每篇文章對(duì)于這個(gè)集合中的詞的詞頻(為了避免文章長(zhǎng)度的差異,可以使用相對(duì)詞頻);

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

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

  馬海祥覺(jué)得“余弦相似度”也可能只是搜索引擎在文章相識(shí)度其中的一方面的算法,但的確也是一種非常有用的算法,而且就是在其他領(lǐng)域的,只要是計(jì)算兩個(gè)向量的相似程度,都可以利用這個(gè)原理。

  本文為馬海祥博客原創(chuàng)文章,如有轉(zhuǎn)載,請(qǐng)注明原文摘自于http://www.mahaixiang.cn/seoyjy/293.html,注明出處;否則,禁止轉(zhuǎn)載,謝謝配合!

搜索引擎優(yōu)化在國(guó)外發(fā)展迅速,國(guó)內(nèi)也有眾多的優(yōu)化愛(ài)好者。通過(guò)了解各類(lèi)搜索引擎抓取互聯(lián)網(wǎng)頁(yè)面、進(jìn)行索引以及確定其對(duì)特定關(guān)鍵詞搜索結(jié)果排名等技術(shù),來(lái)對(duì)網(wǎng)頁(yè)進(jìn)行相關(guān)的優(yōu)化,使其提高搜索引擎排名。