JPH0380366A - ストリングサーチ方法およびそのための装置 - Google Patents

ストリングサーチ方法およびそのための装置

Info

Publication number
JPH0380366A
JPH0380366A JP1217148A JP21714889A JPH0380366A JP H0380366 A JPH0380366 A JP H0380366A JP 1217148 A JP1217148 A JP 1217148A JP 21714889 A JP21714889 A JP 21714889A JP H0380366 A JPH0380366 A JP H0380366A
Authority
JP
Japan
Prior art keywords
state
search
character string
string
characters
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
JP1217148A
Other languages
English (en)
Other versions
JP2745710B2 (ja
Inventor
Tadashi Osone
大曾根 匡
Hiroyuki Kitajima
北嶋 弘行
Hidetoshi Ito
伊東 英俊
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
Hitachi Nuclear Engineering Co Ltd
Original Assignee
Hitachi Ltd
Hitachi Nuclear Engineering Co 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, Hitachi Nuclear Engineering Co Ltd filed Critical Hitachi Ltd
Priority to JP1217148A priority Critical patent/JP2745710B2/ja
Publication of JPH0380366A publication Critical patent/JPH0380366A/ja
Application granted granted Critical
Publication of JP2745710B2 publication Critical patent/JP2745710B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、情報検索システム等に使用されるストリング
サーチ方法、すなわち、入力データ記号列(以下、「テ
キスト」という)中に、指定された記号列(「パターン
」、「キーワードj等と呼ばれる)が存在するか否かを
判別する方法およびそのための装置に関する。上記スト
リングサーチ装置は、テキスト情報の検索に欠かせない
ものである。
〔従来の技術〕
オフィスオートメーション(OA)化に伴なって文書情
報のデータベース化が急速に進んでおり、データベース
の規模も大規模化しつつある。このような状況の中で、
文書情報処理の高速化が強く望まれている。なかでも、
テキストと呼ばれる記号列の中からパターンあるいはキ
ーワードと呼ばれる指定された特定の記号列を探し出す
ストリングサーチ処理は、使用頻度が高く処理負荷も極
めて大きいので、その高速化が特に望まれている。
これに対しては、ストリングサーチ処理を、それ専用の
ハードウェアを用いて処理する方法がいくつか提案され
ている。その代表的なものに、セルアレイ法と、表−瞥
(table 1ook at)型の有限オートマトン
法がある。前者のセルアレイ法は、第32図に示す如く
、多数のセルlOをアレイ状に直列に接続し、セル間の
状態信号70の伝達により、ストリングサーチを実現す
る方法である。各セルlOでは、前段のセルの状態信号
と当該セルにおけるパターン1文字とテキスト1文字と
の比較結果により、新たに記号列を生成させ、それを後
段のセルへ伝達する。この状態信号70の生成および伝
達方法は、1文字車位に状態遷移を惹き起こす有限オー
トマトンの原理に基づいている。
第34[5!Iに、パターンがrHOR3EJの場合に
、従来方式で用いられている有限オートマトンの状態遷
移図を示す。ここで、100は有限オートマトンの状態
番号を表わし、200はテキストの入力文字に対する状
態遷移の方向を表わしている。この例の場合、テキスト
から文字が1文字ずつ連続してrHJrOJrRJrs
JrEJと入力されると、状態番号100が、S、から
順次、s、、s、、s、、s、、s、と推移し、状態番
号100がS、どなったところでパターンが検出される
。第33図に、状態番号とそれに対応するサーチ状態と
の関係を示した。
一方、前記後者の表−置型の有限オートマトン法は、テ
キストを1文字ずつ入力しながら、その都度、状態遷移
テーブルを参照し、有限オートマトンの状態遷移を繰り
返しながら、パターンの検出を行う方法である。特に、
複数のパターンを検索する場合は、従来は、複数のパタ
ーンの検索を考慮して、状態遷移テーブルを作成するこ
とにより、同一のテーブルの参照により、複数のパター
ンの検索を実現している。
第35図に、パターンがrCATJとrDOGJの場合
の、従来方式における有限オートマトンの状態遷移図を
示す。ここで、100は有限オートマトンの状態遷移図
を示し、200はテキストの入力文字に対する状態遷移
の方向を示している。第35図では、状aOで文字rC
Jが入力されると状態は1になり、文字rDJが入力さ
れると状態は4になり、その他の文字が入力されると、
状態はOのままであることを示している。また、状a1
で文字「A」が入力されると状態は2になり、文字rD
Jが入力されると状態は4になり、文字rCJが入力さ
れると状態はlのままで、その他の文字が入力されると
状態はOに戻ることを示している。なお、状態番号とそ
れに対応するサーチ状態との関係を、第37図に示した
上述の如き状態遷移を実現するために、表−瞥型の有限
オートマトン法では、第36図に示す如き状態遷移テー
ブルを用いる。これは、入力文字と現在の状態から次の
状態を求めるためのテーブルである。ここで、入力文字
は整数の文字コードとしてテーブルを参照するようにす
る。この例の場合、テキストから文字が1文字ずつ連続
して「cjrA」rTJと入力されると、状態は1,2
.・・・・と順次遷移し、状態番号が3となったところ
で、パターン「CAT」の検出が認識される。同様に、
「D」rQJrQJと入力されると、状態は4,5.・
・・・と順次遷移し、状態番号が6となったところでパ
ターンrDOGJの検出が1!!識される。
上述の技術については1例えば、アイ・イー・イー・イ
ー トランザクションオンコンピューターズ、シー28
(1979年)、第384〜394頁(IEEETr−
ansations on Computers、vo
l、C−28,NcL6.pp、384−394、19
79)や、コンピュータ、第13巻第1号、第26〜4
0頁(Computer、 vol、 13. NI 
I、 pp、 26−40.1980)等において論じ
られている。
[発明が解決しようとする課題] 上記従来技術は、 (1)1文字単位に状態遷移を惹き起こす有限オートマ
トンを基本としているので、ストリングサーチの検索速
度は原理的に1単位時間あたり1文字となっていた。テ
キストを格納している記憶装置から文字をフェッチする
速度が1単位時間あたり1文字であるならば、これで問
題はない。しかし、現在では、16ビツシマシン/32
ビツトマシンが出現しており、1時刻あたり2バイトフ
エツチ74バイトフエツチも可能となってきた。前述の
従来技術ではこれに対応できず、テキストの文字のフェ
ッチ速度がこのように向上しても、検索速度は1単位時
刻あたり1文字に制限されてしまうという問題 (2)複数パターンを同時検索するためには、その状態
遷移が第35図に示した如く、極めて複雑となり、その
ために、状態遷移テーブルを作成するのに多大のオーバ
ヘッドを要するという問題 があった。これは、複数のパターン間の遷移についても
考慮してテーブルを作成しなければならないことに起因
している。特に、パターン数の多いときや、あるパター
ンの部分文字列が他のパターンの中の部分文字列として
存在している場合に、極めて複雑となる。このテーブル
作成時間のオーバヘッドは、ストリングサーチを行う上
で、特に長大なテキストの検索を行う場合以外、無視で
きないものである。
本発明は上記事情に鑑みてなされたもので、その目的と
するところは、従来の技術における上述の如き問題を解
消し、検出速度を向上させるとともに、複数パターン検
索のための表−瞥型の有限オートマトン法における状態
遷移テーブルの作成時間を短縮可能としたストリングサ
ーチ方法およびそのための装置を提供することにある。
〔課題を解決するための手段〕
本発明の上述の目的は、ある長さのコード長のコードで
表現される文字(記号)により構成される第1の文字列
中に、指定された第2の文字列が存在するかどうかを判
定するストリングサーチ方法において、前記第1の文字
列から複数文字単位のデータを入力し、複数文字単位に
状態遷移を惹き起こす有限オートマトンを用いて、該複
数文字単位の入力データと現在のサーチ状態とから次の
サーチ状態を決定し、該新たなサーチ状態が検索すべき
前記第2の文字列を検出したことを表わすサーチ状態に
なったかどうかを判断し、前記第2の文字列を検出した
状態になった場合には検出処理を行い、前記第1の文字
列の入力アドレスを複数文字分だけ先に更新し、前記第
1の文字列から次の複数文字単位のデータを入力する動
作を繰り返すことを特徴とするストリングサーチ方法、
および、ある長さのコード長のコードで表現される文字
(記号)により構成される第1の文字列中に、指定され
た第2の文字列が存在するかどうかを判定するストリン
グサーチ装置において、前記第1の文字列を複数文字単
位にシーケンシャルに入力する手段と、複数文字単位に
状態遷移を惹き起こす有限オートマトンを用い、前記複
数文字単位の入力データと現在のサーチ状態とから次の
サーチ状態を決定し、該新たなサーチ状態と検索すべき
前記第2の文字列を検出したことを表わすサーチ状a(
パターン検出状態)とを比較する手段を有することを特
徴とするストリングサーチ装置によって達成される。
〔作用〕
まず、本発明に係るストリングサーチ方法においては、
第1の文字列から複数文字単位のデータを入力し、複数
文字単位に状態遷移を惹き起こす有限オートマトンを用
いることにより、複数文字単位にストリングサーチにお
けるサーチ状態の遷移が実現できる。これから、新たな
サーチ状態が検索すべき前記第2の文字列(パターン)
を検出したことを表わすサーチ状態になったかどうかを
判断し、前記第2の文字列を検出した状態になった場合
には検出処理を行うことができる。これらにより、テキ
ストの文字入力を複数文字単位としてストリングサーチ
を実行できるので、検索速度の向上が達成できる。なお
、本発明に係るストリングサーチ装置は、上記ストリン
グサーチ方法を効率的に実行するに好適なストリングサ
ーチ装置を実現できるものである。
また、本発明に係るストリングサーチ装置において、単
数のパターンに対する表−置型の有限オートマトン機構
を複数個設け、そられらを並列に実行させる手段を導入
することにより、複数パターンの検索を個々の単数パタ
ーンの検索に展開することができる。これにより、前記
状態遷移テーブルを作成する際、パターン間の遷移を考
慮する必要がなくなり、個々のパターンに対する状態遷
移テーブルを独立に作成すれば良くなるので、テーブル
作成オーバヘッドを短縮することができるものである。
(実施例〕 以下、本発明の実施例を図面に基づいて詳細に説明する
。なお、以下の説明においては、文字のコード長は1バ
イトと仮定する。
まず、本発明の第一の実施例として、テキストが2文字
単位で入力される場合について、説明する。第1図は、
本実施例のストリングサーチシステムの構成例である。
図において、lは検索すべきテキストを格納する記憶装
置、2は上記テキストlに対しストリングサーチを実行
するストリングサーチ装置、3はテキストデータ転送路
、4は検索結果を出力する信号線を示している6本実施
例においては、テキストデータは、記憶装置lから、入
力手段1001を用いて複数文字単位にシーケンシャル
にテキストデータ転送路3を経由してストリングサーチ
装置2に入力される。更に、2文字単位に状態遷移を惹
き起こす有限オートマトン1007を用いることで、パ
ターンの検出を行う。以下、検索パターンの例として、
rHOR5EJを考える。
この場合、有限オートマトンの状態は、第2図に示す如
く定義する。また、ここで提案する、2文字単位に状態
遷移を惹き起こす有限オートマトン1007の状態遷移
図は、第3図のようになる。ここで、1200が有限オ
ートマトンの状態番号を表わし、1300がテキストの
入力文字(2文字単位)に対する状態遷移の方向を表わ
している。これは、テキストから文字が2文字ずつ連続
してrXH」rOR」「SE」と入力されると、状態番
号がS、から順次、S l l j S I * l 
S 16と推移し、また、テキストかう文字が2文字ず
つ連続して「HO」「R8」「Ex」と入力されると、
状態番号がS、から順次、S、1゜S、、、S□と推移
することを示している。ここで、Xは任意の1文字を表
わすものとする。なお、状態番号S1.とS−はパター
ンが検出された状態である。このような有限オートマト
ンを用いることにより、テキストを2文字単位に入力し
ながら、ストリングサーチを実行することが可能となる
これを実現するストリングサーチ装置2の構成例を第4
図と第5図に示す、第4図は第一の実施例におけるスト
リングサーチ装置2の全体構成図であり、第5図はそこ
で使用されるセル110の構成図である。第4図におい
て、120はパターンの1文字を格納するパターンレジ
スタ、110はセルである。セル110は、配置装置3
から転送されてきたテキストの2バイトの文字データ1
30と、パターンデータ転送路140を通して入力され
るパターンの2バイトの文字データと、前段セルから転
送されてきた状態信号170とを入力として、パターン
検出信号150と本セルの状態信号170を生成する回
路である0本実施例における2文字単位入力有限オート
マトンの場合、第4図に示す如く、直列に接続したセル
を2段並べた構成とする。これは、第3図に示す有限オ
ートマトンの状態遷移図に対応している。一方、160
は各セルから転送されてきたパターン検出信号150か
ら検出信号4を生成する検出信号生成回路である。これ
は、例えば、すべてのパターン検出信号150のORを
とる論理によって実現できる。
次に、第5図に示したセル110の構成について説明す
る。各セル110には、テキストの入力文字2バイトが
テキスト入力線を通して入力される。
111はこれら2バイトのデータ同志の一致/不一致を
マスク付きで判定し、一致信号116を生成する一致判
定回路である。また、114はマスクラッチであり、マ
スクラッチ114a の内容がバイナリコードの“1″
(以下、単に「1″」という)であるときに、一致判定
回路111においてその第1バイトにマスクをすること
を示し、同様に、マスクラッチ114bの内容が“1″
であるときに、一致判定回路111においてその第2バ
イトにマスクをすることを示す、 114a  を第1
マスクラツチ、114b を第2マスクラツチと呼ぶ。
一致判定回路111は、例えば、第6図の如き回路によ
り実現できる。第6図に示す回路においては、テキスト
入力線130とパターン入力線140から入力される2
バイトのデータを16個のEXOR回路で同時に比較し
、それらがすべて一致した場合に、更に、マスクラッチ
出力線118a、 118bの値を考慮して、一致信号
116を出力するというものである。なお、一致判定回
路111として、コンテントアドレサブルメモリを用い
てもよい。
一方、115はインジケータラッチであり、特に+15
a はパターンの先頭を示す先頭インジケータラッチ、
115b はパターンの末尾を示す末尾インジケータラ
ッチである。また、113は有限オートマトンの状態を
示す状態ラッチである。制御回路112は、インジケー
タラッチ115の情報と、前段のセルの状態信号170
と一致信号116とから、本セルの状態ラッチ113へ
の入力信号117とパターン検出信号150を生成する
回路である。これは、例えば、第7図に示す如き回路に
よって実現できる。入力信号117は、本セルの状態ラ
ッチ113の入力となる。
次に、パターンがrHOR3E」の場合の、本実施例の
動作を説明する。
まず、予めパターンrH」、ro」、rJ、rs」、r
E」を1文字ずつ第4図のパターンバッファ120−1
〜120−5にセットしておく。また、第3図の状態遷
移図における入力文字のうち、任意文字rXJに対する
マスクラッチ114に“1″をセットする。つまり、第
8図に示す如く、第1マスクラッチ114a−IIと第
2マスクラツチ114 b−23に、“1nをセ゛ッ卜
する。更に、パターンの先頭文字と末尾文字を教えるた
めに、先頭インジケータラッチll5a−11と115
 a−21,末尾インジケータラッチ目5b−13と1
15b−23に“1″をセットしておく。
この後、テキストに対するストリングサーチを開始する
。すなわち、テキストを記憶装置1から1時刻毎に2文
字ずつ、テキストデータ転送路3を通して、ストリング
サーチ装置2のすべてのセル110に同時に入力してい
く。各セル110の内部では、まず、一致判定回路+1
1において2バイトのテキストの入力文字と、パターン
バッファ120から各セルそれぞれに転送されてくる2
バイトのパターンの文字とが比較される。例えば、一致
判定回路111−12では、入力文字とパターンの第2
文字と第3文字roRJとの比較が行われる。同様にし
て、一致判定回路111−13.111−21. l1
l−22では、それぞれ、入力文字とパターンのrS 
EJ、rHOJ。
rR3Jとの比較が行われる。
但し、一致判定回路111−11では、第1マスクラッ
チ114a−11が“1”であるため、第1バイトをマ
スクして比較する。従って、論理的には、rXH」と比
較していることになる。同様に、一致判定回路Hト23
では、第2マスクラツチ+14 b−23が“l”であ
るため、論理的には、rEXJと比較していることにな
る。ここで、Xは前述の通り、任意の1文字を指す。
次に、制御回路112では、第7図に示す如く、前段セ
ルの状態信号170と先頭インジケータラッチ115a
の出力線119aとのOR出力と、一致信号116との
ANDをとり、新たな状態信号117を生成する。この
新たな状態信号117は、本セルの状態ラッチ113の
入力とする。また、本状態信号117と末尾インジケー
タ115bの出力線119bとのANDをとった結果を
パターン検出信号150とする。これが“1″となる二
とが、パターンの検出を意味する。
上述の構成では、前記状態ラッチ113−ijの内容が
“1”であることが、第3図における有限オートマトン
の状態番号がSiJとなったことを表わしている。
以下、テキストの例として、16文字のテキストrCA
T、HOR3E、MONKEYJを考える。この例の場
合の時刻に対するテキスト入力線130と各セル110
−ijのパターン入力線140−ij、一致信号+16
−ij、状態ラッチ113−ijの値の変化を、第9図
に示す。この例の場合は、時刻32時刻42時刻5に、
それぞれ、状態ラッチ113−21.113−22.1
13−23が、′l”となる。また、セル110−23
の末尾インジケータラッチ115 b−23の内容が“
1”であるので、パターン検出信号150−23は“l
”となり、パターンを検出したことがわかる。この例の
場合、8時刻でストリングサーチを終了することができ
る。
以下、第二の実施例として、テキストを4文字単位に入
力する方式について説明する。この場合には、4文字単
位に状態遷移を惹き起こす有限オートマトンを用いる。
検索パターンの例として、第一の実施例と同じ、rHO
RsJを考える。
この場合の有限オートマトンの状態は、第10図に示す
如く定義する。また、ここで提案する4文字単位に状態
遷移を惹き起こす有限オートマトンの状態遷移図は、第
11図のようになる。第11図において、2200が有
限オートマトンの状態番号を表わし、2300がテキス
トの入力文字(4文字単位)に対する状態遷移の方向を
表わしている6第11図では、テキストから文字が4文
字ずつ連続して「XXXH」、roR3Elと入力され
ると、状態番号がS、から順次、S I l l S 
I mと推移し、また、テキストから文字が4文字ずつ
連続してrXXHo」、rR3EXJと入力されると、
状態番号がS、かも順次Sat、Setと推移すること
を示している。同様に、文字がrXHOR」、rSEX
XJと入力されると状態番号がS、から順次、S□、S
−と推移し、「XHORJ、rsEXXJと入力される
と、状態番号がS、から順次、511j341と推移す
ることを示している。Xは任意の1文字を表わしており
、状態番号S + l + S e s t S s 
*およびS9.は、すべて、パターンが検出された状態
である。このような有限オートマトンを用いることによ
り、テキストを4文字1M右γを−λ −h 1  か
IにA    ズ k  II  ’ノ ノf廿−キ 
左 宣f〒1トることが可能となる。
これを実現するストリングサーチ装置2の構成例を第1
2図に示す。ここでは、図に示す如く、セル210を直
列に接続したものを4段並べる構成とする。ここで、2
20はパターンの1文字を格納するパターンレジスタ、
260は検出信号生成回路である。セル210の構成例
を第13図に示す。ここで211は4バイトのデータ同
志の一致/不一致をマスク付きで判定する一致判定回路
、213は有限オートマトンの状態を示す状態ラッチ、
214はマスクラッチを示しており、特に、214 a
 は一致判定回路211において、その第1バイトにマ
スクをすることを示、す第1マスクラツチ、同様に、2
10 b 。
214cおよび214 dは一致判定回路211におい
て、その第2.第3.第4バイトにマスクをすることを
示すマスクラッチである。
また、215はインジケータラッチであり、特に215
a はパターンの先頭を示す先頭インジケータラッチ、
215b はパターンの末尾を示す末尾インジケータラ
ッチである。制御回路212は、第一の実施例の場合と
同様に、本セルの状態信号270とパターン検出情報2
50を生成する回路である。
次に、動作を説明する。
まず、予め検索パターンrHOR3E」を1文字ずつ、
第12図に示したパターンバッファ220−1〜220
−5までにセットしておく。また、第11図の状態遷移
図における入力文字のうち、任意文字rXJに対応する
マスクラッチ214に、“1nをセットする。すなわち
、マスクラッチ214 a−11,214b−II。
214 c −11,214a−21,214b−21
,214a −31,214d −22゜214 c 
−32,’214 d −32,214b −42,2
14c−42,2+4 d −42に、′l″をセット
しておく。更に、パターンの先頭文字と末尾文字を教え
るために、先頭インジケータラッチ210 a −11
,215a−21,215a−31および215a−4
1と、末尾インジケータラッチ215b−12,215
b −22,215b−32および215 b−42に
、“l”をセットしておく。
次に、テキストを記憶装置lから4文字ずつテキストデ
ータ転送路3を通して各セル210に入力していく。各
セル210内部の一致判定回路211では、4バイトの
入力文字と4文字のパターン°の文字とが比較される。
つまり、一致判定回路211−I+では、入力4文字と
rXXXHJとが比較される。
同様に、一致判定回路211−12,211−21,2
11−22,211−31,211−32,211−4
1,211−42では、それぞれ、入力4文字とパター
ンrOR3EJ、rXXHOJ、rR3EX」、rXH
OR」、rSEXX、1.rHOR3」、rEXXXJ
とが比較される。
制御回路212は、一致判定回路211か、らの出力で
ある一致信号216と、前段のセル210の状態信号2
70と先頭インジケータラッチ215aの出力線219
a  とから、本セルの状態信号217を生成し、それ
を状態ラッチ213の入力とする。状態ラッチ213−
ijが”1″であることが、第12図における有限オー
トマトンの状態番号がSiJとなったことを表わしてい
る。そして、本セルの状態信号217と末尾インジケー
タ215bの出力線219bとのANDをとった結果を
、バター使検出信号250とする。
それが“1”となることが、パターンの検出を意味する
のは前述の通りである。
テキストの例として、第一の実施例と同様に、16文字
(7)テキストrCAT、HOR8E、MONKEYJ
を考える。この例の場合の時刻に対する、テキスト入力
線230と各セル210−ijのパターン入力線240
−IJt一致信号216−ijt状態ラッチ213−1
jの値の変化を、第14図に示す。この例の場合には、
−時刻21時刻3にそれぞれ、状態ラッチ213−41
と213−42とが“l″となる。そして、セル210
−43の末尾インジケータラッチ215 b−43の内
容が“1″であるので、パターン検出信号250−43
は“1″となり、パターンを検出したことがわかる。こ
の例の場合は、4時刻でストリングサーチが終了する。
次に、第三の実施例として、パターンにドントケア文字
(ワイルド文字)を含んだパターンを検索する場合を説
明する。
例として、第一の実施例で用いた2文字単位入力の有限
オートマトンを用いる。検索パターンの例としてはrH
!R3EJを考える。ここで、「!」はドントケア文字
(ワイルド文字)、すなわち、1文字の任意文字を表わ
すものとする。この場合の有限オートマトンの状態は、
第15図に示す如く定義する。また、第16図に、この
場合の、2文字単位入力の有限オートマトンの状態遷移
図を示す。
状態番号SI□Sj、はパターンが検出された状態を示
している。
これを表現するストリングサーチ装置2は、第一の実施
例に示したものと同じ構成で良い。予め各レジスタやラ
ッチにセットしておくデータも、ドントケア文字に対応
するマスクレジスタ1I4a−12と114b−21に
“l”をセットしておくことを除いて、同じで良い。な
お、マスクレジスタ114 a −12と1I4b−2
1に1′をセットしておくことは、第一の実施例におい
て、セル110−12や110−21にパターンとして
「OR」やrHO」を入力させる代りに「!R」や「H
!」を入力させる役割を果たしている。
この場合の動作は、第1O図と同様になる。
次に、可変長ドントケア文字「?」を含んだパターンの
検索について簡単に説明する。なお、ここで、可変長ド
ントケア文字「?」とは、O文字以上の任意の文字列を
表わしている。この場合の、有限オートマトンの状態の
定義および状態遷移の例を、第17図と第18図に示す
。この例では、2文字単位に状態遷移を惹き起こす有限
オートマトンを用いている。これを実現する装置は、第
4図に示した装置内のセル110の内部論理とセル間の
接続を、第18図における状態遷移に対応するように若
干変更するだけで良い。
また、複数のパターンの同時検索は、複数のパターンを
ばターンバッファにシリアルにセットして、インジケー
タラッチにそれに対応した値をセットするだけで容易に
実現できる。
本実施例では、前述の文献(前者)によるセルアレイ法
をベースとした装置を例に説明したが、他のセルアレイ
法をベースとした装置にも容易に適用することが可能で
ある。
次に、第四の実施例として、表−置型の有限オートマト
ン法を利用した場合の例を説明する。以下に説明する実
施例では、2文字単位に状態遷移を惹き起こす有限オー
トマトンを用いることにする。
第19図は、本実施例におけるストリングサーチ装置の
構成例である。図中、510はテキストデータ転送路を
通して記憶装置から入力されてくるテキストの入力文字
を格納する2バイト分の入力文字レジスタ、511は有
限オートマトンの状態の情報を格納する状態レジスタ、
512は検索パターンに対する状態遷移テーブルを格納
するランダムアクセスメモリ(RAM)、515は該R
AM 512に対するアドレス線、513は次の有限オ
ートマトンの状態の情報を格納する次状態レジスタ、5
14は次状態がパターンを検出した状態になったかどう
かを判定するパターン検出判定回路を示している。
検索パターンの例として、rHOR3EJを考えると、
その状態遷移図は、第20図のようになる。
これに対応する状態遷移テーブルは、第21図のように
なる。状態遷移テーブルは、現在の状態と入力文字とか
ら、次の状態がわかるようにしたテーブルである。この
状態遷移テーブルは、予め前記RAM512にセットし
ておく、そして、初期状態0を状態レジスタ511にセ
ットしてから、検索を開始する。
第22図に、本実施例の動作を示す、テキストの例とし
てrcAT、HOR3E、MONKEYJを考える。テ
キストは、1時刻に2文字ずつ、記憶装置からテキスト
転送路を通して入力していく。時刻lでは、状態レジス
タ5]1と入力文字レジスタ510の内容が、それぞれ
、「0」とrcAJであるので、それをアドレスとして
、RAM512に格納されている状態遷移テーブルにア
クセスする。そして、次状態「0」をフェッチし、それ
を次状態レジスタ513に入力する。そして、それを再
び、状態レジスタ511に入力する。一方、パターン検
出回路514では、次状態が「3」か「6」になったか
どうかにより、パターンの検出を監視している。
以下、この動作を繰り返し、第22図に示される如く、
時刻5で次状態レジスタ513に「6」が入力され、パ
ターンrHOR3EJが検出される。本実施例では、8
時刻でストリングサーチを終了させることができる。
次に、第五の実施例を説明する。第23図は、本発明の
表−置型の有限オートマトン法を用いたストリングサー
チ装置の構成例を示すものである。
この例では、2つのパターン「CAT」とrDOGJの
検索を行う場合を考える。図において、11と21は上
述のそれぞれのパターンに対する有限オートマトンの状
態の情報を格納する状態レジスタ、10はテキストデー
タの転送路を通して記憶装置から入力されてくるテキス
トの入力文字を格納する入力文字レジスタ、12と22
はそれぞれのパターンに対する状態遷移テーブルを格納
するRAM%15と25は該RAM!2と同22に対す
るそれぞれのアドレス線、また、13と23はそれぞれ
のパターンに対する次の有限オートマトンの状態を格納
する次状態レジスタ、14と24は次状態がパターンを
検出した状態になったかどうかを判定するパターン検出
判定回路、30はパターンの検出情報を生成する検出情
報生成回路を示している。
本装置を用いれば、2つのパターンの状態遷移は、別々
に作成することができる。従って、状態遷移テーブルの
1作成時間が短縮できる。2つのパターンrCATJと
「DOG」に対する有限オートマトンの状態遷移を、第
24図および第25図に示す。
これは、rCATJに対しては、テキストから文字が連
続してrCJ、rAJ、rTJと入力されると、状態番
号がOから順次、1,2.3と推移してパターンが検出
されることを示しており、また、rD OGJに対して
は、文字が連続してrD」、ro」、rG」と入力され
ると、状態番号がOから順次、4,5.6と推移してパ
ターンが検出されることを示しているものである。これ
に対する状態遷移テーブルを、第26図および第27図
に示す。第23図におけるRAM12と22には、この
状態遷移テーブルを、それぞれ、格納しておく。
次に、本実施例の動作を第28図を用いて説明する。第
28図は、状態レジスタ、入力文字レジスタ。
次状態レジスタの内容の変化を示すものである。
テキストの例として、!3文字のテキストrCAT。
HOR3E、DOGJを考える。まず、検索を始める前
に、状態レジスタ11と12に初期状態0をセットして
おく、そして、テキストのデータを一時刻に1文字ずつ
、記憶装置からテキストデータ転送路を通して本装置に
入力していく。
時刻1では、状態レジスタ11と入力文字レジスタ10
の内容が、それぞれrQJとrAJであるので、それを
アドレスとしてRAM12に格納されている状態遷移テ
ーブル16にアクセスする。そして、次状態「1」をフ
ェッチし、それを次状態レジスタ13に入力する。そし
て、それを再び、状態レジスタ11に入力する。一方、
パターン検出判定回路14では、次状態が「3」になっ
たかどうかにより、パターンの検出を監視している。同
様な動作を、状態レジスタ21.アドレス線222次状
態レジスタ23およびパターン検出判定回路24により
並行して行い、状態レジスタ21にはrQJが入力され
る。以下、この動作が繰り返され、第28図に示される
如く、時刻3で次状態レジスタ13に「3」が入力され
、パターンrCATJが検出され、時刻13で次状態レ
ジスタ23に「3」が入力され、パターンrDOGJが
検出される。
次に、第六の実施例を説明する。第29図は、第六の実
施例を実行するためのストリングサーチ装置の構成例を
示すものである。ここで、ストリングサーチを行う機構
は、第五の実施例と同じである。第五の実施例と異なる
点は、本実施例においては、状態遷移テーブル作成装置
19や29を、各RAM毎に設けている点である。これ
により、各パターン毎に、状態遷移テーブルを並列に作
成できるので、テーブル作成時間を削減することができ
るものである。
次に、第七の実施例を以下、説明する。第五の実施例で
は、個々のパターンに対して状態遷移テーブルを作成し
、それを用いて検索する方法を説明した。この方法によ
る場合には、検索パターン数だけ、独立にアクセスでき
るRAMを用意する必要がある。そこで、本実施例では
、独立にアクセスできるRAMの個数よりも検索パター
ン数の方が多い場合の、効率的な検索方法について説明
する。例として、4個の検索パターンを、2個のRAM
、すなわち、2個の状態遷移テーブルを用いて検索する
方法について説明する。
ここでは、4個の検索パターンをパターン・1〜パター
ン4とする。本実施例においては、これを、例えば、パ
ターン1とパターン2を同時に検索するための状態遷移
テーブル(第36図参照)と、パターン3とパターン4
を同時に検索するための状態遷移テーブルとを作成し、
この2つの状態遷移テーブルを用いて検索を行う。これ
により、2つの独立にアクセスできるRAMを用いて4
個のパターンを検索することができる。
次に、第への実施例を説明する。これは、第五の実施例
で説明した構成例(第23図参照)で実現できる。但し
、本実施例においては、入力文字レジスタ13および状
態遷移テーブルを格納するRAM12は、前記第四の実
施例(第19図参照)で説明した複数文字分の入力文字
レジスタ510および複数文字単位に状態遷移を惹き起
こす有限オートマトンの状態遷移テーブルを格納するR
AM 512を、用いるものとする。これにより、状態
遷移テーブル作成時間の削減と、入力テキスト文字を複
数文字単位で処理することによるストリングサーチ処理
の高速化とが、同時に実現できる。
次に、第九の実施例として、第30図に示す如きテキス
トデータを複数文字単位に入力する入力手段toolお
よび複数文字単位の比較器2003かも構成されるスト
リングサーチ装置について説明する。
本実施例においては、予め、テキスト文字列と比較する
パターン文字列を記憶装置2001に格納し、かつ、パ
ターン文字列中の任意の1文字をキーパターンレジスタ
2005およびパターンデータレジスタ2004に、複
数文字単位納する。入力手段toolを用いて、テキス
トデータレジスタ2004のデータを比較器2003を
用いて比較し、その結果を検索制御手段2002で判定
する。
ここで、テキストをrBULL −HOR8EJ、パタ
ーンをrHOR3EJとした場合の動作を説明する。テ
キストは、入力手段+001を用いて、4文字単位で入
力されるものとする。また、キーパターンレジスタ20
05の値としては、パターン文字列中の先頭文字「H」
を4文字並べたI[HHH」とする。第31図は、テキ
ストデータレジスタ1004とパターンデータレジスタ
2002の入力およびその゛比較結果を示すものである
。まず、時刻1では、テキストrB U L LJと上
記キーパターンl’HHHHJとを比較する。結果は、
全文字不一致であるので、4文字分シフトして、次のテ
キストを入力する。
時刻2では、テキストr−HORJとキーパターンrH
HHHJを比較する。ここでは、2文字目の「H」が一
致しているので、時刻3では、テキストは2文字分シフ
トし、パターンは2文字目以降のデータを入力する。つ
まり、ここでの入力テキストはrQ RS EJ、入カ
バターンはFORS EJであり、完全に一致し、パタ
ーンrHOR3Jが検出される。本実施例では、3時刻
でストリングサーチを終了させることができる。
上述の各実施例は、いずれも本発明の一例として示した
ものであり、本発明はこれらに限定されるべきものでは
ないことは言うまでもない。
〔発明の効果〕
以上、詳細に述べた如く、本発明によれば、第1の文字
列から複数文字単位のデータを入力し、複数文字単位に
状態遷移を惹き起こす有限オートマトンを用いることに
より、複数文字単位にストリングサーチにおけるサーチ
状態の遷移が実現できることから、検出速度を向上させ
るとともに、複数パターン検索のための表−置型の有限
オートマトン法における状態遷移テーブルの作成時間を
短縮可能としたストリングサーチ方法およびこのための
装置を実現できるという顕著な効果を奏するものである
【図面の簡単な説明】
第1図は本発明の第一の実施例におけるストリングサー
チシステムとストリングサーチ装置の構成図、第2図〜
第9図は第一の実施例の説明図、第10図〜第14図は
第二の実施例の説明図、第15図〜第18図は第三の実
施例の説明図、第19図〜第22図は第四の実施例の説
明図、第23図〜第28図は第五の実施例の説明図、第
29図は第六の実施例におけるストリングサーチ装置の
構成図、第30図〜第31図は第九の実施例におけるス
トリングサーチ装置の構成図、第32図は従来のストリ
ングサーチ装置の構成図、第33図〜第37図は従来技
術の説明図である。 1:記憶装置、2:ストリングサーチ装置、3:テキス
トデータ転送路、4:検出信号線、lO二人力文字レジ
スタ、11,21 :状態レジスタ、+2,22 :R
AM、13,23:次状態レジスタ、14,24:パタ
ーン検出判定回路、+9,29:状態テーブル作成装置
、30:検出情報生成回路、110 :セル、111 
ニ一致判定回路、112 :制御回路、113:状態ラ
ッチ、114:マスクラッチ、115:インジケータラ
ッチ、120:パターンバッファ。 第 図 第 図 200 200 200 第 5 図 第 9 図 第 1 図 第 図 200 第 1 図 第 図 第 図 第 図 第 図 第 図 X 第 1 図 第 図 第 図 第 図 第 図 第 2 図 6 第 図 6 第 2 図 第 3 図 第 図 第 図 第 3 図 第 図

Claims (1)

  1. 【特許請求の範囲】 1、ある長さのコード長のコードで表現される文字(記
    号)により構成される第1の文字列中に、指定された第
    2の文字列が存在するかどうかを判定するストリングサ
    ーチ方法において、前記第1の文字列から複数文字単位
    のデータを入力し、複数文字単位に状態遷移を惹き起こ
    す有限オートマトンを用いて、該複数文字単位の入力デ
    ータと現在のサーチ状態とから次のサーチ状態を決定し
    、該新たなサーチ状態が検索すべき前記第2の文字列を
    検出したことを表わすサーチ状態になったかどうかを判
    断し、前記第2の文字列を検出した状態になった場合に
    は検出処理を行い、前記第1の文字列の入力アドレスを
    複数文字分だけ先に更新し、前記第1の文字列から次の
    複数文字単位のデータを入力する動作を繰り返すことを
    特徴とするストリングサーチ方法。 2、探索すべき前記第2の文字列が与えられたとき、該
    文字列に対応して、各サーチ状態に対して複数文字の入
    力データが入力された場合の、次のサーチ状態がわかる
    状態遷移テーブルを作成し、検索時に、複数文字単位に
    前記第1の文字列中のデータを入力し、現在のサーチ状
    態と第1の文字列中の複数文字単位の入力データとを引
    数として、前記状態遷移テーブルをアクセスして次の状
    態を取得することによりストリングサーチを実行するこ
    とを特徴とする請求項1記載のストリングサーチ方法。 3、ある長さのコード長のコードで表現される文字(記
    号)により構成される第1の文字列中に、指定された第
    2の文字列が存在するかどうかを判定するストリングサ
    ーチ装置において、前記第1の文字列を複数文字単位に
    シーケンシャルに入力する手段と、複数文字単位に状態
    遷移を惹き起こす有限オートマトンを用い、前記複数文
    字単位の入力データと現在のサーチ状態とから次のサー
    チ状態を決定し、該新たなサーチ状態と検索すべき前記
    第2の文字列を検出したことを表わすサーチ状態(パタ
    ーン検出状態)とを比較する手段を有することを特徴と
    するストリングサーチ装置。 4、前記比較手段が、入力された第1の文字列と前記第
    2の文字列との複数文字単位の一致不一致を判定する手
    段と、前方のセルからのサーチ状態を表現する状態信号
    と前記判定手段からの一致信号とから新たな状態信号を
    生成し、後方のセルに伝達する手段と、前記新たな状態
    信号から前記第2の文字列が検出状態になったかどうか
    を判断する手段から構成されるセルを直列に接続し、そ
    れを複数個多段に並べて構成されたものであることを特
    徴とする請求項3記載のストリングサーチ装置。 5、前記セルを多段に接続して用いて、前記第2の文字
    列のすべての部分列と前記第1の文字列の入力文字列と
    を同時に比較することを特徴とする請求項4記載のスト
    リングサーチ装置。 6、前記比較手段が、複数文字の入力データと現在のサ
    ーチ状態とのペア情報から、前記状態遷移テーブルを格
    納する記憶手段をアクセスし、次のサーチ状態を取得す
    るであることを特徴とする請求項3記載のストリングサ
    ーチ装置。 7、前記状態遷移テーブルを複数個格納する記憶手段と
    、該状態遷移テーブルに並列にアクセスする手段を有す
    ることを特徴とする請求項6記載のストリングサーチ装
    置。 8、前記複数個の状態遷移テーブルを用いて、複数の文
    字列を検索する際に、個々の文字列に対し独立に前記状
    態遷移テーブルを作成する手段を有することを特徴とす
    る請求項7記載のストリングサーチ装置。
JP1217148A 1989-08-23 1989-08-23 ストリングサーチ方法およびそのための装置 Expired - Fee Related JP2745710B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1217148A JP2745710B2 (ja) 1989-08-23 1989-08-23 ストリングサーチ方法およびそのための装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1217148A JP2745710B2 (ja) 1989-08-23 1989-08-23 ストリングサーチ方法およびそのための装置

Publications (2)

Publication Number Publication Date
JPH0380366A true JPH0380366A (ja) 1991-04-05
JP2745710B2 JP2745710B2 (ja) 1998-04-28

Family

ID=16699610

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1217148A Expired - Fee Related JP2745710B2 (ja) 1989-08-23 1989-08-23 ストリングサーチ方法およびそのための装置

Country Status (1)

Country Link
JP (1) JP2745710B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006134161A (ja) * 2004-11-08 2006-05-25 Mitsubishi Electric Corp 文書検索装置および文書検索プログラム
WO2008081932A1 (ja) * 2006-12-28 2008-07-10 Nec Corporation 文字列照合用有限オートマトン生成システム、その生成方法、及び生成プログラム
JP2010044523A (ja) * 2008-08-11 2010-02-25 Fujitsu Ltd 真偽判定方法
US7769753B2 (en) 2004-01-30 2010-08-03 Nec Corporation Method and system for retrieving a data pattern
JP2014232523A (ja) * 2013-05-28 2014-12-11 アジレント・テクノロジーズ・インクAgilent Technologies, Inc. サブワード有限状態機械を利用する探索装置
JP2015121707A (ja) * 2013-12-24 2015-07-02 株式会社東芝 デコーダ、デコード方法およびプログラム

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7769753B2 (en) 2004-01-30 2010-08-03 Nec Corporation Method and system for retrieving a data pattern
JP2006134161A (ja) * 2004-11-08 2006-05-25 Mitsubishi Electric Corp 文書検索装置および文書検索プログラム
WO2008081932A1 (ja) * 2006-12-28 2008-07-10 Nec Corporation 文字列照合用有限オートマトン生成システム、その生成方法、及び生成プログラム
JP5169837B2 (ja) * 2006-12-28 2013-03-27 日本電気株式会社 文字列照合用有限オートマトン生成システム、その生成方法、及び生成プログラム
US8612376B2 (en) 2006-12-28 2013-12-17 Nec Corporation System for generating character-string matching finite automation, its generating method, and generating program
JP2010044523A (ja) * 2008-08-11 2010-02-25 Fujitsu Ltd 真偽判定方法
JP2014232523A (ja) * 2013-05-28 2014-12-11 アジレント・テクノロジーズ・インクAgilent Technologies, Inc. サブワード有限状態機械を利用する探索装置
JP2015121707A (ja) * 2013-12-24 2015-07-02 株式会社東芝 デコーダ、デコード方法およびプログラム
US10008200B2 (en) 2013-12-24 2018-06-26 Kabushiki Kaisha Toshiba Decoder for searching a path according to a signal sequence, decoding method, and computer program product

Also Published As

Publication number Publication date
JP2745710B2 (ja) 1998-04-28

Similar Documents

Publication Publication Date Title
KR101012623B1 (ko) 고속 문맥 탐색 및 데이터 패턴의 특성화를 수행하는 프로그램가능한 룰 프로세싱 장치
EP0233401B1 (en) Improved fast search processor
US9870530B2 (en) Methods and systems for data analysis in a state machine
US9535861B2 (en) Methods and systems for routing in a state machine
EP2386081B1 (en) Systems and methods for communicating pattern matching results of a parallel pattern search engine
US9026485B2 (en) Pattern-recognition processor with matching-data reporting module
US8713223B2 (en) Methods and systems to accomplish variable width data input
US7464254B2 (en) Programmable processor apparatus integrating dedicated search registers and dedicated state machine registers with associated execution hardware to support rapid application of rulesets to data
US4550436A (en) Parallel text matching methods and apparatus
WO2010065294A1 (en) Devices, systems, and methods to synchronize parallel processing of a single data stream
US20170193351A1 (en) Methods and systems for vector length management
US20200293804A1 (en) Methods and systems for event reporting
JPH0380366A (ja) ストリングサーチ方法およびそのための装置
US10929764B2 (en) Boolean satisfiability
JPH0786875B2 (ja) ベクトル処理装置
Jover et al. Design framework for systolic-type arrays
Lee ALTEP—A cellular processor for high-speed pattern matching
JP2825009B2 (ja) 記号列検索方法および装置
JPH0268663A (ja) 文字列検索装置
JPS63257030A (ja) 文字列検索回路
Lochovsky DL Lee
Wong A high-speed hardware unit for a subset of logic resolution
JPH04245375A (ja) 記号列照合装置の制御方式
JPH06139279A (ja) 検索装置
JPH04169973A (ja) 記号列検索方法および装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees