新闻去重算法的设计和实现

这篇博客介绍了新闻去重算法的实现细节,包括基于Yahoo Shingle算法的客户端和服务端接口设计,以及如何利用Thrift进行跨语言通信。客户端使用Java实现,服务端提供了计算Shingle和检查重复文档的接口。同时,文中提到了算法的限制和可能的优化方案,如对于正文太短的情况,可以考虑使用MD5计算hash。
摘要由CSDN通过智能技术生成

    之前有介绍过大规模去重算法的设计,可惜没有办法付诸实现,主要是因为没有相应的应用场景,还是停留在纸上谈兵的阶段!这里简单的介绍下新闻去重算法的实现,客户端在基于yahoo shingle算法的基础上进行了封装,便于采用服务的方式来进行调用,这样比较容易进行复用和提高扩展性,利用thrift来进行跨语言的通信,客户端采用Java实现,原有的设计是服务端既提供计算的接口,即根据文本计算它的shingles,又可以在后端提供去重的服务,即根据文档内容查看这个文档和哪些文档内容重复。客户端可以只调用计算shingle的接口在客户端做去重的服务,thrift的接口定义如下:


    在原有代码的基础上,增加了两个函数,分别用来以字符串和长整形数组来返回文档的shingles,代码如下:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值