没有合适的资源?快使用搜索试试~ 我知道了~
2. 哈希算法 1. 文档处理 2. 构建分片集合 3. 构建哈希值集合 4. 提取特征指纹 5. 进行比较 1. Winnowing 算 法 的 原 始 论
资源详情
资源评论
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/86333120/bg1.jpg)
《用 Python 玩转数据》项目——文档相似性比较
相似性比较算法在许多领域有着重要应用。在剽窃检测方面,相似性比较算法可以帮助
检查抄袭;在代码管理方面,可以帮助查找大型代码的相似部分,以便进一步优化与修改;
在存储方面,可以帮助检测冗余,等等。
借助 Python,我们可以比较简单地实现一些复杂的相似性算法。
相似性比较算法有很多种类,这里介绍的 winnowing 算法基于 2003 年的一篇论文。
一、算法原理和背景知识
算法将文档划分为长度为 n 的连续字符串集合,对每个字符串分片进行哈希,并选择
一部分哈希值作为文档的指纹集合。在恰当选择哈希函数的前提下,当两个文档共享一个或
多个指纹时,它们很可能共享相同的文档分片。
1. n-gram 模型(n 元模型)
n 元模型是一种概率语言模型,是自然语言处理中一个非常重要的概念,常用于评估字
符串之间的差异程度或句子出现的可能性。n-gram 基于马尔科夫假设,即第 n 个词出现的
概率只与之前的(n-1)个词有关。
简单举例而言,一串字符“abcdefghijk”,它的 3-gram 表示如下:
abc bcd cde def … ijk
n-gram 的单元可以是字符或词汇。若以词汇为单元,则”… to be or not to be …”的 2-
gram 表示如下:
…, “to be”, “be or”, “or not”, “not to”, “to be”, …
在本应用中,对文档使用 n-gram 分割为一组子字符串集合,以方便进一步处理。
2. 哈希算法
哈希(hash)算法是一类算法的统称,根据确定的运算规则对输入进行处理,将较长的
串映射为较短的固定长度的值,以达到方便查找、压缩存储空间等目的。使用哈希算法的目
的在于使用较短的结果值,可以得知原串的某些性质,同时减少存储和时间上的消耗,所以
哈希算法有时又被叫做数据摘要算法。
哈希算法的主要特征是单向性和抗碰撞。两个特征的根本来源都是哈希算法本身将一个
大的地址空间映射到一个小空间的原理。单向性是指,无法从哈希值逆向计算出原值,因为
对应一个哈希值,可能有很多,甚至无穷多个原值。抗碰撞是指,当我们已知一个原串和它
的哈希值,很难构造出另一个串,让它们的哈希值相同。由于哈希函数的值空间一般小于原
串的取值空间,对原值作映射运算必定存在碰撞,即多个原串映射到同一个哈希值,一个好
的哈希函数应当做到难以通过构造得出碰撞,通俗理解就是分布比较随机,在正常使用时难
以出现碰撞,同时在遇到碰撞时有相应的处理方法。
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![application/pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![avatar](https://profile-avatar.csdnimg.cn/613e94c8b5de4464b5ff3d3449169733_weixin_35816790.jpg!1)
滕扬Lance
- 粉丝: 23
- 资源: 304
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)
评论0