JP2006519445A - 文字列検索の方法および設備 - Google Patents

文字列検索の方法および設備 Download PDF

Info

Publication number
JP2006519445A
JP2006519445A JP2006506641A JP2006506641A JP2006519445A JP 2006519445 A JP2006519445 A JP 2006519445A JP 2006506641 A JP2006506641 A JP 2006506641A JP 2006506641 A JP2006506641 A JP 2006506641A JP 2006519445 A JP2006519445 A JP 2006519445A
Authority
JP
Japan
Prior art keywords
strings
string
database
character
character string
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.)
Granted
Application number
JP2006506641A
Other languages
English (en)
Other versions
JP4538449B2 (ja
Inventor
エグナー,セバスティアン
ハー エム コルスト,ヨハネス
フューレン,マルセル ファン
セー パウス,ステーフェン
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 JP2006519445A publication Critical patent/JP2006519445A/ja
Application granted granted Critical
Publication of JP4538449B2 publication Critical patent/JP4538449B2/ja
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

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本発明は、多数の長い文字列を有する、あるいは単一の長い文字列を有するデータベース(80)中における、問い合わせ文字列(34)と部分一致または完全一致する内容をもつある最終的な個数の結果文字列(30〜33)を検索する方法に関するものである。該方法は、問い合わせ文字列をある第一の個数の入力問い合わせ文字列(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

本発明は、多数の長い文字列を有する、あるいは単一の長い文字列を有するデータベース中における、問い合わせ文字列と部分一致または完全一致する内容をもつある最終的な個数の結果を検索する方法に関するものである。
本発明はまた検索エンジンにも関する。
本発明はまたツールにも関する。
本発明はまた前記方法を実行するコンピュータシステムにも関する。
本発明はさらに、前記方法を実行するコンピュータプログラムプロダクトにも関する。
加えて、本発明はさらに設備にも関する。
米国特許第5,963,957号は音楽データベースを有する情報処理システムを開示している。前記音楽データベースは単旋律による音符の参照シーケンスを蓄えている。前記参照シーケンスはすべて辞書式に保存するために相対的な階名度数(scale degree)に規格化されている。入力された音符列と特定の参照列との間の一致を見出すためにはN分木と呼ばれるものが適用される。これにより前記情報処理システムは一致する参照シーケンスに関連する書誌情報を提供するのである。
Du,D.W. and Chang,S.C.(1994) “An Approach to Designing Very Fast Approximate String Matching Algorithms”〔非常に高速な近似文字列マッチングの諸アルゴリズム設計の試み〕,IEEE Transactions on Knowledge and Data Engineering, 6(4),620−633ではもう一つの種類の文字列マッチングがさらに開示されている。
当該技術では、検索方法は完全一致のアルゴリズムを用いる。既知の検索方法は典型的には完全一致を試みる。すなわち、完全に一致するものをみつけるために検索またはマッチングを行うのである。
Myers,E.(1994). A Sublinear Algorithm for Approximate Keyword Searching. Algorithmica, 12(4/5),345−374
しかし、多くの実用上の応用では、完全一致しか検索されないのは問題である。結果として、ちょっとした差異があるだけにも関わらず、役に立つかもしれない検索結果が与えられないというのは追加的な問題になる。
大きなデータベースの検索に長い時間がかかり、それに応じて計算機パワーの集中的使用が必要となることもさらなる問題である。
多くの実用上の応用では、(完全一致ではなく)部分一致を得るだけでも十分である。これは、問い合わせ文字列(検索試行への入力)もしくはマッチング結果の文字列またはその両方が比較的重要でない誤差を有していたとしても、全く結果が得られないよりは部分一致が得られるほうがましだからである。前記の誤差は、典型的には、問い合わせ文字列または検索されるデータベースに含まれる不適切なデータによって生じるものである。
上記のことを含むさまざまな問題が本発明の方法によって解決される。前記方法は以下のステップを有している。
・問い合わせ文字列をある第一の個数の入力問い合わせ文字列に分割する。
換言すれば、このステップでは前記問い合わせ文字列は前記第一の個数の小さな部分文字列片に、すなわち前記入力問い合わせ文字列に切り分けられる。
・前記第一の個数の入力問い合わせ文字列のそれぞれの文字列に対してある第二の個数の近傍文字列を決定する。ここで、前記第二の個数の近傍文字列のそれぞれの文字列は所定の第一の誤り個数の誤りを有している。
換言すれば、このステップでは近傍文字列の前記第二の個数は、前記問い合わせ文字列の長さ、使っている文字アルファベットにおける異なる区別される記号の数、そして前記近傍文字列において許される誤りの個数によって決まる。
一般に、前記第一の個数の入力問い合わせ文字列のそれぞれの文字列に対して、前記第二の個数の近傍文字列が決定される。そのそれぞれが個々に所定の第一の誤り個数の誤りを有しており、その数は0以上である。
・前記第二の個数の近傍文字列のそれぞれの文字列に対する完全一致文字列を、ある検索方法に基づいて、ある第三の個数、データベースから検索する。
ここで、前記第二の個数の近傍文字列のそれぞれの文字列に対して完全一致文字列を、ある所与の検索方法に基づいて、ある(第三の)個数、データベースから検索するときには、該検索方法はqグラム(q−gram)法、接尾辞木(suffix tree)法、またはハッシュ法を使うことができる。
・前記データベースから検索された完全一致文字列をつなげてある第四の個数の中間文字列にする。ここで、前記中間文字列のそれぞれに含まれている検索された完全一致文字列は前記データベース中で相続いているものとする。
・前記第四の個数の中間文字列に基づいて最終的な個数の結果文字列を決定する。ここで、前記最終的な個数の結果文字列のそれぞれの文字列は、前記問い合わせ文字列に比較して高々ある所定の第二の誤り個数の誤りを有している。
最後の二つのステップについては、図5のステップ400および500において説明する。
前記方法の結果として、前記最終的な個数の結果文字列のそれぞれは、前記問い合わせ文字列の完全一致または部分一致になっている(冒頭の段落で言及)。
これにより、完全一致または軽微な誤りのみを含む部分一致を得ることが達成される。
さらに、前記方法は大きなデータベースも(完全一致または部分一致のために)比較的控えめな計算機パワーの使用によって高速に検索することができる。
前記設備、ツール、検索エンジン、コンピュータシステムはそれぞれ上に前記方法との関連で述べたのと同じ理由で同じ利点をもたらし、同じ問題を解決する。
本発明は以下において好ましい実施形態との関連で、また図面を参照しつつより詳細に説明される。
図面を通じて、同じ参照符号は同様なあるいは対応する特徴、機能、文字列などを示す。
図1は本発明の技術の一般的な議論のための図である。この図は文字列データベースにおいて検索される文字列abacababc(参照符号80)を示している。高々一つの誤りを許すとした場合の(k=1)問い合わせ文字列の四つの近似一致文字列のデータベース中での位置が示されている。問い合わせ文字列(参照符号34)のabacababcは3文字だけのアルファベット{‘a’,‘b’,‘c’}から構成されている。誤りが一つしか許されない場合(k=1)、挿入された記号を含む近似一致(たとえば参照符号30のabacababbc)、削除された記号を含む近時一致(たとえば参照符号31のabcababc)、置換された記号を含む近似一致(たとえば参照符号32のabacabcbc)、そして完全一致(すなわち、参照符号33のabacababc)がみつけられる。当該技術において一般には、問い合わせ文字列全体がただちに検索されるような文字列の検索を行う仕方が認知されている。
図2は問い合わせ文字列を分割する様子を示している。文献から知られる効率的な検索諸方法は、完全一致検索、すなわち誤りを全く許さない(k=0)検索のための高速アルゴリズムの使用を利用する。これは(完全)一致の場合の位置、すなわち図1における参照符号33を返すだけである。高速な完全一致アルゴリズムの実装を可能にするためには、文字列データベース(参照符号80)からオフラインで(プリプロセッサとして)接尾辞木またはqグラムのような特殊なインデックス構造を構築しておく必要がある。本質的には、これらの構造は、データベース中に現れる小さな部分文字列の位置を一つ一つすべて保持しておくものである。事実上、これは検索プロセスが、データベース中の無関係な部分を無視して、関連する位置にすぐジャンプできることを意味している。qグラムインデックス法を使うことにするが、それは、他の方法よりスペース効率がよく(すなわち、メモリ使用量が少ない)、我々の目的に用意に適応させることができるからである。前記qグラムは、データベース中に現れる長さq>0のあらゆる部分文字列の位置を保持している。もしたとえばデータベースが文字列abababcabcabacab...からなるものとすると、qグラムは長さ4のあらゆる部分文字列の開始位置を集めることになる。abab、baba、abab、babc、abca、といった具合である。これらの部分文字列は関数を使ってインデックス化され、アクセスが容易なデータ構造の形にリスト化され、ソートされる。今の例でいうababのような複数の同一の部分文字列は同じインデックス(バケツと呼ばれる)にたどりつく。qグラムによって、長さm≦qの問い合わせの完全一致についてはすべて、インデックス関数を計算してバケツの要素を取得することによってデータベース中の位置を得ることができる。qよりも長い問い合わせについては、問い合わせ文字列の長さqのプレフィックスだけしかバケツ内にははいれないのであるから、さらなる検査が必要になる。qグラムの標準的な使い方はMyers(1994)に述べられている。
前記qグラム法の代わりに、接尾辞木法またはハッシュ法を適用してもよい。
完全一致法を使って近似マッチングを行う場合、誤差を許容するための工夫が必要になる。たとえば、本発明によれば、元来の問い合わせ(文字列)においてある限界以下の箇所で相違する文字列の組が生成できる。これらの文字列は、もとの問い合わせの近傍と呼ばれる。このような近傍が問い合わせにおける誤差を表す。厳密には、文字列Sのk近傍はSに対して高々k個の誤りをもつ文字列の集合として定義される。たとえば、2文字だけのアルファベット{‘a’,‘b’}から文字列abbaの問い合わせを構成したとすると、高々一つの誤りをもつ(すなわち誤りレベルk≦1)近傍文字列の完全な集合は、元来のabba、削除を含むあらゆる文字列abb、aba、bba、挿入を含むあらゆる文字列aabba、babba、abbba、ababa、abbaa、abbab、そして置換を含むあらゆる文字列bbba、aaba、abaa、abbbとなる。
所与の文字列の近傍は効率的に生成することができる(Myers,1994)。もしこれらの近傍がqグラム法を使ってデータベース中に同定できたとしたら、それらの完全一致はもともとの問い合わせに対する近似一致に対応する。
しかしながら、調査すべき近傍文字列の数は調査する問い合わせ文字列が長くなり、アルファベット集合が大きくなり、誤りレベルを高くすると指数関数的に増大する。この問題を解決し、検索速度をかせぐため、問い合わせはまずより小さな部分文字列に分割され、各部分文字列について、その近傍文字列の集合が生成される。次いで、これらの近傍文字列すべてを、qグラムなり前述した他の検索方法なりを用いて完全一致により検索する。データベース中でのこれらの完全一致が今や、元来の問い合わせの部分的近似一致に対応するのである。
問い合わせ文字列を3文字だけのアルファベット{‘a’,‘b’,‘c’}から構成されるabacababcとし、誤りレベルは3まで許容する(k=3)ものとしよう。問い合わせにおける誤りはどの箇所にも生じうることを注意しておく。たとえば、誤りは次のようなものがありうる。
・全部が先頭部に(たとえば、これによるとccccababcが実際の検索でみつかる)
・全部が中部に(たとえばababbcabc)
・全部が末尾部に(たとえばabacabbca)
・問い合わせ文字列にまんべんなく分散(たとえばabccacabb)
問い合わせ文字列が3つの部分に分割されるとすると(p=3;この場合、今の例での問い合わせ文字列abacababcにおける部分文字列はaba、cab、abcとなる)、各部分について近傍文字列の集合が生成される。各近傍文字列は個別にデータベース中で検索され、元来の問い合わせがどのようなものであったかの前後関係は忘れられる。これを理解するために、近傍文字列はデータベース中のどこにでも生じうるものであることを注意しておく。近傍文字列どうしの現れ方は、元来の問い合わせの近似一致をなすためには必要とされるように近接または連続したものには、必ずしもならない。換言すれば、今の例の問い合わせ文字列abacababcについて、ある近傍文字列の完全一致が見つかったといっても、それが問い合わせ文字列の第一部分、第二部分、第三部分のどれに対応するものかも、他の二つの部分にどのような近傍文字列がみつかったかも知りようがないのである。この情報を明らかにするために、必要措置を講じなければならない。文献に記載されている以前の諸方法はまさにここでストップしていた。すなわち、ある近傍文字列の完全一致の一つ一つを問い合わせを解決するための有用な候補と見なしていたのである。それに対して、クロスカッティング(cross−cutting)の発明は、近傍文字列を検索する間に、(誤りの)前後関係を再現することによって追加的なフィルタステップを行うのである。破棄される近傍文字列は次のようなものである。
・データベース中で他の近傍文字列との列をなして現れないもの。
・データベース中で他の近傍文字列と列をなしてはいるが、元来の問い合わせの近似一致ではありえないもの。
これらの観測は、本発明の中心となる「クロスカッティング」予備定理に凝縮される。これにより、問い合わせ文字列をp個の部分に分割してその各部分を高々ki個の誤りで個別に検索する場合に、有意な部分がうまく引き出されることが保証されるのである。
クロスカッティング予備定理:AとBを2つの文字列とし、両者の間の相違の数は編集距離(edit−distance)の意味でk以下である、あるいは式で書いて∂(A,B)≦kとする。Aiを文字列として、任意のp>1について、A=A1A2…ApをAのp個の部分への分割とする。K=(k1,k2,…,kp)を任意の自然数の数列で
Figure 2006519445
となるものとする。このとき、
Figure 2006519445
となるようなある分割B=B1B2…BpおよびJ=(j1,j2,…,jl)によって添え字が指定されるある部分集合が存在する。
証明:BがΣ∂(Ai,Bi)=∂(A,B)〔和はi=1からpまで〕となるようにp個の部分に分割できることは明らかである。誤りは対応する部分に局在しており、新たな誤りが導入されることはないものとする。そのようなBの分割を選び、ki+1≧∂(Ai,Bi)となるようなすべての部分iの部分集合Jを選ぶ。すると、次の不等式が成り立ち、それで証明が完了する。
Figure 2006519445
Aを問い合わせ文字列、Bをデータベース文字列とすると、この予備定理は本発明におけるフィルタリング条件として使われる。この予備定理は、データベース中の近傍文字列の列が表す誤りの数eがある特定の基準を満たさなければならないことを述べている。その基準として、問い合わせの各部分文字列iにおいて許される所定の誤り個数kiを適用する。すると、まだ問い合わせ文字列の近似一致の範囲内であるためには、誤り総和Σ(ki+1)−e〔和はi=1からpまで〕は少なくともある定数C=Σki+p−k〔和はi=1からpまで〕以上であるべきだというのである。これらの公式において、pは問い合わせ文字列が分割される部分文字列の数、kiは各部分文字列iに許される誤りの数、kは誤りの総数の最大値(誤りレベル)である。
誤り総和Σ(ki+1)−e〔和はi=1からpまで〕を計算し、それをCと比較することが前記クロスカッティング・アルゴリズムの基礎である。一言で言えば、データベース中のある特定の位置にある近傍文字列に対する新たな一致がみつかるたびに、そのデータベース位置の前に他の近傍文字列の一致がないかどうか検査される。特殊なデータ構造により、データベース中の近傍文字列のすべての位置は効率的な仕方で把握されている。そうして、(データベース中に現れる)これらの連続した一致文字列をつなげたものが最終的に完全な問い合わせ文字列の近似一致になりうるかどうかが検証される。もし誤り総和が閾値C以上であれば、これらの近傍文字列は、いまだに問い合わせの近似一致の範囲内の有意な候補である。もし誤り総和がこの閾値C未満であれば、関連する近傍文字列はみな破棄される。
図2に示すように、問い合わせ文字列abacababc(参照符号34)は3つの部分文字列に分割される(p=3)。許される誤りが3つだけである(k=3)ことを想起し、ki=floor(k/p)=1〔floorは床関数〕およびC=Σki+p−k=3〔和はi=1からpまで〕と定義する。各部分文字列に対して、近傍文字列の集合(すなわち、それぞれ参照符号38〜41、42〜45、46〜49)が生成され、その文字列が完全一致によってデータベース中で検索される。この近傍文字列検索の過程では、それまでにみつかった全近傍文字列の位置が保持され、連続する近傍文字列をつなげたものが問い合わせの近似一致の一部となりうるかどうかの判定がなされる。近傍文字列abaおよびcabの二つの一致(図2の参照符号30を参照)は、その問い合わせ文字列の最初の二つの部分文字列についての誤りのない一致を表している(すなわち、e=0でΣ(ki+1)−e=4≧C=3〔和はi=1から2まで〕)。これですでに問い合わせに対する有効な近似一致がみつかったことがわかる。次にくる近傍文字列が3つ誤りを含むという最悪の場合でも、我々のフィルタリング条件はまだ成立するのである。近傍文字列abcおよびcaaに対する二つの一致(図2の31参照)は二つの誤りがある場合を表している(すなわち、e=2でΣ(ki+1)−e=2〔和はi=1から2まで〕)。この連続は、問い合わせの有効な近似一致にとどまるためには、次に来る近傍文字列の誤りは高々1つでなければならない。近傍文字列acbおよびcbcに対する一致(図2の参照符号32を参照)はすでに4つの誤りを含んでいる(すなわち、e=4でΣ(ki+1)−e=0〔和はi=1から2まで〕)。これですでにこの近傍文字列の列は問い合わせの近似一致の部分とはなりえないことがわかる。たとえ次に誤りのない近傍文字列がきたとしても、フィルタリング条件は満たされないのである。
前記qグラムおよび前記近傍生成についてのより詳細で全般的な議論として、以下の節により当業者は本発明を実施することができるであろう。

qグラム、すなわちqグラムインデックス法
qグラムを用いれば、qを超えない長さの文字列の生起箇所すべてを非常に高速にみつけることが可能である。これらのqグラムは次のようにして構成される。
Σ中の記号の整数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=φ(aiai+1…ai+m−1)があらゆる添え字iについて計算される。これは、φi=aiσm−1+floor(φi+1/σ)であることを利用すれば、AをなめるO(n)の操作によって実行できる。今度は、O(nlog(n))のクイックソートを用いてφi[j]≦φi[j+1]となるようなリストIndices=〈i1,i2,…,in〉が生成できる。最後に、配列Header[b]=min{j:φIndices[j]=b}がIndicesをなめるO(n)の操作によって生成される。配列IndicesおよびHeaderがBucketの集合を実現したものとなる。すなわち、Bucket[b]={Indices[j]:j∈[Header[b],Header[b+1]−1]}となる。
問い合わせ文字列Pの長さがm≦qとすると、Pの生起箇所を表す添え字の全体はちょうどb∈[φ(P)σq−m,(φ(P)+1)σq−m−1]に対するBucket(b)の中身になる。
問い合わせ文字列Pの長さがqを超えている場合には、Pの生起箇所の集合はBucket(φ(Pq))の部分集合であることがわかる。ここで、PqはPの最初のq個の記号からなる文字列を表す。

近傍の生成
文字列Pの(完全な)k近傍はPからの(編集)距離がk以下であるすべての文字列の集合として定義できる。すなわち、Nk(P)={Q:∂(Q,P)≦k}。
文字列Pの凝縮(condensed)k近傍はPの完全なk近傍に属するすべての文字列のうち当該近傍にプレフィックスをもたないものの集合である。すなわち、Ck(P)={Q:Q∈Nk(P)かつQはNk(P)内にプレフィックスをもたない}。
マイヤースのアルゴリズムは文字列の凝縮k近傍を効率的に計算する。それは、アルファベット集合から語を生成し、現在生成されている語とPのダイナミックプログラミング行列(dynamic programming matrix)の対応する列を計算することによる。ある語が現在の列の最後のエントリーがkに等しければ、凝縮k近傍における語に到達したことになる。もしすべてのエントリーがkより大きければ、アルゴリズムはもとに戻ることができる。失敗リンクの使用により、このアルゴリズムはk近傍にありながら凝縮k近傍には含まれない語を逃すことを防いでいる。
本発明は、データベース中から分割文字列のあらゆる完全一致をみつけるために文字列の完全なk近傍を必要としているので、マイヤースのアルゴリズムは修正して使われる。
図3は問い合わせ文字列の分割とその後の検索の様子を実際上の詳細な例で示している。
問い合わせ文字列(参照符号34)が再びデータベース(参照符号80)中で検索される。本発明によれば、前記問い合わせ文字列はいくつかの入力問い合わせ文字列に分割される。ここでは簡単のためその数を3としているが、1より大きないくつでもよい。今の例では、前記入力問い合わせ文字列の先頭部、中部、末尾部がそれぞれ参照符号35、36、37によって表されている。
前記の数の入力問い合わせ文字列によって、いくつかの近傍文字列(ここでは4つとする)が入力問い合わせ文字列のそれぞれに対して定義される。すなわち、参照符号35の入力問い合わせ文字列に対しては、対応する4つの近傍文字列(参照符号38、39、40、41)が定義される。
同様にして、参照符号36の「中部」入力問い合わせ文字列に対しては、対応する4つの近傍文字列(参照符号42、43、44、45)が定義される。
同様にして、参照符号37の「末尾部」入力問い合わせ文字列に対しては、対応する4つの近傍文字列(参照符号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では、問い合わせ文字列がある第一の個数の入力問い合わせ文字列に分割される。これまでの図で示したところでは、前記問い合わせ文字列は3つの入力問い合わせ文字列(参照符号35、36、37)に分割される。すなわち、前記第一の個数はここでは3である。前記第一の個数は1以上のいかなる数であってもよい。前記第一の個数をちょうど3としたのは、解説の目的のためにすぎず、これより大きかったり小さかったりするいかなる数を選んでもかまわない。
換言すれば、このステップでは前記問い合わせ文字列は(前記第一の個数の)小さな部分文字列片に、すなわち前記入力問い合わせ文字列に切り分けられる。
今の例では、問い合わせ文字列(参照符号34)aba..cab..abc..が前記第一の個数の入力問い合わせ文字列の組に切り分けられる。今の例では一つの組には3つがある。すなわち、入力問い合わせ文字列1(参照符号35)aba..、入力問い合わせ文字列2(参照符号36)cab..、入力問い合わせ文字列3abc..である。
ステップ200では、ある第二の個数の近傍文字列が決定される。やはりこれまでの図で示したところでは、近傍文字列の前記第二の個数は4である。すなわち、最初の入力問い合わせ文字列(参照符号35)には参照符号38〜41、第二の、すなわち中部の入力問い合わせ文字列(参照符号36)には参照符号42〜45、第三の、すなわち最後の入力問い合わせ文字列(参照符号37)には参照符号46〜49である。
前記第二の個数をちょうど4としたのは、解説の目的のためにすぎず、これより大きかったり小さかったりするいかなる数を選んでもかまわない。特に、近傍文字列の数は問い合わせ文字列の長さ、使われている文字列用アルファベット集合に含まれる異なる区別できる記号の数、近傍文字列中で許される誤りの個数に依存する。
これで今の例では合計12の近傍文字列が生じる。すなわち、前記第一の個数かける前記第二の個数すなわち3×4=12、すなわち(3つの)入力問い合わせ文字列それぞれに4つずつである。一般には、前記第一の個数の入力問い合わせ文字列のそれぞれに前記第二の個数ずつの近傍文字列が決定される。これまでの図で示したところでは、これらは38〜49にあたる。これらのそれぞれは、個々に所定の第一の誤り個数の誤りを含み、該第一の誤り個数は0以上である。
ただし、もしも(第一の)誤り個数が近傍文字列の長さを超えたら(すなわち、当該文字列の全内容が誤っているように決められるようになる)、次のステップにおける続く検索は完全に無意味になる。よって、前記第一の誤り個数は前記文字列長を超えることはできない。
例を挙げると、入力問い合わせ文字列aba..(参照符号35)をもとに4つの近傍文字列が決定される。すなわち、
・入力問い合わせ文字列自身に等しい、すなわちもちろん誤りのないaba..(参照符号38)
・1個の誤りを含むabc..(参照符号39)
・1個の誤りを含むもう一つのabb..(参照符号40)
・2個の誤りを含むacb..(参照符号41)
挙げられている例では、前記所定の第一の誤り個数(0以上の数)はここでは0、1、または2である。
前記所定の第一の誤り個数を今の例で0、1、または2としたのは解説の目的のためにすぎず、これより大きいいかなる数を選んでもかまわない。
ステップ300では、前記第二の個数の近傍文字列の各文字列の完全一致をデータベース中である第三の個数検索する。前記検索はある所与の検索方法に基づいて行われる。
前記第三の個数の完全一致は参照符号50〜61および70〜74によって図示されている。ここで一致が一つまたはそれ以上ありうることを留意しておくことが重要である。たとえば、
・第一に、近傍文字列の例aba..(参照符号38)は参照符号50および52、すなわちaba..の完全一致につながる。
・第二に、近傍文字列のもう一つの例abc..(参照符号39)はやはり参照符号51との完全一致につながる。
・第三に、abb..(参照符号40)は一致にはつながらない。すなわち参照符号70のabd..
・最後に、acb..(参照符号41)も一致にはつながらない。すなわち参照符号71のabc..
最後の二つは完全一致のみを考えているので使うことができない。
同様にして、参照符号53〜61および72〜74も参照符号42〜49によって示されている近傍文字列からの検索結果である。
どの場合でも、検索結果(参照符号50〜61および70〜74)は対応する文字列内容とデータベース中の対応する位置とともにのちに後続のステップで使うために保持される。
また、どの場合でも、前記した所与の検索方法とは、qグラムインデックス法でも当業界において有用であると知られている他のいかなる好適な方法、たとえば接尾辞木法やハッシュ法でもよい。
ステップ400では、データベースから検索された前記完全一致文字列をつないである第四の個数の中間文字列がつくられる。前記検索された完全一致文字列は(前記中間文字列のそれぞれに取り込まれるときは)前記データベース中で相前後して存在する。
前記第四の個数の中間文字列は参照符号29〜33で示されている。示されている例での前記第四の個数は5である。さらに、前記中間文字列のそれぞれに含まれる前記検索された完全一致文字列(参照符号50〜61および70〜74によって示される)は、前記データベースにおいて相前後して存在するよう決定される。これについて以下に説明する。
諸例から見て取れるように、つなぐ際、最初の入力問い合わせ文字列(問い合わせ文字列の先頭部である)aba..(参照符号35)は対応する先頭部の近傍文字列(参照符号38〜41)を有し、対応する先頭部の部分文字列(参照符号50〜33)を導く。
同様にして、つなぐ際、第二の入力問い合わせ文字列(問い合わせ文字列の中部である)cab..(参照符号36)は対応する「中部」の近傍文字列(参照符号42〜45)を有し、対応する中部の部分文字列(参照符号54〜57)を導く。
同様にして、つなぐ際、第三の入力問い合わせ文字列(問い合わせ文字列の末尾部である)abc..(参照符号37)は対応する「末尾部」の近傍文字列(参照符号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)の完全一致または部分一致である。
挙げられている例では、こうして4つの一致文字列(完全一致または部分一致)が、当該問い合わせ文字列を検索したときの結果となる。
このステップは先のステップと合わせて「クロスカッティング」とも呼ばれる。これはすなわち、(検索されたときの)近傍文字列の完全一致のうちでも、つないだときに元来の問い合わせ文字列(参照符号34)との近似一致を含みうるもののみを考えるという発想である。
本発明の精神では、前記「第一の個数」「近傍文字列の第二の個数」「第三の個数」「中間文字列の第四の個数」「第一の誤り個数」「第二の誤り個数」は個別に、あるいは相互の関連で、あるいは問い合わせ文字列もしくはデータベースまたはその両方の内容との関連で微調整してもよい。これにより検索速度を加減したり、一致度の異なる(より少ない)誤りを得たりすることができる。
同様に、挙げられている例は解説のためのもので、問い合わせ文字列、近傍文字列、中間文字列の長さが違ったり、文字列に含まれる連なりの内容(区別できる記号)が違っていたりなどする場合に拡張することもできる。
図6は検索のための設備を示す。参照符号660は前記設備を示す。該設備は先の図で議論したように、本発明に基づいて問い合わせ文字列(参照符号34)を処理する。該設備は前記文字列を入力として処理し、そのため計算手段661、たとえば十分高速なマイクロプロセッサを有している。該マイクロプロセッサはデータベース(参照符号80)中で一致するものを検索する。結果として、もしあれば最終的な個数の結果文字列(参照符号30、31、32、33)がみつけられる。マッチング方法のステップを実行する計算手段はまた、たとえば専用ASICであってもよい。
参照符号662はコンピュータプログラムプロダクトを表す。前記コンピュータプログラムプロダクトはコンピュータ読み取り可能媒体上に記録されたプログラムコード手段を有し、該コンピュータプログラムがコンピュータ上で実行されたときに前記方法を実行する。
一般に、本発明は音楽システム用旋律検索(「ハミングによる検索」)、検索エンジンやテキストファイルにおけるキーワード検索、分子生物学のデータベース中でのDNA/RNA塩基配列やビット、バイト、語のコードの検索、誤り制御など、さまざまな分野において応用可能である。旋律検索の応用については、メロディーのある小さな断片だけ覚えていてメロディーまたは歌の全体は覚えていない場合を考えることができる。区別できる記号の列として適切な表現形式でひとたび与えられれば、このメロディー断片が検索方法に入力され、前記データベースを使って歌や旋律の素性を明らかにする。前記設備はたとえばジュークボックス―単体のオーディオ装置でもパソコン上に実装されたものでも―でもよい。あるいは携帯オーディオ装置であって、たとえばジョギング中の人が出だしかさびを口笛で吹くことによって伴奏音楽をすばやく変えることができるようになるインターフェースを含んだものでもよい。前記設備はまた、たとえばインターネットサーバー上でウェブから特定のMP3をすばやく選択するためのサービスであってもよい。あるいは前記設備は携帯型電話であって、前記方法をたとえば着信メロディーを検索するために走らせているものでもよい。
同様に、検索エンジンへの問い合わせとしてのキーワード(前述した問い合わせ文字列と同様のもの)―たとえばインターネット上で特定の製品を検索したり、ソフトウェア辞書やソフトウェア検索ツールにおいてある単語を検索したりするためのもの―に入力ミスが含まれていてもよくなる。検索系がそうしたキーワード中の誤りに対処できる。あらゆる応用分野において、許容される誤りの数はあらかじめ定義され、固定されているのでもよい。データベースは一つのきわめて長大な文字列(たとえば、世界中のあらゆる旋律を一列につないだ長大なテキストなど)と見なすのが最もよい。また、文字列はどんな有限集合(たとえば、西欧アルファベット、音高アルファベット、二進の数字、バイト、語、アミノ酸、DNA/RNA、語など)からでも構成することができる。テキストでの応用に関しては、西欧アルファベットの26文字を使うことができる。同様に、旋律は9要素からなる音程アルファベットから構成することができる。分子生物学分野では20のアミノ酸または4つのヌクレオチドをアルファベットとして用いる。プログラミング分野では二進の記号、語、ビット、バイトを使う。
楽譜の基本要素というもとに、旋律を検索するのに十分なあらゆる情報が含まれるものと理解される。たとえば、音程でもよいし、あるいは利用者があまり音楽的でなかったり、たとえば足を踏み鳴らして楽曲を検索したかったり、あるいはその両方の場合には単に音長だけでもよいし、あるいは音程と音長の両方でもよい。これらが所定の対応付け関数によって文字列をなす記号に変換されるのである。
コンピュータ読み取り可能媒体は磁気テープ、光ディスク、デジタル多用途ディスク(DVD)、コンパクトディスク(記録可能CDまたは書き込み可能CD)、ミニディスク、ハードディスク、フロッピー(登録商標)ディスク、ICカード、PCMCIAカードなどであることができる。
特許請求の範囲において、括弧に入れて参照符号があったとしても、それは特許請求の範囲を限定するものと解釈してはならない。「有する」の語は請求項において挙げられている以外の要素やステップの存在を排除するものではない。要素の単数形の表現はそのような要素が複数存在することを排除するものではない。
本発明はいくつかの明確に区別される要素を有するハードウェアによって、また好適にプログラミングされたコンピュータによって実装されることができる。いくつかの手段を列挙している装置請求項において、こうした手段のいくつかが単一のハードウェア要素によって具体化されることも可能である。ある複数の方策が互いに異なる従属請求項において述べられているというだけのことをもってそれらの方策の組み合わせが有利に利用できる可能性を排除していることにはならない。
本技術の一般的な議論のための図である。 問い合わせ文字列を分割する様子を示す図である。 問い合わせ文字列の分割とその後の検索の様子を実際上の詳細な例で示す図である。 問い合わせ文字列を分割、検索する様子を一般的な場合の例で示す図である。 最終的な個数の結果文字列を検索する方法を示す図である。 検索のための設備を示す図である。

Claims (14)

  1. 多数の長い文字列を有する、あるいは単一の長い文字列を有するデータベース中における、問い合わせ文字列と部分一致または完全一致する内容をもつある最終的な個数の結果文字列を検索する方法であって、
    ・前記問い合わせ文字列をある第一の個数の入力問い合わせ文字列に分割し、
    ・前記第一の個数の入力問い合わせ文字列のそれぞれの文字列に対してある第二の個数の近傍文字列を決定し、ここで、前記第二の個数の近傍文字列のそれぞれの文字列は所定の第一の個数の誤りを有するものとし、
    ・前記第二の個数の近傍文字列のそれぞれの文字列に対する完全一致文字列を、ある検索方法に基づいて、ある第三の個数、データベースから検索し、
    ・前記データベースから検索された完全一致文字列をつなげてある第四の個数の中間文字列にし、ここで、前記中間文字列のそれぞれに含まれている検索された完全一致文字列は前記データベース中で相続いているものとし、
    ・前記第四の個数の中間文字列に基づいて最終的な個数の結果文字列を決定し、ここで、前記最終的な個数の結果文字列のそれぞれの文字列は、前記問い合わせ文字列に比較して高々ある所定の第二の個数の誤りを有するようにする、
    ステップを有することを特徴とする方法。
  2. 前記検索方法がqグラムインデックス法であることを特徴とする請求項1記載の方法。
  3. 前記検索方法が接尾辞木法であることを特徴とする請求項1記載の方法。
  4. 前記検索方法がハッシュ法であることを特徴とする請求項1記載の方法。
  5. 前記文字列および前記データベースがそれぞれ西欧アルファベットの文字の列を有することを特徴とする、請求項1ないし4のうちいずれか一項記載の方法。
  6. 前記文字列および前記データベースがそれぞれ楽譜の基本要素を表現することを特徴とする、請求項1ないし4のうちいずれか一項記載の方法。
  7. 前記文字列および前記データベースがそれぞれ二進数字の列を有することを特徴とする、請求項1ないし4のうちいずれか一項記載の方法。
  8. 前記文字列および前記データベースがそれぞれアミノ酸配列またはDNA/RNA塩基配列を有することを特徴とする、請求項1ないし4のうちいずれか一項記載の方法。
  9. 前記文字列および前記データベースがそれぞれビット、バイトまたは語の列を有することを特徴とする、請求項1ないし4のうちいずれか一項記載の方法。
  10. 請求項1ないし9のうちいずれか一項記載の方法のステップを実行する計算手段を有する検索エンジン。
  11. 請求項1ないし9のうちいずれか一項記載の方法のステップを実行する手段を有するツール。
  12. ・問い合わせ文字列をある第一の個数の入力問い合わせ文字列に分割する計算手段と、
    ・前記第一の個数の入力問い合わせ文字列のそれぞれの文字列に対してある第二の個数の近傍文字列を決定し、ここで、前記第二の個数の近傍文字列のそれぞれの文字列は所定の第一の個数の誤りを有するものとするような計算手段と、
    ・前記第二の個数の近傍文字列のそれぞれの文字列に対する完全一致文字列を、ある検索方法に基づいて、ある第三の個数、データベースから検索する計算手段と、
    ・前記データベースから検索された完全一致文字列をつなげてある第四の個数の中間文字列にし、ここで、前記中間文字列のそれぞれに含まれている前記検索された完全一致文字列は前記データベース中で相続いているものとするような計算手段と、
    ・前記第四の個数の中間文字列に基づいて最終的な個数の結果文字列を決定し、ここで、前記最終的な個数の結果文字列のそれぞれの文字列は、前記問い合わせ文字列に比較して高々ある所定の第二の個数の誤りを有するようにする計算手段とを有する、設備。
  13. 請求項1ないし9のうちいずれか一項記載の方法を実行するコンピュータシステム。
  14. コンピュータ読み取り可能媒体上に記録されたプログラムコード手段を有し、コンピュータ上で実行されたときに請求項1ないし9のうちいずれか一項記載の方法を実行することを特徴とする、コンピュータプログラム。
JP2006506641A 2003-03-03 2004-02-25 文字列検索の方法および設備 Expired - Fee Related JP4538449B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP03100517 2003-03-03
PCT/IB2004/050148 WO2004079631A2 (en) 2003-03-03 2004-02-25 Method and arrangement for searching for strings

Publications (2)

Publication Number Publication Date
JP2006519445A true JP2006519445A (ja) 2006-08-24
JP4538449B2 JP4538449B2 (ja) 2010-09-08

Family

ID=32946911

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006506641A Expired - Fee Related JP4538449B2 (ja) 2003-03-03 2004-02-25 文字列検索の方法および設備

Country Status (6)

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

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7663997B2 (en) 2003-05-09 2010-02-16 Lg Electronics, Inc. Write once optical disc, and method and apparatus for recovering disc management information from the write once optical disc
US7668054B2 (en) 2002-12-11 2010-02-23 Lg Electronics Inc. Method of managing overwrite and method of recording management information on an optical disc write once
US7672208B2 (en) 2003-08-05 2010-03-02 Lg Electronics Inc. Write-once optical disc, and method and apparatus for recording/playback management information on/from optical disc
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
US7675829B2 (en) 2004-06-23 2010-03-09 Lg Electronics Inc. Method and apparatus for overwriting data on recording-medium and the recording medium
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
US7684293B2 (en) 2003-05-09 2010-03-23 Lg Electronics Inc. Write once optical disc, and method and apparatus for recovering disc management information from the write once optical disc
US7701823B2 (en) 2002-09-30 2010-04-20 Lg Electronics Inc. Write-once optical disc, and method and apparatus for recording management information on write-once optical disc
US7742372B2 (en) 2005-11-25 2010-06-22 Lg Electronics, Inc. Recording medium, and method and apparatus for recording defect management information on the recording medium
US7764581B2 (en) 2003-02-17 2010-07-27 Lg Electronics Inc. Write-once optical disc, and method and apparatus for allocating spare area on write-once optical disc
US7783829B2 (en) 2003-09-08 2010-08-24 Lg Electronics Inc. Write-once optical disc and method for recording management information thereon
US7813243B2 (en) 2003-01-11 2010-10-12 Lg Electronics Inc. Optical disc of write once type, method, and apparatus for managing defect information on the optical disc
US7826320B2 (en) 2003-03-04 2010-11-02 Lg Electronics Inc. Method and apparatus for recording or reproducing on or from optical medium using SBM information
US7849358B2 (en) 2004-09-14 2010-12-07 Lg Electronics Inc. Recording medium, and method and apparatus of recording and reproducing data on the same
US7849372B2 (en) 2003-03-13 2010-12-07 Lg Electronics Inc. Write-once recording medium and defective area management method and apparatus for write-once recording medium
US7898918B2 (en) 2003-08-05 2011-03-01 Lg Electronics Inc. Write-once optical disc, and method and apparatus for recording/reproducing management information on/from optical disc
US7911900B2 (en) 2003-09-08 2011-03-22 Lg Electronics Inc. Write-once optical disc, and method and apparatus for recording management information on the write-once optical disc
US7929391B2 (en) 2003-02-21 2011-04-19 Lg Electronics Inc. Write-once optical recording medium and defect management information management method thereof
US7944783B2 (en) 2003-02-21 2011-05-17 Lg Electronics Inc. Write-once optical disc and method for managing spare area thereof
US7969841B2 (en) 2004-06-08 2011-06-28 Lg Electronics, Inc. Method and apparatus for recording management information medium and the recording medium
US7992057B2 (en) 2002-09-26 2011-08-02 Lg Electronics Inc. Write-once type optical disc, and method and apparatus for managing defective areas on write-once type optical disc
US8045430B2 (en) 2002-09-30 2011-10-25 Lg Electronics Inc. Write-once type optical disc, and method and apparatus for managing defective areas on write-once type optical disc using TDMA information
US8054718B2 (en) 2003-07-15 2011-11-08 Lg Electronics Inc. Write-once optical disc, and method and apparatus for recording management information thereon
US8134896B2 (en) 2003-10-20 2012-03-13 Lg Electronics Inc. Write-once optical disc, and method and apparatus for recording/reproducing data on/from the optical disc
US8149664B2 (en) 2004-03-19 2012-04-03 Lg Electronics Inc. Method and apparatus for recording data on write-once recording medium
US8296529B2 (en) 2003-09-08 2012-10-23 Lg Electronics Inc. Write-once optical disc and method for recording management information thereon
US8341456B2 (en) 2004-08-16 2012-12-25 Lg Electronics, Inc. Method and apparatus of recording data on write-once recording medium
KR101452638B1 (ko) 2013-06-21 2014-10-22 서울대학교산학협력단 유사 문자열 검색 방법 및 장치
KR20180065156A (ko) * 2016-12-07 2018-06-18 전북대학교산학협력단 가변길이 그램의 역리스트 동적 생성을 이용한 유사 문자열 검색 방법 및 장치

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6876309B1 (en) * 1994-11-21 2005-04-05 Espeed, Inc. Bond trading system
US8588729B2 (en) * 1994-11-21 2013-11-19 Bgc Partners, Inc. Method for retrieving data stored in a database
US7283999B1 (en) * 2003-12-19 2007-10-16 Ncr Corp. Similarity string filtering
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
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
US8209268B2 (en) * 2008-01-24 2012-06-26 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
US8504580B2 (en) * 2009-03-03 2013-08-06 Ilya Geller Systems and methods for creating an artificial intelligence
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
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
CN104484381B (zh) * 2010-02-26 2018-05-22 电子湾有限公司 用于搜索多个串的方法和系统
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 阿里巴巴集团控股有限公司 一种搜索方法和系统
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 浪潮集团有限公司 一种子串查找方法及装置
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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03131969A (ja) * 1989-10-18 1991-06-05 Hitachi Ltd 記号列検索方法および検索装置
JP2002189747A (ja) * 2000-12-19 2002-07-05 Hitachi Ltd 文書情報の検索方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03131969A (ja) * 1989-10-18 1991-06-05 Hitachi Ltd 記号列検索方法および検索装置
JP2002189747A (ja) * 2000-12-19 2002-07-05 Hitachi Ltd 文書情報の検索方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CSNG199801053004, 山下達雄ほか, "Suffix Arrayを用いたフルテキスト類似用例検索", 情報処理学会研究報告, 19970911, 第97巻,第86号, 第23−30頁, JP, 社団法人情報処理学会 *

Cited By (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7992057B2 (en) 2002-09-26 2011-08-02 Lg Electronics Inc. Write-once type optical disc, and method and apparatus for managing defective areas on write-once type optical disc
US7701823B2 (en) 2002-09-30 2010-04-20 Lg Electronics Inc. Write-once optical disc, and method and apparatus for recording management information on write-once optical disc
US8045430B2 (en) 2002-09-30 2011-10-25 Lg Electronics Inc. Write-once type optical disc, and method and apparatus for managing defective areas on write-once type optical disc using TDMA information
US7911904B2 (en) 2002-09-30 2011-03-22 Lg Electronics, Inc. Write-once optical disc, and method and apparatus for recording management information on write-once optical disc
US7668054B2 (en) 2002-12-11 2010-02-23 Lg Electronics Inc. Method of managing overwrite and method of recording management information on an optical disc write once
US7936649B2 (en) 2002-12-11 2011-05-03 Lg Electronics Inc. Method of managing overwrite and method of recording management information on an optical disc write once
US7813243B2 (en) 2003-01-11 2010-10-12 Lg Electronics Inc. Optical disc of write once type, method, and apparatus for managing defect information on the optical disc
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
US8072853B2 (en) 2003-01-27 2011-12-06 Lg Electronics Inc. Optical disc of write once type, method, and apparatus for managing defect information on the optical disc
US7764581B2 (en) 2003-02-17 2010-07-27 Lg Electronics Inc. Write-once optical disc, and method and apparatus for allocating spare area on write-once optical disc
US7944783B2 (en) 2003-02-21 2011-05-17 Lg Electronics Inc. Write-once optical disc and method for managing spare area thereof
US7929391B2 (en) 2003-02-21 2011-04-19 Lg Electronics Inc. Write-once optical recording medium and defect management information management method 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
US7826320B2 (en) 2003-03-04 2010-11-02 Lg Electronics Inc. Method and apparatus for recording or reproducing on or from optical medium using SBM information
US7849372B2 (en) 2003-03-13 2010-12-07 Lg Electronics Inc. Write-once recording medium and defective area management method and apparatus for write-once recording medium
US7663997B2 (en) 2003-05-09 2010-02-16 Lg Electronics, Inc. Write once optical disc, and method and apparatus for recovering disc management information from the write once optical disc
US7684293B2 (en) 2003-05-09 2010-03-23 Lg Electronics Inc. Write once optical disc, and method and apparatus for recovering disc management information from the write once optical disc
US8107336B2 (en) 2003-05-09 2012-01-31 Lg Electronics Inc. Write once optical disc, and method and apparatus for recovering disc management information from the write once optical disc
US8054718B2 (en) 2003-07-15 2011-11-08 Lg Electronics Inc. Write-once optical disc, and method and apparatus for recording management information thereon
US7672208B2 (en) 2003-08-05 2010-03-02 Lg Electronics Inc. Write-once optical disc, and method and apparatus for recording/playback management information on/from optical disc
US7898918B2 (en) 2003-08-05 2011-03-01 Lg Electronics Inc. Write-once optical disc, and method and apparatus for recording/reproducing management information on/from optical disc
US7952972B2 (en) 2003-08-05 2011-05-31 Lg Electronics Inc. Write-once optical disc, and method and apparatus for recording/playback management information on/from optical disc
US7911905B2 (en) 2003-08-05 2011-03-22 Lg Electronics Inc. Write-once optical disc, and method and apparatus for recording/reproducing management information on/from optical disc
US7911900B2 (en) 2003-09-08 2011-03-22 Lg Electronics Inc. Write-once optical disc, and method and apparatus for recording management information on the write-once optical disc
US8296529B2 (en) 2003-09-08 2012-10-23 Lg Electronics Inc. Write-once optical disc and method for recording management information thereon
US7783829B2 (en) 2003-09-08 2010-08-24 Lg Electronics Inc. Write-once optical disc and method for recording management information thereon
US8134896B2 (en) 2003-10-20 2012-03-13 Lg Electronics Inc. Write-once optical disc, and method and apparatus for recording/reproducing data on/from the optical disc
US8149664B2 (en) 2004-03-19 2012-04-03 Lg Electronics Inc. Method and apparatus for recording data on write-once recording medium
US7969841B2 (en) 2004-06-08 2011-06-28 Lg Electronics, Inc. Method and apparatus for recording management information medium and the recording medium
US7675829B2 (en) 2004-06-23 2010-03-09 Lg Electronics Inc. Method and apparatus for overwriting data on recording-medium and the recording medium
US7936648B2 (en) 2004-06-23 2011-05-03 Lg Electronics Inc. Method and apparatus for overwriting data on recording-medium and the recording medium
US8341456B2 (en) 2004-08-16 2012-12-25 Lg Electronics, Inc. Method and apparatus of recording data on write-once recording medium
US7849358B2 (en) 2004-09-14 2010-12-07 Lg Electronics Inc. Recording medium, and method and apparatus of recording and reproducing data on the same
US7742372B2 (en) 2005-11-25 2010-06-22 Lg Electronics, Inc. Recording medium, and method and apparatus for recording defect management information on the recording medium
KR101452638B1 (ko) 2013-06-21 2014-10-22 서울대학교산학협력단 유사 문자열 검색 방법 및 장치
KR20180065156A (ko) * 2016-12-07 2018-06-18 전북대학교산학협력단 가변길이 그램의 역리스트 동적 생성을 이용한 유사 문자열 검색 방법 및 장치
KR101910491B1 (ko) * 2016-12-07 2018-10-22 전북대학교 산학협력단 가변길이 그램의 역리스트 동적 생성을 이용한 유사 문자열 검색 방법 및 장치

Also Published As

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

Similar Documents

Publication Publication Date Title
JP4538449B2 (ja) 文字列検索の方法および設備
Blumer et al. Complete inverted files for efficient text retrieval and analysis
US8095526B2 (en) Efficient retrieval of variable-length character string data
JP3889762B2 (ja) データ圧縮方法、プログラム及び装置
JP3566111B2 (ja) 記号辞書作成方法及び記号辞書検索方法
WO2000007094A2 (en) Method and apparatus for digitally shredding similar documents within large document sets in a data processing environment
US20060036627A1 (en) Method and apparatus for a restartable hash in a trie
Crochemore et al. Approximate string matching with gaps
US7222129B2 (en) Database retrieval apparatus, retrieval method, storage medium, and program
Sadakane et al. Indexing huge genome sequences for solving various problems
Huang et al. Fast algorithms for finding the common subsequence of multiple sequences
JP5072832B2 (ja) 署名生成および関連性を有するマッチングエンジン
JP3258063B2 (ja) データベース検索システム及び方法
Vaddadi et al. Read mapping on genome variation graphs
JP3370787B2 (ja) 文字配列検索方法
JP4682627B2 (ja) 文書検索装置および方法
JP2000194713A (ja) 文字列検索方法及び装置及び文字列検索プログラムを格納した記憶媒体
JP3859044B2 (ja) インデクス作成方法および検索方法
JP4347086B2 (ja) パターンマッチング装置および方法ならびにプログラム
JP4181723B2 (ja) 索引作成装置、索引作成方法および記録媒体
JP4319827B2 (ja) 文書検索プログラム
Sakai et al. Extensive search for discriminative features of alternative splicing
JPH10149367A (ja) テキスト蓄積検索装置
JP3104893B2 (ja) 情報検索方式
Li et al. A kind of index for content-based music information retrieval and theme mining

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091020

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100114

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100415

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100525

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100621

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130625

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees