模糊数据搜索方法和装置的制作方法

文档序号:6610085阅读:148来源:国知局
专利名称:模糊数据搜索方法和装置的制作方法
技术领域
本发明涉及数据搜索方法,尤其涉及一种模糊数据搜索方法和装置。
背景技术
随着信息时代的到来,需要处理的数据海量增长。如何高效处理这些数据成为亟待解决的问题之一。在数据处理之中,经常要在海量数据之中搜索所需的数据,因此如何既迅速又准确地搜索、定位数据对于数据的高效处理至关重要。
现有技术中存在多种数据搜索方法,但是这些方法中有些效率太低,有些命中率不高,有些实现起来过于复杂。并且有些数据搜索方法必须预先知道数据是哪一类数据,然后才能根据这类数据的一些特有信息进行统计。例如,对于图像数据可以基于颜色、轮廓、对比度等参数进行搜索,但是这种搜索方法就不能用于音频数据的搜索,因而普适性不够。
通常来说,现有的数据搜索方法主要采用逐一比较的方式,也就是说,将待搜索的源数据与作为比较标准的模式数据逐个比较,计算它们之间的相似度。如果相似度达到预先设定的要求,则停止搜索;否则将源数据向后移动,重新进行新一轮比较,直到匹配到所需数据或者直到源数据比较完毕。这种方法效率比较低,也不够灵活。

发明内容
针对上述问题,本发明旨在实现简单、易于完成,并兼顾搜索速度和命中率的模糊数据搜索。
根据本发明的第一方面,提供一种模糊数据搜索方法,所述方法包括以下步骤基于第一比较步长和第一相似度阈值对源数据和模式数据进行预匹配;若预匹配通过,则基于第二比较步长和第二相似度阈值对源数据中通过预匹配的数据段和模式数据进行精匹配;其中,所述第一比较步长不小于第二比较步长。
在第一方面中,优选地,所述预匹配包括步骤基于所述第一比较步长计算源数据和模式数据的距离;根据所述距离确定数据相似度;将所述数据相似度与第一相似度阈值比较,以确定预匹配是否通过;若预匹配没有通过,则将源数据的比较起始位置向后移一位,继续进行预匹配。
优选地,所述精匹配包括步骤基于所述第二比较步长计算源数据中通过预匹配的数据段和模式数据的距离;根据所述距离确定数据相似度;将所述数据相似度与第二相似度阈值比较,以确定精匹配是否通过;若精匹配没有通过,则将源数据的比较起始位置向后移一位,继续进行预匹配。
优选地,所述第一比较步长大于第二比较步长。
优选地,所述第一相似度阈值等于第二相似度阈值。
优选地,所述距离根据源数据与相应模式数据之间的数据差值的绝对值除以一常数来计算。
优选地,所述距离根据源数据与相应模式数据之间的数据差值的绝对值除以相应模式数据来计算。
优选地,数据相似度是所述距离小于一阈值的数据数目占总比较数目的比例。
优选地,数据相似度根据下式计算数据相似度=1-(∑距离)/比较过的数据总数。
根据第二方面,提供一种模糊数据搜索装置,所述装置包括预匹配装置,用于基于第一比较步长和第一相似度阈值对源数据和模式数据进行预匹配;精匹配装置,用于在预匹配通过的情况下,基于第二比较步长和第二相似度阈值对源数据中通过预匹配的数据段和模式数据进行精匹配;其中,所述第一比较步长不小于第二比较步长。
本发明通过设置和调节相似度阈值来调节搜索命中率,通过设置和调节比较步长来调节搜索速度,并采用两轮匹配的方式来提高搜索效率。这样,使得搜索过程能够兼顾速度和命中率,并且简单易行,从而克服了现有技术中的不足。


为更好地理解本发明,下面结合附图和具体实施方式
对本发明作进一步说明。附图中图1显示了本发明数据搜索方法的总体流程;图2显示了预匹配的详细流程;图3示出精匹配的详细流程。
具体实施例方式
为了便于描述,需要对本文中提到的几个术语进行解释和说明。但是应当注意,这样的解释仅仅出于说明的目的,并不意于对本发明进行任何形式的限定。
首先,本文所指的数据可以是任意类型的数据,比如可以是一幅图像的点阵数据,一段音频的采样数据,还可以是压缩过的数据,如JPEG数据。并且,在对数据进行处理之前,预先并不需要知道它属于哪类数据。以上提到的数据搜索,是指从源数据中搜索与模式数据相似的数据的过程,因此,模式数据是作为比较标准的数据,而搜索到的数据称为匹配数据。
为了兼顾命中率和搜索效率,本发明的搜索方法设置了两个相似度阈值和两个比较步长,通过调节两个相似度阈值来调节命中率,通过调节两个比较步长来调节搜索速度。此外,搜索时采用预匹配和精匹配的结合来提高搜索效率。
图1显示了本发明数据搜索方法的总体流程。如图所示,在进行数据搜索匹配之前,在步骤100先要设置搜索的参数比较步长和相似度阈值。比较步长指比较过程中,数据每次向后移动的位数。与比较步长相对应的另一可选参数是比较密度,它们之间满足关系比较步长=1/比较密度。例如,若20个数据中抽出5个进行比较,则比较密度为25%,比较步长为4。在本发明的各实施方案中,可根据需要任选比较步长或比较密度作为搜索参数。通常,预匹配所用的比较步长不小于精匹配所用的比较步长。为达到更快的搜索效果,优选地,预匹配所用的比较步长大于精匹配所用的比较步长。相似度阈值是判断匹配是否通过的比较标准,由于要进行预匹配和精匹配两轮匹配,因此需设置两个相似度阈值。可选地,预匹配所用的相似度阈值和精匹配所用的相似度阈值相等。
设置搜索参数之后,搜索方法即进入步骤102预匹配阶段。在此过程中,主要基于第一比较步长将源数据与模式数据进行比较,基于第一相似度阈值判断所比较的源数据是否通过预匹配。如图中步骤103所示,若预匹配未通过,则将源数据比较位置向后移动一位,重新进行预匹配;若预匹配通过,则进入步骤104精匹配阶段。在精匹配过程中,基于第二比较步长将通过预匹配的源数据的数据段和模式数据进行比较,基于第二相似度阈值判断所比较的源数据是否通过精匹配。其中,通过预匹配的源数据的数据段指的是源数据中从步骤103中的源数据比较起始位置开始,到模式数据总长度为止的源数据的那段数据。在步骤105,若精匹配未通过,则将源数据比较位置向后移动一位,重新进行预匹配;若精匹配通过,则认为搜索成功。
图2显示了预匹配的详细流程,具体示出了预匹配中源数据和模式数据的比较过程和相似度判断过程。如图2所示,首先在步骤200将源数据比较起始位置设为1,也就是说,将要从第一个源数据开始进行比较。然后在步骤202,将源数据当前比较位置设为等于源数据比较起始位置。接下来,在步骤204,将模式数据当前比较位置设为1,即将要从模式数据的第一个数据开始比较。在步骤206,判断模式数据的当前比较位置是否大于模式数据的长度。在第一次循环开始时,判断结果必然为否,则方法进入步骤208,计算源数据当前比较位置的数据与模式数据当前比较位置的数据之间的距离。
之后,在步骤210,判断模式数据当前比较位置是否等于模式数据的长度。若判断结果为否,则进入步骤211,将源数据当前比较位置和模式数据当前比较位置均向后移动第一比较步长,然后回到步骤206进行判断。若移动第一比较步长之后当前比较位置仍不大于模式数据的长度,则继续对新的当前比较位置的源数据和模式数据计算数据之间的距离,直到步骤206或210的判断中有一个结果为是,则进入步骤212,计算数据的相似度。也就是说,将源数据与相应位置的模式数据进行比较,计算数据的距离,然后源数据和模式数据的比较位置均向后移动第一比较步长,直到比较位置达到或超过模式数据的长度。
源数据与模式数据之间的距离可以采用多种方式计算,只要能够表征出两数据之间的差异程度。例如,可以定义数据距离为距离=两数据差的绝对值/常数,该常数可以根据需要而设定。比如在数据是16进制数据的情况下,该常数可以设为255(FF)。也可以将数据距离定义为距离=两数据差的绝对值/相应的模式数据。本领域技术人员将会意识到,其他适当的数据距离的定义也可以用于步骤208中,来计算两数据间的距离。
在模式数据的比较位置达到或超过模式数据长度时,即步骤206或步骤210判断结果为是的时候,方法进入步骤212,基于这一轮预匹配中计算的所有距离计算数据相似度。数据相似度的计算可根据需要,并且相应于数据距离计算公式而采用多种方式。例如,可以定义数据相似度=1-(∑距离)/比较过的数据总数。本领域技术人员在本说明书的教导下,也可以得出其他的相似度计算的替代方式。例如,如果考虑非常接近或者相等数据所占的比例,可以将相似度定义为数据距离小于某一阈值的数据数目在所有比较数据中所占的比例。
得出数据相似度之后,进入步骤214,将该相似度与第一相似度阈值进行比较,以该比较结果为依据,判断预匹配是否通过。若216的判断结果是预匹配未通过,则进入步骤217,将源数据的比较起始位置向后移1位,并返回到步骤202,开始新一轮预匹配。若判断结果是通过预匹配,则认为所比较的那段源数据有可能就是所要搜索的数据,于是进入到精匹配过程,进行进一步的比较。
图3示出精匹配的详细流程。精匹配的执行过程与预匹配相似,只是每次比较数据,计算数据距离之后移动第二比较步长到下一比较数据。可选地,第二比较步长等于1。也就是说,在精匹配中,可对通过预匹配的数据段与模式数据进行逐一比较。基于比较的距离计算相似度之后,将该相似度与第二相似度阈值进行比较,以判断精匹配是否通过。若精匹配通过,则认为找到了匹配数据;若精匹配未通过,则将源数据比较起始位置后移一位,回到预匹配步骤,具体地,回到图2中的步骤202,重新进行预匹配。在精匹配过程中,数据间距离和相似度的计算方式可以分别与图2中步骤208和212的计算方式相同。当然,本领域技术人员也可以根据需要采用与预匹配过程不同的方式计算这两个参数。
下面通过示例说明本发明搜索方法的执行过程。假设源数据的十六进制形式为12 43 44 55 FE 45 A9 23 44 65 88 97 00 99 89 48,假设模式数据的十六进制形式为44 55 FF 45 A7 28。
根据本发明的搜索方法,为了在源数据中找到与模式数据相匹配的数据,需要进行预匹配和精匹配两轮搜索。首先设定例如,第一比较步长为2,第二比较步长为1,第一相似度阈值和第二相似度阈值均为0.95。接着开始预匹配过程。
(1)第一轮预匹配源数据比较起始位置和当前比较位置的数据为12,模式数据当前比较位置的数据为44。在本实施例中,距离计算公式采用数据差的绝对值/常数,该常数取为FF。于是计算得出12与44的距离D=|12-44|/FF接着,源数据比较位置和模式数据比较位置均向后移动第一比较步长,即向后移2位。此时,模式数据的当前比较位置移到了第3个数据,依然小于模式数据总长度6,因此继续比较。在该位置上,源数据和模式数据的比较数据分别为44和FF,同理,可以得出这两个数据的距离D=|44-FF|/FF。继续向后移动2位,比较源数据中的FE和模式数据中的A7,计算其数据间距离D=|FE-A7|/FF。之后,继续将比较位置向后移动2位,此时模式数据比较位置移到了第7位,已经大于其总长度,所以进入到附图2中的步骤212,开始计算相似度。在本实施例中,采用数据相似度=1-(∑距离)/比较过的数据总数的计算方法,从而得出
相似度=1-(|12-44|+|44-FF|+|FE-A7|)/FF/3=0.576其中两个等号之间为十六进制形式。将该相似度与第一相似度阈值0.95进行比较,显然,相似度未达到阈值,因此认为预匹配没有通过。于是,将源数据比较起始位置后移一位,开始第二轮预匹配。
(2)第二轮预匹配此时,源数据比较起始位置上的数据为43。由于比较步长为2,因此,这一轮预匹配中将会选择源数据中的43 55 45与模式数据中的44 FF A7分别进行比较,计算其距离。与第一轮预匹配相似,基于数据距离计算出数据相似度为相似度=1-(|43-44|+|55-FF|+|45-A7|)/FF/3=0.648显然,该相似度依然未达到第一相似度阈值,因此,第二轮预匹配也没有通过。于是,继续将源数据比较起始位置后移一位,开始新一轮预匹配。
(3)第三轮预匹配此时,源数据比较起始位置上的数据为44。与第一轮预匹配的流程相似,这一轮将会选择源数据中的44 FE A9与模式数据中的44 FFA7分别进行比较。根据比较得出的数据距离,可以计算出数据相似度为相似度=1-(|44-44|+|FE-FF|+|A9-A7|)/FF/3=0.988将该相似度与第一相似度阈值0.95进行比较。由于该相似度已经超过设定的阈值,因此认为预匹配通过,方法进入到精匹配过程。
(4)在精匹配阶段,由于第二比较步长为1,因此将通过预匹配的源数据的数据段与模式数据逐一进行比较,逐一计算数据间距离。这时应该比较的源数据的数据段为44 55 FE 45 A9 23,应该比较的模式数据为44 55 FF 45 A7 28,两组数据的相似度为
相似度=1-(|44-44|+|55-55|+|FE-FF|+|45-45|+|A9-A7|+|23-28|)/FF/6=0.988将该相似度与第二相似度阈值0.95进行比较。由于计算得出的相似度已超过第二相似度阈值,于是认为,精匹配也通过,目前的数据段即为匹配数据。
虽然以上给出了实施本发明方法的具体例子,但是应该理解,该例子仅出于示意的目的,而非意图对本发明进行任何形式的限定。本领域技术人员可以在说明书的教导之下,对示例性的实施方案做出多种变体和改动。这些变体和改动均落入本申请要求保护的范围之内。本发明仅由所附的权利要求书限定。
权利要求
1.一种模糊数据搜索方法,包括以下步骤基于第一比较步长和第一相似度阈值对源数据和模式数据进行预匹配;若预匹配通过,则基于第二比较步长和第二相似度阈值对源数据中通过预匹配的数据段和模式数据进行精匹配;其中,所述第一比较步长不小于第二比较步长。
2.如权利要求1所述的方法,其特征在于,所述预匹配包括步骤基于所述第一比较步长计算源数据和模式数据的距离;根据所述距离确定数据相似度;将所述数据相似度与第一相似度阈值比较,以确定预匹配是否通过;若预匹配没有通过,则将源数据的比较起始位置向后移一位,继续进行预匹配。
3.如权利要求1所述的方法,其特征在于,所述精匹配包括步骤基于所述第二比较步长计算源数据中通过预匹配的数据段和模式数据的距离;根据所述距离确定数据相似度;将所述数据相似度与第二相似度阈值比较,以确定精匹配是否通过;若精匹配没有通过,则将源数据的比较起始位置向后移一位,继续进行预匹配。
4.如权利要求1至3中任一项所述的方法,其特征在于,所述第一比较步长大于第二比较步长。
5.如权利要求1至3中任一项所述的方法,其特征在于,所述第一相似度阈值等于第二相似度阈值。
6.如权利要求2或3所述的方法,其特征在于,所述距离根据源数据与相应模式数据之间的数据差值的绝对值除以一常数来计算。
7.如权利要求2或3所述的方法,其特征在于,所述距离根据源数据与相应模式数据之间的数据差值的绝对值除以相应模式数据来计算。
8.如权利要求2或3所述的方法,其特征在于,数据相似度是所述距离小于一阈值的数据数目占总比较数目的比例。
9.如权利要求2或3所述的方法,其特征在于,数据相似度根据下式计算数据相似度=1-(∑距离)/比较过的数据总数。
10.一种模糊数据搜索装置,包括预匹配装置,用于基于第一比较步长和第一相似度阈值对源数据和模式数据进行预匹配;精匹配装置,用于在预匹配通过的情况下,基于第二比较步长和第二相似度阈值对源数据中通过预匹配的数据段和模式数据进行精匹配;其中,所述第一比较步长不小于第二比较步长。
全文摘要
本发明公开了一种模糊数据搜索方法和装置,所述方法包括以下步骤基于第一比较步长和第一相似度阈值对源数据和模式数据进行预匹配;若预匹配通过,则基于第二比较步长和第二相似度阈值对源数据中通过预匹配的数据段和模式数据进行精匹配;其中,所述第一比较步长不小于第二比较步长。本发明能够实现简单、易于完成,并兼顾搜索速度和命中率的模糊数据搜索。
文档编号G06F17/30GK101086743SQ20071011943
公开日2007年12月12日 申请日期2007年7月24日 优先权日2007年7月24日
发明者占文静, 游明琦 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1