SimHash , 用于文本的局部敏感哈希

来源:互联网 发布:拉爆淘宝首页流量 编辑:程序博客网 时间:2024/06/08 13:52

简介

1. min-wise independent permutations

2.SimHash

SimHash适用于 可以用若干个<特征,权重> 对来表示的样本, 如

object={<f1,w1>,...,<fm,wm>}(1)

f 为 feature, w 为 weight.
那么可以通过 SimHash 来得到它的 fingerpoint.
设定fingerpoint的维度d=64.

  1. 输入样本的特征,
    object={<f1,w1>,...,<fm,wm>}(2)
  2. 对每一个<f,w>, 作下列处理.
    a. 作传统的hash(f), 得到长度为 d 的二进制的哈希值h, h[i] 为它第i维的分量.
    b. 得到<f,w> 的fp(finger point), 它的维度也是 d, 计算逻辑为
    fp(f,w)[i]=indicator(h[i])w(3)
    , 其中
    indicator(x)={11x=1x=0
  3. 对各个<f,w> 的fingerpoint 加和, 得到 v⃗ :
    v(object)=i=1mfp(fi,wi)
  4. 对各个分量作0-1转化.
    fp(object)[i]=sign(v(object)[i])

    , 其中
    sign(x)={10x>0x<0

    下面以文档的SimHash为例, 给出一个流程图:


图 2-1 SimHash 原理(feature 就是关键词, w就可以理解为词频)

参考

  1. simhash was developed by Moses Charikar and is described in his paper, Simhash Princeton Univ. Paper
  2. Simhash explained
  3. 百度文库, 基于minwise哈希的文档复制检测的研究及应用
原创粉丝点击