编程语言
首页 > 编程语言> > 局部敏感哈希算法

局部敏感哈希算法

作者:互联网

*局部敏感哈希(Locality Sensitive Hashing,LSH)

*该算法是一种衡量文本相似度的算法,下面介绍一下这个算法的主要思想。
假设我们有三段文本:
1,我爱你中国。
2,我爱北京天安门。
3,我爱吃苹果
一,分词,形成如下矩阵:
文本 1 文本 2 文本 3
我 1 1 1
爱 1 1 1
你 1 0 0
中国 1 0 0
北京 0 1 0
天安门 0 1 0
吃 0 0 1
苹果 0 0 1
二,打乱行顺序,找到第一个不为0的行号,记录下来,打乱n次,记录一个长度为n的向量。
三,将我们的向量分成n段,放入n个桶中。
分段的原因是,让不同的文本有机会分到同一个桶当中。
四,api写法

  val brpls = new BucketedRandomProjectionLSH()
    brpls.setInputCol("features")
    brpls.setOutputCol("hashes")
    //桶个数
    brpls.setBucketLength(10.0)
    val model = brpls.fit(train)


标签:val,打乱,brpls,敏感,算法,哈希,文本
来源: https://blog.csdn.net/chenxiao19921018/article/details/113797199