目 录
布隆过滤器(BloomFilter)
Simhash
Minhashing
局部敏感哈希(Local Sensitive Hashing)
前言:接上文,本篇所讲的两种哈希算法:minhashing和局部敏感哈希(LSH)是一类哈希的思路,可以用来在海量数据中查找相似的短语、句子、文档。
4Minhashing
Minhashing主要适用于匹配词、句等相对较短的内容的匹配。Minhashing的基本思想近似于对数据做特征映射:将原数据按照一定的规则抽取出固定大小的特征,由抽取的特征判断数据间的相似程度。一般认为,特征化的数据比原数据更易执行匹配操作。
接下来,我们来看下minhashing是如何完成从原始数据到数据特征的转换,并保持数据间的相似信息。
Step 1.对原数据进行切分;
对数据的切分一般会依据不同的任务而做不同的设置。例如,在对单词做相似度匹配时,可以采用k-shingles方法:对一个长度为n的字符串,设置一个长度为k(k
图3 k-shingles示例(k=2)
Step 2.用切分所得的数据集合对原数据进行标注;
用一个简单的例子展示该步骤。我们取1-shingle情况,对4个字符串(“ad”,“c”,“bed”,“adc”)进行切分(step 1操作),得到集合S1={a,d}, S2={c}, S3={b,d,e}, S4={a,c,d}。则标注后的数据为