一种大数据集下相似性数据的快速识别算法

文档序号:6548762阅读:200来源:国知局
一种大数据集下相似性数据的快速识别算法
【专利摘要】一种大数据下相似性数据快速识别算法,包括下述步骤:数据文件长度的修正;计算抽样数据块之间的距离;计算抽样数据块的位置;抽取数据块;在数据文件首尾各抽取一个数据块;计算抽取数据块的特征值;通过集合运算判断数据的相似性。一方面,本发明的时空开销不随着数据文件大小的增加而增长;其次,本发明通过位置影响因子修正数据文件的长度,避免抽样数据块位置偏移而导致相似性数据识别失败;另外一方面,本发明通过信息检索的方法有效的保证了本发明在相似性数据识别方面的有效性和准确性。
【专利说明】一种大数据集下相似性数据的快速识别算法
【技术领域】
[0001]本发明涉及大数据处理的【技术领域】,特别涉及一种大数据集下相似性数据的快速识别算法。
【背景技术】
[0002]在2013年IDC预测到2014年全球的数据总量将会到达4ZB,与2012年相比数据增长量到达50%。IBM用了 4V:volume、variety、value、veracity来描述这些数据的特性,这直接说明了这些数据非常复杂。比如,在这些数据中存在着大量结构化、半结构化和非结构化的数据。正是因为这些复杂的特性,导致现有的数据处理方法仍然有许多问题未得到解决。其中,文件相似性在数据处理方法中具有非常重要的作用。比如,数据挖掘中的聚类分析、剽窃检测、远程文件备份、文件系统中相似数据的识别、热点数据的识别等等。
[0003]尽管之前在相似性数据识别方面已经有非常多的研究,但是仍然有非常多的问题没有解决:
[0004]1.减小相似性数据识别的开销:传统的相似性数据识别算法属于IO密集型和CPU密集型任务。当使用传统相似性数据识别算法计算数据的摘要需要占用大量的CPU时间和大量的内存空间,同时也会导致大量的磁盘10。需要指出的是这些磁盘访问是随机的,这就严重的降低相似性数据识别的性能。此外,传统相思数据识别算法的计算开销随着数据集的增长而增长。
[0005]2.缩短相似性数据识别的时间:在数据集下,传统的相似性数据识别算法需要大量的时间进行相似数据的识别,这直接导致了非常严重的延迟。对于一些实时和高吞吐量的应用来说,这样的延迟是无法接受的。
[0006]3.保证相似性识别的有效性和准确性:如何在识别出相似性数据的同时保证识别的有效性和准确是一个挑战。传统的相似性算法常常在这两者时间进行折衷。
[0007]虽然典型的相似性算法Shingle和Simhash的确能够有效识别相似性数据,但是在大数据集这两个算法时空开销非常大,特别的这个两个算法的时空开销随着数据文件大小增加而成倍增加。因此,在大数据集下这个两个典型的相似性算法并不能有效解决上述挑战。
[0008]传统的抽样相似性算法虽然识别时间较短,而且开销固定,不随着数据文件长度的增加而增加,但是传统的抽样相似性算法对于数据文件内容的修改非常敏感。比如,数据文件内容一个字节的修改就会导致传统的相似性识别算法检测失败。
[0009]因此,我们亟须一种在大数据集下低开销、检测时间短和同时保证算法的有效性和准确性的相似性数据识别算法。

【发明内容】

[0010]本发明的目的是实现一个针对大数据集下低开销、检测时间短和能够保证有效性和准确性的相似性数据识别算法。本发明抽取固定数量的数据块,可以保证算法的开销不会随着数据文件内容的增长而增加;通过集合运算结合内存数据数据库保证检测时间较短;通过信息检索的方法,保证算法的有效性和准确性。
[0011]为了达到上述目的,本发明采用以下技术方案:
[0012]一种大数据下相似性数据快速识别算法,包括:
[0013](I)、数据文件长度的修正,在对数据文件进行相似性判断之前,首先获取数据文件的长度,将数据文件的长度除以一个位置影响因子,然后将得到的商乘以位置影响因子,最后将所得的积作为修正后的数据文件长度;
[0014](2)、计算抽样数据块之间的距离;
[0015](3)、计算抽样数据块的位置,根据抽取顺序、抽样数据块之间的距离和抽样数据的长度进行计算;
[0016](4)、抽取数据块,根据计算出来的抽样数据块的位置,设置数据文件的读取位置,然后抽取长度等于抽样数据块长度的数据块;
[0017](5)、在数据文件首尾各抽取一个数据块;
[0018](6)、计算抽取数据块的特征值,通过将每一个抽取的数据通过哈希函数计算一个出哈希值,用这个哈希值代表该数据块; [0019](7)、通过集合运算判断数据的相似性,将计算出来的哈希值集合同已经存储的哈希值集合进行集合运算,得到值作为两个数据的相似程度值T ;T值大于等于0,小于等于I ;当T接近O时,代表这个两个数据相似程度非常低;当T接近I时,代表这两个数据相似程
度非常高。
[0020]优选的,步骤(1)中,所述位置影响因子是避免因为数据文件内容修改造成抽样数据块位置偏移的算法参数,位置影响因子是一个大于等于I的数字,可以选取一个固定的值,也可以根据当前数据集的特性动态的调整。
[0021]优选的,步骤(2)中,计算抽样数据块之间的距离的步骤为:将修正后的数据文件长度减去抽样数据长度乘以抽样数据数量的乘积,然后将得到的差值除以抽样数据块数量减一,将得到的商作为抽样数据块之间的距离;最后,判断这个值是否大于0,如果小于0,则使抽样数据块之间的距离等于O ;反之,不做任何处理。
[0022]优选的,步骤(3)中,计算抽样数据块的位置具体为:对于第i个数据数块,其中:
I= <i<抽样数据块数量,将i减一后乘以抽样数据块长度加上抽样数据块之间距离的和,最后将得到的乘积作为第i块抽样数据块在数据文件中位置偏移值。
[0023]优选的,步骤(4)中,具体是在数据文件的首和数据的文件尾各抽取一个数据块。
[0024]优选的,步骤(5)中,还包括判断数据读取是否完整和是否出现错误的步骤。
[0025]优选的,步骤(6)中,对于每一个抽样数据块的哈希值,只取其数据的高8位。
[0026]优选的,步骤(7)中,进行集合运算的具体步骤为:
[0027]首先进行集合交运算,然后进行集合并运算,最后将交集的成员个数除以并集的成员个数,得到的值作为两个数据的相似程度值。
[0028]本发明与现有技术相比,具有如下优点和有益效果:
[0029](I)、本发明主要用于大数据集下相似性数据的快速识别,与其他同类算法相比,本发明计算开销固定,不会随着数据文件大小的增加而增加。非常适合大数据集下相似性数据的快速识别。[0030](2)、本发明避免了传统抽样相似性识别算法的弊端,不会因为数据文件内容的修改而导致抽样数据块位置的偏移,而导致相似性检测失败。
[0031](3)、本发明应用信息检索的方法保证了相似性检测的有效性和准确性。通过信息的检索方法的指标召回率和准确率,来保证和作为相似性临界值选取的依据。
【专利附图】

【附图说明】
[0032]图1为本发明的快速识别算法流程图;
[0033]图2为本发明抽取数据块的示意图。
【具体实施方式】
[0034]下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
[0035]实施例
[0036]如图1所示,本发明的算法流程如下步骤:
[0037](I)、数据文件长度的修正,在对数据文件进行相似性判断之前,首先获取数据文件的长度,将数据文件的长度除以一个位置影响因子,然后将得到的商乘以位置影响因子,最后将所得的积作为修正后的数据文件长度。数据文件长度的修正是为了避免因为数据文件的修改,造成抽样数据位置的偏移而导致相似性数据识别失败。
[0038](2)、计算抽样数据块之间的距离,将修正后的数据文件长度减去抽样数据长度乘以抽样数据块数量的乘积,然后将得到的差值除以抽样数据块数量减一的差,将得到的商作为抽样数据块之间的距离。最后判断这个值是否大于0,如果小于0,则使抽样数据块之间的距离等于O ;反之不做任何处理。
[0039](3)、计算抽样数据块的位置,对于第i块抽样数据块(抽样数据块数量〉i> = I),将i减一后乘以抽样数据块长度加上抽样数据块之间距离的和,最后将得到的乘积作为第i块抽样数据块在数据文件中的位置偏移值。
[0040](4)、抽取数据块,根据计算出来的抽样数据块的位置,设置数据文件的读取位置,然后抽取长度等于抽样数据块长度的数据块。在这里要防止数据块抽取不完整或者抽取错误。
[0041](5)、在数据文件首尾各抽取一个数据块,为了使本算法能够有效的识别出相似的数据文件,本算法在数据文件的首和数据的文件尾各抽取一个数据块。
[0042](6)、计算抽取数据块的特征值,通过直接比较抽取的数据块,首先不仅仅需要占用大量的存储空间,另外数据块一个个字节的比较将会导致相似性数据识别的速度大大减慢。本算法将每一个抽取的数据通过哈希函数计算一个出哈希值,用这个哈希值代表该数据块。另外为了进一步减小空间的占用,对于每一个指纹,本算法只取其高8位。
[0043](7)、通过集合运算判断数据的相似性,将计算出来的哈希值集合同已经存储的哈希值集合进行集合运算,首先进行集合交运算,然后进行集合并运算,最后将交集的成员个数除以并集的成员个数,得到的值便作为两个数据的相似程度值T。这个T值大于等于0,小于等于I。当这个T值接近O时,代表这个两个数据相似程度非常低;当这个T值接近I时,代表这两个数据相似程度非常高。[0044]通过上述步骤便可以避免数据文件内容的修改造成抽样数据块的位置的偏移,如图2所示。通过修正文件长度之后,就可以保证抽样数据块位置不偏移,同时为了提高识别的准确性,在文件头和文件尾各抽取一个数据块。举例来说,文件A和文件B相似,我们可以认为文件B在文件A的基础之上增加内容得来,在这里我们增加5K的内容得到文件B,文件B1、B2、B3分别对应文件头、文件中、文件尾的修改情况。当选取位置影响因子为28K时,可以得到如图的2抽样示意位置和对应的抽样数据块。
[0045]另外本算法可以用如下的伪代码来描述:
【权利要求】
1.一种大数据下相似性数据快速识别算法,其特征在于,包括: (1)、数据文件长度的修正,在对数据文件进行相似性判断之前,首先获取数据文件的长度,将数据文件的长度除以一个位置影响因子,然后将得到的商乘以位置影响因子,最后将所得的积作为修正后的数据文件长度; (2)、计算抽样数据块之间的距离; (3)、计算抽样数据块的位置,根据抽取顺序、抽样数据块之间的距离和抽样数据的长度进行计算; (4)、抽取数据块,根据计算出来的抽样数据块的位置,设置数据文件的读取位置,然后抽取长度等于抽样数据块长度的数据块; (5)、在数据文件首尾各抽取一个数据块; (6)、计算抽取数据块的特征值,通过将每一个抽取的数据通过哈希函数计算一个出哈希值,用这个哈希值代表该数据块; (7)、通过集合运算判断数据的相似性,将计算出来的哈希值集合同已经存储的哈希值集合进行集合运算,得到值作为两个数据的相似程度值T ;T值大于等于O,小于等于I ;当T接近O时,代表这个两个数据相似程度非常低;当T接近I时,代表这两个数据相似程度非常闻。
2.根据权利要求1所述的大数据下相似性数据快速识别算法,其特征在于,步骤(1)中,所述位置影响因子 是避免因为数据文件内容修改造成抽样数据块位置偏移的算法参数,位置影响因子是一个大于等于I的数字,可以选取一个固定的值,也可以根据当前数据集的特性动态的调整。
3.根据权利要求1所述的大数据下相似性数据快速识别算法,其特征在于,步骤(2)中,计算抽样数据块之间的距离的步骤为:将修正后的数据文件长度减去抽样数据长度乘以抽样数据数量的乘积,然后将得到的差值除以抽样数据块数量减一,将得到的商作为抽样数据块之间的距离;最后,判断这个值是否大于O,如果小于O,则使抽样数据块之间的距离等于O ;反之,不做任何处理。
4.根据权利要求1所述的大数据下相似性数据快速识别算法,其特征在于,步骤(3)中,计算抽样数据块的位置具体为:对于第i个数据数块,其中:1 = <i〈抽样数据块数量,将i减一后乘以抽样数据块长度加上抽样数据块之间距离的和,最后将得到的乘积作为第i块抽样数据块在数据文件中位置偏移值。
5.根据权利要求1所述的大数据下相似性数据快速识别算法,其特征在于,步骤(4)中,具体是在数据文件的首和数据的文件尾各抽取一个数据块。
6.根据权利要求1所述的大数据下相似性数据快速识别算法,其特征在于,步骤(5)中,还包括判断数据读取是否完整和是否出现错误的步骤。
7.根据权利要求1所述的大数据下相似性数据快速识别算法,其特征在于,步骤(6)中,对于每一个抽样数据块的哈希值,只取其数据的高8位。
8.根据权利要求1所述的大数据下相似性数据快速识别算法,其特征在于,步骤(7)中,进行集合运算的具体步骤为: 首先进行集合交运算,然后进行集合并运算,最后将交集的成员个数除以并集的成员个数,得到的值作为两个数据的相似程度值。
【文档编号】G06F17/30GK104021179SQ201410247704
【公开日】2014年9月3日 申请日期:2014年6月5日 优先权日:2014年6月5日
【发明者】邓玉辉, 周永涛 申请人:暨南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1