simhash用来进行海量文本近似去重的mapreduce版本

翻译 2011年03月03日 20:53:00

 

其实这个内容和原来的文章是放在一起的,但之前只看了Online版,后来才看的batch版。发现其实batch版本更有意思且更适用。

online版可以看我博客里的翻译:

 

http://blog.csdn.net/lgnlgn/archive/2010/11/14/6008498.aspx

 

简单介绍一下simhash和mapreduce吧

simhash用来近似计算文本之间的相似度实际上就是考察两个fingerprint的汉明距离,汉明距离小于阈值的就认为相似文本。

那么在海量文本中近似查重问题就是海量指纹中如何快速确定是否存在汉明距离小于阈值的指纹。

online版的算法做了空间与时间的折中,将指纹集复制多份,对待查的指纹在每份集合中 查找出一部分指纹精确相同的一批指纹,然后对这一批指纹挨个检查汉明距离。复制得越多,挨个检查的需要就越小。每份指纹集的查询采用并行的方式提高效率。

 

mapreduce是一个分布式计算框架,目前网上的介绍也很多了,用最简单的方式可以描述成:

map: (K1,V1) ➞ list(K2,V2)

reduce: (K2,list(V2)) ➞ list(K3,V3)

 

 

在batch版本中,需要对一批指纹M(比如100万)在80亿个指纹S中进行检查,

 

100W个指纹约为8MB,80亿个指纹有64G,

海量的指纹集在分布式文件系统中会被切开成很多份(一般每份64M)

 

mapper中,将M排序,并复制多份,对S进行遍历,每条指纹按online版的方式进行查重, 如果找到了,就返回M中对应哪条指纹

reduce的时候把这些重复的指纹收集起来就行了

 

由于M并不大 在分布式系统中分发并不会造成网络瓶颈,而且M不大 因此可以在内存中复制多份。

 

 整个mapreduce的过程非常简单~这个算法也算是学习mapreduce的一个好例子了~

 另外simhash这篇论文涉及了查找、压缩、空间时间折中,是一篇非常值得细读的文章。

simhash用来进行海量文本近似去重的mapreduce版本

其实这个内容和原来的文章是放在一起的,但之前只看了Online版,后来才看的batch版。发现其实batch版本更有意思且更适用。 online版可以看我博客里的翻译: http://bl...

使用SimHash进行海量文本去重

阅读目录 1. SimHash与传统hash函数的区别 2. SimHash算法思想 3. SimHash流程实现 4. SimHash签名距离计算 5. SimHash存储和索引 ...

simhash进行文本查重

有1亿个不重复的64位的01字符串,任意给出一个64位的01字符串f,如何快速从中找出与f汉明距离小于3的字符串?   大规模网页的近似查重 主要翻译自WWW07的Detecting Near-Dup...

simhash进行文本查重

有1亿个不重复的64位的01字符串,任意给出一个64位的01字符串f,如何快速从中找出与f汉明距离小于3的字符串?   大规模网页的近似查重 主要翻译自WWW07的 Detecting Near...

海量数据文本相似度解决方式SimHash+分词方法+基于内容推荐算法

之前找实习的时候被问到海量数据文本相似度怎么解决,当时很懵,在面试官的引导下说出了hash table+排序的方法(是的,我总能智障出新花样),当时想的是先做分词再做哈希,然后对标记哈希后的词(这时已...
  • sylar49
  • sylar49
  • 2017年07月19日 15:04
  • 374

海量数据去重之SimHash算法简介和应用

SimHash是什么 SimHash是Google在2007年发表的论文《Detecting Near-Duplicates for Web Crawling 》中提到的一种指纹生成算法或者叫指纹提...

海量数据去重之SimHash算法简介和应用

海量数据去重之SimHash算法简介和应用

海量数据去重之SimHash算法简介和应用

SimHash是什么 SimHash是Google在2007年发表的论文《Detecting Near-Duplicates for Web Crawling 》中提到的一种指纹生成算法或者叫指纹提取...

[MapReduce进行密集文本数据处理]

  • 2011年12月21日 09:43
  • 1.17MB
  • 下载

文本分析--simhash算法进行文本相似度判断

simhash算法分析:文本相似度算法:1、TF-IDF:TF(词频),IDF(逆词频)利用tf-idf得到一个词语的权重,来计算一篇文章的关键词2、simhash:局部敏感hash局部敏感:A、B具...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:simhash用来进行海量文本近似去重的mapreduce版本
举报原因:
原因补充:

(最多只允许输入30个字)