CN100557606C - 用于查找串的方法和设备 - Google Patents

用于查找串的方法和设备 Download PDF

Info

Publication number
CN100557606C
CN100557606C CNB2004800058740A CN200480005874A CN100557606C CN 100557606 C CN100557606 C CN 100557606C CN B2004800058740 A CNB2004800058740 A CN B2004800058740A CN 200480005874 A CN200480005874 A CN 200480005874A CN 100557606 C CN100557606 C CN 100557606C
Authority
CN
China
Prior art keywords
string
database
search
substring
error
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2004800058740A
Other languages
English (en)
Other versions
CN1761958A (zh
Inventor
S·伊格纳
J·H·M·科斯特
M·范沃尤伦
S·C·波韦斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN1761958A publication Critical patent/CN1761958A/zh
Application granted granted Critical
Publication of CN100557606C publication Critical patent/CN100557606C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques

Abstract

本发明涉及一种查找最终数目的结果串(30-33)的方法,其在包括多个长串或一个长串的数据库(80)中具有与查询串(34)的部分或精确匹配,所述方法包括步骤:将该查询串划分成第一数目的输入查询串(35,36,37);确定所述第一数目的输入查询串中每一串的第二数目的相邻串(38-41,42-45,44-49),其中所述第二数目的相邻串中的每一串具有预定的第一数目的误差;基于查找方法查找该数据库,为所述第二数目的相邻串中的每一串查找第三数目的精确匹配(50-61,70-74);将从该数据库所查找的所述精确匹配的串联接成第四数目的中间串(29,30,32,33,34),其中在每一所述中间串中包含的所述查找的精确匹配的串(50-61,70-74)在所述数据库中是彼此相互接续的;并且根据所述第四数目的中间串确定最终数目的结果串(30-33),其中最终数目的结果串中的每一串相比于所述查询串(34)具有最大预定的第二数目的误差。这就使得能够得到完全匹配或包含关于所述查询串具有小误差的部分匹配,并且能够在较大的数据库中使用相对较低的处理能力进行快速查找。

Description

用于查找串的方法和设备
技术领域
本发明涉及一种在包括许多长串或一个长串的数据库中查找与查询串部分匹配或精确匹配的最终数目的结果串的方法。
本发明也涉及一种查找引擎。
本发明也涉及一种工具。
本发明也涉及一种用于执行该方法的计算机系统。
本发明进一步涉及一种用于执行该方法的计算机程序产品。
另外,本发明进一步涉及一种设备。
背景技术
US5963957公开了一种具有音乐数据库的信息处理系统。所述音乐数据库存储音乐音符的单音调参考序列。这些参考序列都被标准化到相同的音阶度,以按照编排顺序进行存储。应用一种所谓的N-ary来查找输入音符串与特定参考序列之间的匹配。从而所述信息处理系统提供与匹配的参考序列相关联的目录参考信息。
在Du,D.W.和Chang,S.C.(1994)的“an approach to designingvery fast approximate string matching algorithms”,IEEE Transactionson Knowledge and Data Engineering,6,4,620-633中进一步公开了另一种串匹配的方法。
在现有技术中,检索方法使用精确匹配的算法。然而,已知的检索方法典型地尝试精确匹配,即执行查找或匹配以找到完全匹配。
然而在许多实际应用中所存在的问题就是,查找的只是一个完全匹配。结果,另一个问题是,即使这些结果只包含很小的误差,虽然它们非常有用,但是没有匹配结果可以提供。
进一步存在的问题就是,查找大数据库需要大量时间,并且相应地需要使用较强的处理能力。
在许多实际应用中,获得部分匹配(而不是完全匹配)就已经足够了。出现这样的情况是因为,不管作为输入来进行查找尝试的查询串还是得到的匹配串都可能具有较小的误差,但是得到部分匹配的结果还是比完全没有结果好。所述误差典型地是由于包括在该查询串中或所查找的数据库中的不当数据产生的。
发明内容
通过所述方法可以解决上述以及其它问题,其中该方法包括步骤:
将该查询串划分成第一数目的输入查询串;
换言之,在该步骤中,该查询串被分割成为所述第一数目的小片段的子串,即分割成为所述输入查询串。
确定所述第一数目的输入查询串中每一串的第二数目的相邻串,其中所述第二数目的相邻串中的每一串具有预定的第五数目的误差;
换言之,在该步骤中,该第二数目的相邻串取决于该查询串的长度、所应用的串表中不同离散符号的大小、以及在该相邻串中所允许的误差的数目。
通常,对于所述第一数目的输入查询串中的每一串,确定所述第二数目的相邻串。它们中的每一个都分别具有预定的第五数目的误差,其大于或等于零。
基于查找方法查找数据库,为所述第二数目的相邻串中的每一串查找第三数目的精确匹配;
从而,就是基于给定的查找方法查找数据库,为所述第二数目的相邻串中的每一串查找(第三)数目的精确匹配;该查找方法可以是q-gram标引方法、后继树法、或散列法。
将从该数据库所查找的所述精确匹配的串联接成第四数目的中间串,其中包括在每一所述中间串中的所述查找的精确匹配的串在所述数据库中是彼此相互接续的;并且
根据所述第四数目的中间串确定最终数目的结果串,其中每一最终数目的结果串相比于所述查询串最多具有预定第六数目的误差。
对于最后两个步骤,在图5中、即在步骤400和500中对其进行解释。
作为该方法的结果,每一所述最终数目的结果串是所述查询串(在开始段落中所提到的)的精确或部分匹配。
因而就可以实现得到完全匹配或只包含细小误差的部分匹配。
进一步,(对于完全或部分匹配)该方法可以使用相对较低的处理能力快速地查找大数据库。
由于与前面所述关于该方法相同的原因,所述设备、工具、查找引擎、计算机系统分别具有相同的优点并能够接近该相同的问题。
附图说明
下面将结合优选实施例并参照附图更加全面的解释本发明,其中:
图1所示为现有技术的一般描述;
图2所示为划分该查询串的方法;
图3所示为通过实际详细范例方式划分该查询串和随后的查找;
图4所示为通过一般范例方式划分并查找该查询串;
图5所示为查找最终数目的结果串的方法;和
图6所示为用于查找的设备。
具体实施方式
在整个附图中,相同的附图标记表示相似或对应的特征、功能、串等。
图1所示为现有技术的一般描述。该附图所示为在附图标记为80的串数据库中查找的查询串“abacababc”。其中显示出了最多允许一个误差(k=1)的该查询串的四个近似匹配的数据库位置。附图标记为34的该查询串“abacababc”由三个字母的表组成{‘a’,‘b’,‘c’}。如果只允许一个误差(k=1),就可以发现:包含增加符号的近似匹配(例如,附图标记30:“abacadabbc”)、包含删除符号的近似匹配(例如,附图标记31:“abcababc”)、包含替换符号的近似匹配(例如,附图标记32:“abacadcbc”)、以及精确匹配(例如附图标记33“abacababc”)。在现有技术中通常需要说明查找串,从而一次查找整个查询串。
图2所示为划分该查询串的方法。从文献中得知的高效检索方法利用精确匹配的快速算法,也就是不允许任何误差(或k=0)的查找。这样只会返回(精确)匹配的位置,即图1中的附图标记33。需要脱离附图标记为80的串数据库离线(作为预处理器)地建立特殊的索引结构,诸如后继树或q-gram,以能够实施快速的精确匹配算法。基本上,这些机构保持有该数据库中出现的每一较小子串的所有位置。有效地,这样意味着该检索处理可以立即跳转到该数据库中的相关点,而丢弃不相关部分。使用该q-gram标引法,因为其比其它方法的空间效率都高(即使用更少的存储器),并且可以容易地适用于我们的目的。该q-gram保持在该数据库中出现的所有长度q>0的子串的位置。例如,如果该数据库由串“abababcabcabacab......”组成,q=4的q-gram收集长度为4的所有子串的起始位置,诸如“abab”、“baba”、“abab”、“babc”和“abca”。通过使用函数标引这些子串,其排列并排序在容易访问的数据结构中。类似的子串,诸如范例中的“abab”在该相同的标引结束(称为桶)。通过计算该标引函数,q-gram让我们能够得到长度m≤q的查询的所有精确匹配的数据库位置,并检索桶的成员。长度大于q的查询需要另外的校验,因为只有长度为q的查询的前缀可以在桶中。Myers在1994年描述了使用q-gram工作的标准方法。
作为对所述q-gram法的替换形式,可以应用后继树法或散列法。
如果在近似匹配中使用精确匹配法,必须为所允许的误差找到工作区。例如,根据本发明,可以产生在原始查询(串)中有限数目的位置上有所不同的串的集合。这些串被称为该查询的邻居。邻居于是表示查询中的误差。从形式上讲,串S的k邻居被定义为最多具有关于S的k个误差的串的集合。例如,如果查询“abba”由两个字母{‘a’,‘b’}的表构成,那么最多具有一个误差(即误差级k≤1)的完整邻居集合包括:原始的“abba”,具有删除的所有串“abb”、“aba”和“bba”,具有增加的所有串“aabba”、“babba”、“abbba”、“ababa”、“abbaa”和“abbab”,以及具有替换的所有串“bbba”、“aaba”、“abaa”和“abbb”。
可以有效地产生给定串的邻居(Myers,1994)。如果这些邻居位于使用q-gram法的数据库中,那么这些精确匹配对应于该原始查询的近似匹配。
然而,当研究更长的查询、更大的字母表以及更高的误差级时,所要研究的邻居的数目成指数变化。为了解决这一问题并得到检索速度,首先将该查询划分成更小的子串,并对于每一子串产生其邻居的集合。然后使用q-gram和所提到的其它查找方法精确地查找所有这些邻居。它们在该数据库中的精确匹配现在对应于该原始查询的部分近似匹配。
假设该查询为由三个字母的表{‘a’,‘b’,‘c’}组成的“abacababc”,并且现在允许误差级为3(k=3)。注意到,该查询中的误差可以出现在任何位置。例如,误差可以:
全部在开始(例如,那么“ccccababc”可以是你实际查找的串);
全部在中间(例如,“ababbcabc”);
全部在末尾(例如,“abacabbca”);
或者不均匀地分布在该查询中(例如,“abccacabb”)。
如果该查询被分成三部分(p=3,对于我们的范例查询“abacababc”其得到子串“aba”、“cab”和“abc”),为每一部分产生邻居的集合并且单独在该数据库中查找每一邻居,上下文就失去了该原始查询所看起来的那样。为了理解这一点,注意到这些邻居可以出现在该数据库中的任何地方。邻居并非必须靠近在一起出现或者出现在序列中,其要求形成该原始查询的近似匹配。换言之,当对于我们的范例查询“abacababc”找到一个邻居的精确匹配时,并不能得知其反应的是该查询的第一、第二还是第三部分,以及所发现的其它部分的邻居是哪种类型。必须采取必要的措施来揭示该信息。在前面的文献中所描述的方法到此为止,也就是它们将邻居的每一精确匹配当作用于解算该查询的有用候选。相反,本发明的横向切割在查找邻居的同时通过重新建立该(误差)上下关系进行附加的过滤步骤。可以丢弃的邻居有:
在该数据库中不与其它邻居一起出现在序列中的;
在该数据库中与其它邻居形成序列的,其不能为该原始查询的近似匹配。
这些观察浓缩在本发明的中心“横向切割”引理中,如果我们将查询串分成p部分,并且单独地查找最多具有ki误差的每一部分,其能够保证成功地检索到相关部分。
横向切割引理:假设A和B是两个串,并且从编辑距离来说它们之间的误差小于或等于k,或者形式为 ∂ ( A , B ) ≤ k . 假设A=A1A2......Ap是划分成p部分的A,并且对于串Ai以及任意p>1。假设K=(k1,k2,......kp)是非负数目的任何序列,从而 C = Σ i = 1 p k i + p - k ≥ 1 . 那么就存在划分B=B1B2......Bp以及通过J=(j1,j2......j1)标引的部分的子集,从而使得 Σ i = 1 l ( k ji + 1 - ∂ ( A ji , B ji ) ) ≥ C .
证明:显然B可以被划分成p部分,使得 Σ i = 1 p ∂ ( A i , B i ) ≥ ∂ ( A , B ) : 看到其中误差位于对应的部分并且不会引入另外的误差。我们选择这样划分B并且所有部分i都位于子集J中,其中 k i + 1 ≥ ∂ ( A i , B i ) . 现在我们可以得到下式,其证明了我们的例子:
C = Σ i = 1 p k i + p - k ≤ Σ i = 1 p k i + 1 - ∂ ( A i , B i ) ≤ Σ i = 1 l k ji + 1 - ∂ ( A ji , B ji )
该引理在本发明中用作筛选条件,并且A是查询串,B是数据库串。该引理说明误差的数目e表示该数据库中邻居的序列,其必须满足特定的标准。对于该标准,ki用作该查询的每一子串i中所允许的预定义数目的误差。那么,误差之和
Figure C20048000587400102
应该至少为常数 C = Σ i = 1 p k i + p - k , 以仍然作为该查询的近似匹配的部分。在这些公式中,p是该查询串被划分成的子串的数目,ki是每一子串i中所允许的误差的数目,并且k是误差的最大总数目(误差级)。
计算误差之和
Figure C20048000587400104
以及将其与C进行比较是该横向切割算法的基础。简言之,每次在该数据库中的特定位置发现邻居的新匹配时,其校验在该数据库位置之前是否还有其它邻居的匹配。特殊的数据结构通过高效的方式记录该数据库中所有邻居的位置。然后,其验证这些接续匹配(就像它们在数据库中所出现的那样)的联接是否可以最终得到该完整查询的近似匹配。如果该误差之和等于或大于该阈值C,那么这些邻居仍然还是作为该查询的近似匹配的部分的相关候选。如果该误差之和低于阈值C,那么就可以丢弃所包括的所有邻居。
如图2中所示,附图标记为34的该查询“abacababc”被分成三个子串(p=3)。再调用只允许3个误差(k=3)。定义 k i = [ k p ] = 1 以及 C = Σ i = 1 p k i + p - k = 3 . 对于每一子串,分别产生一组邻居,即在数据库中准确找到的附图标记38-41、42-45以及46-49。在邻居的查找过程中,保持迄今所发现的所有邻居的位置,并且判决这些接续邻居的联接是否可以是该查询的近似匹配的一部分。邻居“aba”和“cab”(参见图2中的附图标记30)的两个匹配表示该查询串的前两个子串的无误差匹配(即e=0并且 Σ i = 1 2 ( k i + 1 ) - e = 4 ≥ C = 3 ) . 已经知道的是,已经找到了该查询的有效近似匹配,在最差的情况下表示3个误差的邻居可以接续在这两个匹配之后,为此仍然满足我们的筛选条件。邻居“abc”和“caa”(参见图2中的附图标记31)的两个匹配表示2个误差(即e=2并且 Σ i = 1 2 ( k i + 1 ) - e = 2 )。该序列后面只可能紧随一个最多表示1个误差的邻居,以仍然成为该查询的有效近似匹配。邻居“acb”和“cbc”(参见图2中的附图标记32)的匹配表示已经有4个误差(即e=4并且 Σ i = 1 2 ( k i + 1 ) - e = 0 )。已经知道该序列不可能是该查询的近似匹配的一部分。即使其后紧随无误差的邻居,也不满足该筛选条件。
为了分别更详细和一般性的讨论所述Q-gram和所述邻居产生,下面的部分应该能够使得本领域的熟练技术人员能够实现本发明。
Q-gram和q-gram标引法
使用q-gram,有可能非常快速地找到不大于q的所有串的出现位置。通过下面的方式构建这些q-gram。
考虑整数0至σ-1中∑中符号的双射函数φ。函数φ使用递归定义φ(Pa)=σφ(P)+φ(a)自然地延伸至串,其中P是∑上的串,并且a是∑中的符号。对于b∈[0,σq-1],假设Bucket(b)={i:φ(aiai+1...ai+q-1)=b}。也就是Bucket(b)给出其φ码为b的唯一q符号串的A中每一出现位置的最左边字母的标引。
通过下面的方式产生该标引。首先,计算每一标引i的φi=φ(aiai+1..ai+m-1)。这是使用观察φi=aiσm-1+[φi+1/σ]在A的O(n)扫描中完成的。使用O(nlog(n))快速排序,该列表现在可以产生Indices=<i1,i2,...,in>,使得 &phi; i j &le; &phi; i j + 1 . 最后,在Indices的O(n)扫描中产生Header[b]=min{j:φIndices[j]=b}。该阵列Indices和Header就能够实现该Bucket组。也就是,Bucket[b]={Indices[j]:j∈[Header[b],Header[b+1]-1]}。
如果查询P的长度m≤q,那么P的出现位置的标引都准确的是Bucket(b),其中b∈[φ(P)σq-m,(φ(P)+1)σq-m-1]的内容。
如果查询P大于q,已知P的出现位置都必须是Bucket(φ(Pq))中的子集,其中Pq表示由P的第一个q符号组成的串。
邻居产生
串P的一个(完整的)k邻居被定义为与P的(编辑)距离小于或等于k的所有串的集合,即 N k ( P ) = { Q : &PartialD; ( Q , P ) &le; k } .
串P的密集k邻居被定义为P的完整邻居中,在该邻居中不具有前缀的所有串的集合,即Ck(P)={Q:Q∈Nk(P),并且在Nk(P)中没有Q的前缀}。
Myers算法通过从字母表产生字,并计算当前所产生的字和P的动态编程矩阵的对应行,高效地计算串的密集k邻居。如果一个字当前行的最后一项等于k,那么就已经找到该密集k邻居中的字。如果所有项都大于k,那么就可以回溯该算法。故障链接的使用防止该算法出现丢失那些在k邻居中但是不在密集邻居中的那些字。
由于本发明需要串的完整k邻居来找到该数据库中这些划分的所有精确匹配,所以必须采用Myers算法。
图3通过实际详细范例的方式所示为划分该查询串并接着进行查找。
再次在附图标记为80的该数据库中查找附图标记为34的该查询串。根据本发明,所述查询串被划分成多个输入查询串,为了筒明在这里选择的数目为3,其可以是大于1的任何其它数目。在该范例中,对于开始部分、中间部分以及“结束部分”的部分,分别通过附图标记35、36和37表示所述输入查询串。
通过所述数目的输入查询串,为每一个输入查询串定义多个相邻串,这里定义四个。即,对于附图标记为35的输入查询串,确定相应的四个相邻串,其附图标记为38、39、40和41。
相应地,对于附图标记为36的该“中间部分”输入查询串,确定相应的四个相邻串,其附图标记为42、43、44和45。
相应地,对于附图标记为37的该“结束部分”输入查询串,确定相应的四个相邻串,其附图标记为46、47、48和49。
至于点线的右侧,其表明在该附图的该部分中,附图标记为80的该数据库——其在前面也通过相同的附图标记表示——被查找附图标记为38-49的所述相邻串,查找其每一个,以找到(多个)精确(子串)匹配。
这些通过更靠右边的箭头表示;作为范例,附图标记为38的第一部分相邻串给出了附图标记为50的第一个精确匹配;作为另一范例,附图标记为47的结束部分相邻串给出了附图标记为58和61的匹配,并且附图标记为45的中间部分相邻串给出了附图标记为72的“无用”结果。
并且为了得到或多或少与附图标记为34的该查询串匹配的最终查找结果,箭头可以进一步向右,即附图标记30-33分别表示该四个最终查找结果的每一个。如图可以看到,所述最终查找结果中的每一个通常包括附图标记为50-53其中一个所查找的开始子串、附图标记为54-57其中一个所查找的中间子串、以及附图标记为58-61其中一个所查找的“结束部分”子串。下面通过图5解释如何以及通过什么标准将它们连续起来。
图4所示为通过一般范例方式划分并查找该查询串。图4对应于图3,然而通常“...”表示任何附图标记的任何子串可以包括更多和更少的字母,即本发明也可以应用于非常短的子串以及非常长序列的字母。
如图所示的西文字母表的字母可替换地可以是音调表中的元素序列、音乐音程表中的元素序列、音乐时间间隔表中的元素序列、二进制数字序列、字或字节、氨基酸序列或DNA/RNA序列。相应地,这样同样可以应用于所查找的数据库,因为其也可以作为一个长串或许多长串理解。
音乐音程表中的所述元素序列和音乐时间间隔表中的元素序列表示乐谱的特性。通常对于所有的串(查询串、数据库中的串等),这样意味着它们可以不仅仅是离散符号的任何表。
图5所示为查找最终数目的结果串的方法。该方法查找最终数目的结果串,(在前面的附图中)其通过附图标记30-33表示。即,如果有可能,每一个所述最终数目的结果串在该数据库中具有与附图标记为34的该查询串部分或精确的匹配。附图标记为80的该数据库包括长串。所述方法包括下列步骤:
在步骤100中,该查询串被分成第一数目的输入查询串。如在前面的附图中所表示,所述查询串被分成附图标记为35、36和37的三个输入查询串,即这里第一数目为3。所述第一数目可以是大于或等于1的任何数字。所示正好等于3的该第一数目只是说明性的,即也可以选择任何更大或更小的数字。
换言之,在该步骤中,该查询串被分成(所述第一数目的)小片段的子串,即分成所述输入查询串。
在该范例中,附图标记为34的该查询串“aba...cab...abc”被分成第一数目的输入查询串的所述集合,在该范例的集合中有三个,即:附图标记为35的输入查询串1=“aba...”,附图标记为36的输入查询串2=“cab...”,附图标记为37的输入查询串3=“abc...”。
在步骤200中,确定第二数目的相邻串。也如前面的附图所示,所述第二数目的相邻串为4,即:附图标记38-41,用于附图标记为35的第一输入查询串;附图标记42-45,用于附图标记为36的第二或中间的输入查询串;附图标记46-49,用于附图标记为37的第三或最后的输入查询串。
所示正好等于4的该第二数目只是说明性的,即也可以选择大于或小于4的任何数字。特别地,相邻串的数目取决于该查询串的长度、所应用的串表中不同离散符号的大小以及在该相邻串中所允许的误差的数目。
这样所给出总数为12个相邻串的范例,即其等于所述第一数目乘以所述第二数目,即3×4=12,即每一(3个)输入查询串有四个;或者一般地,对于所述第一数目的输入查询串中的每一串,确定所述第二数目的相邻串。如在前面的附图中所示,它们是附图标记38至49。它们中的每一个单独地具有预定第五数目的误差,其大于或等于零。
注意到,如果(第一)数目的误差超过了相邻串的长度(即该串的所有内容都被确定为误差),相应地下一步骤中的随后查找将绝对是没有意义的;因此所述第一数目的误差不能够超过该串长度。
作为所给出的范例,根据该输入查询串“aba...”,即附图标记35的串,确定四个相邻串,即:
等于其自身的附图标记为38的串“aba...”,即当然没有误差;
附图标记为39的串“abc...”,具有一个误差;
附图标记为40的串“abb...”,具有另一个误差;
附图标记为41的串“acb...”,具有两个误差。
在所给出的范例中,在这里该预定的第五数目的误差(其大于或等于零)等于0、1或2。
在等于0、1或2的该范例中,所示的该第一数目的预定误差只是示范性的,即也可以选择任何更大的数目。
在步骤300中,查找该数据库,以找到所述第二数目的相邻串中每一串的第三数目的精确匹配。所述查找基于所给定的查找方法。
通过附图标记50-61和70-74说明所述第三数目的精确匹配。重要的是要注意到,可能有一个或多个匹配,即:
首先,作为相邻串范例的附图标记为38的“aba...”得到附图标记为50和52的精确匹配,即“aba...”;
其次,作为另一相邻串范例的附图标记为39的“abc...”也得到附图标记为51的其精确匹配,即“abc...”;
第三,附图标记为40的“abb...”也产生无匹配,即附图标记为70的“abd...”,和
最后,附图标记为41的“acb...”也产生无匹配,即附图标记为71的“abc...”。
后两个那么就没有用了,因为只考虑精确匹配。
相应地,附图标记53-61和72-74是来自通过附图标记42-49表示的相邻串的查找结果。
在所有的情况下,附图标记为50-61和70-74的该查找结果,其在该数据库中具有相应的串内容和相应的位置,将其保留以在后面随后的步骤中使用。
而且,在所有的情况下,该给出的查找方法可以是q-gram标引方法或本领域中熟知有用的任何其它适当的方法,例如后继树法、或散列法。
在步骤400中,将所述从该数据库中查找到的精确匹配串联接成第四数目的中间串。所述查找到的精确匹配串(当其包括在所述每一中间串中时)在所述数据库中彼此相接续。
所述第四数目的中间串通过附图标记29-33表示,该范例中所给出的第四数目为5。而且,所述查找到的精确匹配串通过附图标记50-61和70-74表示,其包括在每一所述中间串中,确定其在该数据库中彼此相互接续:将在下面对其进行解释。
如从该范例中可以看到,在联接期间,来自附图标记为35的第一输入查询串(其是该查询串的开始)的该查找结果=“aba...”,其具有附图标记为38-41的对应的起始相邻串,可以得到附图标记为50-53的对应的起始子串。
相应地,在联接期间,来自附图标记为36的第二输入查询串(其是该查询串的中部)的该查找结果=“cab...”,其具有附图标记为42-45的对应的“中部”相邻串,可以得到附图标记为54-57的对应的中部子串。
相应地,在联接期间,来自附图标记为37的第三输入查询串(其是该查询串的结束部分)的该查找结果=“abc...”,其具有附图标记为46-49的对应的“结束部分”相邻串,其可以得到附图标记为58-61的对应的“结束部分”子串。
换言之,附图标记为50-61和70-74的该精确匹配串作为每一所述中间串的对应部分,其实际上在该数据库中彼此相互接续,即附图标记为50-53的其中一个起始子串、附图标记为54-57的其中一个中部子串以及附图标记为58-61的其中一个结束部分子串被联接成为一个所述第四数目的中间串,即附图标记29-33其中之一。
在步骤500中,确定最终数目的结果串。该确定是基于来自前面步骤的所述第四数目的中间串,并且这里在该步骤中,确定该最终数目的结果串中的每一串,以相比于附图标记为34的所述查询串最多具有预定的第六数目的误差。
在所给定的该范例中,附图标记为30-33的结果串的最终数目等于4,而所述第四数目的中间串为5。即,在该范例中,丢弃或不考虑附图标记为29的那一个,因为其特别不满足具有的误差少于或等于所述第二数目的误差的标准。当相比于附图标记为34的所述查询串时可以看到这一点。
换言之,附图标记29被丢弃,因为其具有太多的误差(相比于附图标记为34的初始查询串),而附图标记30至33每一个都具有较少的误差,并从而满足该标准。也就是,在该范例中,附图标记30至33包括最终数目的结果串。
作为该方法的结果,附图标记为30-33的所述最终数目的结果串每一个都是附图标记为34的所述查询串的精确匹配或部分匹配。
在所给定的范例中,当查找所述查询串时,那么四个匹配(精确的或部分的)就是该结果。
结合前面的步骤,该步骤也称之为“横向切割”,即该方法是只考虑那些精确匹配的邻居(当进行查找时),当进行联接时,其可以包含具有与附图标记为34的原始查询串的邻近匹配。
在本发明的精神中,任何所述“第一数目”、“第二数目的相邻串”、“第三数目”、“第四数目的中间串”以及“第一和第二数目的误差”都可以单独地、或相对于另一个、或相对于该查询串和/或该数据库的内容精细调节。从而任何查找速度都可以降低,和/或可以得到另一个匹配误差(更少/更小)。
相应地,所给定的该范例是说明性的,并且也可以对该查询串的另一个串长度、相邻串、中间串、该串的另一个顺序内容(离散符号)等进行扩展。
图6所示为用于查找的设备。附图标记660表示所述设备。根据本发明,该设备如前面的附图中所讨论的那样处理附图标记为34的该查询串。该设备处理作为输入的所述串,并因此包括计算装置661,例如是足够快的微处理器。该微处理器查找附图标记为80的该数据库中的匹配。结果,如果有的话,就会发现附图标记为30、31、32和33的该最终数目的结果串。用于执行该匹配方法的步骤的计算装置例如也可以是专用ASIC的一部分。
附图标记662表示计算机程序产品。所述计算程序产品包括存储在计算机可读媒体上的程序代码装置,当该计算机程序在计算机上运行时其用于执行所述方法。
一般地,本发明可以应用于各种领域,诸如用于音乐系统的曲调检索(“通过哼唱查询”)、在搜索引擎中或在文本文件中查找关键字、在分子生物数据库中查找DNA/RNA序列、比特、字节或字编码、误差控制等。对于曲调检索应用,可以假想只记住了少量片段的曲调,而没有回忆出该完整的曲调或歌曲。一旦以适当的表示作为离散符号的串提供时,该曲调段然后可以被输入到该查找方法,以使用所述数据库显示该歌曲或曲调的标识。该查找方法从而能够允许输入中的误差。该设备例如可以是自动唱片点唱机,其作为独立的音频设备或在PC上实施。其也可以是便携音频设备,其包含的界面例如能够让慢跑的人通过吹出开始段落或反复部分的口哨快速地改变他所携带的音乐。该设备例如也可以是互联网服务器上用于从网站上快速选择特定MP3的业务,或者该设备可以是运行该方法用于检索例如铃声的便携电话。
类似地,用于查找引擎的作为查询的关键字(类似于前面所提到的查询串),例如用于查找互联网上的特定产品,或软件字典中的字,或者软件查找工具可以包含打字稿。该查找或检索过程可以累计关键字中的这些误差。在所有的应用中,一个所允许的误差数目可以是预先定义的或固定的。该数据库最好可以看作一个非常长的串(例如长文本、世界上放入序列中的所有曲调、等)。而且,该串可以从有限的集合(例如西文字母表或音调表、二进制数字、字节、字、氨基酸、DNA/RNA、字等)中构建。对于文本应用,可以使用来自西文字母表的26个字母。相应地,可以从9元素音程表构建曲调。分子生物应用使用22个氨基酸或四个核苷酸作为字母表。编码应用使用二进制符号、字、比特或字节。
根据乐谱的特性,应该理解为足以用于检索曲调的任何信息。例如是曲调间隔,或者在人们并不是非常懂音乐的情况下,或者其想要通过轻拍他的脚步查找一段音乐的情况下只是时间间隔。它们通过预定的映射函数被转换成为串行字符。
计算机可读媒体可以是磁带、光盘、数字通用盘(DVD)、压缩盘(可读CD或可写CD)、微型盘、硬盘、软盘、智能卡、PCMCIA卡等。
在权利要求书中,位于圆括号之间的任何附图标记不应该理解为对权利要求书的限制。词语“包括”并不排除存在除了权利要求中所列出的那些之外的其它元素或步骤。元素前面的词语“一个”并不排除存在多个这种元素。
可以通过包括多个离散元素的硬件,以及通过适当编程的计算机实施本发明。在枚列多个器件的装置权利要求中,可以通过一个以及该相同的硬件项实施多个这些器件。某些措施在相互不同的独立权利要求中叙述这样的事实并不表示组合这些措施不能有利地使用。
Myers,E.(1994).A sublinear algorithm for approximate keywordsearching.Algorithmica,12(4/5),345-374.

Claims (12)

1.一种查找最终数目的结果串(30-33)的方法,所述结果串在包括多个长串或一个长串的数据库(80)中具有与查询串(34)的部分或精确匹配,所述方法的特征在于包括步骤:
将该查询串划分(100)成第一数目的子串(35,36,37);
确定(200)所述第一数目的子串中每一子串的第二数目的相邻串(38-41,42-45,44-49),其中所述相邻串是与相应子串相比在预定的第五数目的位置上具有误差的串;
基于查找方法查找(300)数据库,为所述第二数目的相邻串中的每一串查找第三数目的精确匹配(50-61,70-74);
将从该数据库所查找的所述精确匹配的串联接(400)成第四数目的中间串(29,30,32,33,34),其中在每一所述中间串中包含的所述查找的精确匹配的串(50-61,70-74)的位置在所述数据库中的同一串中是彼此相互接续的;并且
根据所述第四数目的中间串确定(500)最终数目的结果串(30-33),其中最终数目的结果串中的每一串相比于所述查询串(34)最多具有预定第六数目的误差。
2.根据权利要求1的方法,其特征在于所述查找方法是q-gram标引法。
3.根据权利要求1的方法,其特征在于所述查找方法是后继树法。
4.根据权利要求1的方法,其特征在于所述查找方法是散列法。
5.根据权利要求1至4的任一项的方法,其特征在于所述串和所述数据库分别都包括西文字母表的字母序列。
6.根据权利要求1至4的任一项的方法,其特征在于所述串和所述数据库分别表示乐谱的特性。
7.根据权利要求1至4的任一项的方法,其特征在于所述串和所述数据库分别都包括二进制数字序列。
8.根据权利要求1至4的任一项的方法,其特征在于所述串和所述数据库分别都包括氨基酸序列或DNA/RNA基序列。
9.根据权利要求1至4的任一项的方法,其特征在于所述串和所述数据库分别都包括比特、字节或字的序列。
10.一种查找引擎设备,其特征在于包括:
将查询串划分成第一数目的子串(35,36,37)的装置;
确定所述第一数目的子串中每一子串的第二数目的相邻串(38-41,42-45,44-49)的装置,其中所述相邻串是与相应子串相比在预定的第五数目的位置上具有误差的串;
基于查找方法查找数据库的装置,为所述第二数目的相邻串中的每一串查找第三数目的精确匹配(50-61,70-74);
将从该数据库所查找的所述精确匹配的串联接成第四数目的中间串(29,30,32,33,34)的装置,其中在每一所述中间串中包含的所述查找的精确匹配的串(50-61,70-74)的位置在所述数据库中的同一串中是彼此相互接续的;并且
根据所述第四数目的中间串确定最终数目的结果串(30-33)的装置,其中最终数目的结果串中的每一串相比于所述查询串(34)最多具有预定的第六数目的误差。
11.一种查找最终数目的结果串的设备(660),其特征在于包括:
用于将查询串划分成第一数目的子串(35,36,37)的装置;
用于确定所述第一数目的子串中每一子串的第二数目的相邻串(38-41,42-45,44-49)的装置,其中所述相邻串是与相应子串相比在预定的第五数目的位置上具有误差的串;
用于基于查找方法查找数据库的装置,为所述第二数目的相邻串中的每一串查找第三数目的精确匹配(50-61,70-74);
用于将从该数据库所查找的所述精确匹配的串联接成第四数目的中间串(29,30,32,33,34)的装置,其中在所述中间串的每一串中包含的所述查找的精确匹配的串(50-61,70-74)的位置在所述数据库中的同一串中是彼此相互接续的;并且
用于根据所述第四数目的中间串确定最终数目的结果串(30-33)的装置,其中最终数目的结果串中的每一串相比于所述查询串(34)最多具有预定的第六数目的误差。
12.一种查找最终数目的结果串的计算机系统,其特征在于包括:
将查询串划分成第一数目的子串(35,36,37)的装置;
确定所述第一数目的子串中每一子串的第二数目的相邻串(38-41,42-45,44-49)的装置,其中所述相邻串是与相应子串相比在预定的第五数目的位置上具有误差的串;
基于查找方法查找数据库的装置,为所述第二数目的相邻串中的每一串查找第三数目的精确匹配(50-61,70-74);
将从该数据库所查找的所述精确匹配的串联接成第四数目的中间串(29,30,32,33,34)的装置,其中在每一所述中间串中包含的所述查找的精确匹配的串(50-61,70-74)的位置在所述数据库中的同一串中是彼此相互接续的;并且
根据所述第四数目的中间串确定(500)最终数目的结果串(30-33)的装置,其中最终数目的结果串中的每一串相比于所述查询串(34)最多具有预定的第六数目的误差。
CNB2004800058740A 2003-03-03 2004-02-25 用于查找串的方法和设备 Expired - Fee Related CN100557606C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP03100517 2003-03-03
EP03100517.6 2003-03-03

Publications (2)

Publication Number Publication Date
CN1761958A CN1761958A (zh) 2006-04-19
CN100557606C true CN100557606C (zh) 2009-11-04

Family

ID=32946911

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004800058740A Expired - Fee Related CN100557606C (zh) 2003-03-03 2004-02-25 用于查找串的方法和设备

Country Status (6)

Country Link
US (1) US7756847B2 (zh)
EP (1) EP1602039A2 (zh)
JP (1) JP4538449B2 (zh)
KR (1) KR101068678B1 (zh)
CN (1) CN100557606C (zh)
WO (1) WO2004079631A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104484381A (zh) * 2010-02-26 2015-04-01 电子湾有限公司 用于搜索多个串的方法和系统

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8588729B2 (en) * 1994-11-21 2013-11-19 Bgc Partners, Inc. Method for retrieving data stored in a database
US6876309B1 (en) * 1994-11-21 2005-04-05 Espeed, Inc. Bond trading system
KR20040027259A (ko) 2002-09-26 2004-04-01 엘지전자 주식회사 1 회 기록 가능한 광디스크의 디펙트 영역 관리방법
US7233550B2 (en) 2002-09-30 2007-06-19 Lg Electronics Inc. Write-once optical disc, and method and apparatus for recording management information on write-once optical disc
KR20040028469A (ko) 2002-09-30 2004-04-03 엘지전자 주식회사 1 회 기록 가능한 광디스크의 디펙트 영역 관리방법
EP2085971B1 (en) 2002-12-11 2014-06-04 LG Electronics Inc. Method of managing overwrite and method of recording management information on an optical disc write once
US7672204B2 (en) 2003-01-27 2010-03-02 Lg Electronics Inc. Optical disc, method and apparatus for managing a defective area on an optical disc
TWI314315B (en) 2003-01-27 2009-09-01 Lg Electronics Inc Optical disc of write once type, method, and apparatus for managing defect information on the optical disc
US20040160799A1 (en) 2003-02-17 2004-08-19 Park Yong Cheol Write-once optical disc, and method and apparatus for allocating spare area on write-once optical disc
US7643390B2 (en) 2003-02-21 2010-01-05 Lg Electronics Inc. Write-once optical recording medium and defect management information management method thereof
US7499383B2 (en) 2003-02-21 2009-03-03 Lg Electronics Inc. Write-once optical disc and method for managing spare area thereof
US7675828B2 (en) 2003-02-25 2010-03-09 Lg Electronics Inc. Recording medium having data structure for managing at least a data area of the recording medium and recording and reproducing methods and apparatuses
KR100991788B1 (ko) 2003-03-04 2010-11-03 엘지전자 주식회사 광기록매체 및 광기록매체의 기록방법 및 장치
US7289404B2 (en) 2003-03-13 2007-10-30 Lg Electronics Inc. Write-once recording medium and defective area management method and apparatus for write-once recording medium
MXPA05012044A (es) 2003-05-09 2006-02-03 Lg Electronics Inc Disco optico de una sola escritura, metodo y aparato par recuperacion de informacion de administracion de disco del disco optico de una sola escritura.
RU2385509C2 (ru) 2003-05-09 2010-03-27 Эл Джи Электроникс Инк. Неперезаписываемый оптический диск и способ и устройство для восстановления управляющей информации диска с неперезаписываемого оптического диска
KR20050009031A (ko) 2003-07-15 2005-01-24 엘지전자 주식회사 1회 기록 가능한 광디스크 및 광디스크의 관리정보 기록방법
US7313065B2 (en) 2003-08-05 2007-12-25 Lg Electronics Inc. Write-once optical disc, and method and apparatus for recording/reproducing management information on/from optical disc
DE602004025947D1 (de) 2003-08-05 2010-04-22 Lg Electronics Inc Einmalbeschreibbarer optischer datenträger und verfahren und vorrichtung zum aufzeichnen/wiedergeben von verwaltungsinformationen auf dem optischen datenträger bzw. daraus
MXPA06002621A (es) 2003-09-08 2006-06-05 Lg Electronics Inc Disco optico de una sola escritura, metodo y aparato para grabacion de informacion de administracion en el disco optico de una sola escritura.
KR101041819B1 (ko) 2003-09-08 2011-06-17 엘지전자 주식회사 1회 기록가능한 광디스크 및 광디스크상에 관리 정보를기록하기 위한 방법
KR101108953B1 (ko) 2003-09-08 2012-01-31 엘지전자 주식회사 1회-기록 광 디스크, 및 1회-기록 광 디스크 상에 관리정보를 기록하는 방법 및 장치
KR100964685B1 (ko) 2003-10-20 2010-06-21 엘지전자 주식회사 1회 기록가능한 광디스크 및 광디스크의 기록재생방법과기록재생장치
US7283999B1 (en) * 2003-12-19 2007-10-16 Ncr Corp. Similarity string filtering
KR101024916B1 (ko) 2004-03-19 2011-03-31 엘지전자 주식회사 1회 기록 가능한 고밀도 광디스크의 데이터 기록 방법 및장치
KR101049117B1 (ko) 2004-06-08 2011-07-14 엘지전자 주식회사 1회 기록 가능한 광디스크 및 광디스크의 관리정보 기록방법, 디스크 클로징 방법 및 기록재생 장치
KR101014727B1 (ko) 2004-06-23 2011-02-16 엘지전자 주식회사 1회 기록 가능한 광디스크의 중첩 기록 방법 및 장치
KR101012378B1 (ko) 2004-08-16 2011-02-09 엘지전자 주식회사 광 저장매체의 기록 재생 방법 및 장치
JP5144265B2 (ja) 2004-09-14 2013-02-13 エルジー エレクトロニクス インコーポレイティド 記録媒体及び記録媒体の記録再生方法及び装置
US7747635B1 (en) * 2004-12-21 2010-06-29 Oracle America, Inc. Automatically generating efficient string matching code
US7338819B2 (en) * 2005-06-30 2008-03-04 Broadcom Corporation System and method for matching chip and package terminals
KR101227485B1 (ko) 2005-11-25 2013-01-29 엘지전자 주식회사 기록매체 및 기록매체의 결함관리 정보 기록방법과기록장치
US7509339B2 (en) * 2006-01-03 2009-03-24 International Business Machines Corporation System and method of implementing personalized alerts utilizing a user registry in instant messenger
US7406479B2 (en) * 2006-02-10 2008-07-29 Microsoft Corporation Primitive operator for similarity joins in data cleaning
US7395270B2 (en) 2006-06-26 2008-07-01 International Business Machines Corporation Classification-based method and apparatus for string selectivity estimation
US7945627B1 (en) 2006-09-28 2011-05-17 Bitdefender IPR Management Ltd. Layout-based electronic communication filtering systems and methods
US8283546B2 (en) * 2007-03-28 2012-10-09 Van Os Jan L Melody encoding and searching system
US7962530B1 (en) * 2007-04-27 2011-06-14 Michael Joseph Kolta Method for locating information in a musical database using a fragment of a melody
US8572184B1 (en) 2007-10-04 2013-10-29 Bitdefender IPR Management Ltd. Systems and methods for dynamically integrating heterogeneous anti-spam filters
US8010614B1 (en) 2007-11-01 2011-08-30 Bitdefender IPR Management Ltd. Systems and methods for generating signatures for electronic communication classification
WO2009094649A1 (en) * 2008-01-24 2009-07-30 Sra International, Inc. System and method for variant string matching
US20090234852A1 (en) * 2008-03-17 2009-09-17 Microsoft Corporation Sub-linear approximate string match
US8126913B2 (en) * 2008-05-08 2012-02-28 International Business Machines Corporation Method to identify exact, non-exact and further non-exact matches to part numbers in an enterprise database
US9569528B2 (en) 2008-10-03 2017-02-14 Ab Initio Technology Llc Detection of confidential information
US8447789B2 (en) * 2009-09-15 2013-05-21 Ilya Geller Systems and methods for creating structured data
US8516013B2 (en) 2009-03-03 2013-08-20 Ilya Geller Systems and methods for subtext searching data using synonym-enriched predicative phrases and substituted pronouns
US8504580B2 (en) * 2009-03-03 2013-08-06 Ilya Geller Systems and methods for creating an artificial intelligence
US20100274755A1 (en) * 2009-04-28 2010-10-28 Stewart Richard Alan Binary software binary image analysis
US20100325136A1 (en) * 2009-06-23 2010-12-23 Microsoft Corporation Error tolerant autocompletion
WO2011137368A2 (en) 2010-04-30 2011-11-03 Life Technologies Corporation Systems and methods for analyzing nucleic acid sequences
KR101638594B1 (ko) 2010-05-26 2016-07-20 삼성전자주식회사 Dna 서열 검색 방법 및 장치
US9268903B2 (en) 2010-07-06 2016-02-23 Life Technologies Corporation Systems and methods for sequence data alignment quality assessment
CN102479191B (zh) 2010-11-22 2014-03-26 阿里巴巴集团控股有限公司 提供多粒度分词结果的方法及其装置
CN103425691B (zh) 2012-05-22 2016-12-14 阿里巴巴集团控股有限公司 一种搜索方法和系统
KR101452638B1 (ko) 2013-06-21 2014-10-22 서울대학교산학협력단 유사 문자열 검색 방법 및 장치
US9934217B2 (en) * 2013-07-26 2018-04-03 Facebook, Inc. Index for electronic string of symbols
US9400845B2 (en) * 2013-09-03 2016-07-26 Ferrandino & Son Inc. Providing intelligent service provider searching and statistics on service providers
CN104008119B (zh) * 2013-12-30 2017-09-26 西南交通大学 一种一对多的混合字符串融合比对方法
CN105653567A (zh) * 2014-12-04 2016-06-08 南京理工大学常熟研究院有限公司 一种文本序列数据中快速查找特征字符串的方法
US9953065B2 (en) 2015-02-13 2018-04-24 International Business Machines Corporation Method for processing a database query
CN104750846B (zh) * 2015-04-10 2017-12-08 浪潮集团有限公司 一种子串查找方法及装置
KR101910491B1 (ko) * 2016-12-07 2018-10-22 전북대학교 산학협력단 가변길이 그램의 역리스트 동적 생성을 이용한 유사 문자열 검색 방법 및 장치
WO2018173042A1 (en) * 2017-03-19 2018-09-27 Ofek - Eshkolot Research And Development Ltd System and method for generating filters for k-mismatch search
US10528556B1 (en) * 2017-12-31 2020-01-07 Allscripts Software, Llc Database methodology for searching encrypted data records
US10747819B2 (en) 2018-04-20 2020-08-18 International Business Machines Corporation Rapid partial substring matching
US10169451B1 (en) 2018-04-20 2019-01-01 International Business Machines Corporation Rapid character substring searching
US10782968B2 (en) 2018-08-23 2020-09-22 International Business Machines Corporation Rapid substring detection within a data element string
US10732972B2 (en) 2018-08-23 2020-08-04 International Business Machines Corporation Non-overlapping substring detection within a data element string
US11042371B2 (en) 2019-09-11 2021-06-22 International Business Machines Corporation Plausability-driven fault detection in result logic and condition codes for fast exact substring match
US10996951B2 (en) 2019-09-11 2021-05-04 International Business Machines Corporation Plausibility-driven fault detection in string termination logic for fast exact substring match

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2880199B2 (ja) * 1989-10-18 1999-04-05 株式会社日立製作所 記号列検索方法および検索装置
US6370479B1 (en) * 1992-02-06 2002-04-09 Fujitsu Limited Method and apparatus for extracting and evaluating mutually similar portions in one-dimensional sequences in molecules and/or three-dimensional structures of molecules
GB9220404D0 (en) * 1992-08-20 1992-11-11 Nat Security Agency Method of identifying,retrieving and sorting documents
US5852821A (en) * 1993-04-16 1998-12-22 Sybase, Inc. High-speed data base query method and apparatus
US5553272A (en) * 1994-09-30 1996-09-03 The University Of South Florida VLSI circuit structure for determining the edit distance between strings
DE69422406T2 (de) * 1994-10-28 2000-05-04 Hewlett Packard Co Verfahren zum Durchführen eines Vergleichs von Datenketten
US5778361A (en) * 1995-09-29 1998-07-07 Microsoft Corporation Method and system for fast indexing and searching of text in compound-word languages
US5963957A (en) * 1997-04-28 1999-10-05 Philips Electronics North America Corporation Bibliographic music data base with normalized musical themes
US6026398A (en) * 1997-10-16 2000-02-15 Imarket, Incorporated System and methods for searching and matching databases
JP3622503B2 (ja) * 1998-05-29 2005-02-23 株式会社日立製作所 特徴文字列抽出方法および装置とこれを用いた類似文書検索方法および装置並びに特徴文字列抽出プログラムを格納した記憶媒体および類似文書検索プログラムを格納した記憶媒体
US6144958A (en) * 1998-07-15 2000-11-07 Amazon.Com, Inc. System and method for correcting spelling errors in search queries
US6556984B1 (en) * 1999-01-19 2003-04-29 International Business Machines Corporation Hierarchical string matching using multi-path dynamic programming
CN1156779C (zh) * 1999-06-09 2004-07-07 株式会社理光 文献检索的方法和装置
US6757675B2 (en) * 2000-07-24 2004-06-29 The Regents Of The University Of California Method and apparatus for indexing document content and content comparison with World Wide Web search service
US6654734B1 (en) * 2000-08-30 2003-11-25 International Business Machines Corporation System and method for query processing and optimization for XML repositories
JP2002189747A (ja) * 2000-12-19 2002-07-05 Hitachi Ltd 文書情報の検索方法
US6775666B1 (en) * 2001-05-29 2004-08-10 Microsoft Corporation Method and system for searching index databases
US6681222B2 (en) * 2001-07-16 2004-01-20 Quip Incorporated Unified database and text retrieval system
US7152056B2 (en) * 2002-04-19 2006-12-19 Dow Jones Reuters Business Interactive, Llc Apparatus and method for generating data useful in indexing and searching
US7010522B1 (en) * 2002-06-17 2006-03-07 At&T Corp. Method of performing approximate substring indexing
US7734565B2 (en) * 2003-01-18 2010-06-08 Yahoo! Inc. Query string matching method and apparatus
US7313554B2 (en) * 2003-09-29 2007-12-25 International Business Machines Corporation System and method for indexing queries, rules and subscriptions
US7299126B2 (en) * 2003-11-03 2007-11-20 International Business Machines Corporation System and method for evaluating moving queries over moving objects
US7283999B1 (en) * 2003-12-19 2007-10-16 Ncr Corp. Similarity string filtering
US7346625B2 (en) * 2004-11-05 2008-03-18 International Business Machines Corporation Methods and apparatus for performing structural joins for answering containment queries

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104484381A (zh) * 2010-02-26 2015-04-01 电子湾有限公司 用于搜索多个串的方法和系统
CN104484381B (zh) * 2010-02-26 2018-05-22 电子湾有限公司 用于搜索多个串的方法和系统

Also Published As

Publication number Publication date
WO2004079631A2 (en) 2004-09-16
US20060179052A1 (en) 2006-08-10
WO2004079631A3 (en) 2004-10-28
KR101068678B1 (ko) 2011-09-30
JP2006519445A (ja) 2006-08-24
EP1602039A2 (en) 2005-12-07
KR20060002792A (ko) 2006-01-09
JP4538449B2 (ja) 2010-09-08
CN1761958A (zh) 2006-04-19
US7756847B2 (en) 2010-07-13

Similar Documents

Publication Publication Date Title
CN100557606C (zh) 用于查找串的方法和设备
JP5492187B2 (ja) 編集距離および文書情報を使用する検索結果順位付け
JP3849279B2 (ja) インデクス作成方法および検索方法
JP3497172B2 (ja) 自動文書分類システム
Floratou et al. Efficient and accurate discovery of patterns in sequence data sets
US7080091B2 (en) Inverted index system and method for numeric attributes
US7783660B2 (en) System and method for enhanced text matching
JP4848317B2 (ja) データベースのインデックス作成システム、方法及びプログラム
CN106383836B (zh) 将可操作属性归于描述个人身份的数据
EP1826692A2 (en) Query correction using indexed content on a desktop indexer program.
CN102622450A (zh) 用户的浏览器历史的相关性排序
EP2011003A2 (en) Efficient storage and search of word lists and other text
CN101369278B (zh) 一种近似匹配方法和装置
EP2162838B1 (en) Phonetic search using normalized string
Bachteler et al. Similarity filtering with multibit trees for record linkage
US20140129543A1 (en) Search service including indexing text containing numbers in part using one or more number index structures
Manalu et al. The Development of Document Similarity Detector by Jaccard Formulation
Petri et al. Efficient indexing algorithms for approximate pattern matching in text
CN115809248B (zh) 数据查询方法和装置以及存储介质
Iliopoulos et al. Evolution of musical motifs in polyphonic passages
Peng CFSP: a collaborative frequent sequence pattern discovery algorithm for nucleic acid sequence classification
JPH04340164A (ja) マルチキーワード情報検索処理方式および検索ファイル作成装置
KR101910491B1 (ko) 가변길이 그램의 역리스트 동적 생성을 이용한 유사 문자열 검색 방법 및 장치
CN114791769A (zh) 一种用户行为预测结果的大数据库建立方法
Lee et al. A seriate coverage filtration approach for homology search

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091104

Termination date: 20130225