相似项发现-minhash

本文介绍了相似项发现中的重要算法,包括Broder的shingling算法和Charikar的simhash算法。详细阐述了minhash方法的基本思想和计算Jaccard相似度的过程,以及simhash方法的签名计算过程,这些方法常用于大规模数据的相似度计算,如文档相似度检测和协同过滤。
摘要由CSDN通过智能技术生成

相似项发现中两个重要算法:

Broder提出的shingling算法和Charikar的simhash算法

shingle算法的核心思想是为每个文件提取组特征值,以特征值集合来计算相似性,从而降低空间和计算复杂性来提高性能。


相似项数据检测算法大致流程如下:

(1)将数据段分解成一组shingle(即子序列或数据块),可以采用定长、变长、单词或段落(文本文件)等分块算法;

(2)为了降低空间和时间计算复杂性,可以对shingle集合进行抽样,比如Min-Wise,Modm,Mins方法;

(3)基于选定的shingle集合为数据文件提取特征,通常是为每个shingle计算hash值组成的序列作为特征值;

(4)为了降低空间和时间计算复杂性,可以对文件特征进行降维处理,比如simhash和bloom filter;

(5)基于文件特征计算两个数据对象之间的相似性,计算方法有Cosine、Overlap、Dice、Jaccard或Hamming距离。


相似项发现中两个重要技术:

1 最小哈希(minhashing):对大集合进行压缩,并且居于压缩后的结果推导原始集合的相似项。

2 局部敏感哈希(Locality Sensitive Hashing, 简称LSH):能够把搜索范围集中在可能相似的项对上面。


紧邻搜索的应用

相似度概念:通过计算交集的相对大小来获得集合之间的相似度。这种相似度成为Jaacard相似度。

相似度查找的具体应用包括内容相似的文档查找及协同过滤中相似顾客和相似产品的查找。


在大语料库中寻找文本内容相似的文档采用Jaccard相似度(字面上的相似而非意义上的相似)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值