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

文字列検索装置

Info

Publication number
JP2702927B2
JP2702927B2 JP62147041A JP14704187A JP2702927B2 JP 2702927 B2 JP2702927 B2 JP 2702927B2 JP 62147041 A JP62147041 A JP 62147041A JP 14704187 A JP14704187 A JP 14704187A JP 2702927 B2 JP2702927 B2 JP 2702927B2
Authority
JP
Japan
Prior art keywords
state
character
transition
search target
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP62147041A
Other languages
English (en)
Other versions
JPS63311530A (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.)
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 JP62147041A priority Critical patent/JP2702927B2/ja
Priority to US07/205,923 priority patent/US5051886A/en
Publication of JPS63311530A publication Critical patent/JPS63311530A/ja
Priority to US07/761,442 priority patent/US5278981A/en
Application granted granted Critical
Publication of JP2702927B2 publication Critical patent/JP2702927B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/912Applications of a database
    • Y10S707/917Text
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は情報処理システム、特に情報検索システムに
おける検索方式に係り、被検索文字列中に複数の文字列
の集合が存在するか否かを一括して判別するためのもの
である。データベース、文書フアイリングシステム、お
よびワードプロセツサなどにおける検索に利用され得る
ものである。 〔従来の技術〕 近年、文献情報や特許情報などの2次情報(書誌情
報)のみならず、1次情報(本文)をも含む大規模デー
タベース・サービスの重要性が増している。このような
データベースの情報検索では、従来、キーワードや分類
コードによる方法が用いられてきている。しかし、この
方法では数十件から数百件までにしか絞り込めないた
め、検索者が最終段階で直接本文を読んで内容を確認し
なければならないという効率上の問題がある。また、分
類体系自体が年月と共に変化するため、常にキーワード
や分類コードを更新しなければならないという問題も生
じてくる。更に、キーワード付け(インデキシングと言
う)には時間がかかるため新たな文書はバツチ処理によ
りかなりの量をまとめて登録する。そのため、検索でき
る情報は常に一定期間の遅れを持つという問題がある。 これらの問題に対処する一つの方法として、検索者が
自由なキーワードに基づいて文書の本文を直接参照して
内容を検索できる全文検索システムが考えられている。 一方、このような全文検索システムを目指した文字列
検索装置がいくつか提案されている。その代表的な構成
を第1図に示し、まず、その内容について説明する。 文字列検索装置1において、検索制御手段101は、検
索装置全体の制御と、ホストコンピユータとの通信を行
う。すなわち、ホストコンピユータから送られてくる検
索要求201を受け付け、これを解析し、文字列照合手段2
00と複合条件判別手段103へ検索情報202として送出す
る。また、検索制御手段101はデイスク制御手段104を制
御して、文字列記憶手段105に格納される文字列データ2
04を文字列照合手段200へ送り込む。 文字列照合手段200は、入力文字データ204の中に検索
要求に合致するものがあるかどうかを調べ、もし該当す
るものがあれば、文字列を識別する情報205を複合条件
判別手段103へ出力する。複合条件判別手段103は該文字
列識別情報205に基づいて検索要求中に指示された相互
の位置関係などの複合条件が満足するか否かを調べる。
複合条件が満足する場合には、該当する文書へのポイン
タ情報や文書内容のテキストデータを検索結果206とし
てホストコンピユータへ返送する。 上述した文字列検索装置1の要とする文字列照合手段
200における文字列の照合方式としては、有限オートマ
トンを用いて複数の文字列を1回の走査で検索する方法
が知られている。その代表的な方式としては、以下に説
明する2つの方法が知られている。(エー.ブイ.エー
ホ アンド エム.ジエイ.コラツシツク:“エフイシ
ヤント ストリング マツチング",コミユニケーシヨン
ズエーシーエム,18巻,第6号,1975年,A.V.Aho and M.
J.Corasick:“Efficient String Matching",CACM,VOL,1
8,No.6,1975)。 まず、第1の方式(以後、方式1と呼ぶ)について第
2図を用いて説明する。同図は、文字列データの中か
ら、“ABX",“CABY"、及び“DCABZ"の3つの文字列を検
索する場合の有限オートマトンの状態遷移図である。こ
こで、円形はオートマトンの状態を、矢印は状態遷移を
表している。各矢印に付記されたアルフアベツトはこれ
に対応した状態遷移が起きる入力文字を示す。矢印403
は初期状態への遷移を示している。各円形の内部に記さ
れた数値は、同状態の状態番号を示す。方式1の特徴は
起こり得る全ての状態遷移をオートマトンに表現する点
にある。したがつて、各状態から状態0への遷移も存在
するが、図が複雑になるので、これら状態0以外の状態
から状態0への遷移に関しては矢印の記載を省略してい
る。 次に、方式1による照合動作について説明する。この
オートマトンの初期状態は状態0であり、ここから状態
遷移が始まる。状態0では、入力文字が、“A"であると
状態1へ遷移し、“C"ならば状態4へ、“D"ならば状態
8へ遷移する。状態0において“A",“B"、及び“C"以
外の文字が入力されてきた場合は状態0に戻る。状態1
についても同様に、入力文字が“B"ならば状態2へ、
“C"ならば状態4へ遷移し、“D"ならば状態8に遷移
し、“A"ならば状態1に再遷移し、それ以外は状態0へ
戻る。状態2において、入力文字が“X"ならば、オート
マトンの終点である状態3へ移り、“ABX"という文字列
が検索されたことになる。以下、他の状態遷移について
も同様である。 このように、方式1は全ての場合の入力文字の状態遷
移をオートマトンで表す方式である。したがつて、オー
トマトンの状態遷移の数が多くなり、オートマトンの作
成時間が極めて長くなるという問題がある。この方式を
実現するハードウエアについては、特開昭60−105039、
特開昭60−105040に開示されている。 次に、第2の方式(以後、方式2と呼ぶ)について第
3図と第4図を用いて説明する。第3図のオートマトン
は、第2図と同様に、文字列データの中から、“ABX",
“CABY"、及び“DCABZ"の3つの文字列を検索するため
のものである。第4図は、このオートマトンに示されて
ない文字が入力された場合の遷移先を示すフエイルテー
ブルの説明図である。 以下、同方式の動作について説明する。初期状態は状
態0である。この例の場合、入力文字が“A"であると状
態1へ遷移し、“C"ならば状態4、“D"ならば状態8へ
遷移する。もし、ここでこれら以外の文字が入つてきた
場合は状態0に戻る。一方、状態1では入力文字が“B"
ならば、状態2に遷移する。ここで、もし、同オートマ
トンに記述されていない“B"以外の例えば“D"が入力さ
れたときは、本方式では「フエイル」したと言い、第4
図のフエイルテーブルを参照する。フエイルテーブルに
は現在の状態番号に対して再試行すべきフエイル先の状
態番号が格納されている。この場合、現在の状態番号1
に対応するフエイル先の値0を得て状態0へ遷移する。
そして、該入力文字“D"について再試行することにより
状態8へ遷移する。このような機能をフエイル機能と呼
んでいる。 方式2ではこのフエイル機能を導入することにより、
第3図に示すように方式1(第2図)に比べて、大幅に
遷移の数を削減している。しかしながら、方式2には次
のような問題がある。例えば、第3図のオートマトンに
おいて、入力文字列“DCABX"が入力された場合を考え
る。この場合、オートマトンの状態は、0→8→9→10
→11→6→2→3のように遷移し、文字列“ABX"が検索
されることになる。この場合、状態11から状態2までの
2つの遷移はフエイルによる遷移であり、入力“X"1文
字の照合処理にフエイル機能が2回も使用されたことに
なる。したがつて本方式の場合、有限オートマトンの状
態遷移図が簡単になるため、オートマトンの作成時間は
短くなる利点があるが、フエイルが発生する場合には処
理速度が遅くなる欠点がある。さらに、フエイルは一つ
の入力文字に対して繰り返して複数回発生することがあ
る。したがつて、そのフエイルの発生回数により単位時
間当たりの処理文字数が異なつてくる。その結果、一定
時間間隔で入力される被検索文字列に対し、処理速度を
整合させるためのバツフアや、同期制御機構等に必要に
なるため、装置や制御が複雑になるという問題がある。 〔本発明が解決しようとする問題点〕 従来の方式の、問題点をまとめると、以下のようにな
る。 (1)方式1は全ての状態遷移をオートマトンで直接表
すためオートマトンの作成時間が長くなるという問題が
ある。 (2)方式2はフエイル機能を用いているためオートマ
トンの作成時間は短くなるが、フエイルが発生すると処
理速度が遅くなり、さらに、単位時間当たりの処理文字
数が異なるという問題がある。 したがつて、本発明の目的は、以上の問題点を解決し
て、オートマトンの作成時間が短く、かつ回路制御方式
が単純になる文字列検索方式を提供することにある。 〔問題点を解決するための手段〕 上記の問題点は、方式2において1文字当たりのフエ
イル機能の使用回数に上限を設け、この上限を超えるフ
エイル機能は方式1と同様に、オートマトンで表すよう
にすることにより解決できる。 〔作用〕 本発明の文字列検索方式においては、1文字当たりの
フエイル機能の使用回数に上限を設け、この上限を超え
るフエイル処理は方式1と同様に、オートマトンで表す
ことにより、オートマトンの作成を方式2と同程度の時
間に収めることができ、また、方式1と同様に単位時間
当たりの処理文字数を一定にすることが可能となり、入
力部が簡単で制御しやすい文字列検索装置が実現でき
る。 以下、本発明方式の基本原理について説明する(以
後、方式3と呼ぶ)。第5図は本発明の基本原理を説明
するための有限オートマトンの状態遷移図である。 同図のオートマトンは第3図に示したオートマトンと
同様に“ABX",“CABY"、および“DCABZ"の3つの文字列
を検索するためのものである。第6図に、同オートマト
ンに対応するフエイルテーブルを示す。この例では、フ
エイル機能の使用回数の上限を2回に限定している。第
5図に示したオートマトン及び第6図のフエイルテーブ
ルはフエイル回数を2回までに限定するために、フエイ
ル回数が3回以上になる状態10と状態11に関して、その
フエイル先となる状態5と状態6に遷移先の追加あるい
はフエイル先の変更が行なわれている。すなわち、状態
5に関しては、フエイル先状態番号が状態0に変更され
る。また、状態6に関しては、状態3へ文字“X"で遷移
する新たな遷移パスが付加されると共に、フエイル先状
態番号が状態0に変更されている。 このオートマトンは、例えば以下に示すような方法で
作成することができる。まず、従来方式2を用いて、第
3図に示したオートマトンと第4図に示したフエイルテ
ーブルを作成する。次に、第4図のフエイルテーブルを
調べ、フエイル回数が2回を超える状態10および状態11
について、フエイル回数を限定する処理を加える。すな
わち、この場合には、状態10と状態11の第1回目のフエ
イル先である状態5と状態6に着目する。そして、状態
5と状態6のフエイル回数を1回に限定する処理を加え
る。まず、状態6に関しては、状態7からの遷移起動文
字“Y"とそのフエイル先である状態2からの遷移起動文
字“X"が異なるので“Y"による状態3への遷移パスを新
たに追加する。また、フエイルテーブルに関しては、フ
エイル先状態番号を状態2から初期状態番号の0へ変更
する。次に、状態5に関しても同様の処理を行なう。こ
の場合には、状態6への遷移起動文字“B"とそのフエイ
ル先状態1からの遷移起動文字“B"が等しい。したがつ
て、状態5への新たな遷移パス付けは行なわない。ま
た、フエイル先状態番号は1から初期状態番号の0に修
正する。このような処理を、フエイル回数が2回を超え
る状態全てについて繰り返すことによつて、本発明にお
けるオートマトンが作成される。 フエイル回数を限定したオートマトンの作成方法に関
しては、上に述べた以外の方法もある。この方法では、
フエイル回数を2回までに限定したオートマトンが第7
図に示すようになり、フエイルテーブルは第8図に示す
ようになる。この場合も前述の方法と同様に、まず従来
方式2を用いて第3図に示すオートマトンと、第4図に
示すフエイルテーブルを作成する。そして、フエイル回
数が2回を超える状態10と状態11に関し、そこからの遷
移起動文字に含まれない文字が、そのフエイル先である
状態5と状態6からの遷移起動文字として存在するかど
うかを調べる。もし存在する場合には、その遷移起動文
字による遷移を着目状態の状態10あるいは状態11に付け
加える。これと同時に、フエイルテーブルの遷移先状態
番号は、次のフエイル先、すなわち第2回目のフエイル
先状態番号へ変更する。この場合には、状態11から状態
7への文字“Y"による遷移が新たに付け加えられると共
に、フエイルテーブルに関しては状態10のフエイル先が
状態1に、状態11のフエイル先が状態2に書き直される
ことになる。 以上、本発明におけるオートマトンおよびフエイルテ
ーブルの作成方法を、フエイル回数を最大2回に限定す
る場合を例にして説明したが、フエイル回数を1回に限
定する場合についても、また、フエイル先を状態0に限
定しない場合でも全く同様の操作で実現できる。 以上の説明から明らかなように、このフエイル回数に
上限を設けたオートマトンの作成には、それほど複雑な
処理を必要とせず、またこの処理を要する箇所も、検索
対象となる文字列の相互関係に依存はするものの、それ
ほど多くはならない。したがつて、全体のオートマトン
作成時間も、従来方式2より多少長くなるものの、従来
方式1に比較すれば大幅に短縮される。 この本発明におけるオートマトンの作成時間の具体例
について、第9図に示す。測定条件は、以下の通りであ
る。 (1)文字コード:KEISコード、およびEBCDIKコード(K
EISコードは漢字を含めた文字を2バイトのコードで表
すための日立製作所の標準文字コードである。) (2)文字列長:10バイト/語 (3)プログラム言語:FORTRAM (4)計算機:32ビツトCPU ただし、この場合の本発明の方式3におけるオートマ
トンは、フエイル回数を1回に限定したものとしてい
る。したがつて、フエイル先としては、初期状態になる
ことになる。 本図に示されるように、キーワード数が200個の場合
を取ると、方式1,方式3、および方式はオートマトン作
成に、それぞれ1500ms、470ms、および360msを要する。 方式3は方式1に比較して約3分の1の作成時間とな
つている。これは、方式3がフエイル処理を導入して不
一致時の遷移先を一括処理しているのに対して、方式1
では各遷移状態について全ての遷移先を求める処理を行
つているためである。方式3が方式2に比較して処理時
間が約30%増加しているのは、状態0以外にフエイルす
るものを、全てオートマトンでその遷移を記述するため
の処理が追加されているためである。 このように、本発明によれば、オートマトンの作成時
間が短く、かつ、単位時間当たりの処理文字数を一定に
することにより、入力部が簡単で制御しやすい文字列検
索装置が実現できるようになる。 〔実施例〕 以下、本発明の原理を用いた文字列検索装置の実施例
について述べる。 まず、第1の実施例である方式3−1について説明す
る。本方式は、フエイル先を一つに限定せず、複数個設
ける必要がある場合に適用される方式である。すなわ
ち、例えば、EBCDIKコードとKEISコードが混在している
文字列を検索する場合などのように、複数のフエイル先
を必要とする際に有効となる。例えば、EBCDIKコードで
表現された文字“S60"とKEISコードで表現された文字列
“昭六十”を検索する場合について説明する。文字列
“S60"はEBCDIKコードで(F2F6F0)と、また文字列“昭
六十”はKEISコードで(BEBCCFBBBDBD)と表わされる。
したがつて、これらを検索するための本発明を用いた有
限オートマトンは第10図のように作成される。 矢印に付記されたアルフアベツトは、これに対応した
状態遷移を引き起こす入力文字コードを示している。こ
こで、EBCDIKコードがKEISコードへの切り替えコートSH
IFT−INは(0A42)で、KEISコードからEBCDIKコードへ
の切り替えコードSHIFT−OUTは(0A41)で表わされ、そ
れらは状態1→状態2→状態4の状態遷移、および状態
4→状態3→状態1の状態遷移を引き起こす。また、初
期入力コードはEBCDIKコードで表わされているものとし
ている。 したがつて、文字列“S60"が入力されてきた場合に
は、初期状態1から、状態6,状態7,状態8への順に遷移
し、最終端の状態8で被検索文字列中における文字列
“S60"の存在が検出されることになる。また、SHIFT−I
Nコードに引き続いて“昭六十”が入力されてきた場合
の状態遷移は、1→2→4→9→10→11→12→13→14と
順番に遷移し、最終端オートマトン状態14で被検索文字
列中における文字列“昭六十”の存在が検出されること
になる。 この場合、例えば“S61"(E2F6F1)という文字列が入
力された場合には、状態1→状態6→状態7と遷移した
後、文字“1"の入力時に、状態1へフエイルし、ここで
該入力文字“1"に対する照合処理を再度組り返す必要が
ある。また、KEISコード入力モードで“昭和六十”(BE
ECCFC2CFBBBDBD)という文字列が入力された場合には、
状態11で“和”のローバイトコード(C2)が入力された
時点で、状態5へフエイルし、その後状態4へ遷移す
る。一方、“昭六一”(BEBCCFBBB0EC)という文字列が
入力された場合は、状態12で“一”のハイバイトコード
(B0)で一旦状態4にフエイルして、状態5に遷移し、
ここから次に続く“一”のローバイトコード(EC)で状
態4に遷移する形になる。ここで、状態5から状態4へ
の遷移は、ハイバイトコードで不一致が検出されたKEIS
コードのローバイトコードを処理対象から除外し、次の
文字コードの処理に移行する時のバイト調整を行うため
のものである。 すなわち、状態1はEBCDIKコードに対応したフエイル
先であり、状態4はKEISコードのローバイトコードでの
フエイル先で、状態5はKEISコードのハイバイトコード
でのフエイル先である。このように、EBCDIKコードとKE
ISコードが混在している文字列を検索するオートマトン
を簡単に記述するためには、フエイル先状態として、状
態1,状態4、および状態5の3箇所が必要となる。この
ように、フエイル先を複数持つた構成の実施例である方
式3−1のブロツク図を第11図に示す。 文字列記憶手段105から読み出された文字列301は1文
字ずつレジスタ211に格納される。レジスタ211から出力
される文字コード302は、本発明によるオートマトンの
遷移表が格納されている状態遷移テーブル220にアドレ
ス情報として入力される。状態遷移テーブル220では現
在の状態番号(以後、現状態番号と呼ぶ)305と文字コ
ード302から次に遷移すべき遷移先状態番号(以後、次
状態番号と呼ぶ)303を出力する。現状態番号の初期値
としては初期状態番号を設定しておく。フエイルテーブ
ル271には、フエイルが発生した場合に遷移すべきフエ
イル先状態番号が、現状態番号に対応して格納されてい
る。状態遷移テーブル220とフエイルテーブル271には、
それぞれ第12図に示した状態遷移表と第13図に示したフ
エイル先状態番号表が格納される。これらは、第10図の
オートマトンに対応したものである。フエイル検出器23
0は、状態遷移テーブル220の出力である第12図に示した
次状態番号303と現状態番号305からフエイルの発生を検
出すると共に、フエイル検出時にはレジスタ211への新
たな文字入力を待機させる。フエイル検出器230では現
状態番号305が0でなく、かつ遷移先状態番号303が0の
場合にフエイルが発生したものと見なす。セレクタ240
は、フエイルが発生しない場合次状態番号303を選択
し、フエイルが発生した場合フエイル時の遷移先状態番
号であるフエイル先状態番号308を選択し、レジスタ250
へ出力する。セレクタ240から出力された次状態番号は
レジスタ250に格納され、現状態番号305として出力され
る。レジスタ211は通常(フエイルが発生しないとき)
は、レジスタ250と同期して文字列データを取り込む
が、フエイルが発生したときは文字列データを保持し、
フエイルが回復するまで待つことになる。照合結果テー
ブル260には文字列の終点となるオートマトンの状態
(第10図では状態8,状態14)に対応して各文字列を識別
するための特定のコードが格納されている。 第14図に第10図のオートマトンに対応した照合結果テ
ーブル260の内容を示す。0以外の内容が文字列番号を
表している。すなわち、状態番号に対応した該文字列番
号が0以外のとき照合結果として複合条件判別手段103
へ送られる。 以上の動作が、第10図に示したオートマトンを実行す
る形で、入力文字列を構成する各文字ごとに繰返し行わ
れることにより検索処理が実現される。 このように本実施例によれば、フエイル回数を1回に
限定した複数のフエイル先を持たさせることにより、EB
CDIKコードとKEISコードの混在している文字列の検索が
比較的簡単なオートマトンを用いて、比較的小規模な回
路構成で実現できるようになる。 次に、第2の実施例である方式3−2について説明す
る。本方式は方式3−1のフエイルテーブル271をコン
パクトにするためのものである。方式3−1では、処理
文字コードがEBCDIKコードか、あるいはKEISコードのハ
イバイトコードかローバイトコードかによつて、それぞ
れフエイル先状態が3つの状態に分かれている。そのた
め、フエイルテーブルには各文字コードに対応した全て
の状態にこの3つのフエイル先状態番号を重複して記す
形になつている。そこで、文字コードの種類によつてフ
エイル先状態を選択できるようにすれば、この重複を省
くことができ、フエイルテーブルのサイズを小さくする
ことができる。この方法の一実施例を第15図で説明す
る。文字コード判別器290は文字コードの種類に応じて
異なるコードを出力し、フエイルテーブル273はそのコ
ードにしたがいフエイル先番号308を出力する。文字コ
ード判別器290ではEBCDIKコードの場合0を、KEISコー
ドのハイバイトコードでは1を、ローバイトコードでは
2を出力する。フエイルテーブル273では、文字コード
判別器290の出力が0のとき状態1を、1のとき状態4
を、2のとき状態5をフエイル先状態番号308として出
力するように設定しておく。このように設定しておけ
ば、EBCDIKコードおよびKEISコードの文字列が入力され
ても、第10図に示したオートマトンにしたがつて、状態
遷移させることができる。 このように本実施例によれば、小規模のフエイルテー
ブルで複数の文字コードが混在する文字列の検索を行う
文字列検索装置が実現できる。 次に、第3の実施例である方式3−3について説明す
る。本方式も、方式3−1と同様にフエイル先を一つに
限定せず、複数個設ける必要がある場合に適用される方
式である。方式3−1ではフエイルが発生したときに、
状態処理に2サイクル必要となるという問題がある。本
方式はフエイルが発生した場合でも状態処理を1サイク
ルで可能とするためのものである。第16図に本方式を実
現するためのハードウエアのブロツク図を示す。本方式
は、フエイル時のフエイル先状態番号308が登録された
フエイルテーブル271とフエイル処理専用の状態遷移テ
ーブル221を、状態遷移テーブル220とフエイル検出器23
0に付加した構成としている。このフエイル処理専用の
状態遷移テーブル221の内容は、本来の状態遷移テーブ
ル220の内容と全く同じものである。このような構成に
することにより、フエイルが発生した場合にでも、状態
遷移を1サイクルで処理できるようになる。すなわち、
入力文字コードに対応する状態遷移テーブル220を参照
した次状態番号303の読み出しと並行して、フエイルテ
ーブル271からの現状態番号305に対するフエイル先状態
番号308の読み出しと、このフエイル先状態番号308に基
づいた状態遷移テーブル221からのフエイル後の遷移先
状態番号(以後、フエイル後状態番号と呼ぶ)304の読
み出しを同時に行う。そして、現状態番号305の読み出
しの結果、フエイルが検出された場合に、セレクタ240
で出力番号を既に読み出しが終了している遷移後状態番
号304に切り替えるというものである。 このように本実施例によれば、フエイルが発生した場
合でも、1入力文字コードに対する状態遷移を1サイク
ルで処理できるようになる。 次に、第4の実施例である方式3−4について説明す
る。本方式もまた、方式3−1と同様にフエイル先を一
つに限定せずに複数個設ける必要がある場合に適用され
る方式である。上述した第3の実施例である方式3−3
では、第1の実施例である方式3−1における問題点、
すなわちフエイル発生時の遷移処理に2サイクルを要す
るという問題を解消してはいるものの、状態遷移テーブ
ルを2面持たなければならないという欠点がある。本方
式は方式3−3におけるフエイルテーブルをなくすこと
によつて、回路規模を少しでも小さくするためのもので
ある。第17図に本方式を実現するためのハードウエアの
ブロツク図を示す。 本方式は、方式3−1におけるフエイルテーブル271
と状態遷移テーブル221を一つにまとめ、これをフエイ
ル処理専用の先行フエイルテーブル274として設けたも
のである。したがつて、本フエイルテーブル274の内容
としては、第12図に示した方式3−1の状態遷移テーブ
ルにおいて、各状態番号に対応した内容を、第13図に示
したフエイル先の状態番号を対応する内容で置き換えた
ものになる。この結果、方式3−3におけるフエイルテ
ーブル271は不要となる。 このように本方式によれば、フエイルの発生にかかわ
らず、全ての状態遷移が1サイクルの間に完了できると
共に、方式3−3に比較して、フエイルテーブル271の
分だけ回路規模を小さくすることができる。 次に、第5の実施例である方式3−5について説明す
る。前述した方式3−4では、方式3−3に比較して回
路規模が小さくなつてはいるものの、状態遷移テーブル
220と同じ大きさの先行フエイルテーブル274を持つこと
になる。したがつて、方式3−1や方式3−2と比較す
ると約倍近い回路規模にならざるを得ない。これは、方
式3−4で先行フエイルテーブル内に全ての状態番号に
おいて、3種類の処理文字コードに対応したフエイル後
のフエイル後状態番号を重複して格納しているためであ
る。本方式は、この重複部分を削除することにより、先
行フエイルテーブルを小さくしようとするものである。 この方式を実現するためのハードウエアのブロツク図
を第18図に示す。本方式では、前述した方式3−2に用
いた文字コード判別器290を採用し、入力文字コードの
種別で先行フエイルテーブル275のフエイル先を切り替
えて、処理文字コードに応じたフエイル後状態番号を読
み出す形にしている。このように本実施例によれば、フ
エイル発生時にも1サイクルで遷移処理を完了すること
ができ、かつ、その制御回路の規模も、方式3−1や方
式3−2とほぼ同じ程度まで小さくすることができる。 次に、第6の実施である方式3−6について説明す
る。本方式はフエイル先を初期状態に限定できる場合に
適用される方式である。例えば、単一の文字コードで構
成される文書を検索する場合には、フエイル先を一つに
まとめることができる。更に、これに加えて処理速度を
最大にするためにフエイル回数を1回に限定すると、こ
のフエイル先としては、必然的に初期状態0となる。し
たがつて、前述した方式3−5における文字コード判別
器290も不要となり、かつ、先行フエイルテーブル295も
その内の1状態分となることになる。 本方式に用いるフエイル回数を1回に限定したオート
マトンとしては第19図に示したものになる。これは第3
図に示したオートマトンと同様に、“ABX",“CABY"、お
よび“DCABZ"の3つの文字列を検索するためのものであ
る。このオートマトンは本発明の原理説明において述べ
た方法を用い、フエイル回数を1回に限定することによ
つて作成することができる。第3図のオートマトンと比
較すると、状態6からそのフエイル先である状態2にお
ける遷移起動文字“X"による状態3への遷移パスと、状
態11から状態3への遷移起動文字“X"による遷移パス、
および、状態11から状態7への遷移起動文字“Y"による
遷移パスが付け加えられた形になる。 本オートマトンを実行する回路の一実施例のブロツク
図を第20図に示す。本方式では、フエイル先を状態0に
限定しているため、先行フエイルテーブル270には状態
遷移テーブル220の状態0で示される内容を格納するこ
とになる。第19図に示したオートマトンに対応する状態
遷移テーブル220の内容を第21図で示す。本方式では、
前述した方式3−3,方式3−4、および方式3−5と同
様に、フエイル時の遷移先状態番号の読み出しを先行し
て、次状態番号の読み出しと並行させることにより、フ
エイル発生時にも1サイクルで状態遷移を処理すること
ができる。また、回路規模としても状態遷移テーブル22
0の1状態分を先行フエイルテーブル270として持つだけ
で済むため、比較的小規模に収めることが可能となる。 次に、第7の実施例である方式3−7について説明す
る。本方式も、前述した方式3−6と同様に、フエイル
先を一つに限定できる場合に適用される方式である。方
式3−6ではフエイル処理を先行して行うために、専用
の先行フエイルテーブル270を設け、全ての状態遷移処
理を1サイクルで済ませるようにしている。しかし、も
し、状態遷移処理が2サイクルに渡ることが許容できる
場合には、この先行フエイルテーブル270を取り去るこ
とができる。すなわち、本方式は、先行フエイルテーブ
ルを削除することによつて、更に回路規模を小さくしよ
うというものである。第22図に本方式を実現するための
ハードウエアのブロツク図を示す。本方式の場合のフエ
イルテーブルとしては、状態遷移テーブルの状態番号が
0の部分に相当するものとなるため、状態遷移テーブル
220の初期状態の部分を兼用することにしている。 したがつて、フエイルが検出された場合には、状態番
号出力用のレジスタ251をクリアして初期状態番号0に
セツトし直し、ここで再び入力文字コード302の照合を
行うことになる。つまり、本方式においてはフエイルが
発生した場合、状態遷移処理が2サイクルに渡ることに
なる。また、レジスタ211は通常(フエイルが発生しな
いとき)は、レジスタ251と同期して文字列データの取
り込みを行うが、フエイルが発生したときは新たな文字
コードの入力を中止し、現在入力中の文字コードを保持
し、フエイルが回復するまで待つことになる。 このように本方式においては、フエイルが発生した場
合状態処理に2サイクル必要となるが、先行フエイルテ
ーブルがなくなる分回路規模を小さくすることができ
る。 次に、第8の実施例である方式3−8について説明す
る。本方式は方式3−5を複数のフイールドで構成され
る文字列や、文字認識装置で作成した文字列に対しても
検索が行えるように機能を拡張した方式である。まず第
1に、複数のフイールドで構成される文字列に対し、各
フイールド毎に指定した文字列集合で検索を行う場合に
ついて説明する。この場合、各フイールド毎に独立した
フエイル先を設定できなければならない。すなわち、例
えば、第1フイールドに文書番号が、第2フイールドに
年号が記載された文字列を検索する場合には、第23図に
示すようなオートマトンが必要になる。点線の矢印はフ
エイル先を表わしている。ここでは、あらかじめ定めた
「セパレータ」と呼ぶフイールド間区切りコード“;"を
各フイールドを構成する文字列の間に挿入し、これによ
つてフエイル先を切り替えるようにしている。例えば、
第1フイールドの処理が終了し、第2フイールドの処理
に移る場合、第1フイールドと第2フイールドの文字列
間に挿入されたセパレータ“;"の入力により、状態1か
ら状態2へ遷移すると同時に、フエイル先も状態2に切
り替えてしまう。したがつて、第2フイールド内で照合
不一致が生じた場合でも、第1フイールドのフエイル先
とは無関係に状態2にフエイルさせることができる。こ
うすることにより、複数フイールドで構成される文字列
の検索用オートマトンが比較的簡単な構造で記述できる
ようになり、その作成時間も短くすることができるよう
になる。 第2に、文字認識装置で認識した文書の文字列を検索
する場合について説明する。文字認識装置で100%正し
い認識結果を得ることは現状の技術では困難である。し
たがつて、文字認識装置で読み取つた文書には、誤りや
認識不能などの不完全な認識結果が含まれることにな
る。このため、このような文書に対しては、正しい文字
列で検索できないことになる。こうした問題に対処する
ための方法として、例えば“文字認識”という文字列を
文字認識装置で認識する際、“認”という文字に曖昧性
が残る場合には、その第1候補から第4候補までをまと
めて“文字〔設認標識〕”という形でコード化しておく
ものとする。このような文書を「曖昧表記文書」と呼ん
でいる。この曖昧表記文書に対し検索を行う場合には、
第24図に示したようなオートマトンが必要になる。すな
わち、本図のオートマトン遷移図において、“文字認
識”という文字列で検索処理を行つた場合、
“〔“と”〕”で囲まれた文字群の中に“認”という文
字があつた時にのみ、次の状態へ遷移し、他の文字は読
み飛ばされることになる。その結果、元の文書にあつた
“文字認識”という文字列が検索できることになる。 以上述べた複数フイールドで構成される文字列と曖昧
表記文書に対する本検索方式3−8を実現するためのハ
ードウエアのブロツク図を第25図に示す。状態遷移テー
ブル220には、第24図に示した複数フイールド検索用の
オートマトン遷移が格納されている。 多段先行フエイルテーブル272は文字列と入力文字列
との不一致、すなわちフエイルが検出された場合の遷移
先状態番号(フエイル後状態番号)304を記述したテー
ブルであり、処理対象フイールドに応じて複数の先行フ
エイルテーブルをまとめたものである。これらの先行フ
エイルテーブルは、あらかじめ指定したセパレータで切
り替えられるようにしている。セパレータの文字コード
はレジスタ293にあらかじめ格納されており、コンパレ
ータ292により入力文字コード302と比較される。セパレ
ータと同じ文字コードが入力されたとき、カウンタ291
(初期値は1)がインクリメントされ、フイールド番号
307が切り替えられる。この場合の多段先行フエイルテ
ーブル272の内容を第27図に示す。フイールド番号1の
内容は状態遷移テーブル220における第1フイールドの
始点である状態1と同じ内容で、フイールド番号2の内
容は第2フイールドの始点である状態2と同じ内容であ
る。したがつて、第1フイールドの検索処理中にフエイ
ルが発生した場合には状態1にフエイルし、第2フイー
ルドの場合には状態2にフエイルできることになる。 このように多段先行フエイルテーブル272を採用する
ことにより、フエイル先を各フイールド毎に分離するこ
とができるため、複数のフイールドで構成される文書検
索用のオートマトンを簡単なものにすることができる。 補助状態遷移テーブル223は、指定した文字コード以
外のコードを全て検索対象から除外する機能を実現する
ためのものである。すなわち、状態遷移テーブル220に
遷移先の記述されていない文字が入力された場合には、
この補助状態遷移テーブル223を参照して次の遷移先を
決定する。この補助状態遷移テーブル223の内容を第28
図に示す。補助状態遷移テーブル223には現状態番号305
に対応して補助次状態番号309が格納されている。ここ
では、例えば状態5において、状態遷移テーブル220の
遷移先の記述されていない“説”や“識”などの文字が
入力されてきた場合、この補助状態遷移テーブルの出力
である状態5に再遷移することになる。すなわち、誤認
識文字を読み飛ばし指定された正しい文字に基づいて検
索が行えるようになる。 このように、補状態遷移テーブル223を用いることに
よつて、指定外の入力文字コードに対応した遷移を簡単
なオートマトンで記述できるようになるため、曖昧表記
文書の検索への適用が容易になる。 状態遷移テーブル220,多段先行フエイルテーブル272,
補助状態遷移テーブル223の参照出力は、フエイル検出
器230の検出結果に応じて選択され、現状態番号305とし
て以後の処理の基準状態となる。すなわち、状態遷移テ
ーブル220から参照される次状態番号303が0でない場合
には、この状態番号が遷移先状態番号305として選択さ
れ、次状態番号303が0の場合には、補助状態遷移テー
ブルから参照された補助次状態番号309の値により、こ
の補助次状態番号309か多段先行フエイルテーブル272の
参照値であるフエイル後状態番号304のどちらかが選択
される。補助次状態番号309が0の場合には、フエイル
後状態番号304が選択され、他の場合には、補助次状態
番号309が選択されることになる。以上のように、3種
類のテーブルの出力が、各文字の照合処理毎に各テーブ
ルの出力に応じて選択され、検索処理が進められる。 このように多段先行フエイルテーブル272を用いるこ
とにより、複数のフイールドで構成される文字列を検索
するオートマトンが簡単に記述でき、また補助状態遷移
テーブル223を用いることによつて、曖昧表記文書を対
象とした検索用の有限オートマトンが比較的簡単に記述
できるようになる。 以上の実施例においては、状態遷移テーブルにランダ
ムアクセスメモリRAMを使用した場合について述べてき
たが、連想メモリCAMを使用することも可能である。第2
9図に前述した方式3−6の状態遷移テーブルとして連
想メモリCAMを用いた場合の実施例を示す。第20図に示
した方式3−6と構成が異なるのは状態遷移テーブル22
2に検出信号310が追加されている点である。方式3−6
の状態遷移テーブル220の内容に対応した状態遷移テー
ブル222の内容を第30図に示す。本状態遷移テーブル222
には、現状態番号と、ここからの遷移起動文字コード
と、この遷移先状態番号すなわち次状態番号が1組のデ
ータとして同一アドレスに格納されている。現状態番号
305と文字コード302が入力された場合、もしこれらに一
致するデータが本状態遷移テーブルに記述されているな
らば、検出信号310が1になり、対応した次状態番号303
がセレクタ240に出力される。もし、該当する状態番号
と文字コードが格納されてないならば、検出信号310は
0になり次状態番号303は出力されない。例えば、第29
図で現状態番号305が状態6の場合、文字コード302が
“X"または“Y"のとき検出信号310は1になり、それ以
外の文字コードのときは検出信号310は0になる。そし
て、文字コード302が“X"のとき次状態番号305は3にな
り、文字コードが“Y"のとき次状態番号305は7にな
る。このように、次々と遷移先の状態番号が連想メモリ
CAMで構成された状態遷移テーブル222から読み出されて
照合処理が進むことになる。 以上説明したように、連想メモリCAMでもランダムア
クセスメモリRAMを使用したときと同様に状態遷移テー
ブルの機能を実現することができる。この場合、第21図
と第30図の比較から明らかなように極めて少ないメモリ
容量で状態遷移テーブルが構成できることになる。 〔発明の効果〕 以上説明したように、本発明によれば1文字に対する
フエイル機能の使用回数に上限を設けることにより、オ
ートマトンの作成時間が短く、また、単位時間当たりの
処理文字数を一定にすることが可能となり制御しやすい
文字列検索装置が実現できる。そして、処理速度が最大
のとき1サイクルで1文字の遷移処理が可能となる。ま
た、複数フイールドで構成される文書や、曖昧表記文書
に対する文字列検索用オートマトンを簡単に記述できる
ようになるため、これらの文書を対象とした文字列検索
装置が容易に実現できる。
【図面の簡単な説明】 第1図は文字検索機構の説明図、第2図,第3図は従来
の有限オートマトンによる文字検索原理を表した説明
図、第4図は従来のフエイルテーブルの説明図、第5
図,第7図,第10図,第19図,第23図,第24図は本発明
を用いた有限オートマトンによる文字列検索方法の原理
を表した説明図、第9図は本発明を用いた有限オートマ
トン作成時間を従来方式と比較して表わしたグラフを示
す図、第11図,第15図,第16図,第17図,第18図,第20
図,第22図,第25図,第29図は本発明を用いた有限オー
トマトンによる文字列検索回路の実施例の構成を示すブ
ロツク図、第12図,第21図,第26図,第30図は本発明を
用いた状態遷移テーブルの説明図、第14図は検索結果テ
ーブルの説明図、第6図,第8図,第13図は、本発明を
用いたフエイルテーブルを表した説明図、第27図は、本
発明を用いた先行フエイルテーブルを表した説明図、第
28図は、本発明を用いた補助状態遷移テーブルを表した
説明図である。 101,201……制御手段,103……複合条件判別手段、104…
…デイスク制御手段、105……文字列記憶手段、200……
文字列照合手段、220,221……状態遷移テーブル、230…
…フエイル検出器、260……照合結果テーブル、270,27
4,275……先行フエイルテーブル、271,273……フエイル
テーブル、272……多段先行フエイルテーブル、290……
文字コード判別器、303……次状態番号、304……フエイ
ル後状態番号、305……現状態番号、307……フイールド
番号、308……フエイル先状態番号、309……補助次状態
番号、403……初期状態を示す矢印、404……フエイル先
を示す矢印。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 藤縄 雅章 国分寺市東恋ヶ窪1丁目280番地 株式 会社日立製作所中央研究所内 (72)発明者 畠山 敦 国分寺市東恋ヶ窪1丁目280番地 株式 会社日立製作所中央研究所内 (56)参考文献 コンピュータソフトウェア Vol. 4,No.2 (1987−4) P.2− 23

Claims (1)

  1. (57)【特許請求の範囲】 1.コード表現された文字で構成される被検索文字列中
    に複数の検索対象文字列が存在するか否かを一括して判
    定する有限オートマトンを用いた文字列検索装置におい
    て、 被検索文字列から一文字を入力し、入力された一文字を
    被検索文字として保持し、出力する文字入力手段と、 前記有限オートマトンの複数の状態の各々を遷移元状態
    としたときの被検索文字と検索対象文字との照合結果で
    定まる遷移先状態をそれぞれ示し、かつ照合不一致の場
    合に別の状態で再度照合を行なうフェイル処理の回数が
    一被検索文字あたり所定の上限値以内となるようにされ
    た状態遷移表を、遷移元状態番号と検索対象文字の文字
    コードとに対する遷移先状態番号として格納する状態遷
    移表格納手段と、 前記フェイル処理の結果としての遷移先状態番号を、前
    記遷移元状態番号と検索対象文字のコードとに対応させ
    て格納した先行フェイルテーブル格納手段と、 前記状態遷移表格納手段の出力である遷移先状態番号と
    遷移元状態番号線に基づいて被検索文字と検索対象文字
    との照合一致、不一致を検出するフェイル検出手段と、 前記状態遷移表格納手段の出力と、前記先行フェイルテ
    ーブル格納手段の出力を入力とし、前記フェイル検出手
    段で照合不一致が検出された場合には前記先行フェイル
    テーブル格納手段の出力を選択し、照合一致が検出され
    た場合には、前記状態遷移表格納手段の出力を選択して
    出力する遷移選択手段と、 前記状態遷移選択手段の出力を一時的に保持し、保持さ
    れた出力を遷移元番号として出力するとともに、該遷移
    元状態番号と前記被検索文字の文字コードとに基づいて
    前記状態遷移表格納手段から遷移先状態番号の読み出し
    を行う状態番号読み出し手段と、 前記状態番号読み出し手段から出力される状態番号が検
    索対象文字列を構成する最後の文字コードによる遷移先
    状態番号の場合、前記検索対象文字列の識別番号を出力
    する文字列識別手段を有することを特徴とする文字列検
    索装置。 2.前記状態遷移表格納手段には、一検索対象文字に対
    するフェイル処理の回数の上限が1回となるよう状態の
    各々に対する遷移先状態が格納されることを特徴とする
    特許請求の範囲第1項記載の文字列検索装置。 3.前記状態遷移表格納手段は、連想記憶メモリで構成
    されることを特徴とする特許請求の範囲第1項記載の文
    字列検索装置。 4.コード表現された文字で構成される被検索文字列中
    に複数の検索対象文字列が存在するか否かを一括して判
    定する有限オートマトンを用いた文字列検索装置におい
    て、 被検索文字列から一文字を入力し、入力された一文字を
    被検索文字として保持し、出力する文字入力手段と、 前記有限オートマトンの複数の状態の各々を遷移元状態
    としたときの被検索文字と検索対象文字との照合結果で
    ある遷移先状態をそれぞれ示す状態遷移表を、遷移先状
    態番号と検索対象文字の文字コードとに対する遷移先状
    態番号として格納する状態遷移表格納手段と、 被検索文字の文字コードの種類に対応して予め定めた文
    字種コードを出力する文字種識別手段と、 前記文字種コードに対して、フェイル処理を行なうべき
    状態番号を格納したフェイル先状態番号格納手段と、 前記状態遷移表格納手段の出力である遷移先状態番号と
    遷移元状態番号に基づいて被検索文字と検索対象文字と
    の照合一致、不一致を検出し、照合不一致を検出した時
    には前記文字入力手段の新たな入力を待機させるフェイ
    ル検出手段と、 前記状態遷移表格納手段の出力と、前記フェイル先状態
    番号格納手段の出力を入力とし、前記フェイル検出手段
    で照合不一致が検出された場合には前記フェイル先状態
    番号格納手段の出力を選択し、照合一致が検出された場
    合には、前記状態遷移表格納手段の出力を選択して出力
    する遷移選択手段と、 前記遷移選択手段の出力を一時的に保持し、保持された
    出力を遷移元状態番号として出力するとともに、該遷移
    元状態番号と前記被検索文字の文字コードとに基づいて
    前記状態遷移表格納手段から遷移先状態番号の読み出し
    を行う状態番号読み出し手段と、 前記状態番号読み出し手段から出力される状態番号が検
    索対象文字列を構成する最後の文字コードによる遷移先
    状態番号の場合、前記検索対象文字列の識別番号を出力
    する文字列識別手段を有することを特徴とする文字列検
    索装置。 5.コード表現された文字で構成される被検索文字列中
    に複数の検索対象文字列が存在するか否かを一括して判
    定する有限オートマトンを用いた文字列検索装置におい
    て、 被検索文字列から一文字を入力し、入力された一文字を
    被検索文字として保持し、出力する文字入力手段と、 前記有限オートマトンの複数の状態の各々を遷移元状態
    としたときの被検索文字と検索対象文字との照合結果で
    定まる遷移先状態をそれぞれ示し、かつ照合不一致の場
    合に別の状態で再度照合を行なうフェイル処理の回数が
    一被検索文字あたり所定の上限値以内となるようにされ
    た状態遷移表を、遷移元状態番号と検索対象文字の文字
    コードとに対する遷移先状態番号として格納する第1の
    状態遷移表格納手段と、 前記遷移元状態番号の各々に対し、前記フェイル処理を
    行なうべきフェイル先状態番号を格納したフェイル先状
    態番号格納手段と、 前記フェイル処理の結果としての遷移先状態番号を、前
    記フェイル先状態番号と前記被検索文字の文字コードと
    に対応させて格納した第2の状態遷移表格納手段と、 前記第1の状態遷移表格納手段の出力である遷移先状態
    番号と遷移元状態番号に基づいて被検索文字と検索対象
    文字との照合一致、照合不一致を検出するフェイル検出
    手段と、 前記第1、第2の状態遷移表格納手段の出力を入力と
    し、前記フェイル検出手段で照合不一致が検出された場
    合には第2の状態遷移表格納手段の出力を選択し、照合
    一致が検出された場合には、前記第1の状態遷移表格納
    手段の出力を選択して出力する遷移選択手段と、 前記遷移選択手段の出力を一時的に保持し、保持された
    出力を遷移元状態番号として出力するとともに、該遷移
    元状態番号と前記被検索文字のコードとに基づいて前記
    状態遷移表格納手段から遷移先状態番号の読み出しを行
    なう状態番号読み出し手段と、 前記状態番号読み出し手段から出力される状態番号が検
    索対象文字列を構成する最後の文字コードによる遷移先
    状態番号の場合、前記検索対象文字列の識別番号を出力
    する文字列識別手段を有することを特徴とする文字列検
    索装置。 6.前記第1、第2の状態遷移表格納手段には、一検索
    対象文字に対するフェイル処理の回数の上限が1回とな
    るよう状態の各々に対する遷移先状態が格納されること
    を特徴とする特許請求の範囲第5項記載の文字列検索装
    置。 7.コード表現された文字で構成される被検索文字列中
    に複数の検索対象文字列が存在するか否かを一括して判
    定する有限オートマトンを用いた文字列検索装置におい
    て、 被検索文字列から一文字を入力し、入力された一文字を
    被検索文字として保持し、出力する文字入力手段と、 前記有限オートマトンの複数の状態の各々を遷移元状態
    としたときの被検索文字と検索対象文字との照合結果で
    定まる遷移先状態をそれぞれ示し、かつ照合不一致の場
    合に別の状態で再度照合を行なうフェイル処理の回数が
    一被検索文字あたり所定の上限値以内となるようにされ
    た状態遷移表を、遷移元状態番号と検索対象文字の文字
    コードとに対する遷移先状態番号として格納する状態遷
    移表格納手段と、 被検索文字の文字コードの種類に対応して予め定めた文
    字種コードを出力する文字種識別手段と、 フェイル処理の結果としての遷移先状態番号を、前記文
    字種コードと前記被検索文字の文字コードに対応させて
    格納した先行フェイルテーブル格納手段と、 前記状態遷移表格納手段の出力である遷移先状態番号と
    遷移元状態番号線に基づいて被検索文字と検索対象文字
    との照合一致、不一致を検出するフェイル検出手段と、 前記状態遷移表格納手段の出力と、前記先行フェイルテ
    ーブル格納手段の出力を入力とし、前記フェイル検出手
    段で照合不一致が検出された場合には前記先行フェイル
    テーブル格納手段の出力を選択し、照合一致が検出され
    た場合には、前記状態遷移表格納手段の出力を選択して
    出力する遷移選択手段と、 前記遷移選択手段の出力を一時的に保持し、保持された
    出力を遷移元状態番号として出力するとともに、該遷移
    元状態番号と前記被検索文字の文字コードとに基づいて
    前記状態遷移表格納手段から遷移先状態番号の読み出し
    を行う状態番号読み出し手段と、 前記状態番号読み出し手段から出力される状態番号が検
    索対象文字列を構成する最後の文字コードによる遷移先
    状態番号の場合、前記検索対象文字列の識別番号を出力
    する文字列識別手段を有することを特徴とする文字列検
    索装置。 8.前記状態遷移表格納手段には、一検索対象文字に対
    するフェイル処理の回数の上限が1回となるよう状態の
    各々に対する遷移先状態が格納されることを特徴とする
    特許請求の範囲第7項記載の文字列検索装置。 9.コード表現された文字で構成される被検索文字列中
    に複数の検索対象文字列が存在するか否かを一括して判
    定する有限オートマトンを用いた文字列検索装置におい
    て、 被検索文字列から一文字を入力し、入力された一文字を
    被検索文字として保持し、出力する文字入力手段と、 前記有限オートマトンの複数の状態の各々を遷移元状態
    としたときの被検索文字と検索対象文字との照合結果で
    定まる遷移先状態をそれぞれ示し、かつ照合不一致の場
    合に別の状態で再度照合を行なうフェイル処理の回数が
    一被検索文字あたり一回以内となるようにされた状態遷
    移表を、遷移元状態番号と検索対象文字の文字コードと
    に対する遷移先状態番号として格納する状態遷移表格納
    手段と、 前記フェイル処理の結果としての遷移先状態番号を、検
    索対象文字のコードに対応させて格納した先行フェイル
    テーブル格納手段と、 前記状態遷移表格納手段の出力である遷移先状態番号と
    遷移元状態番号線に基づいて被検索文字と検索対象文字
    との照合一致、不一致を検出するフェイル検出手段と、 前記状態遷移表格納手段の出力と、前記先行フェイルテ
    ーブル格納手段の出力を入力とし、前記フェイル検出手
    段で照合不一致が検出された場合には前記先行フェイル
    テーブル格納手段の出力を選択し、照合一致が検出され
    た場合には、前記状態遷移表格納手段の出力を選択して
    出力する遷移選択手段と、 前記状態遷移選択手段の出力を一時的に保持し、保持さ
    れた出力を遷移元番号として出力するとともに、該遷移
    元状態番号と前記被検索文字の文字コードとに基づいて
    前記状態遷移表格納手段から遷移先状態番号の読み出し
    を行う状態番号読み出し手段と、 前記状態番号読み出し手段から出力される状態番号が検
    索対象文字列を構成する最後の文字コードによる遷移先
    状態番号の場合、前記検索対象文字列の識別番号を出力
    する文字列識別手段を有することを特徴とする文字列検
    索装置。 10.特許請求の範囲第9項記載の文字列検索装置にお
    いて、 予め定めた状態において、予め定めた文字コード以外の
    文字コードの入力があった場合の前記状態からの遷移先
    状態を格納した排他遷移先格納手段をさらに備え、 前記フェイル検出手段は、前記状態遷移表格納手段の出
    力である遷移先状態番号と前記排他遷移先格納手段の出
    力に基づいて被検索文字と検索対象文字の照合不一致を
    検出するとともに前記排他遷移格納手段から出力された
    遷移先状態が予め格納されたものか否かを判定し、 前記遷移選択手段は、前記フェイル検出手段で照合不一
    致が検出され、且つ遷移先状態が予め格納されたものと
    判別された場合には前記排他遷移先格納手段の出力を選
    択し、照合不一致が検出され、かつ遷移先状態が予め格
    納されたものと判定されなかった場合には前記先行フェ
    イルテーブル格納手段の出力を選択し、照合不一致が検
    出されなかった場合には前記状態遷移表の出力を選択す
    ることを特徴とする文字列検索装置。 11.特許請求の範囲第9項記載の文字列検索装置にお
    いて、前記フェイル処理を行なうべき状態への切り換え
    用として予め定めた文字を被検索文字から検出するとと
    もに、これに対応してフェイル処理を行なうべき状態を
    表す識別子を出力するフェイル先行状態識別子出力手段
    をさらに備え、前記先行フェイルテーブルには、前記フ
    ェイル処理の結果としての遷移先状態番号が前記識別子
    と前記被検索文字列の文字コードに対応して格納される
    ことを特徴とする文字列検索装置。
JP62147041A 1987-06-15 1987-06-15 文字列検索装置 Expired - Lifetime JP2702927B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP62147041A JP2702927B2 (ja) 1987-06-15 1987-06-15 文字列検索装置
US07/205,923 US5051886A (en) 1987-06-15 1988-06-13 System for character stream search using finite state automaton technique
US07/761,442 US5278981A (en) 1987-06-15 1991-09-18 Character stream search apparatus using a finite state automation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62147041A JP2702927B2 (ja) 1987-06-15 1987-06-15 文字列検索装置

Publications (2)

Publication Number Publication Date
JPS63311530A JPS63311530A (ja) 1988-12-20
JP2702927B2 true JP2702927B2 (ja) 1998-01-26

Family

ID=15421178

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62147041A Expired - Lifetime JP2702927B2 (ja) 1987-06-15 1987-06-15 文字列検索装置

Country Status (2)

Country Link
US (2) US5051886A (ja)
JP (1) JP2702927B2 (ja)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748953A (en) * 1989-06-14 1998-05-05 Hitachi, Ltd. Document search method wherein stored documents and search queries comprise segmented text data of spaced, nonconsecutive text elements and words segmented by predetermined symbols
US5220625A (en) * 1989-06-14 1993-06-15 Hitachi, Ltd. Information search terminal and system
US5471610A (en) * 1989-06-14 1995-11-28 Hitachi, Ltd. Method for character string collation with filtering function and apparatus
WO1990016036A1 (en) * 1989-06-14 1990-12-27 Hitachi, Ltd. Hierarchical presearch-type document retrieval method, apparatus therefor, and magnetic disc device for this apparatus
US5452451A (en) * 1989-06-15 1995-09-19 Hitachi, Ltd. System for plural-string search with a parallel collation of a first partition of each string followed by finite automata matching of second partitions
US5319776A (en) * 1990-04-19 1994-06-07 Hilgraeve Corporation In transit detection of computer virus with safeguard
US5497488A (en) * 1990-06-12 1996-03-05 Hitachi, Ltd. System for parallel string search with a function-directed parallel collation of a first partition of each string followed by matching of second partitions
US5140644A (en) * 1990-07-23 1992-08-18 Hitachi, Ltd. Character string retrieving system and method
JPH04348469A (ja) * 1990-07-23 1992-12-03 Hitachi Ltd 文字列検索装置およびその方法
US5355493A (en) * 1991-11-20 1994-10-11 International Business Machines Corporation System for encoding units of entity/relationship data to include prefixes with codes for length, action, and unit identifier
US5379420A (en) * 1991-12-26 1995-01-03 Trw Inc. High-speed data searching apparatus and method capable of operation in retrospective and dissemination modes
JP2534600B2 (ja) * 1992-06-19 1996-09-18 松下電器産業株式会社 文字列照合装置
US5625554A (en) * 1992-07-20 1997-04-29 Xerox Corporation Finite-state transduction of related word forms for text indexing and retrieval
JP2994926B2 (ja) * 1993-10-29 1999-12-27 松下電器産業株式会社 有限状態機械作成方法とパターン照合機械作成方法とこれらを変形する方法および駆動方法
JP3722231B2 (ja) * 1993-08-02 2005-11-30 ゼロックス コーポレイション コンパクトにエンコードされて記憶されたストリングの組を有する製品
US5586266A (en) * 1993-10-15 1996-12-17 International Business Machines Corporation System and method for adaptive, active monitoring of a serial data stream having a characteristic pattern
US5414833A (en) * 1993-10-27 1995-05-09 International Business Machines Corporation Network security system and method using a parallel finite state machine adaptive active monitor and responder
US5454063A (en) * 1993-11-29 1995-09-26 Rossides; Michael T. Voice input system for data retrieval
US5640557A (en) * 1994-11-18 1997-06-17 International Business Machines Corporation Method and system for processing logic blocks in a data processing system
EP0744702B1 (en) * 1995-05-22 2002-11-13 Matsushita Electric Industrial Co., Ltd. Information searching apparatus for searching text to retrieve character streams agreeing with a key word
GB9524136D0 (en) * 1995-11-23 1996-01-24 Xerox Corp Indexing a database by finite-state transducer
US5995963A (en) * 1996-06-27 1999-11-30 Fujitsu Limited Apparatus and method of multi-string matching based on sparse state transition list
JP4153989B2 (ja) * 1996-07-11 2008-09-24 株式会社日立製作所 文書検索配送方法および装置
WO1998011509A1 (fr) * 1996-09-13 1998-03-19 Hitachi, Ltd. Procede de traitement des informations de bibliotheque
US7333983B2 (en) 2000-02-03 2008-02-19 Hitachi, Ltd. Method of and an apparatus for retrieving and delivering documents and a recording media on which a program for retrieving and delivering documents are stored
US20040073617A1 (en) 2000-06-19 2004-04-15 Milliken Walter Clark Hash-based systems and methods for detecting and preventing transmission of unwanted e-mail
US7458098B2 (en) * 2002-03-08 2008-11-25 Secure Computing Corporation Systems and methods for enhancing electronic communication security
US6941467B2 (en) 2002-03-08 2005-09-06 Ciphertrust, Inc. Systems and methods for adaptive message interrogation through multiple queues
US7693947B2 (en) 2002-03-08 2010-04-06 Mcafee, Inc. Systems and methods for graphically displaying messaging traffic
US7096498B2 (en) 2002-03-08 2006-08-22 Cipher Trust, Inc. Systems and methods for message threat management
US8561167B2 (en) 2002-03-08 2013-10-15 Mcafee, Inc. Web reputation scoring
US7124438B2 (en) * 2002-03-08 2006-10-17 Ciphertrust, Inc. Systems and methods for anomaly detection in patterns of monitored communications
US7694128B2 (en) 2002-03-08 2010-04-06 Mcafee, Inc. Systems and methods for secure communication delivery
US20060015942A1 (en) 2002-03-08 2006-01-19 Ciphertrust, Inc. Systems and methods for classification of messaging entities
US8578480B2 (en) 2002-03-08 2013-11-05 Mcafee, Inc. Systems and methods for identifying potentially malicious messages
US7870203B2 (en) 2002-03-08 2011-01-11 Mcafee, Inc. Methods and systems for exposing messaging reputation to an end user
US8132250B2 (en) 2002-03-08 2012-03-06 Mcafee, Inc. Message profiling systems and methods
US7903549B2 (en) 2002-03-08 2011-03-08 Secure Computing Corporation Content-based policy compliance systems and methods
US7634500B1 (en) 2003-11-03 2009-12-15 Netlogic Microsystems, Inc. Multiple string searching using content addressable memory
US8635690B2 (en) 2004-11-05 2014-01-21 Mcafee, Inc. Reputation based message processing
JP4535130B2 (ja) * 2004-12-09 2010-09-01 三菱電機株式会社 文字列照合装置および文字列照合プログラム
US7937480B2 (en) 2005-06-02 2011-05-03 Mcafee, Inc. Aggregation of reputation data
US7353332B2 (en) * 2005-10-11 2008-04-01 Integrated Device Technology, Inc. Switching circuit implementing variable string matching
US7805392B1 (en) 2005-11-29 2010-09-28 Tilera Corporation Pattern matching in a multiprocessor environment with finite state automaton transitions based on an order of vectors in a state transition table
US7877401B1 (en) * 2006-05-24 2011-01-25 Tilera Corporation Pattern matching
US20080005095A1 (en) * 2006-06-28 2008-01-03 Microsoft Corporation Validation of computer responses
US8788517B2 (en) * 2006-06-28 2014-07-22 Microsoft Corporation Intelligently guiding search based on user dialog
US7783654B1 (en) 2006-09-19 2010-08-24 Netlogic Microsystems, Inc. Multiple string searching using content addressable memory
US7636717B1 (en) * 2007-01-18 2009-12-22 Netlogic Microsystems, Inc. Method and apparatus for optimizing string search operations
US8179798B2 (en) 2007-01-24 2012-05-15 Mcafee, Inc. Reputation based connection throttling
US8763114B2 (en) 2007-01-24 2014-06-24 Mcafee, Inc. Detecting image spam
US7949716B2 (en) 2007-01-24 2011-05-24 Mcafee, Inc. Correlation and analysis of entity attributes
US7779156B2 (en) 2007-01-24 2010-08-17 Mcafee, Inc. Reputation based load balancing
US8214497B2 (en) 2007-01-24 2012-07-03 Mcafee, Inc. Multi-dimensional reputation scoring
US8189931B2 (en) * 2008-01-04 2012-05-29 International Business Machines Corporation Method and apparatus for matching of bracketed patterns in test strings
US7643353B1 (en) 2007-10-25 2010-01-05 Netlogic Microsystems, Inc. Content addressable memory having programmable interconnect structure
US8185930B2 (en) 2007-11-06 2012-05-22 Mcafee, Inc. Adjusting filter or classification control settings
US8045458B2 (en) 2007-11-08 2011-10-25 Mcafee, Inc. Prioritizing network traffic
WO2009093307A1 (ja) * 2008-01-22 2009-07-30 Fujitsu Limited 検索装置および検索方法
US8160975B2 (en) 2008-01-25 2012-04-17 Mcafee, Inc. Granular support vector machine with random granularity
US8589503B2 (en) 2008-04-04 2013-11-19 Mcafee, Inc. Prioritizing network traffic
US7924589B1 (en) 2008-06-03 2011-04-12 Netlogic Microsystems, Inc. Row redundancy for content addressable memory having programmable interconnect structure
US7924590B1 (en) 2009-08-10 2011-04-12 Netlogic Microsystems, Inc. Compiling regular expressions for programmable content addressable memory devices
US7916510B1 (en) 2009-08-10 2011-03-29 Netlogic Microsystems, Inc. Reformulating regular expressions into architecture-dependent bit groups
JP5077380B2 (ja) * 2010-03-26 2012-11-21 三菱電機株式会社 文字列照合装置および文字列照合プログラム
US8621638B2 (en) 2010-05-14 2013-12-31 Mcafee, Inc. Systems and methods for classification of messaging entities
US8527488B1 (en) 2010-07-08 2013-09-03 Netlogic Microsystems, Inc. Negative regular expression search operations
US9122877B2 (en) 2011-03-21 2015-09-01 Mcafee, Inc. System and method for malware and network reputation correlation
US8931043B2 (en) 2012-04-10 2015-01-06 Mcafee Inc. System and method for determining and using local reputations of users and hosts to protect information in a network environment

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3568156A (en) * 1967-08-09 1971-03-02 Bell Telephone Labor Inc Text matching algorithm
GB1497678A (en) * 1975-02-21 1978-01-12 Int Computers Ltd Data processing systems
US4285049A (en) * 1978-10-11 1981-08-18 Operating Systems, Inc. Apparatus and method for selecting finite success states by indexing
US4241402A (en) * 1978-10-12 1980-12-23 Operating Systems, Inc. Finite state automaton with multiple state types
US4450520A (en) * 1981-03-11 1984-05-22 University Of Illinois Foundation Method and system for matching encoded characters
US4764863A (en) * 1985-05-09 1988-08-16 The United States Of America As Represented By The Secretary Of Commerce Hardware interpreter for finite state automata
JPH0797373B2 (ja) * 1985-08-23 1995-10-18 株式会社日立製作所 文書フアイリングシステム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
コンピュータソフトウェア Vol.4,No.2 (1987−4) P.2−23

Also Published As

Publication number Publication date
US5051886A (en) 1991-09-24
US5278981A (en) 1994-01-11
JPS63311530A (ja) 1988-12-20

Similar Documents

Publication Publication Date Title
JP2702927B2 (ja) 文字列検索装置
JP2726568B2 (ja) 文字認識方法及び装置
CN100562870C (zh) 翻译装置和翻译方法
JPH08194719A (ja) 検索装置および辞書/テキスト検索方法
JPH02271468A (ja) データ処理方法
US5138669A (en) Range-conditional character string retrieving method and system
US5560037A (en) Compact hyphenation point data
US6470334B1 (en) Document retrieval apparatus
JP2693914B2 (ja) 検索システム
EP3312740B1 (en) Data search program, data search device, and data search method
US20110137912A1 (en) System, method and computer program product for documents retrieval
JP3303881B2 (ja) 文書検索方法および装置
JPS6033665A (ja) キ−ワ−ド自動抽出方式
JP2880192B2 (ja) 文字列検索方法及び装置
JP3141428B2 (ja) 数値検索装置およびその方法
JP3253657B2 (ja) 文書検索方法
JPH1139315A (ja) フォーマットされた文書を順序付けされたワードリストへ変換する方法
JP2880199B2 (ja) 記号列検索方法および検索装置
Daciuk et al. Natural Language Dictionaries Implemented as Finite Automata.
JP3376996B2 (ja) フルテキストサーチ方法
Ejendibia et al. String searching with DFA-based algorithm
KR100284777B1 (ko) 지도 용어 사전을 위한 트라이 사전과 그 등록 및 검색 방법
JP3924899B2 (ja) テキスト検索装置およびテキスト検索方法
JPH10149367A (ja) テキスト蓄積検索装置
JPH0317780A (ja) 記号列検索方法および装置

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071003

Year of fee payment: 10