JPH10260980A - 圧縮検索方式 - Google Patents

圧縮検索方式

Info

Publication number
JPH10260980A
JPH10260980A JP9065915A JP6591597A JPH10260980A JP H10260980 A JPH10260980 A JP H10260980A JP 9065915 A JP9065915 A JP 9065915A JP 6591597 A JP6591597 A JP 6591597A JP H10260980 A JPH10260980 A JP H10260980A
Authority
JP
Japan
Prior art keywords
compression
code
compressed
search
search pattern
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.)
Pending
Application number
JP9065915A
Other languages
English (en)
Inventor
Motonobu Tonomura
元伸 外村
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP9065915A priority Critical patent/JPH10260980A/ja
Publication of JPH10260980A publication Critical patent/JPH10260980A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 テキストを圧縮コード列のままで検索できる
ようにする。 【解決手段】 検索パターンと圧縮コード辞書を入力
として、検索パターンのプレフィックスと一致する圧縮
コード内容のサフィックスを調べ、圧縮コード間で内容
が一致する長さ別にグループ・ノードをつくり、また引
き続き内容が一致する圧縮コードによって状態遷移をさ
せノードをつくり、検索パターンの文字列と完全に照合
したときを受理状態とする有限オートマトンを構成し
て、圧縮コード列のままで検索する。 【効果】 記憶効率よく圧縮格納されたテキスト列に対
して、圧縮状態のままで検索でき、圧縮率の逆数倍高速
に検索可能である。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、情報の圧縮および
検索技術に係わり、特に情報を圧縮したままで検索する
ことにより効率的に指定された情報を取り出すのに好適
な圧縮検索方式に関する。
【0002】
【従来の技術】情報を効率的に格納するために情報圧縮
技術が使われている。例えば、 LZW圧縮法(植松友彦:
文書データ圧縮アルゴリズム入門、CQ出版社、東京 199
4年)がある。また、情報を高速に検索するために、い
くつかの検索方式が使われている。 例えば、クヌース
・モリス・プラット法、ボイヤー・ムーア法(日経バイ
ト:高速全文検索の威力、142-168ページ、1996年10月
号)がある。
【0003】
【発明が解決しようとする課題】情報の圧縮技術と高速
検索技術は、それぞれ別々の目的をもって発展してきた
ために、圧縮および検索の両者に最適な観点から考えら
れている情報圧縮格納方式および検索アルゴリズムはほ
ぼないといってよい。もし、圧縮コード列のままで検索
できれば、一度にたくさんの文字列と比較照合できるこ
とになるため、圧縮された分だけ高速に検索できるはず
である。ところが、実際には、圧縮コード列に対して検
索パターンと比較照合する場合、圧縮コード内容の前後
の一部にまたがって照合したり、検索パターンの圧縮コ
ード列が一意に定まらず、何通りも存在することがある
ため、圧縮コード列のままでは直接検索することができ
ない。そのため、大抵は、圧縮コード列を一度伸張して
から検索するという二重の処理が必要になっている。
【0004】本願発明の目的は、圧縮コード列のままで
直接検索する手段を提供することである。
【0005】
【課題を解決するための手段】本発明は、検索パターン
に対して、圧縮コード辞書を参照して、ある圧縮コード
内容のサフィックスと別の圧縮コード全内容とがつなが
ってできあがる部分文字列について、検索パターンのプ
レフィックスと一致する文字列別にグループ・ノードを
形成し、圧縮コード列を入力とし、最初の圧縮コードが
入力されたとき、該圧縮コード内容のサフィックスを含
むグループ・ノードを初期状態とし、以降入力される圧
縮コードによって検索パターンの文字列と照合させる状
態遷移を順次行い、途中で照合に失敗した場合は、失敗
したときの入力圧縮コード内容のサフィックスと次入力
圧縮コード全内容とをつなげた部分文字列と一致するグ
ループ・ノードに状態遷移し、途中からやり直しし、検
索パターンの文字列と完全に照合したときを受理状態と
し、検索パターンに対して照合可能な複数個の圧縮コー
ド列パターンで比較照合できる有限オートマトンを構成
して、情報を圧縮コード列のままで入力することで、効
率的に検索できる圧縮検索方式を提供する。
【0006】具体的には、検索パターンに対して、圧縮
コード辞書を参照して、検索パターンのプレフィックス
と一致する圧縮コード内容のサフィックスを調べ、一致
する長さ別にサフィックス・テーブルを設け、また該サ
フィックス文字列と圧縮コードの全内容文字列とをつな
げて検索パターンのプレフィックスと一致する部分文字
列を調べ、一致する長さ別にグループ・ノードを形成す
るテーブルを設け、圧縮コード列を入力とし、入力され
る圧縮コードによって検索パターンの文字列と照合させ
る状態遷移テーブルを順次設け、検索パターンの文字列
と完全に照合したときを受理状態とする、検索パターン
に対して照合可能な有限オートマトンを構成して、情報
を圧縮コード列のままで入力し、検索する。
【0007】また、CPUコアと内蔵メモリを有する圧縮
検索チップにおいて、検索パターンと圧縮コード辞書を
読み込み、該メモリ上に検索パターンに対して圧縮コー
ド列入力のままで照合可能な有限オートマトンを構成
し、テキストの圧縮コード列を一定量ずつ外部装置から
読み込みながら、該メモリ上の圧縮検索プログラムを実
行することにより検索する。
【0008】また、テキストを圧縮コード辞書を用いて
圧縮して生成された圧縮コード列を圧縮前の検索パター
ンで検索する圧縮検索方法は、検索パターン文字列の先
頭から途中までと、第1の圧縮コード文字列の途中から
最後までと、第1の圧縮コードに続く1つ以上の第2の
圧縮コード群とから状態遷移テーブルを生成するステッ
プと、前記状態遷移テーブルと前記圧縮コード列とから
前記検索パターンを検索するステップにより実現され
る。
【0009】
【発明の実施の形態】図1は、検索対象である3個のア
ルファベット文字a, b, cからなる文字列のテキストモab
abcbababaaaaaaモの元文字列18および圧縮コード列1
9と、元文字列18を圧縮する際に使用する圧縮コード
辞書31を示す。圧縮コード辞書31は事前に定義されて
いるものとする。圧縮コード辞書は、圧縮したコードを
示す圧縮コード欄16と各圧縮コードに対応する文字列欄
17とから構成される。圧縮コード辞書は、元文字列18
に対して、例えばLZW圧縮アルゴリズムを用いて部分文
字列の圧縮コードが求められ、その対応表として得られ
る。図1の圧縮コード辞書では、a(文字列)1(圧縮コ
ード), b2, c3, ab4, ba5, abc6, cb7, bab8, baba9,
aa10, aaa11の様に対応する。そうすると、長さ16の元
の文字列(テキスト)18のモababcbababaaaaaaモは、例え
ば、長さ9の圧縮コード列 (1)(2)(4)(3)(5)(8)(1)(10)
(11) に変換できる。ここで、( )は圧縮コードを明細書
の記載上で区別しやすいように導入した単なる補助記号
で、実際の圧縮コード列19には存在しない。アルファベ
ットの各1文字は、8ビットで、圧縮コード1個は、4ビ
ットで表現されるとすれば、816=128ビットに対して、4
9=36ビットになり、約3.6分の1に圧縮できたことにな
る。
【0010】今、圧縮コード列 (1)(2)(4)(3)(5)(8)(1)
(10)(11) に対して、図1の文字列パターン(検索パタ
ーン)モabaaaaモ13を検索する場合について考える。
【0011】圧縮コード辞書31を用いて、検索パターン
の文字列を先頭から順に検索すると、検索パターンモaba
aaaモは、(1)(5)(11), (4)(10)(10), (4)(11)(1), ...
のように、いくつもの異なる圧縮コード列が考えられ、
この得られた圧縮コード列で圧縮コード列19を検索す
ることで検索パターンを検索することができる。
【0012】さらに、圧縮コード辞書において、圧縮コ
ード8は内容がb[ab]であり、圧縮コード9は内容がb[ab
a]であるので、内容のサフィックス部(始め大括弧の
[ と、終わり大括弧の ]とで囲んで示す文字列の途中か
ら最後までの部分列:圧縮コード8の場合は文字列の2
番目から始まり最後の文字までの2文字ab、圧縮コード
の場合9の場合は文字列の2番目から始まり最後までの
3文字のaba)が、検索パターンモabaaaaモのプレフィッ
クス部(文字列の先頭から途中までの部分列:この場
合、検索パターンの先頭からの2文字であるabや先頭か
らの3文字であるaba)に一致する。その場合、本圧縮
コードのサフィックスと次にくる1つ以上の圧縮コード
がつながって検索パーターンと一致する場合がある。す
なわち、圧縮コードの内容の途中から照合する場合も考
慮しなければならない。ここで、[ ]はコードを明細書
の記載上で説明上区別しやすいように導入した単なる補
助記号で、実際のコード列には存在しない。
【0013】図2は、検索パターンモabaaaaモの圧縮コー
ド列、(1)(5)(11), (4)(10)(10), (4)(11)(1), ... の
ような、複数個の圧縮コードから成る圧縮コード列を、
複数同時に照合可能であり、かつ、圧縮コードの内容の
途中からも照合可能である有限オートマトン20である。
以下、この有限オートマトンの構成方法、そして、この
有限オートマトンに圧縮コード列19をそのままの形で入
力し、検索パターン13を比較照合し見つける方法につい
て説明する。
【0014】最初に、検索パターンモabaaaaモと一致照合
させる有限オートマトン20を構成する方法を説明する。
【0015】まず、検索パターンモabaaaaモの長さ1のプ
レフィックスaについては、圧縮コード1の[a]、圧縮コ
ード10のa[a]、圧縮コード11のaa[a]、圧縮コード5のb
[a]のサフィックス([ ]で囲んだ部分の文字部)が一
致するので、ノード[a]、a[a]、aa[a]、b[a]を1つのグ
ループ・ノード21に文字列[a]まで一致した状態として
まとめ、[a]とラベルづける。
【0016】次に、検索パターンモabaaaaモの長さ2のプ
レフィックスabについては、圧縮コード4の[ab]、圧縮
コード8のb[ab]のサフィックス([ ]で囲んだ部分の文
字部)が一致するので、これら[ab]、b[ab]を1つのグ
ループ・ノード22に文字列[ab]まで一致した状態として
まとめ、[ab]とラベルづける。またこのグループ・ノー
ド22には、検索途中で照合に失敗したときの入力の圧縮
コード内容のサフィックス[a]と次の入力で圧縮コード2
の[b]をつなげたものが一致するのでノード[b]も加え
る。結果として、ノード[b]、[ab]、b[ab]を1つのグル
ープ・ノード22に文字列[ab]まで一致した状態としてま
とめ、[ab]とラベルづける。
【0017】また、検索パターンモabaaaaモの長さ3のプ
レフィックスabaについては、圧縮コード9のb[aba]のサ
フィックス([ ]で囲んだ部分の文字列)が一致する、
また途中で照合に失敗したときの入力圧縮コード内容の
サフィックス[ab]と次入力で圧縮コード1の[a]をつなげ
たもの、入力圧縮コード内容のサフィックス[a]と次入
力で圧縮コード5の[ba]をつなげたものが一致するの
で、ノード[a]、[ba]、b[aba]を1つのグループ・ノー
ド23に文字列[aba]まで一致した状態としてまとめ、[ab
a]とラベルづける。
【0018】検索パターンモabaaaaモの長さ4のプレフィ
ックスabaaについては、もはや圧縮コード辞書には一致
するコードが存在しないので、また、長さ5以上のプレ
フィックスについても存在しないので、グループ・ノー
ドの生成はこれ以上行われない。
【0019】それから、検索パターンモabaaaaモの現在の
一致長以上のプレフィックスについて、さらに任意の圧
縮コード内容と一致を生じさせ、現在までに生成されて
いるグループ・ノードから新たな一致状態に遷移させ
る。
【0020】グループ・ノード23[aba]が現在の状態の
とき、次入力圧縮コードに1が入力されたとき、一致状
態[abaa]のノード24をつくり状態遷移させる。同様に、
次入力圧縮コードに10が入力されたとき、一致状態[a
baaa]のノード25をつくり、次入力圧縮コードに11が
入力されたとき、一致状態[abaaaa]のノード26をつく
り、状態遷移させる。ノード[abaaaa]の一致状態が検索
パターンモabaaaaモに照合するので、この段階で受理状態
になり、パターンモabaaaaモが検出されたことになる。
【0021】グループ・ノード22[ab]が現在の状態のと
き、次入力圧縮コードに1が入力されたとき、一致状態
[aba]になるので、この場合すでにグループ・ノード23
[aba]がつくられているので、グループ・ノード23[aba]
へ状態遷移させる。同様に、次入力圧縮コードに10が
入力されたとき、一致状態[abaa]のノード24がすでにつ
くられているので、ノード24[abaa]へ、次入力圧縮コー
ドに11が入力されたとき、一致状態[abaaa]のノード2
5がすでにつくられているので、ノード25[abaaa]へ状態
遷移させる。
【0022】グループ・ノード21[a]が現在の状態のと
き、次入力圧縮コードに2が入力されたとき、一致状態
[ab]になるので、すでにつくられているグループ・ノー
ド22[ab]へ状態遷移させる。同様に、次入力圧縮コード
に5が入力されたとき、すでにつくられているグループ
・ノード23[aba]へ状態遷移させる。
【0023】一致状態[abaa]のノード24からは、次入力
圧縮コードに1が入力されたとき、すでにつくられてい
るノード25[abaaa]へ、次入力圧縮コードに10または
11が入力されたとき、すでにつくられているノード26
[abaaaa]へ状態遷移させる。
【0024】一致状態[abaaa]のノード25からは、次入
力圧縮コードに1、10または11が入力されたとき、
すでにつくられているノード26[abaaaa]へ状態遷移させ
る。
【0025】上記状態遷移の段階で、検索パターンモaba
aaaモに一致しない圧縮コードが途中入力された場合、一
致長ゼロの初期状態に戻る。このとき、一致しなかった
圧縮コード内容のサフィックスが検索パターンモabaaaaモ
のプレフィックスに一致していれば、その一致したとこ
ろのグループ・ノードとなり、さらに次の圧縮コードを
入力し、一致しなかった圧縮コード内容のサフィックス
と次の圧縮コード内容をつなげて一致状態を見て、一致
状態グループ・ノードに状態遷移させる。一致しなかっ
た圧縮コード内容のサフィックスが検索パターンモabaaa
aモのプレフィックスにまったく一致していなければ、さ
らに次の圧縮コードを入力し、その一致状態を見て、一
致状態のグループ・ノードに状態遷移させる。
【0026】以上説明した手続きにしたがって検索パタ
ーンモabaaaaモと一致照合させる有限オートマトン20を構
成できる。
【0027】ここで、図2の見方を説明しておく。図2
において、23,22,21はグループ・ノードであり、24,25,
26は一致ノードである。各ノードにおいて、圧縮コード
が入力されると、状態遷移が起こる。例えば、図2にお
いて、グループノード21の状態で、圧縮コード2の入力
が有ると、グループ・ノード22に状態遷移する。このよ
うな状態遷移を繰り返し、一致ノード26へ状態遷移した
場合、目的とする検索パターンが見つかったことにな
る。
【0028】このようにして構成された有限オートマト
ン20について、圧縮コード列 (1)(2)(4)(3)(5)(8)(1)(1
0)(11) に対して、実際の検索時にどのように状態遷移
して検索パターンを探すかを見てみる。
【0029】圧縮コード列の最初の圧縮コード1が入力
されたとき、入力コード1のノード[a]を含むグループ・
ノード21[a]へ初期状態遷移する。次に、圧縮コード2
が入力され、グループ・ノード22[ab]へ状態遷移する。
グループ・ノード22において圧縮コード4が入力される
と、グループ・ノード22[ab]からの一致遷移はなく、一
致失敗遷移状態になる。圧縮コード4のサフィックス[a
b]が検索パターンモabaaaaモのプレフィックスabと一致す
るが、次の圧縮コード3の入力により、また一致失敗遷
移状態になる。続く圧縮コード5の入力によっても、一
致失敗遷移状態である。そして、圧縮コード8の入力に
より、圧縮コード8のサフィックス[ab]が検索パターン
モabaaaaモのプレフィックスabと一致し、圧縮コード1の
入力により、グループ・ノード23[aba]へ一致状態遷移
する。圧縮コード10が入力され、ノード25[abaaa]へ
一致状態遷移する。さらに、圧縮コード11が入力され
たところで、ノード26[abaaaa]へ一致状態遷移し、受理
状態になり検索パターンモabaaaaモが検出されることにな
る。
【0030】以上具体的に説明してきたことをまとめる
と、図3に示すような構造になる。すなわち、検索パタ
ーン32が与えられたとき、圧縮コード辞書31を参照し
て、図4に示す手順にしたがって有限オートマトン20を
構成し、テキストの圧縮コード列33を有限オートマトン
20に与える状態遷移の入力列とし、受理した検索結果を
34に出力する。
【0031】図4に示した手順40を説明する。まず、検
索パターンに一致する圧縮コード内容を圧縮コード辞書
を参照して解析するために、検索パターン32と圧縮コー
ド辞書31を入力とする(41)。そして、検索パターンの
プレフィックスとの一致状況を見るために、調べるプレ
フィックス・パターンの長さをLとし、L=0に初期設定す
る(42)。このLが検索パターン長Sに達しているかどう
かを調べ(43)、ノーならば、Lの値を+1する(44)。
【0032】検索パターンの長さLのプレフィックスに
ついての一致状況を調べる(45)。(1)圧縮内容のサフ
ィックスと一致する圧縮コードを集め、ノードをつく
る。(2)長さL に対して、 L より小さい長さMを導入す
る。圧縮内容の長さMのサフィックスと長さL - Mの圧縮
コード内容をつなげて一致するものを集め、ノードをつ
くる。(1)+(2)のグループ・ノードをつくり、そのラベ
ルは一致内容の文字列とする。
【0033】もし、このようにして検索パターンの長さ
Lのプレフィックスに一致するグループ・ノードがつく
れたなら(46)、Lが検索パターン長Sに達しているかど
うかを調べ(43)、ノーならば、Lの値を+1して(44)
同じ手順を繰り返す。検索パターンの長さLのプレフィ
ックスに一致するグループ・ノードがつくれなくなった
ら(46)、それまで一致した検索パターンのプレフィッ
クスに続いて一致していく圧縮コード内容の状態遷移を
行う(47)。すなわち、引き続いて内容が一致する圧縮
コードが入力されたら、新たに一致した部分文字列まで
を示すノードをつくり、そこへ状態遷移をさせる。これ
は、検索パターンすべてに一致して受理状態になるま
で、すべての経路について求め、一致圧縮コードがラベ
ルづけられた有向辺をつける。
【0034】図5は、図2の有限オートマトン20を構成
するためのデータ構造を示す。検索パターンのプレフィ
ックスと一致する圧縮コード内容のサフィックスのテー
ブル500、510、520の意味は、検索パターンのプレフィ
ックスの長さ501、511、521およびその内容502、512〜5
13、522〜524、それに一致する圧縮コードの数503、51
4、525、圧縮コード504〜507、515〜516、526、途中で
一致に失敗したときに戻るグループ・ノードへのポイン
タ509〜410、518とそのポインタ数508、517、527であ
る。これらテーブルは、検索パターンのプレフィックス
と一致する圧縮コード内容のサフィックスの関係を調べ
るのに用いられる。
【0035】グループ・ノード・テーブル530(図2の
グループ・ノード21に関係するテーブル)、550(図2
のグループ・ノード22に関係するテーブル)、570(図
2のグループ・ノード23に関係するテーブル)の意味
は、検索パターンのプレフィックス長531、551、571お
よびその内容532、552〜553、572〜574、エントリ・サ
フィックスがないことを0で示す534、555、576および一
致する圧縮コード内容のサフィックス・テーブルへのポ
インタ535、556、577およびこれら対の数533、554、57
5、エントリ・サフィックスへのポインタ557、578、580
とそれに続く圧縮コード558、579、581、状態遷移分岐
数536、559、582、一致して状態遷移するときの圧縮コ
ード537、539、560、562、564、583、585、587と状態遷
移先ノードへのポインタ538、540、561、563、565、58
4、586、588である。
【0036】状態遷移先ノード・テーブル590(図2の
グループ・ノード24に関係するテーブル)、600(図2
のグループ・ノード25に関係するテーブル)の意味は、
状態遷移分岐数591、601、一致して状態遷移するときの
圧縮コード592、594、596、602、604、606と状態遷移先
ノードへのポインタ593、595、597、603、605、607であ
る。
【0037】最後に、受理状態テーブル50(図2のグル
ープ・ノード26に関係するテーブル)は受理状態である
ことを0で示しており、即ち、検索パターンが見つかっ
たことを示す。
【0038】図6は、本発明の圧縮検索をCPUコア62と
メモリ70、80を混載している1つのチップ60で実現する
場合のブロック図である。メモリ部70、80は、例えばDR
AMなどで構成される。メモリ部70、80の大容量性を仮定
すれば、まず検索パターン32を入力し、次に外部大容量
記憶装置61から圧縮コード辞書を31に読み込み、有限オ
ートマトン20を構成し、最後に大容量の圧縮コード列テ
キストを一定容量ずつ33に読み込みながら、CPUコア62
で比較照合していく。一定容量ずつの読み込みは、メモ
リ部70、80のバッファ容量の制限によってなったり、あ
るいは外部大容量記憶装置61の構造上1トラック単位に
なったりする。したがって、圧縮コード列テキストとそ
の圧縮コード辞書とは分離されて格納されていると、有
限オートマトンの作成や比較照合がやりやすくなる。メ
モリ部70には、圧縮検索プログラム71が格納されてお
り、CPUコア62によって実行され、検索結果が出力63さ
れる。
【0039】圧縮コード列 (1)(2)(4)(3)(5)(8)(1)(10)
(11) に対して、実際の検索時に圧縮検索プログラム71
が、どのように動作するかを見てみる。まず、圧縮コー
ド1が入力されると、その内容の一致サフィックスが[a]
であるから、グループ・ノード21のテーブル530を見に
行き、現在のテーブルを530とする。この状態で、次の
圧縮コード2を入力する。現在のテーブル530の圧縮コー
ド2の欄537を見て、次の欄538が遷移するノードを示し
ているので、テーブル550を見に行き、現在のテーブル
を550とする。次の圧縮コード4を入力する。現在のテー
ブルを550には、圧縮コード4が登録されていないので、
検索が失敗した状態になり、圧縮コード4の内容の一致
サフィックスが[ab]であるから、グループ・ノード22の
テーブル550を現在のテーブルとする。この状態で、次
の圧縮コード3を入力する。現在のテーブルを550には、
圧縮コード3が登録されていないので、検索が失敗した
状態になる。圧縮コード3の内容の一致サフィックスが
ないので、次の圧縮コード5を入力する。その内容の一
致サフィックスがないので、次の圧縮コード8を入力す
る。その内容の一致サフィックスが[ab]であるから、グ
ループ・ノード22のテーブル550を見に行き、現在のテ
ーブルを550とする。この状態で、次の圧縮コード1を入
力する。現在のテーブル550の圧縮コード1の欄559を見
て、次の欄560が遷移するノードを示しているので、テ
ーブル570を見に行き、現在のテーブルを570とする。次
の圧縮コード10を入力する。現在のテーブル570の圧縮
コード10の欄585を見て、次の欄586が遷移するノードを
示しているので、テーブル600を見に行き、現在のテー
ブルを600とする。次の圧縮コード11を入力する。現在
のテーブル600の圧縮コード11の欄606を見て、次の欄60
7が遷移するノードを示しているので、テーブル50を見
に行き、現在のテーブルを50とする。テーブル50の内容
は0なので、受理状態になったことがわかるので、検索
は成功し、その旨を出力信号63によって知らせる。
【0040】
【発明の効果】本発明の圧縮検索方式は、検索対象のテ
キスト列が圧縮格納されており、記憶効率がよく、しか
もコード長が短縮された圧縮コード列の入力によって比
較照合されるために、基本的には、圧縮率の逆数倍高速
に検索可能である(圧縮により、テキストが1/5に圧
縮されたとすると、検索速度が5倍になるということで
ある)。
【図面の簡単な説明】
【図1】テキストを圧縮して、そのまま検索する例であ
る。
【図2】圧縮コード列のまま入力して検索パターンと比
較照合し、受理する有限オートマトンの構成例である。
【図3】検索パターンと圧縮コード辞書を入力として、
有限オートマトンを構成し、該有限オートマトンに圧縮
コード列のテキストを入力しながら比較照合し、検索結
果を出力するブロック図である。
【図4】有限オートマトンを構成する手順である。
【図5】有限オートマトンのデータ構造図である。
【図6】メモリを混載した圧縮検索チップである。
【符号の説明】
16:圧縮コード欄、 17:文字列欄、 20:有限オート
マトン、 26:受理状態、 31:圧縮コード辞書、 3
2:検索パターン、 33:テキストの圧縮コード列、 3
4:検索結果出力、 50:受理状態テーブル、 60:圧
縮検索チップ、 61:外部装置、 62:CPUコア、 7
0、80:内蔵大容量メモリ(DRAM)、 500、510、520:
サフィックス・テーブル、 530、550、570:グループ
・ノード・テーブル、 590、600:一致状態テーブル。

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】テキストを圧縮コード辞書を用いて圧縮し
    て生成された圧縮コード列を圧縮前の検索パターンで検
    索する圧縮検索方法であって、検索パターン文字列の先
    頭から途中までと、第1の圧縮コード文字列の途中から
    最後までと、第1の圧縮コードに続く1つ以上の第2の
    圧縮コード群とから状態遷移テーブルを生成するステッ
    プと、前記状態遷移テーブルと前記圧縮コード列とから
    前記検索パターンを検索するステップを有する圧縮検索
    方法。
  2. 【請求項2】検索パターンと圧縮コード辞書を入力とし
    て、テキストの圧縮コード列のままの入力によって該検
    索パターンと比較照合しながら状態遷移し受理する有限
    オートマトンを構成して、検索結果を出力することを特
    徴とする圧縮検索方法。
  3. 【請求項3】検索パターンに対して、圧縮コード辞書を
    参照して、検索パターンのプレフィックスと一致する圧
    縮コード内容のサフィックスを調べ、一致する長さ別に
    サフィックス・テーブルを設け、また該サフィックス文
    字列と圧縮コードの全内容文字列とをつなげて検索パタ
    ーンのプレフィックスと一致する部分文字列を調べ、一
    致する長さ別にグループ・ノードを形成するテーブルを
    設け、圧縮コード列を入力とし、入力される圧縮コード
    によって検索パターンの文字列と照合させる状態遷移テ
    ーブルを順次設け、検索パターンの文字列と完全に照合
    したときを受理状態とする、検索パターンに対して照合
    可能な有限オートマトンを構成して、情報を圧縮コード
    列のままで入力し、検索することを特徴とする請求項2
    に記載の圧縮検索方法。
  4. 【請求項4】CPUコアとメモリを有し、前記メモリに検
    索パターンと圧縮コード辞書を読込み、前記メモリ上
    に、テキストの圧縮コード列のままの入力によって前記
    検索パターンと比較照合しながら状態遷移し受理する有
    限オートマトンを構成する手段と、テキストの圧縮コー
    ド列を一定量ずつ外部装置から読み込みながら、該メモ
    リ上の圧縮検索プログラムを実行し、検索する手段とを
    有する圧縮検索チップ。
  5. 【請求項5】圧縮コード辞書とテキストの圧縮コード列
    とを分離して前記メモリ上に読込まれることを特徴とす
    る特許請求項4に記載の圧縮検索チップ。
JP9065915A 1997-03-19 1997-03-19 圧縮検索方式 Pending JPH10260980A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9065915A JPH10260980A (ja) 1997-03-19 1997-03-19 圧縮検索方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9065915A JPH10260980A (ja) 1997-03-19 1997-03-19 圧縮検索方式

Publications (1)

Publication Number Publication Date
JPH10260980A true JPH10260980A (ja) 1998-09-29

Family

ID=13300756

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9065915A Pending JPH10260980A (ja) 1997-03-19 1997-03-19 圧縮検索方式

Country Status (1)

Country Link
JP (1) JPH10260980A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006302082A (ja) * 2005-04-22 2006-11-02 Mitsubishi Electric Corp 文字列検索装置
EP3506126A1 (en) 2017-12-28 2019-07-03 Fujitsu Limited Encoding program, creating program, encoding method, creating method, encoding device, and decoding device
KR20200056909A (ko) * 2018-11-15 2020-05-25 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 데이터를 처리하기 위한 방법 및 장치

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006302082A (ja) * 2005-04-22 2006-11-02 Mitsubishi Electric Corp 文字列検索装置
EP3506126A1 (en) 2017-12-28 2019-07-03 Fujitsu Limited Encoding program, creating program, encoding method, creating method, encoding device, and decoding device
US10404275B2 (en) 2017-12-28 2019-09-03 Fujitsu Limited Non-transitory computer readable recording medium, encoding method, creating method, encoding device, and decoding device
EP4053730A1 (en) 2017-12-28 2022-09-07 Fujitsu Limited Decoding program creating dynamic dictionary associating codes to words for extraction
KR20200056909A (ko) * 2018-11-15 2020-05-25 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 데이터를 처리하기 위한 방법 및 장치

Similar Documents

Publication Publication Date Title
JP3152868B2 (ja) 検索装置および辞書/テキスト検索方法
US8095526B2 (en) Efficient retrieval of variable-length character string data
JP4261779B2 (ja) データ圧縮装置および方法
US7526497B2 (en) Database retrieval apparatus, retrieval method, storage medium, and program
JP2790031B2 (ja) ネット情報抽出方法および装置
JP2001357048A (ja) ブロックソート圧縮データの検索方法、および検索に適したブロックソート圧縮法の符号化方法
EP0688104A2 (en) Data compression method and apparatus
CA2364886C (en) Pattern retrieving method, pattern retrieval apparatus, computer-readable storage medium storing pattern retrieval program, pattern retrieval system, and pattern retrieval program
JP3518933B2 (ja) 構造化文書検索方法
US20110137912A1 (en) System, method and computer program product for documents retrieval
JPH10260980A (ja) 圧縮検索方式
JPH0936747A (ja) データ圧縮方法及びデータ圧縮装置
JP3166629B2 (ja) 辞書作成装置と語切り出し装置
JPH09232967A (ja) データ圧縮装置及び復元装置
JPH10177582A (ja) 最長一致検索方法及び装置
KR100745292B1 (ko) 전자사전 검색 시스템
JP2535655B2 (ja) 辞書検索方式
EP0649106B1 (en) Compactly stored word groups
JP2772125B2 (ja) 辞書検索方式
JP2772124B2 (ja) 辞書検索方式
JPH06274701A (ja) 単語照合装置
JPS63128426A (ja) 可変長文字列の検索方式
JPH02148174A (ja) Ocrによる住所データベース検索装置
JP2773657B2 (ja) 文字列検索装置
JP3722231B2 (ja) コンパクトにエンコードされて記憶されたストリングの組を有する製品