Sinhash文档排重

Simhash理论

首先,hash算法是将对象映射成一个哈希值,当两个对象完全相同时,会有相同的哈希值。
类似的,在自然语言处理中,如果两个文章也可以映射成hash值,如果两个文章具有相似的内容,哈希值也应该相似,这就是simhash算法的思想。
simhash是一种能计算文档相似度的hash算法。具体做法是:
1.通过simhash将一篇文章映射成64bit。
2.比较两篇文章的64bit的海明距离,就能知道文章的相似程度。
3.若两篇文章的海明距离<=K,可认为这两篇文章很相近,可认为它们是重复的文章。

对于海量文档排重:将所有文章都表示成64bit simhash值,搜索和当前文档相差小于K位的文档,即可判定为重复文档。

海明距离

两个码字的对应比特取值不同的比特数称为这两个码字的海明距离。 一个有效编码集中, 任意两个码字的海明距离的最小值称为该编码集的海明距离。
举例如下:
1 0 1 0 1
0 0 1 1 0
海明距离的计算取相同位置的异或关系,对应位置相同则为1,不同则为0。
从第一位开始依次有第一位、第四、第五位不同,则海明距离为 3.

simhash过程

在这里插入图片描述

实验过程

  1. 清洗文本,去除停用词等。
  2. 选择权重最高的top10个关键词作为文本特征并按权重高低排序。
keyWord = jieba.analyse.extract_tags(
            '|'.join(content), topK=10, withWeight=True, allowPOS=())
  1. 对其中的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值