大规模网页去重系统的简单设计和实现

    网页去重算法应用到了很多领域,例如:spam,推荐系统等,目前工作中需要用到网页的去重算法,量级大概是每天60W左右,但是由于是线上的系统,对系统能快速查找重复文章的性能要求较高,这里简单记下我们的思路和方法。

    算法调研:其实网页去重算法本质上都是提取网页的特征集合,然后根据这些特征来计算网页的相似度,我们主要调研了以下两种方法:

    1.yahoo的shingle算法:来源于yahoo的一篇论文,算法主要是将文档计算成m个64bit整数,计算两篇文档中相同的整数的个数b,一般b=1的时候两篇文档就非常相似了。利用此算法构建的去重系统计算效率较低,1s可以计算300篇作用的文档,但是查重的效率很高,评估的准确率在98%左右。

    2.google的SImHash算法:之前找工作面试的时候看过这个算法,算法大概是:首先将文档转成特征的集合,并且特征都有一定的权重,然后利用lsh算法将特征转换为m位的fingerprint,最后计算每一个fingerprint的海明距离,一般m为64.这个算法计算fingerprint的效率很快,可以达到1的10倍以上,但是查询的效率很低,并且准确率不如1

    以上两种算法都需要对网页进行预处理,比如去除html标签,去除标点符号等,比较短的内容效果会比较差,建议采用MD5算法替代,1算法中正文理想中的长度大于66Bytes效果不错。

    系统设计:

        处理能力:算法计算效率:300~400篇文档/s,内存占用:1000W篇文档占用内存约50

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值