来自google blogspot的引文,
"In fact, we found even more than 1 trillion individual links, but not all of
them lead to unique web pages. Many pages have multiple URLs with exactly the same
content or URLs that are auto-generated copies of each other. Even after removing
those exact duplicates . . . "
Google如何检测确切的重复网页或文档?关于Google使用算法的任何想法吗?
答案 0 :(得分:1)
根据http://en.wikipedia.org/wiki/MinHash:
谷歌在2006年进行了大规模的评估[10] 比较Minhash和Simhash [11]算法的性能。 2007年 谷歌报道使用Simhash进行网络重复检测 抓取[12]并将Minhash和LSH用于Google新闻 个性化。[13]
搜索Simhash会显示此页面:
https://liangsun.org/posts/a-python-implementation-of-simhash-algorithm/
https://github.com/leonsim/simhash
引用了谷歌员工撰写的论文:Detecting near-duplicates for web crawling
<强>摘要:强>
近乎重复的网络文档非常丰富。两个这样的文件不同 在显示广告的很小一部分中相互之间, 例如。这种差异与网络搜索无关。所以 如果可以评估是否新增,则网络爬虫的质量会提高 已爬网的网页几乎是以前抓取过的网页的副本 或不。在开发近似重复的检测系统的过程中 对于数十亿页的存储库,我们进行了两项研究 贡献。首先,我们展示了Charikar的指纹识别 技术适合这个目标。其次,我们提出一个 用于识别现有f位指纹的算法技术 与最小k个位的给定指纹不同,对于小的 ķ。我们的技术对于在线查询都很有用(单一 指纹)和所有批量查询(多个指纹)。 对实际数据的实验评估证实了实用性 我们的设计。
另一篇Simhash论文:
http://simhash.googlecode.com/svn/trunk/paper/SimHashWithBib.pdf
答案 1 :(得分:0)
可能的解决方案
确切的方法
1)暴力:将每个新页面与所有访问过的页面进行比较(非常慢且效率低下)
2)计算每个访问页面的哈希值(md5,sha1)并将哈希值存储在数据库中并查找数据库中每个新页面的哈希值
3)标准布尔信息检索模型(BIR)
........许多其他可能的方法
接近确切的方法
1)模糊散列
2)潜在语义索引
...