新闻去重算法的设计和实现
来源:互联网 发布:windows.old 1 删不掉 编辑:程序博客网 时间:2024/06/07 00:58
之前有介绍过大规模去重算法的设计,可惜没有办法付诸实现,主要是因为没有相应的应用场景,还是停留在纸上谈兵的阶段!这里简单的介绍下新闻去重算法的实现,客户端在基于yahoo shingle算法的基础上进行了封装,便于采用服务的方式来进行调用,这样比较容易进行复用和提高扩展性,利用thrift来进行跨语言的通信,客户端采用Java实现,原有的设计是服务端既提供计算的接口,即根据文本计算它的shingles,又可以在后端提供去重的服务,即根据文档内容查看这个文档和哪些文档内容重复。客户端可以只调用计算shingle的接口在客户端做去重的服务,thrift的接口定义如下:
在原有代码的基础上,增加了两个函数,分别用来以字符串和长整形数组来返回文档的shingles,代码如下:
客户端调用的代码如下所示:
以上是去重的主要代码,应该都可以直接运行的,代码放在news-duplicated上面,通过将文章计算成n个shingles, 如果有一个shingle重复,这篇文章与其它文章重复的概率就非常大了,所以利用以上代码还是很方便的搭建一个去重系统的,前文提到该算法计算速度比较低,但是可以在计算上提高并发效率,剩下的就是查询的问题了,这个应该不是瓶颈,还有一个问题就是,太短的正文不适合采用这种算法,可以考虑用md5来计算hash。
0 0
- 新闻去重算法的设计和实现
- 大规模网页去重系统的简单设计和实现
- 新闻内容去重算法simhash实践
- 数组去重 算法实现
- Bloom Filter算法的Java实现(用于去重)
- 简单的去重算法
- 排序和去重--说说两个简单常用的算法
- 一组数据去重和排序的实现
- 文档去重算法:SimHash和MinHash
- 文档去重算法:SimHash和MinHash
- 文档去重算法:SimHash和MinHash
- 递归的全排列去重算法
- 算法:有序链表的去重
- 基于js 的数组去重算法
- 数组去重算法
- 去重算法(转)
- Java去重算法
- 去重算法
- 浅谈数据质量管理
- 杂记
- uva 11627
- 新浪微博Oauth2.0授权 获取Access Token以及API的使用
- Stanford - Cryptography I - Week 1-1 Programming Assignment
- 新闻去重算法的设计和实现
- service--取得运行的Activity
- Set Off
- php有点进入状态了
- 面试题:const、static、sizeof
- LaTeX的BibTeX引用网页的办法
- Linux环境下段错误的产生原因及调试方法小结
- Probably ResourceManager is not defined in the View【ASP.NET MVC4+EXT.NET配置常见错误】
- 图说微积分(八)极限