2023年6月27日 上午 09:53:00
發表者:吳軍,google 研究員
[我們已經談過了
如何建立索引、
如何衡量網頁的質量(page rank)。我們今天談談如何確定乙個網頁和某個查詢的相關性。了解了這四個方面,乙個有一定程式設計基礎的讀者應該可以寫乙個簡單的搜尋引擎了,比如為您所在的學校或院系建立乙個小的搜尋引擎。]
我們還是看上回的例子,查詢關於「原子能的應用」的網頁。我們第一步是在索引中找到包含這三個詞的網頁(詳見關於
布林運算的系列)。現在任何乙個搜尋引擎都包含幾十萬甚至是上百萬個多少有點關係的網頁。那麼哪個應該排在前面呢?顯然我們應該根據網頁和查詢「原子能的應用」的相關性對這些網頁進行排序。因此,這裡的關鍵問題是如何度量網頁和查詢的相關性。
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 我們今天談談如何確定乙個網頁和某個查詢的相關性。了解了這四個方面,乙個有一定程式設計基礎的讀者應該可以寫乙個簡單的搜尋引擎了,比如為您所在的學校或院系建立乙個小的搜尋引擎。我們還是看上...
數學之美 系列九 如何確定網頁和查詢的相關性
2006年6月27日 上午 09 53 00 發表者 吳軍,google 研究員 我們已經談過了 如何建立索引 如何衡量網頁的質量 page rank 我們今天談談如何確定乙個網頁和某個查詢的相關性。了解了這四個方面,乙個有一定程式設計基礎的讀者應該可以寫乙個簡單的搜尋引擎了,比如為您所在的學校或院...