數學之美 系列九 如何確定網頁和查詢的相關性

2021-04-13 11:58:01 字數 1138 閱讀 4238

2023年6月27日 上午 09:53:00

發表者:吳軍,google 研究員

我們還是看上回的例子,查詢關於「原子能的應用」的網頁。我們第一步是在索引中找到包含這三個詞的網頁(詳見關於布林運算的系列)。現在任何乙個搜尋引擎 都包含幾十萬甚至是上百萬個多少有點關係的網頁。那麼哪個應該排在前面呢?顯然我們應該根據網頁和查詢「原子能的應用」的相關性對這些網頁進行排序。因 此,這裡的關鍵問題是如何度量網頁和查詢的相關性。

tf1 + tf2 + ... + tfn。

讀者可能已經發現了又乙個漏洞。在上面的例子中,詞「的」站了總詞頻的 80% 以上,而它對確定網頁的主題幾乎沒有用。我們稱這種詞叫「應刪除詞」 (stopwords),也就是說在度量相關性是不應考慮它們的頻率。在漢語中,應刪除詞還有「是」、「和」、「中」、「地」、「得」等等幾十個。忽略這 些應刪除詞後,上述網頁的相似度就變成了0.007,其中「原子能」貢獻了 0.002,「應用」貢獻了 0.005。

細心的讀者可能還會發現另乙個小的漏洞。在漢語中,「應用」是個很通用的詞,而「原子能」是個很專業的詞,後者在相關性排名中比前者重要。因此我們需要給漢語中的每乙個詞給乙個權重,這個權重的設定必須滿足下面兩個條件:

1. 乙個詞**主題能力越強,權重就越大,反之,權重就越小。我們在網頁中看到「原子能」這個詞,或多或少地能了解網頁的主題。我們看到「應用」一次,對主題基本上還是一無所知。因此,「原子能「的權重就應該比應用大。

2. 應刪除詞的權重應該是零。

則只有 0.7。也就只說,在網頁中找到乙個「原子能」的比配相當於找到九個「應用」的匹配。利用 idf,上述相關性計算個公式就由詞頻的簡單求和變成 了加權求和,即 tf1*idf1 + tf2*idf2 +... + tfn*idfn。在上面的例子中,該網頁和「原子能的應用」的相關性為  0.0161,其中「原子能」貢獻了 0.0126,而「應用」只貢獻了0.0035。這個比例和我們的直覺比較一致了。

現在的搜尋引擎對 tf/idf 進行了不少細微的優化,使得相關性的度量更加準確了。當然,對有興趣寫乙個搜尋引擎的愛好者來講,使用 tf/idf  就足夠了。 如果我們結合上網頁排名(page rank),那麼給定乙個查詢,有關網頁綜合排名大致由相關性和網頁排名乘積決定。

數學之美(系列九) 之 如何確定網頁和查詢的相關性

2006年6月27日 上午 09 53 00 發表者 吳軍,google 研究員 我們已經談過了 如何建立索引 如何衡量網頁的質量 page rank 我們今天談談如何確定乙個網頁和某個查詢的相關性。了解了這四個方面,乙個有一定程式設計基礎的讀者應該可以寫乙個簡單的搜尋引擎了,比如為您所在的學校或院...

數學之美 系列九 如何確定網頁和查詢的相關性

數學之美 系列九 如何確定網頁和查詢的相關性 我們已經談過了 如何建立索引 如何衡量網頁的質量 page rank 我們今天談談如何確定乙個網頁和某個查詢的相關性。了解了這四個方面,乙個有一定程式設計基礎的讀者應該可以寫乙個簡單的搜尋引擎了,比如為您所在的學校或院系建立乙個小的搜尋引擎。我們還是看上...

數學之美 系列九 如何確定網頁和查詢的相關性

2006年6月27日 上午 09 53 00 發表者 吳軍,google 研究員 我們已經談過了 如何建立索引 如何衡量網頁的質量 page rank 我們今天談談如何確定乙個網頁和某個查詢的相關性。了解了這四個方面,乙個有一定程式設計基礎的讀者應該可以寫乙個簡單的搜尋引擎了,比如為您所在的學校或院...