nilsimsa的大概算法

1. 有一个5个字节的window,沿着文本向右滑动,每次滑动一个字节

2. 每一个window里面的5个字节,分别可以N个组成3元组。 例如igram,可以分为:igr iga igm iga igm gra grm gam ram

3. 每一个三元组通过一个hash函数,算出来一个结果,设为i ,i的区间是(0,256), 最下面有一个数组,也是共256位,刚好对应存放。  例如igr,假设算出来是15,那么在数组的15那个位置累加1

4. 计算完全部文本,这时数组的每个位置都有一个累加值

5. 通过计算累加值的平均值得到一个阈值,然后数组的每个位分别与该阈值比较,如果大于平均值则为1,小于平均值则为0.

6. 最后就得到一个256位长度的值,就用来表征这个文本。

时间: 2024-10-07 20:17:55

nilsimsa的大概算法的相关文章

ROCK 聚类算法?

ROCK (RObust Clustering using linKs)  聚类算法‏是一种鲁棒的用于分类属性的聚类算法.该算法属于凝聚型的层次聚类算法.之所以鲁棒是因为在确认两对象(样本点/簇)之间的关系时考虑了他们共同的邻居(相似样本点)的数量,在算法中被叫做链接(Link)的概念.而一些聚类算法只关注对象之间的相似度. ROCK 算法中用到的四个关键概念 邻居(Neighbors):如果两个样本点的相似度达到了阈值(θ),这两个样本点就是邻居.阈值(θ)有用户指定,相似度也是通过用户指定的

图片文档倾斜矫正算法 附完整c代码

2年前在学习图像算法的时候看到一个文档倾斜矫正的算法. 也就是说能将一些文档图像进行旋转矫正, 当然这个算法一般用于一些文档扫描软件做后处理 或者用于ocr 文字识别做前处理. 相关的关键词: 抗倾斜 反倾斜  Deskew 等等. 最简单算法实现思路,采用 霍夫变换(Hough Transform)进行直线检测, 当然也可以用霍夫变换检测圆. 在倾斜矫正算法中,自然就是检测直线. 通过对检测出来的直线进行角度判断, 一般取 认可度最高的几条直线进行计算, 最后求取均衡后的角度值. 进行图像角度

【算法随记五】使用FFT变换自动去除图像中严重的网纹。

这个课题在很久以前就已经有所接触,不过一直没有用代码去实现过.最近买了一本<机器视觉算法与应用第二版>书,书中再次提到该方法:使用傅里叶变换进行滤波处理的真正好处是可以通过使用定制的滤波器来消除图像中某些特定频率,例如这些特定频率可能代表着图像中重复出现的纹理. 在网络上很多的PS教程中,也有提到使用FFT来进行去网纹的操作,其中最为广泛的是使用PS小插件FOURIER TRANSFORM,使用过程为:打开图像--进行FFT RGB操作,然后定位到红色通道,选取通道中除了最中心处的之外的白点区

Scala 一切皆为函数 第二周视频笔记

Lecture 2.2 Curring Motivation 回顾 sum(f, a,b) 中如何使用不同的f来实现sum,铺垫匿名函数概念 Fuctions returning Functions 函数1可以是另外一个函数2的返回, 这里面蕴含一个重要思想: 在函数1的体内使用函数2时,函数2本身作为函数1的参数的这个效果在函数2的代码不再体现, 即函数2比函数1少去了一个自身的参数,而省去的根本原因在于函数2还可以调用函数2本身 也就是之前为什么需要学习递归思想的原因 Stepwise Ap

安卓Android控件ListView获取item中EditText值

可以明确,现在没有直接方法可以获得ListView中每一行EditText的值. 解决方案:重写BaseAdapter,然后自行获取ListView中每行输入的EditText值. 大概算法:重写BaseAdapter.getView函数,用一个数组存储EditText中的值,根据position即数组下标,在getView中动态更新EditText和动态获取EditText中的值.因为ListView中的item是复用的,如果不动态清空或动态获取EditText中值,就会出现数据紊乱,或者没数

hdu,1028,整数拆分的理解

#include"iostream"using namespace std;int main() { int n,i,j,k; int c[122],temp[122]; //c[] 数组用于储存当前多项式各项系数 //temp[]数组用于暂时储存在运算时的两多项式相加的系数和 while(cin>>n&&n!=0) { for(i=0;i<122;i++) //系数初始化,当前c[]所指的多项式是第一个多项式 {c[i]=1; temp[i]=0;}

修复损坏的gzip压缩文件之原理篇

引言:UNIX/LINUX下大多数都是用gzip格式来做文件的压缩方案的,而gzip文件损坏的情况也屡见不鲜,常见的有遇到坏扇区.压缩进程io阻塞,或恢复后的压缩文件被破坏等.因近期有做关于gzip文件的修复研究,特分为三个篇章对此成果进行表述,分别为原理篇,方法篇,案例篇.此为第一部分原理篇. gzip的压缩算法本质上是deflate(zip也几乎都用),这个算法其实是由LZ77算法加上一个变形的哈夫曼编码组成的.大概算法流程是:"原始数据--->LZ77--->哈夫曼 "

课后作业汇总

课后作业:2.90,2.82,3.55,3.62,8.11,8.12 2.90: A: 格式    SEEEEEEE    EMMMMMMM    MMMMMMMM    MMMMMMMM pi的二进制数表示为:0 10000000 10010010000111111101011, S: 为0,是个正数.       E:为 10000000  转为10进制为128,128-127=1,即实际指数部分为1.       M:为 10010010000111111101011. 这里,在底数左边省

IT蓝豹强烈推荐:符合1-2年工作经验,开发中的难点及相关优化:

IT蓝豹 ------------------>sqlite数据库版本升级 1.sqlite升级步骤: 1.自己写一个类继承自SqliteOpenHelper 2.会实现SqliteOpenHelper的两个方法 onCreate与onUpgrade,google文档对两个回调方法的解释是创建数据库的时候调用与更新数据库的版本的时候调用 3.Sqlite数据库主要是用来缓存应用的数据,而应用却是一直在更新版本,相应的数据的表的字段也会一直增加会改变或减少 4.这个时候就需要控制数据库的版本,因为