在数据采集及大数据处理的时候,数据排重、相似度计算是很重要的一个环节,由此引入相似度计算算法。常用的方法有几种:最长公共子串(基于词条空间)、最长公共子序列(基于权值空间、词条空间)、最少编辑距离法(基于词条空间)、汉明距离(基于权值空间)、余弦值(基于权值空间)等,今天我们着重介绍最后两种方式。余...
分类:
编程语言 时间:
2014-12-25 01:23:26
阅读次数:
506
SimHash算法:simhash算法的输入是一个向量,输出是一个 f 位的签名值。为了陈述方便,假设输入的是一个文档的特征集合,每个特征有一定的权重。比如特征可以是文档中的词,其权重可以是这个词出现的次数。 simhash 算法如下:1,将一个 f 维的向量 V 初始化为 0 ; f 位的二进制数...
分类:
编程语言 时间:
2014-11-15 11:16:40
阅读次数:
167
一个牛人分享的,放在github上,用java实现,网络上还有很多用ruby写的https://github.com/commoncrawl/commoncrawl/blob/master/src/org/commoncrawl/util/shared/SimHash.java
分类:
编程语言 时间:
2014-10-29 00:08:37
阅读次数:
187
通过?采集系统?我们采集了大量文本数据,但是文本中有很多重复数据影响我们对于结果的分析。分析前我们需要对这些数据去除重复,如何选择和设计文本的去重算法?常见的有余弦夹角算法、欧式距离、Jaccard相似...
分类:
其他好文 时间:
2014-09-30 14:59:10
阅读次数:
166
一、Simhash简介 SimHash是用来网页去重最常用的hash方法,速度很快。Google采用这种算法来解决万亿级别的网页去重任务。 SimHash算法的主要思想是降维。将高维的特征向量映射成一个低维的特征向量,通过两个向量...
分类:
其他好文 时间:
2014-08-18 12:43:55
阅读次数:
249
抓取的网页内容中,有大部分会是相似的,抓取时就要过滤掉,开始考虑用VSM算法,后来发现不对,要比较太多东西了,然后就发现了simHash算法,这个算法的解释我就懒得copy了,simhash算法对于短数据的支持不好,但是,我本来就是很长的数据,用上! 源码实现网上也有不少,但是貌似都是同样的,...
分类:
Web程序 时间:
2014-08-17 23:59:23
阅读次数:
709
最近调研了一下simhash算法,它主要用在谷歌网页去重中,网上有很多原理性的介绍。既然可以用来判断文件的相似性,就想知道效果怎么样,simhash的精确度是否依赖于分词算法?是否和simhash的长度有关?
在数据去重过程中,都是先对文件进行分块,而后得到关于这个文件的所有指纹(SHA-1 digest),那么如果把这些fingerprints视为这个文件的单词,作为simhash的输入,效果...
分类:
其他好文 时间:
2014-07-11 08:33:56
阅读次数:
217
simhash是google用来处理海量文本去重的算法。 google出品,你懂的。 simhash最牛逼的一点就是将一个文档,最后转换成一个64位的字节,暂且称之为特征字,然后判断重复只需要判断他们的特征字的距离是不是 110001这个就很简单啦,正1负0。到此,如何从一个doc到一个simhas...
分类:
其他好文 时间:
2014-06-15 22:11:57
阅读次数:
239
短文本合并重复(去重)的简单有效做法 - 旁观者 -
博客园短文本合并重复(去重)的简单有效做法SimHash算法 - ACdreamer - 博客频道 - CSDN.NET SimHash算法
分类:
其他好文 时间:
2014-06-11 22:41:40
阅读次数:
267
今天要研究的问题是如何计算两个文本的相似度。正如上篇文章描述,计算文本的相似度在工程中有着重要的应用,
比如文本去重,搜索引擎网页判重,论文的反抄袭,ACM竞赛中反作弊等等。
上篇文章介绍的SimHash算法是比较优秀的文档判重算法,它能处理海量文本的判重,Google搜索引擎也正是用这
个算法来处理网页的重复问题。实际上,仅拿文本的相似度计算来说,有很多算法都能解决这个问题,并且都达...
分类:
其他好文 时间:
2014-06-02 15:15:39
阅读次数:
200