什么是Shingling算法

shingling算法用于计算两个文档的相似度,例如,用于网页去重。维基百科对w-shingling的定义如下:

In natural language processing a w-shingling is a set of unique "shingles"—contiguous subsequences of tokens in a document —that can be used to gauge the similarity of two documents. The w denotes the number of tokens in each shingle in the set.

维基百科用一个浅显的例子讲解了shingling算法的原理。比如,一个文档

   "a rose is a rose is a rose"

分词后的词汇(token,语汇单元)集合是

   (a,rose,is,a,rose,is, a, rose)

那么w=4的4-shingling就是集合:

   { (a,rose,is,a), (rose,is,a,rose), (is,a,rose,is), (a,rose,is,a), (rose,is,a,rose) }

去掉重复的子集合:

   { (a,rose,is,a), (rose,is,a,rose), (is,a,rose,is) }

给定shingle的大小,两个文档A和B的相似度 r 定义为:

   r(A,B)=|S(A)∩S(B)| / |S(A)∪S(B)|

其中|A|表示集合A的大小。

因此,相似度是介于0和1之间的一个数值,且r(A,A)=1,即一个文档和它自身 100%相似。

Shingling算法-简单说相关推荐

  1. shingling算法——提取特征,m个hash函数做指纹计算,针对特征hash后变成m维向量,最后利用union-find算法计算相似性...

    shingling算法用于计算两个文档的相似度,例如,用于网页去重.维基百科对w-shingling的定义如下: In natural language processing a w-shinglin ...

  2. 网页重复度检测——shingling算法

    1 前言 最简单的检测重复网页的方法就是对每一个网页计算用指纹生成算法出一个简洁的"指纹".接着,当两个网页的"指纹"一样时,我们就进一步地去比对它们的网页内容 ...

  3. 数据结构与算法--简单栈实现及其应用

    栈 栈(Stack)是一种限制插入和删除只能在一个位置上进行的表,改位置是表的末端,叫做栈顶top.栈的基本操作有push (进栈)pop(出栈) 栈又叫做LIFO(后进先出)表,下图展示普通push ...

  4. 深度学习中反向传播算法简单推导笔记

    反向传播算法简单推导笔记 1.全连接神经网络 该结构的前向传播可以写成: z(1)=W(1)x+b(1)z^{(1)} = W^{(1)}x+b^{(1)}z(1)=W(1)x+b(1) a(1)=σ ...

  5. python分类算法的应用_Python基于sklearn库的分类算法简单应用示例

    Python基于sklearn库的分类算法简单应用示例 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  Python基于sklearn库的分类算法简单应用示例.tx ...

  6. python分类算法的应用_Python使用sklearn库实现的各种分类算法简单应用小结

    本文实例讲述了Python使用sklearn库实现的各种分类算法简单应用.分享给大家供大家参考,具体如下: KNN from sklearn.neighbors import KNeighborsCl ...

  7. Karplus-Strong 算法简单介绍和实现

    Karplus-Strong 算法简单介绍和实现 本文为Coursera数字信号处理课程第一周内容,对相关课程刚兴趣的同学,请参看这里 为了有更好的交互性,本文所有代码均上传至Microsoft Az ...

  8. c语言写拼图游戏算法,[原创]拼图游戏移动算法,简单易懂

    [原创]拼图游戏移动算法,简单易懂 这是我第一次发表关于算法的贴子, 希望大家支持下 原理:判断用户点击的按扭的X或Y坐标是否与移动按扭相同, 并且移动按扭的X,Y坐标是否与用户点击按扭相邻. 拼图游 ...

  9. 摄像头Optical Center检测算法简单实现

    摄像头Optical Center检测算法简单实现 光线通过透镜时,都会产生偏折,使光线传播方向发生变化:但透镜上有一点,任意方向的光线通过该点时,光线的传播方向不变,即出射方向和入射方向相互平行,这 ...

最新文章

  1. 域名解析和cdn 原理
  2. python【力扣LeetCode算法题库】面试题62- 圆圈中最后剩下的数字(约瑟夫环)
  3. IOS中UITableViewCell的重用机制原理
  4. Leetcode 143. 重排链表
  5. Laravel核心解读 -- 用户认证系统(基础介绍)
  6. 苹果iOS 13正式版推送:深色模式来了 速度再次提升!
  7. php 禁止浏览器直接访问网页_PHP禁止直接从浏览器输入地址访问PHP文件
  8. ❤️《分布式 Dubbo+Zookenper+SpringBoot》(建议收藏)❤️
  9. 荐号 | “看一看”中“偷”来的很棒的公众号
  10. 从php的生命周期来优化页面响应时间
  11. Vmarker图片标注工具使用文档
  12. 向日葵如何远程桌面Linux,最快的远程桌面向日葵软件
  13. echarts 生成 迁徙图_Echarts地图的迁徙图
  14. Redis的雪崩,击穿,穿透详解
  15. 【Linux】循序渐进学运维-学习方法篇
  16. 固定table首行或尾行
  17. 火猴之中国色展示(firemonkey)
  18. photoshop 裁剪_如何在Photoshop中裁剪图像
  19. NEC加入美国国土安全局AIS网络威胁信息官民共享体系
  20. Nexus3 Recommended file descriptor limit is 65536 but count is 4096

热门文章

  1. iNeuOS工业互联网平台,在高校教学实训领域的应用
  2. 开源摄影机:Axiom Camera
  3. 高防CDN服务的应用场景之门户网站
  4. RGB-D Salient Object Detection with Cross-Modality Modulation and Selection
  5. Libvirt API的C语言调用
  6. 使用PageHelper实现分页查询(详细)
  7. python商品打折问题_python初学者-商品折扣问题
  8. 托福 103,GRE 158+167+3.5
  9. 统计学习导论(九)支持向量机——学习笔记
  10. 微信小程序使用canvas绘制圆角矩形在Android:变形、锯齿