simHash 文档指纹去重算法

simHash 文档指纹去重算法,第1张

参考论文来源 《Similarity estimation techniques from rounding algorithms》 。 介绍下这个算法主要原理,为了便于理解尽量不使用数学公式,分为这几步(标准做法):

完整的算指纹的算法:

按照这种市面上的通用做法,传入的map 可以是无序的

有一个小问题提请注意

直接用 1<<n 得到 2 的n 次方到31次方以上就会兆铅超出int 的取值范围,

运算时直接用 (long)1<<n 或者 1l <<n 就行了

所以 nlp-cn 的算法可以简化如下:

两种方式的比较:

这里先引入一个概念: 抽屉原理

假设我们要寻找海明距离3以内的数值,根据抽屉原理,只要我们将整个64位的二进制串划分为4块,无论如何,匹配的两个simhash code之间 至少 有一块区域是完全相同的,如下图所示:

由于我们无法事先得知完全亏猜启相同的是哪一块区域,因此我们必须采用存储多份table的方式。在本例的情况下,我们需要存储4份table,并将64位的simhash code等分成4份;对于每一个输入的code,我们通过精确匹配的方式,查找前16位相同的记录作为候选记录,如下图所示:

让我们来总结一下上述算法的实质:

假定我们最大判重海明销如距离为MAX_HD

1、将64位的二进制串等分成MAX_HD+1块

2、PUT *** 作:调整上述64位二进制,将任意一块作为前16位,总共有MAX_HD+1种组合,生成MAX_HD+1份table

3、GET *** 作:采用精确匹配的方式在MAX_HD+1份table中查找前16位,若找不到,说明不重复,做PUT *** 作;若找到了,则对剩余链做海明距离计算。

4、如果样本库中存有2^34 (差不多10亿)的哈希指纹,则每个table返回2^(34-16)=262144个候选结果,大大减少了海明距离的计算成本

为何要分桶?

两个字符串通过SimHash码和海明距离比较好判断是否相似,假设计算海明距离的时间为基本 *** 作时间。如果有海量的数据,一一比较计算的次数为 1 + 2 + 3 + ......+ n ,时间复杂度为 O(n^2) 级别。这样的时间复杂度肯定是不能接受的。

构建索引

将SimHashCode添加到索引

查询与索引库中比较的最近的海明距离

其中 bit[n] = 2^n ,索引降低比较时算法时间复杂度的方法是

将SimHashCode 比特位分成8段

其实这里也是用上了抽屉原理的,各位看官自己思考下吧。

分词 -->另写一篇博客说明

需要说明的一点: 分词的时候需要去掉停用词等噪音词,分词是该算法特征抽取的关键一步。

您好!

作用与目的相罩核瞎同都是为了进行加密,更好的保护平台,SSL安全哈希算法,是数字签名算法标准,所以无论您在哪里注册无论多少价格的证书,其算法基本上都是相同的!

申请SSL证书为考虑到浏览器兼容性,保持更多的浏览器可以访问,通常采取加密算法:RSA 2048 bits,签名算法:SHA256WithRSA,该算法被公认使用,就是百度也使用该算法!

RSA加密算法:公钥用于对数据进行加密,私钥用于对数据进行解密。

RSA签名算物空法:在签名算法中,私钥用于对数据进行签名,公钥用于对签名进行验证。

加密算法分为两大类:1、对称加密算法  2、非对称加密算法。

由于计算能力的飞速发展,从安全性角度考虑,很多加密原来SHA1WithRSA签名算法的基础上,新增了支持SHA256WithRSA的签名算法。该算法在摘要算氏如法上比SHA1WithRSA有更强的安全能力。目前SHA1WithRSA的签名算法会继续提供支持,但为了您的应用安全,强烈建议使用SHA256WithRSA的签名算法。

是因为服务器存在一样的文件,所以秒传,原理如下:

1. 在文件上裤祥传之滚庆初,将本地文件进行HASH计算,得出文件指纹;

2.将文件指纹数据上传到服务器;

3.服务端将文件指纹和现存的文件指纹进行比对,并返回比对结果给客户端;

4.客户端获取比对结果;

5. 如果是比对成功,则说明服务端已经有同样的文件存在,则直接将文件名和指纹及文件标识符一并上传到服务端,而服务端在接受到之后,只是将文件名存放在客户的大纯握名下,文件则是映射到原有文件的路径中,返回秒传成功信息;

6.如果比对不成功,就变得和普通上传并无二致,老老实实的通过HTTP的方式,将文件1比特,1比特的上传到服务端。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12205130.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存