JPH01259418A - 文字列検索装置 - Google Patents

文字列検索装置

Info

Publication number
JPH01259418A
JPH01259418A JP63087134A JP8713488A JPH01259418A JP H01259418 A JPH01259418 A JP H01259418A JP 63087134 A JP63087134 A JP 63087134A JP 8713488 A JP8713488 A JP 8713488A JP H01259418 A JPH01259418 A JP H01259418A
Authority
JP
Japan
Prior art keywords
search
character string
skip
text
string search
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
JP63087134A
Other languages
English (en)
Inventor
Tadashi Osone
匡 大曽根
Hiroyuki Kitajima
北嶋 弘行
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 JP63087134A priority Critical patent/JPH01259418A/ja
Publication of JPH01259418A publication Critical patent/JPH01259418A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、文字列検索装置に係り、特に、指定された文
字列を特定の文字列から高速に検索する処理に好適な文
字列検索装置に関する。
〔従来の技術〕
オフィス・オートメイション(OA)化に伴って、文書
情報のデータベース化が急速に進んでおり、そのデータ
ベースの規模も大規模化する方向にある。このような状
況の中で、文書情報の処理の高速化は重要な課題となっ
ている。中でも、文書情報処理の中で最も基本的かつ高
負荷な処理の一つである文字列検索処理について、その
高速化が強く求められている。
文字列検索処理というのは、テキストと呼ばれる与えら
れた特定の文字列の中からパターンと呼ばれる指定され
た文字列を検索する処理である。
この検索方法の一つとして、状態遷移テーブルを用いた
有限オー1〜マトン法が著名である。これは例えば、「
ハードウェア・システムズ・フォア・テキスト・インフ
オメイション・リトリーバル」、エイシーエム ニスア
イジ−アイアール カンファレンス第3〜9頁、198
3年(Hollaar。
1、、^、:flardware Systems f
or Text InformationRetrie
va l 、^CM 5IGIRConf、、pp、3
 9(1983))において論じられている。この方法
は、n文字のテキストを検索するのに、ちょうどn文字
入力する必要がある方法である。
一方、状態遷移テーブルの他にスキップテーブルを用い
て、検索の高速化を図った方法が提案されている。これ
をスキップ法と呼ぶことにする。
このスキップ法については、「高速ストリング・サーチ
・アルゴリズムの提案」 (大曽根他、情報処理学会第
34回全国大会講演論文集・pp。
463−464 (1987))や「複数パターンに対
する高速ストリング・サーチ・アルゴリズムの提案」 
(大曽根他、情報処理学会第35回全国大会講演論文集
、pp、’4’t−5o  (1987))において論
じられている。この方法は、n文字のテキストを検索す
るのに、テキスト上をスキップしながら入力することに
より、n文字よりも少ない入力で検索が可能となる方法
で、有限オートマトン法より高速化が図れるという利点
をもっている。この方法は、検索パターン長がQ文字の
時は、最良の場合n / Q文字の入力だけで検索を済
ませることができる方法である。
〔発明が解決しようとする課題〕
しかし、上記スキップ法は、例えば、多数のパターンを
検索する場合などで、n文字のテキストの検索に対し、
n文字以上の文字入力を必要とする場合(最悪時にはn
QQ文字が存在し5この場合には、n文字の入力しか必
要としない有限オートマトン法よりサーチ速度が劣化す
るという問題があった。また、サーチ速度は劣化しなく
とも、スキップ法のほうがスキップテーブルの作成時間
等のオーバヘッドがかかり、テキスト長が短かい場合に
は、有限オートマトン法より検索時間が長くかかつてし
まうという問題があった。
すなわち、必ずしもいつもスキップ法のほうが性能が良
いわけではなく、テキストやパターンなどの検索の特徴
によっては、有限オートマトン法のほうが性能が良い場
合も存在する。
本発明の目的は、検索の特徴に対応して、常に良い性能
のでる検索方法によって文字列検索がなされる装置およ
び方法を与えることである。
〔課題を解決するための手段〕
上記目的は、スキップ法と有限オートマトン法を実行す
るハードウェアを共通化し、状態遷移テーブルとスキッ
プテーブルの内容を変えるだけで、それぞれの方法が同
一のハードウェアで実行できるようにする文字列検索の
手段と、パターン長やパターン数、テキスト長などの検
索特徴情報により、どちらの方法を使うべきかを判断す
る手段を設けることにより、達成される。
〔作用〕
どちらの方法を使うべきかを判断する手段は、テキスト
やパターンを形成するアルファベットの数やパターン数
、パターン長、テキスト長などの検索特徴情報に基づい
て、スキップ法と有限オートマトン法のそれぞれにおけ
るテーブル作成時間等のオーバヘッド時間とサーチ時間
とを予想し、その結果に基づいて、検索時間を予測し、
有限オートマトン法とスキップ法のどちらを用いた方が
高速化が図れるかを判断し、文字列検索を実行する文字
列検索部に指示を出す0文字列検索部では。
その指示に従い、スキップ法と有限オートマトン法を使
いわける。ここで文字列検索部は、状態遷移テーブルと
スキップテーブルの内容を変えるだけで、スキップ法で
も有限オートマトン法でも実現できるようにしておく。
すると、検索の特徴に応じ高速な検索方法が選ばれるの
で、検索環境に柔軟で高速な文字列検索が実現できる。
しかも、同一のハードウェアで両方式が実現できるので
、経済性にも優れている。
〔実施例〕
以下、本発明の一実施例を説明する。
第2図に、本発明の全体構成を示す。検索すべきテキス
トはRAMIに格納されている。それを文字列検索装置
2に入力し、その中の文字列検索部21において文字列
検索の主要な部分が処理される。そして、その検索結果
が出力される。ここで、文字列検索装置2は2文字列検
索専用装置であっても良いし、CP Uのような汎用プ
ロセッサでも良い。汎用プロセッサの場合は、ソフトウ
ェアによって文字列検索を実現する。ここでは、文字列
検索専用装置を用いる場合を例にとって説明する。
第1図に、本発明の文字列検索装置2の構成を示す2文
字列検索装置2は、文字列検索部21とテーブル作成部
22と検索方法判断部23によって構成される。
テキストの検索を始める前に、パターン数、パターン長
、テキスト長、アルファベット数などの検索の特徴情報
が検索方法判断部23に入力される。検索方法判断部2
3では、これらの情報より、テーブル作成時間等のオー
バヘッド時間とテキストを検索する時間であるサーチ時
間とを予想する。
そして、その結果により、スキップ法を用いるか有限オ
ートマトン法を用いるか判断し、テーブル作成部22に
伝える。
テーブル作成部22は、スキップ法テーブル作成部22
1と有限オートマトン法テーブル作成部222とから構
成されており、検索方法判断部23の判断結果に応じて
、それらを使いわける。
そして、テーブル作成部22で作成された状態遷移テー
ブルとスキップテーブルが文字列検索部21の211と
212に転送される。
これらの準備が終了した後に1文字列検索部21がテキ
ストの検索を始める。この時、文字列検索部21は、ス
キップ法も有限オートマトン法もテーブルの内容が異な
るだけで同一のハードウェアで実現できるようにしてお
く。この文字列検索部21のハードウェア構成を第3図
に示す。以下、第3図を用いて、文字列検索部21の動
作原理について説明する。
最初に、テキストアドレスレジスタ216に初期入力文
字アドレスを、状態レジスタ214に初期状態を設定す
る。時刻tで、テキストアドレスレジスタ216の内容
に従ってテキストを格納しているRAMにアクセスし、
を個目の入力文字を入力文字レジスタ11を経てテーブ
ルアドレスレジスタ2]3の下位に取込む。一方、状態
もレジスタ214からテーブルアドレスレジスタ213
の上位に取込む、 次に、テーブルアドレスレジスタ213の内容に従って
、状態遷移テーブル212とスキップテーブル211に
アクセスし、次状態をレジスタ214に、スキップ幅を
スキップ幅レジスタ215に取込む。そして、次状態が
ヒツト状態がどうかをヒツト状態検出回路217によっ
て調べる。−方1次入力文字アドレスは、スキップ幅と
入力文字アドレスを加算することにより求め、それをテ
キストアドレスレジスタ216に格納する。そのアドレ
スがテキストの最後尾のアドレスより大きいか否かを検
索終了検出回路218によって調べる。ここで時刻をカ
ウントアツプする。この動作を繰返すことにより、文字
列検索を進めていく。
このようにハードウェアを構成しておくと、スキップテ
ーブルの内容が2以上になっているときには、テキスト
上をスキップしながら文字を入力でき、スキップ法を実
現できるし、内容が全て1−の場合はテキスト上を1文
字ずつ連続に文字を入力することになるので有限オート
マトン法を実現することができる。以上が文字列検索部
21の動作原理である。
次に、例を用いて、本発明の詳細な説明する。
第1の例として、アルファベットがA、B、Cの3種、
検索パターン数が1、検索パターンがrcABJの場合
を考える。この場合、これらの情報から、検索方法判断
部23は、例えば、アルファベット数に比して検索パタ
ーン数が少ないということから、検索方法としてスキッ
プ法を選択し、その旨をテーブル作成部22に伝える。
ここで、処理方法の選択方法はいろいろ考えられる。例
えば、キーワード数、キーワード長、アルファベットの
数、テキスト長から予想テーブル作成時間と予想検索時
間とを求める式あるいは表をあらかじめ作成しておき、
その和の少ない方の検索方法を選ぶ方法がある。また、
もう少し大雑把に、キーワード数とキーワード長だけか
らどちらの方法を選ぶか前もって決めておいても良い。
そこで、テーブル作成部22は、スキップ法における状
態遷移テーブルとスキップテーブルを作成し、それぞれ
、212と211にセットする。
また、初期状態「0」と初期入力文字アドレス「3」を
、それぞれ、レジスタ214と216にセットする。
スキップ法におけるパターンrCABJを検索するため
の状態の定義と状態遷移テーブルとスキップテーブルを
第4図と第5図および第6図に示す。テキストがrAB
CABCJの場合(第8図参照)の動作を第7図に示す
。この場合、時刻4で検索を終了することができる。
一方、これを有限オートマトン法を用いて実行させると
、状態の定義と状態遷移テーブルとスキップテーブルは
それぞれ、第9図と第10図および第11図のようにな
り、テキストがrABCABCJの場合(第13図参照
)の動作は第12図のようになる。この場合、時刻6で
検索を終了することになるので、スキップ法よりサーチ
速度が劣化していることがわかる。
第2の例として、アルファベットがA、B、Cの3種、
検索パターン数が2.検索パターンがrABCJとrc
ABJの場合を考える。この場合、アルファベット数に
比して検索パターン数が比較的多いことから、検索方法
判定部23は検索方法として有限オートマトン法を選択
し、その旨をテーブル作成部22に伝える。ここで、前
述したように具体的な処理方法選択方式はいろいろ考え
られる。その例も前述した通りである。
テーブル作成部22では、有限オーl−マトン法におけ
る状態遷移テーブルとスキップテーブルを作成し、それ
ぞれ、212と211にセットする。
さらに、初期状態rOJと初期入力文字アドレス「1」
を、それぞれ、レジスタ214と216にセットし検索
を開始する。この場合の状態の定義と状態遷移テーブル
とスキップテーブルは第14図と第15図および第16
図のようになる。テキストがrABcABcJの場合(
第18図参照)の動作例を第17図に示す。この場合、
時刻6で検索を終了することができる。
一方、これをスキップ法を用いて実行した場合は、時刻
9まで検索を終了することができず、有限オートマトン
法より効率が悪いことがわかる。
上記のテキスト(第23図参照)でスキップ法を用いた
場合の状態の定義と状態遷移テーブルとスキップテーブ
ルと動作図を第19図と第20図と第21図および第2
2図にそれぞれ示す。
このように、本発明を用いると、同一の文字列検索処理
専用のハードウェアでスキップ法と有限オートマトン法
を実現できるので、これらの方法を使い分けることによ
り、いろいろな検索環境において高速な文字列検索を実
現することができる。
本実施例では、第1の実施例と第2の実施例を処理する
のに、スキップ法だけを用いる場合は、それぞれ、4時
刻と9時刻を要し、有限オートマトン法だけを用いる場
合には、共に6時刻を要するのに対し、本発明を用いる
と、それぞれ、4時刻と6時刻で処理を終了することが
できる。
〔発明の効果〕
スキップ法は、パターン数が少なく、パターン長が長い
場合に、スキップ幅が長くなり、性能が良いという特徴
をもっている。テキスト長をn文字、パターン長をQ文
字とすると、最良の場合、テキストからn / Q文字
だけ文字を入力するだけで検索を終了することができる
。しかし、パターン数が多く、パターン長が短かい場合
には、スキップ幅が短くなり、性能があまり発揮されな
いという面も有している。極端の場合には、n文字のテ
キストを検索するのに、n12文字の入力を必要とする
場合も存在する。一方、有限オートマトン法は、n文字
のテキストを検索するのに常にn文字入力するだけで検
索を終了することができる方法である。
本発明によれば、最良の場合にはn/Q文字の入力で、
最悪の場合にもn文字の入力で検索できるので、スキッ
プ法と比べると最悪の場合で2倍、有限オートマトン法
と比べると最良の場合でQ倍の高速化を図ることができ
る。
また、本発明では、スキップ法も有限オートマトン法も
同一のハードウェアで実現できるので、別個のハードウ
ェアを用意しておく方法より経済性にも優れているとい
う効果がある。
本実施例では、文字列検索部を専用ハードウェアで実現
した場合を説明したが、汎用プロセッサ等によって同じ
論理をソフトウェアで実現した場合にも本発明は有効で
ある。
【図面の簡単な説明】
第1図は本発明の一実施例の文字列検索装置の構成を示
すブロック図、第2図は文字列検索装置の概略構成を示
すブロック図、第3図は本発明の実施例における文字列
検索装置の要部ブロック図、第4図、第9図、第14図
、第19図は状態定鵡の説明図、第5図、第10図、第
15図、第20図は状態遷移テーブル図、第6図、第1
1図、第16図、第21図はスキップテーブル図、第7
図。 第12図、第17図、第22図は処理の動作説明図、第
8図、第13図、第18図、第23図は入力文字列のア
ドレスとテキストデータの例示図である。 1・・・テキストを格納するRAM、2・・・文字列検
索装置、21・・・文字列検索部、22・・・テーブル
作成部、23・・・検索方法判断部、211・・・スキ
ップテyl、tr5a 鴇 2 圀 ブナt! 慧4呪   鳩50    第6 二 部 7 囚 83 圀 ’gqrf3    ¥Jtorn     y4uB
第 /2  El 平 /3 呂 漬へ 14 [コ     )九 ツタ C]    
    竿 76 戸]笛 /7 囚 vJ/8  囚 ?l  /’?  a      $  20  [E
l         ¥1 2)  O喀 22囚 ′vy23  記

Claims (1)

  1. 【特許請求の範囲】 1、テーブルを参照しながら文字列検索を実行する装置
    において、テーブルの内容を変えるだけで、同一の処理
    手順で複数の処理方法が実行できることを特徴とする文
    字列検索装置。 2、検索すべきテキストやパターン情報を含む検索の特
    徴情報に基づいて、上記複数の処理方法のいずれかの処
    理方法を選ぶ手段を設けたことを特徴とする請求項第1
    項記載の文字列検索装置。 3、上記処理方法の選択において、テキストやパターン
    の数、長さ、アルファベットの数を少なくとも1つ含む
    情報から、テーブル作成時間を含むオーバヘッド時間と
    サーチ時間を予想し、処理方法を選ぶことを特徴とする
    請求項第2項記載の文字列検索装置。
JP63087134A 1988-04-11 1988-04-11 文字列検索装置 Pending JPH01259418A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63087134A JPH01259418A (ja) 1988-04-11 1988-04-11 文字列検索装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63087134A JPH01259418A (ja) 1988-04-11 1988-04-11 文字列検索装置

Publications (1)

Publication Number Publication Date
JPH01259418A true JPH01259418A (ja) 1989-10-17

Family

ID=13906495

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63087134A Pending JPH01259418A (ja) 1988-04-11 1988-04-11 文字列検索装置

Country Status (1)

Country Link
JP (1) JPH01259418A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7584184B2 (en) 2005-12-02 2009-09-01 International Business Machines Corporation System of effectively searching text for keyword, and method thereof
US7752216B2 (en) 2006-12-21 2010-07-06 Hitachi, Ltd. Retrieval apparatus, retrieval method and retrieval program

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7584184B2 (en) 2005-12-02 2009-09-01 International Business Machines Corporation System of effectively searching text for keyword, and method thereof
US7945552B2 (en) 2005-12-02 2011-05-17 International Business Machines Corporation System of effectively searching text for keyword, and method thereof
US7752216B2 (en) 2006-12-21 2010-07-06 Hitachi, Ltd. Retrieval apparatus, retrieval method and retrieval program

Similar Documents

Publication Publication Date Title
Tarjan Enumeration of the elementary circuits of a directed graph
US6377942B1 (en) Multiple string search method
US6523030B1 (en) Sort system for merging database entries
JP4848317B2 (ja) データベースのインデックス作成システム、方法及びプログラム
US20170242855A1 (en) Fast, scalable dictionary construction and maintenance
JPH11212980A (ja) インデクス作成方法および検索方法
US5893094A (en) Method and apparatus using run length encoding to evaluate a database
JP4120888B2 (ja) データ検索装置及び方法
JPH08339378A (ja) 類似文字列の展開方法、検索方法及びそれらの装置
Li et al. Mining the smallest association rule set for predictions
JPH05189490A (ja) 関数結果をセーブし検索する方法と装置
JPH06223117A (ja) 検索解収束方法
JP3258063B2 (ja) データベース検索システム及び方法
JPS61210478A (ja) ベクトル処理装置
JPH01259418A (ja) 文字列検索装置
JPH06251076A (ja) データ・ベース検索装置および方法
JPH03286371A (ja) 文書情報検索装置
JP2003288366A (ja) 類似テキスト検索装置
JP3596696B2 (ja) 情報検索装置
JPH0584937B2 (ja)
JPH07210565A (ja) 情報検索方法及び装置
JPH1069490A (ja) 文書絞り込み検索装置、文書絞り込み検索方法及び文書検索装置
JPH04182828A (ja) 擬似乱数によるテーブル内エントリー選択方式
JPH10177582A (ja) 最長一致検索方法及び装置
He et al. On the Decision Tree Complexity of String Matching