2011-04-30 24 views
5

我有時聽說過在信息檢索,搜索引擎,爬蟲等方面我們可以通過散列頁面內容來檢測重複頁面。什麼樣的散列函數能夠散列整個網頁(至少有2個頁面),這樣2個副本具有相同的散列輸出值?什麼是典型的散列輸出值的大小?網頁整個內容的哈希是如何工作的?

這樣的哈希函數是否可以將2個類似的網頁與輕微的錯別字等放在同一個桶中?

感謝,

回答

8

任何哈希函數,給定兩個輸入xy s.t. x = y,將根據定義返回相同的值。但是,如果你要正確地做這種重複檢測的,你需要或者:

  • 強加密散列函數,如MD5,SHA-1或SHA-512,這將幾乎永遠映射兩種不同的頁面相同的值,所以你可以假設一個相等的散列值意味着相等的輸入,或者如果你想檢測接近重複的東西,那麼
  • a locality sensitive hash function

使用哪一個確實取決於您的需求;加密哈希在近似重複檢測中是無用的,因爲它們被設計爲將近似重複映射到非常不同的值。

1

我認爲你正在尋找模糊散列其中只有文檔的部分被散列,而不是整個文件一次。