2011-04-30 56 views
5

我有时听说过在信息检索,搜索引擎,爬虫等方面我们可以通过散列页面内容来检测重复页面。什么样的散列函数能够散列整个网页(至少有2个页面),这样2个副本具有相同的散列输出值?什么是典型的散列输出值的大小?网页整个内容的哈希是如何工作的?

这样的哈希函数是否可以将2个类似的网页与轻微的错别字等放在同一个桶中?

感谢,

回答

8

任何哈希函数,给定两个输入xy s.t. x = y,将根据定义返回相同的值。但是,如果你要正确地做这种重复检测的,你需要或者:

  • 强加密散列函数,如MD5,SHA-1或SHA-512,这将几乎永远映射两种不同的页面相同的值,所以你可以假设一个相等的散列值意味着相等的输入,或者如果你想检测接近重复的东西,那么
  • a locality sensitive hash function

使用哪一个确实取决于您的需求;加密哈希在近似重复检测中是无用的,因为它们被设计为将近似重复映射到非常不同的值。

1

我认为你正在寻找模糊散列其中只有文档的部分被散列,而不是整个文件一次。