信息指纹:
任何信息 都可以对应一段不太长的随机数 只要算法设计得好,指纹就很难重复。
例如将网址(约100*8bit)映射成128bit
google 相似hash 查相同网页, 假定网页中有若干词t1 t2 t3,他们权重(tf idf)为为iew1,w2
第一步将八位二进制指纹扩展为八个实数,第二步将八个实数变为八位二进制数。
若信息指纹相似越高 则文章相似的可能性越大。
布隆过滤器:
用来解决识别垃圾邮件的问题,hash表太大了。例如将每个地址都对应成8字节的信息指纹,而三列表的存储效率为1/2,故一亿个地址大概需要1.6GB空间(16亿字节内存)
布隆过滤器只需要1/4或者1/8的内存,先建立16亿个比特位即两亿字节的向量,并清零。
将电子邮件x用八个不同的随机数生成器产生八个信息指纹,将其映射到1-16亿中的八个自然数中,将这八个位置都设置为1.
检测时,如果八个比特都为1,则判定其在名单中(有可能会产生误判)