JP2880192B2 - 文字列検索方法及び装置 - Google Patents
文字列検索方法及び装置Info
- Publication number
- JP2880192B2 JP2880192B2 JP1231567A JP23156789A JP2880192B2 JP 2880192 B2 JP2880192 B2 JP 2880192B2 JP 1231567 A JP1231567 A JP 1231567A JP 23156789 A JP23156789 A JP 23156789A JP 2880192 B2 JP2880192 B2 JP 2880192B2
- Authority
- JP
- Japan
- Prior art keywords
- state
- automaton
- character
- search
- 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.)
- Expired - Lifetime
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
る検索方法に係り、被検索文字列中に複数の文字列集合
が存在するか否かを一括して判定するためのものであ
る。データベース、文書ファイリングシステム、および
ワードプロセッサなどにおける検索に利用され得るもの
である。
報)のみならず、1次情報(本文)をも含む大規模デー
タベース・サービスの重要性が増してきている。従来、
データベースの情報検索では、シソーラスに基づいて統
制されたキーワードや分類コード等の2次情報による検
索が行われてきている。しかし、この方法では数十件か
ら数百件までにしか絞り込めないため、検索者が最終段
階で直接本文を読んで内容を確認しなければならないと
いう効率上の問題がある。また、分類体系自体が年月と
共に変化するため、常にキーワードや分類コードを更新
しなければならないという問題も生じてくる。更に、キ
ーワード付け(インデキシングと言う)には時間がかか
るため新たな文書はバッチ処理によりかなりの量をまと
めて登録する。そのため、検索できる情報は常に一定期
間の送れを持つという問題がある。
自由なキーワードに基づいて文書の本文を直接参照して
内容を検索できる全文検索システムが考えられている。
検索装置がいくつか提案されている。その代表的な構成
を第19図に示し、まず、その内容について説明する。
索装置全体の制御と、ホストコンピュータとの通信を行
う。すなわち、ホストコンピュータから送られてくる検
索要求201を受け付け、これを解析し、文字列照合手段2
00と複合条件判別手段103へ検索情報202として送出す
る。また、検索制御手段101は記憶装置制御手段104を制
御して、文字列記憶手段105に格納される文字列データ2
04を文字列照合手段200へ送りこむ。
要求に合致するものがあるかどうかを調べ、もし該当す
るものがあれば、文字列を識別する情報205を複合条件
判別手段103へ出力する。複合条件判別手段103は該文字
列識別情報205に基づいて検索要求中に指示された相互
の位置関係などの複合条件が満足するか否かを調べる。
複合条件が満足する場合には、該当する文書へのポイン
タ情報や文書内容のテキストデータを検索結果206とし
てホストコンピュータへ返送する。
200における文字列の照合方式としては、有限オートマ
トンを用いて複数の文字列を1回の走査で検索する方法
が知られている。その代表的な方式としては、以下に説
明する方法がある。
ッシック:“エフィシェント ストリング マッチン
グ",コミュニケーションズ エー シー エム,第18
巻,第6号,1975年,A.V.Aho and M.J.Corasick:“Effic
ient String Matching",CACM,VOL.18,No.6,1975)。
て第2図を用いて説明する。同図は、文字列データの中
から、ユーザから与えられた検索ターム“インタフェー
ス”を検索するためのオートマトンの状態遷移図であ
る。ここで、円形はオートマトンの状態を、矢印は状態
遷移を表している。各矢印に付記された文字はこれに対
応した状態遷移が起きる入力文字を示す。本図では
“ン”以外および“イ”以外の文字といった否定を表わ
す場合は否定記号“”を付け「{“ン",“イ”}」
と表わしている。矢印403は状態遷移の始まる始点状態
を示している。各円形の内部に記された数値は、同状態
の状態番号を示す。二重円は“インタフェース”を照合
したことを示す終点の状態を表している。本方法の特徴
は入力される可能性のある全ての入力文字に対する状態
遷移をオートマトンで記述している点にある。このため
状態遷移の数が多くなるため、検索タームの数が多くな
るというオートマトンの作成時間が極めて長くなるとい
う問題がある。
説明する。オートマトンに文字が入力された場合、どの
状態において入力文字の照合を行なうべきかをトークン
に置くことにより明らかにする。すなわち、トークンと
は、オートマトン内で遷移する状態の位置を表わすマー
クである。まず、初期設定としてトークンを始点状態で
ある状態0に置く。この例の場合、入力文字が“イ”で
あるとトークンは状態1へ移動する。もし、ここで
“イ”以外の文字が入ってきた場合はトークンは状態0
に移動する。一方、トークンが状態1にあって入力文字
が“ン”ならば、トークンは状態2に移動する。“イ”
であれば状態1に移動する。“イ”および“ン”以外の
文字であれば状態0へ移動する。次にトークンが状態2
にある場合、入力文字が“タ”ならば、トークンは状態
3に移動する。ここで、もし、“イ”が入力されたとき
は、トークンは状態1へ移動する。更に、状態3にトー
クンがある場合、“フェース”が入力されると、トーク
ンは状態4→状態5→状態6→状態7と移動する。状態
7は2重円で記されており、ここでは“インタフェー
ス”という文字列が照合されたことになる。
対する状態遷移をオートマトンに記述しているため、検
索タームが多くなると状態遷移の数が多くなりオートマ
トンの作成時間が極めて長くなるという問題がある。本
方法を実現するハードウェアについては、特開昭60-105
039、特開昭60-105040に開示されている。
て説明する。本方法は従来方法1と比べオートマトン作
成時間を短縮するための工夫がされている。従来方式2
では、従来方法1と比べオートマトンの作成時間は3分
の1と大幅に改善されており、詳細について特開昭63-3
11530に述られている。本方法を第3図と第4図を用い
て説明する。第3図は、第2図と同時に“インタフェー
ス”を照合する場合のオートマトンの状態遷移図を示し
たものである。初期設定として、トークンを始点状態で
ある状態0に置く。ここで、入力文字“イ”が入力され
たならばトークンが置かれている状態0で照合を行ない
状態1へ移動する。もし、状態0で“イ”以外の文字が
入ってきた場合はトークンは状態0に移動する。一方、
トークンが状態1にあって入力文字“ン”が入力された
ならばトークンは状態2に移動する。トークンが状態2
にあって“タ”が入力されたならばトークンは状態3に
移動する。ここでもしトークンが状態3にあって同オー
トマトンに記述されていない“フ”以外の文字、例えば
“イ”が入力されたときは、本方式では「フェイル」し
たと言い、第4図のフェイルテーブルを参照することに
なる。フェイルテーブルにはトークンが置かれている状
態番号に対して再照合すべきフェイル先の状態番号が格
納されている。この場合、現在の状態番号3に対応する
フェイル先の値0を得て状態0へトークンを移動する。
そして、ここで該入力文字“イ”について照合すること
によりトークンは状態1へ移動する。このような機能を
フェイル機能と呼んでいる。更に、続けて“ンタフェー
ス”という入力文字列が1文字づつが入ってきた場合、
トークンは状態2→状態3→状態4→状態5→状態6→
状態7と移動する。状態7は2重円で記されており、こ
こでは“インタフェース”という文字列が照合されたこ
とになる。
られた場合、本文中にはユーザが指定した検索タームと
異なる表記(異表記)で記述されることもある。
記号)の代わりに“−”(マイナス記号)を使用したり
(これを長音異表記と呼ぶ)、“インターフェース”の
ように“ー”を付加したり(これを長音の有無と呼
ぶ)、“インタフェイス”のように発音の表記の違いに
より“フェー”を“フェイ”と記述したりする(これを
発音異表記と呼ぶ)。
合せた“インタフェース",“インターフェース",“イン
タフェイス",“インターフェイス",“インタ−フェイ
ス",“インタフェ−ス",“インターフェ−ス",“インタ
−フェ−ス",“インタ−フェース”の9語を検索ターム
とする必要がある。
る。第5図は、文字列データの中から、異表記を含む上
記9語を照合する場合のオートマトンの状態遷移図であ
る。検索タームの先頭から比較して遷移文字が異なる場
合は別状態に分岐する。
の検索タームの例では、検索タームの前方から比較する
と“インタ”までは同じであるが、その次の文字では
“フ”と“ー”で遷移文字が異なる。このため状態3か
ら遷移文字“フ”で状態22に遷移し、遷移文字“ー”で
状態4へ遷移するといった状態遷移の分岐が起こる。
々の遷移先状態を割り付けているため木状のオートマト
ンになる。第6図はこのオートマトンに示されてない文
字が入力された場合の遷移先を示すフェイルテーブルの
説明図である。このように、異表記を含めて照合を行な
おうとすると、検索タームが多くなるため状態数が非常
に増加してしまうという問題が発生する。
を使用することがある。検索タームに固定長のdon′t c
are文字を使用した例を第7図と第8図を用いて説明す
る。第7図は1文字の固定長のdon′t care文字“?"を
含む検索ターム“A?B"を検索する場合のオートマトンの
状態遷移図を表わしている。第8図はこのオートマトン
に示されてない文字が入力された場合の遷移先を示すフ
ェイルテーブルの説明図である。
ている)の場合についてオートマトンを作成している。
“?"は任意の文字や記号との一致を許すことを意味する
文字記号である。従って、don′t care文字“?"による
遷移は本図の状態1を遷移元とする全ての文字コード00
〜FFによる遷移として表わされる。すなわち“A?B"は、
先頭が“A"で間に任意の1文字が入り、末尾が“B"であ
る文字列を検索するという指定になる。
文字が入るとオートマトンの状態数が非常に増加してし
まうという問題が発生する。
場合、異表記を含む検索タームを全て列挙し、検索ター
ムに展開する。さらに、これらに基づいたオートマトン
を作成する。ここで作成されるオートマトンは木状に記
述されるため非常に多くのオートマトンの状態が必要と
なる。
n′t care文字の部分が許容する文字コードの全ての組
合せを列挙し、検索タームに展開する。これらに基づき
オートマトンを作成するため、異表記と同様に、非常に
多くのオートマトンの状態が必要となる。
トン作成時間の増加や、更にはオートマトンを格納する
ための状態遷移テーブルの容量が増加、すなわち、ハー
ドウェアの増大という問題を発生する。
表記やdon′t care文字が指定された検索を行う場合も
オートマトンの遷移を網状にまとめて記述することによ
り、状態数を従来より低減し、オートマトンの作成時間
の短縮をはかると共に、状態遷移テーブルの容量が小さ
くて済むためコンパクトなハードウェアで実現可能な検
索方式を提供することを目的とする。
トマトンにおいて検索ターム中の異表記が存在する部分
文字列の先頭でオートマトンの遷移を分岐し、末尾で分
岐した遷移を集合させることにより状態数の低減を図っ
た。don′t care文字指定検索用オートマトンにおいて
も異表記検索と同様にdon′t care文字が許容する文字
群を異表記と見なし、don′t care文字でオートマトン
の遷移を分岐し、それらの遷移を1ヶ所の状態に集合さ
せることにより状態数の低減を図る。
態遷移テーブルの許容が小さくできるコンパクトな検索
装置を実現した。
として採用したオートマトンの作成方法について説明す
る。本方法は従来方法2と以下の点で異なる。すなわ
ち、従来方法2では「フェイル処理」を用いるため、フ
ェイル先状態を計算する必要性から木状に状態遷移を分
岐したオートマトンを作成しなければならないため、状
態数が多くなるのに対して、本方法では「フェイル処
理」が不要で、状態遷移の分岐を抑え、状態遷移をまと
めて遷移先状態を共有することができるため、状態数の
増加が抑えられている(以後、本方法を用いて作成した
オートマトンを集合遷移許容形オートマトンと呼ぶ)。
遷移である。
同様に、“インタフェース”と、その異表記である“イ
ンターフェース",“インタフェイス",“インターフェイ
ス",“インタ−フェイス",“インタフェ−ス",“インタ
ーフェ−ス",“インタ−フェ−ス",“インタ−フェー
ス”を含めた9語の検索タームについて検索するための
ものである。これらを、 (“イン”(“タ”(“ー”“−”)“タ”)(“フェ
イ”“フェ”(“ー”“−”))“ス”) −(式1) という複合語表現形式で表すことができる。ここで
(“ー”“−”)は“ー”と“−”が等価であることを
示しており、(“フェイ”“フェ”(“ー”“−”))
は“フェイ”“フェー”および“フェ−”が等価である
ことを示している。
列は等価であるので部分文字列の末尾で遷移を同一遷移
先状態にまとめることが可能である。ただし、他の部分
文字列の遷移の中に含まれてしまう場合、例えば
(“タ”(“ー”“−”)“タ”)の場合は、次の遷移
文字の“フ”の遷移の遷移元状態が“タ”の遷移先状態
である状態3と“ター”および“タ−”の遷移先状態で
ある状態4であるので、これらの2ヶ所を遷移元状態と
する遷移に表わす。更に、これらの遷移の遷移先状態を
状態5とし、遷移にまとめる。
5図のオートマトンに比べ約3分の1に減らすことがで
きる。
する。
許容形オートマトンの状態遷移図を用いた場合の作用に
ついて説明する。以後、集合許容形オートマトンをオー
トマトンと略して説明を行なう。同図のオートマトンは
第5図に示したオートマトンと同様に“インタフェー
ス”の異表記である“インターフェース",“インタフェ
イス",“インターフェイス",“インタ−フェイス",“イ
ンタフェ−ス",“インターフェ−ス",“インタ−フェ−
ス",“インタ−フェース”を含む9語の検索タームを検
索するためのものである。
図のオートマトンと比べ状態数を約3分の1と大幅に減
らすことができている。このオートマトンは上記のコン
カレントステートオートマトン方式により制御される。
以下、その内容を具体的に説明する。
する。本方法は「フェイル処理」を用いずに状態遷移を
制御しようとするものである。すなわち、「フェイル処
理」を行なう代わりに、複数のトークンを用いることに
よってオートマトンの状態遷移を表わそうとするもので
ある。
トンの状態遷移図は、初期状態を除いてアクティブな状
態、すなわち、照合途中を示す遷移状態(トークンが置
かれた状態)が唯1個だけという条件のもとに作成され
たものである。その結果、照合途中で入力文字との不一
致が生じた場合には、トークンの動きが不連続になるた
め「フェイル処理」を行なわなければならなくなる。
トークンを生成し、照合途中で不一致が生じた場合には
トークンを消滅させるという方法を採ることにより、フ
ェイル処理を不要にしている。従って、入力文字列によ
っては、状態遷移図上に複数のトークンが同時に存在す
ることにもなる。その意味で、本方法をコンカレントス
テートオートマトン方式とも呼ぶことにする。
め、オートマトン作成時においてもフェイル先状態の計
算が不要な文字列検索装置を実現することができる。
明する。始点状態では入力文字が入る度に照合を行な
う。遷移文字と照合した場合、新たなトークンを生成
し、このトークンを始点状態から遷移先状態へ移動させ
る。ただし、始点状態から始点状態への状態遷移の場合
には、トークンを生成しない。したがって、始点状態か
ら始点状態への遷移は無効となるため、この遷移を省略
することも可能である。
字づつ入力された場合についてオートマトンの動作を説
明する。
致しトークンT1が生成され、状態1へ移動する。トーク
ンT1が状態1にきたところで“ン”が入力されると、ト
ークンT1は状態2に移動する。また、これと同時に始点
状態でも“ン”による照合が行なわれるが不一致なので
新たなトークンは生成されない。更に状態2では入力文
字“タ”が入力されると、トークンT1は状態3に移動す
る。また、同時に始点状態での照合が不一致なので新た
なトークンは生成されない。次に、続けて“フェ”が入
ってきた場合トークンT1は状態4→状態5→状態6と移
動する。またこの間、始点状態での照合が不一致なので
新たなトークンは生成されない。次に、“イ”が入力さ
れるとトークンT1は状態6から状態7へ移動する。ま
た、始点状態での照合は一致するので新たにトークンT2
が生成され、状態1へ移動する。次に、“ス”が入って
きた場合トークンT1は状態7から状態8へ移動する。ト
ークンT2は状態1での照合が不一致なためここで消滅す
る。また、始点状態での照合が不一致なので新たなトー
クンは生成されない。この時、トークンT1が状態8に達
すると、“インタフェイス”という文字列を検索したこ
とになる。
ることにより、オートマトンの状態数が約3分の1と少
なくて済む異表記許容検索を実現することができる。
定長don′t care文字指定検索の処理方法について説明
する。
と同様に“A?B"を検索する場合のオートマトンであり、
集合遷移を採用した上記方法を用いることにより状態数
を約150分の1と少なく実現できている。
法の動作について説明する。
ためトークンT1が新たに生成され、状態1へと移動す
る。次に“X"が入力されると、トークンT1は状態1から
状態2に移動する。また、始点状態での照合が不一致な
ので新たなトークンは生成されない。次に“B"が入力さ
れると、トークンT1は状態2から状態3に移動する。同
時に、始点状態での照合が不一致なので新たなトークン
は生成されない。状態3は2重円で記されており、ここ
では“A?B"が検索されたことになる。
ることにより、異表記憾容検索と同様に、オートマトン
の状態数が約150分の1と少なくて済む固定長don′t ca
re文字指定検索を実現することができる。
定した距離指定検索の処理方法について述べる。
る。ここでは“A"と“B"の距離が4文字以内の距離とい
う上限距離指定がされている場合を例にする。上限距離
指定は固定長don′t care文字で表すことができ、この
例では“A"と“B"の距離が4文字以内の距離という上限
距離指定の場合は、“AB",“A?B",“A??B",“A???B",
“A????B"の5つの検索タームで表すことができる。ま
た、これから固定長don′t care文字の場合と同様に第1
1図に示すオートマトンを作成することができる。
場合と同様にトークンを制御することにより、上限指定
の距離指定検索を実現することができる。
る。ここでは“A"と“B"の距離が2文字以上の距離とい
う下限距離指定がされた場合を例にする。下限距離指定
では上限距離が無限大となるためdon′t care文字で表
わすことができない。つまり、“A"と“B"の距離が2文
字以上の距離という下限距離指定の場合は、固定長do
n′t care文字で表わすと“A??B",“A???B",“A????B",
・・・となり検索ターム数が無限大になるためである。
明する。
検索タームでオートマトンを作成する。このオートマト
ンの作成方法は固定長don′t care文字の場合と同様で
ある。ここでは下限距離は2なので“A??B"を検索ター
ムとしてオートマトンを作成する。次に、下限距離だけ
遷移した状態(この例では状態3)を仮の始点とし、こ
の始点状態以降につながる状態についてオートマトンを
作成する。このオートマトンは、全ての入力文字に対し
て遷移を記述する従来方式1を用いて作成できる。この
ようにして、上限距離が無限大の場合でもオートマトン
を作成することができることになる。しかし、この方法
では従来方式1を部分的に適合するためオートマトン作
成時間が増大するという問題点がある。
と同様である。
n′t care文字“*”を指定した検索の方法について説
明する。
定した場合の距離指定を用いて実現することができる。
すなわち、“AB*CD"は“AB"と“CD"の距離が0文字以
上の距離という下限距離指定に置き換えることができ
る。この場合のオートマトンは第13図のようになる。こ
のように可変長don′t care文字を指定した検索も下限
距離指定と同様に実現することができる。
と同様である。
明する。ここでは“A"と“B"の距離が2文字以上で、か
つ、4文字以下の距離という上下限距離指定を例にす
る。上下限距離指定は固定長don′t care文字で表すこ
とができ、この例の“A"と“B"の距離が2文字以上、4
文字以内の距離という場合には、“A?B",“A??B",“A??
?B",“A????B"の4つの検索タームで表すことができ、
これらから固定長don′t care文字の場合と同様に第14
図に示すオートマトンを作成することができる。
と同様である。
の処理方法について説明する。
明する。この例では検索タームとしては誤りなしの場合
として“ABCD"について、1文字削除として“ABC",“AB
D",“ACD",“BCD"について、1文字相違として“A?CD",
“AB?D",“ABC?"について、1文字挿入として“A?BCD",
“AB?CD",“ABC?D",“ABCD?"についてオートマトンを作
成する。これらを複合語表現形式にすると(“AB"
(“C"(“D?"“?D"“?")“?D")((“B"“A"(“?B"
“B?"“?"))“C"“A"(“B"“C"“BC"))“D"“AB
C")と表すことができる。これに基づいて固定長don′t
care文字の場合と同様に第15図に示すオートマトンを
作成することができる。
と同様である。
わり許容検索の処理方法について説明する。
明する。この例では検索タームとしては誤りなしの場合
として“ABCD"について、1文字入れ替わりとして“BAC
D",“ACBD",“ABDC"についてオートマトンを作成する。
これらを複合語表現形式にすると(“A"(“BC"“CB")
“BAC")“D"“ABDC")と表すことができる。これに基
づいて固定長don′t care文字の場合と同様に第16図に
示すオートマトンを作成することができる。
と同様である。
検索、固定長don′t care文字指定検索、文字距離指定
検長、可変長don′t care文字指定検索、1文字誤り許
容検索、1文字入れ替わり許容検索などの検索機能を実
現するオートマトンを作成することができる。したがっ
て、オートマトンの作成時間も短縮でき、状態遷移テー
ブルもコンパクトにできるためハードウェア量の少ない
文字列検索装置を実現することが可能となる。
実施例について述べる。
文字コードと状態番号を入力することにより次状態番号
を出力する状態遷移テーブル220と、状態番号を入力す
ることにより照合したか否かの照合結果IDを出力する照
合結果テーブル260、および、現状態番号や次状態番号
を格納するバッファ280とバッファ281などから成ってい
る。
に説明する。第1図の稿字列記憶手段105から読み出さ
れた文字列301は1文字づつレジスタ211に格納される。
レジスタ211から出力される文字コード302は、本発明に
よるオートマトンの遷移表が格納されている状態遷移テ
ーブル220にアドレス情報として入力される。状態遷移
テーブル220では現在の状態番号305と文字コード302か
ら次に遷移すべき遷移先状態番号303を出力する。次状
態番号303はレジスタ250に格納された後、セレクタ262
及びマルチプレクサ260を経由しバッファ280またはバッ
ファ281のいずれか選択されている方に格納される。こ
のとき、セレクタ262では、初期状態番号(この例で
は、状態番号0)が格納されているレジスタ251と次状
態番号303をコンパレータ252で比較した結果、同じ値で
あればセレクタ262は次状態番号303を選択する。すなわ
ち、次状態番号303が初期状態番号0でない場合のみマ
ルチプレクサ260を経由しバッファ280またはバッファ28
1のいずれか選択されている方に格納される。バッファ2
80とバッファ281は、それぞれデータの読取り用と書込
み用の2面バッファとして用い、高速処理を実現してい
る。この2つのバッファは1つにまとめ回路規模を小さ
くすることも可能である。ただし、処理速度は低下する
ことになる。バッファ280及びバッファ281には初期値と
して始点状態番号を先頭アドレスに設定しておく。バッ
ファ280及びバッファ281に送られてきた次状態番号303
は始点状態の次のアドレスから格納する。現状態番号30
5はセレクタ261で選択されているバッファ280及びバッ
ファ281のいずれかから逐次読み出され、全て読み出し
たときに読出し終了信号307を発生する。マルチプレク
サ260とセレクタ261は同期しており、選択動作について
はマルチプレクサ260がバッファ280を選択しているとき
はセレクタ261はバッファ281を選択している。また、マ
ルチプレクサ260がバッファ281を選択しているときはセ
レクタ261はバッファ280を選択する。バッファ280及び
バッファ281の選択の切り替えは、セレクタ261が選択し
たバッファ280または281のいずれかの読出し終了信号30
7の発生のタイミングで行われる。状態遷移テーブル220
には第18図に示した状態遷移表を格納する。これは第9
図のオートマトンに対応したものである。レジスタ211
は通常は、レジスタ250と同期して文字列データを取り
込むが、読出し終了信号が発生するまで文字列データを
保持し、現状態番号が全て読み出されるまでの次の入力
を待つことになる。検索結果テーブル260には文字列の
終点となる終点状態に対応して各検索タームを識別する
ための所定のコードが格納されている。第9図のオート
マトンに対応した検索結果テーブル260の内容を第18図
に示す。検索ターム番号が0以外の内容のとき有効な検
索ターム番号が表している。すなわち、状態番号に対応
した検索ターム番号が0以外のとき照合結果として第1
図の複合条件判定手段103へ送られる。以上の動作が第
9図に示したオートマトンを実行する形で、入力文字列
を構成する各文字ごとに繰返し行われることにより検索
処理が実現される。
イス”という文字列が入力された場合の本方式の照合動
作について説明する。
を、また、検索結果テーブルには第18図の検索結果表を
格納する。これらのテーブルは、第9図のオートマトン
に対応したものである。
態番号である0を先頭アドレスに格納する。レジスタ25
0、レジスタ251には初期状態番号である0を格納する。
マルチプレクサ260はバッファ281を選択し、セレクタ26
1はバッファ280を選択する。したがって、次状態番号30
3は始点状態番号である0となる。
説明する。
る。すると、文字コード302と現状態番号305をアドレス
として状態遷移テーブル220より次状態番号1が読み出
され、レジスタ250に格納される。このとき現状態番号3
05は0となっている。
状態番号である0とレジスタ250に格納されている次状
態番号303である1を比較する。等しくないのでセレク
タ262は次状態番号303を選択する。このことは、状態0
から状態1に遷移文字“イ”による遷移が記述されてい
ることを示している。
号は0であるので照合結果306は出力されない。このこ
とは、状態1に照合結果が格納されていないことを示し
ている。
るので、バッファ281に次状態番号である1が、始点状
態番号に続く2つめの次状態番号として格納される。バ
ッファ280から全ての現状態番号が読み取られたので、
終了信号307が発生する。
し、セレクタ261はバッファ281を選択することになる。
すなわち、バッファ281内の2つの次状態番号が現状態
番号として、次の文字に対する遷移に用いられることに
なる。
と、まずバッファ280に格納されている現状態番号であ
る状態0において遷移文字“イ”が記述されているかの
照合が行なわれている。次に、遷移が記述されてなけれ
ば次の現状態番号の処理が行なわれ、遷移が記述されて
いる場合、バッファ281に次状態番号が格納され、同時
に照合結果が格納されているかを、照合結果テーブルの
次状態番号で示されるアドレスに有効なタームIDが格納
されているかチェックすることにより調べられている。
この場合では遷移が記述されているので、次状態番号で
ある状態1がバッファ281に格納されており、照合結果
テーブルを調べたところ結果は格納されていないため照
合結果は出力されない。
る。すると、文字コード302と現状態番号305をアドレス
とする状態遷移テーブル220より次状態番号である0が
出力され、レジスタ250に格納される。
状態番号である0とレジスタ250に格納されている次状
態番号である0を比較する。等しいのでセレクタ262で
は次状態番号303は選択されない。このため次状態番号3
03は、バッファ280に格納されない。このことは、状態
0には遷移文字“ン”による遷移が記述されていないこ
とを示している。
から始点状態への遷移におけるトークンの生成を防いで
いる。
され、文字コード302と次状態番号である1をアドレス
として状態遷移テーブル220より次状態番号2が出力さ
れ、レジスタ250に格納される。コンパレータ252はレジ
スタ251に格納されている初期状態番号である0とレジ
スタ250に格納されている次状態番号303である2を比較
する。等しくないのでセレクタ262は次状態番号303を選
択することになる。このことは、状態1から状態2に遷
移文字“ン”による遷移が記述されていることを示して
いる。
号は0であるので照合結果306は出力されない。このこ
とは、状態2に照合結果が格納されていないことを示し
ている。
ているので、バッファ280に次状態番号303である2が始
点状態番号に続く2つめの次状態番号として格納され
る。
ので、終了信号307が発生する。
し、セレクタ261はバッファ280を選択することになる。
すなわち、バッファ280内の2つの次状態番号が2つの
現状態番号として、次の文字に対する遷移に用いられる
ことになる。
と、まずバッファ281に格納されている現状態番号であ
る状態0において遷移文字“ン”が記述されているかの
照合を行なっている。この場合記述されてないので次の
現状態番号である状態1について同様に照合を行なう。
状態2への遷移が記述されているので、状態2は次状態
番号としてバッファ280に格納される。また、状態2に
は照合結果が格納されてないので、照合結果は出力され
ていない。
なるので説明を簡略する。まず、バッファ280に登録さ
れている。現状態番号である状態0における照合動作を
行なうこの場合記述されていないので次の現状態番号で
ある状態2について同様に照合を行なう。状態3への遷
移が記述されているので、状態3が次状態番号としてバ
ッファ280に格納される。また、状態3には照合結果が
格納されてないので、照合結果は出力されない。
なるので説明を簡略する。まず、バッファ281に登録さ
れている、現状態番号である状態0における照合動作を
行なう。この場合記述されてないので次の現状態番号で
ある状態3について同様に照合を行なう。状態4への遷
移が記述されているので、状態4が次状態番号としてバ
ッファ280に格納される。また、状態4には照合結果が
格納されてないので、照合結果は出力されない。
なるので説明を簡略する。まず、バッファ280に登録さ
れている、現状態番号である状態0における照合動作を
行なう。この場合記述されてないので次の現状態番号で
ある状態4について同様に照合を行なう。状態5への遷
移が記述されているので、状態5が次状態番号としてバ
ッファ281に格納される。また、状態5には照合結果が
格納されてないので、照合結果は出力されない。
る。このステップではトークンが2つから3つに増加し
ているので詳細に説明する。
る状態遷移テーブル220より次状態番号として1が出力
され、レジスタ250に格納される。コンパレータ252はレ
ジスタ251に格納されている初期状態番号である0とレ
ジスタ250に格納されている次状態番号である1を比較
する。この場合、等しくないのでセレクタ262は次状態
番号303を選択する。状態1における検索結果テーブル
の検索ターム番号は0であるので照合結果306は出力さ
れない。マルチプレクサ260では、バッファ280が選択さ
れているので、バッファ280に次状態番号である1が始
点状態番号に続く2つめの次状態番号として格納され
る。
され、文字コード302と次状態番号である6をアドレス
とする状態遷移テーブル220より次状態番号として7が
出力され、レジスタ250に格納される。コンパレータ252
はレジスタ251に格納されている初期状態番号である0
とレジスタ250に格納されている次状態番号である7を
比較する。この場合、等しくないのでセレクタ262は次
状態番号を選択する。状態7における検索結果テーブル
の検索ターム番号は0であるので照合結果306は出力さ
れない。マルチプレクサ260では、バッファ280が選択さ
れているので、バッファ280に次状態番号である7が3
つめの次状態番号として格納される。バッファ281から
は全ての現状態番号が読み取られたので、終了信号307
が発生する。
し、セレクタ261はバッファ280を選択することになる。
すなわち、バッファ280内の3つの次状態番号が3つの
現状態番号として、次の文字に対する遷移に用いられる
ことになる。
1に読み込まれる。すると、文字コード302と次状態番号
である0をアドレスとする状態遷移テーブル220より次
状態番号として0が出力され、レジスタ250に格納され
る。コンパレータ252はレジスタ251に格納されている初
期状態番号である0とレジスタ250に格納されている次
状態番号である0を比較する。この場合、等しいのでセ
レクタ262では次状態番号303が選択されない。このため
次状態番号は、バッファ281に格納されないことにな
る。
読み出され、文字コード302と次状態番号である0をア
ドレスとする状態遷移テーブル220より次状態番号とし
て0が出力され、レジスタ250に格納される。コンパレ
ータ252はレジスタ251に格納されている初期状態番号で
ある0とレジスタ250に格納されている次状態番号であ
る0を比較する。この場合、等しいのでセレクタ262で
は次状態番号が選択されない。このため次状態番号は、
バッファ281に格納されないことになる。
ンの消滅を実現している。
読み出され、文字コード302と次状態番号である7をア
ドレスとする状態遷移テーブル220より次状態番号とし
て8が出力され、レジスタ250に格納される。コンパレ
ータ252はレジスタ251に格納されている初期状態番号で
ある0とレジスタ250に格納されている次状態番号であ
る8を比較する。この場合、等しくないのでセレクタ26
2では次状態番号303が選択される。
号は1であるので検索ターム番号として1が処合結果30
6として出力される。マルチプレクサ260では、バッファ
281が選択されているので、バッファ281に次状態番号で
ある8が始点状態番号に続く2つめの次状態番号として
格納される。
ので、終了信号307が発生する。
し、セレクタ261はバッファ281を選択する。すなわち、
2つの次状態番号が2つの現状態番号として、次の文字
に対する遷移に用いられることを示している。
タフェイス”という文字列の検索を実現している。
することにより、「フェイル」という概念を必要としな
い文字列検索方式を実現できる。このため、オートマト
ン作成時間を短くすることができ、状態数を少なくでき
るため状態遷移テーブルをコンパクトにできるという利
点がある。
した検索、検索タームに1文字のdon′t care文字や可
変長don′t care文字に指定した検索、上限指定、下限
指定、上下限指定の可能な文字距離演算を行った検索、
検索タームと1文字違った文字列を検索する1文字誤り
許容検索、および、検索タームと1文字入れ替わった文
字列を検索する1文字入れ替わり検索などの検索機能を
オートマトンの状態数が少なくできるためオートマトン
の作成時間が短くて済み、更に、状態遷移テーブルをコ
ンパクトにできるためハードウェア量の少ない文字列検
索装置を実現することができる。
検索回路の実施例の構成を示すブロック図、第2図,第
3図,第5図,第7図は従来の有限オートマトンによる
文字列検索原理を表した説明図、第4図,第6図,第8
図、はフェイルテーブルの説明図、第9図,第10図,第
11図,第12図,第13図,第14図,第15図,第16図、は本
発明を用いた有限オートマトンによる文字列検索方法の
原理を表した説明図、第17図は本発明を用いた状態遷移
テーブルの説明図を表した説明図、第18図は検索結果テ
ーブルの説明図、第19図は文字列検索機構の説明図を表
している。 101,201……検索制御手段、103……複合条件判定手段、
104……記憶装置制御手段、105……文字列記憶手段、20
0……文字列照合手段、220……状態遷移テーブル、230
……フェイル検出器、260……照合結果テーブル、303…
…次状態番号、305……現状態番号、403……初期状態を
示す矢印。
Claims (6)
- 【請求項1】コード表現された文字で構成される被検索
文字列中に指定された検索対象文字列が存在するか否か
を判定するオートマトンを用いた文字列検索方法におい
て、 複数の着目状態の状態番号を保持し、上記状態番号に対
応する状態について照合処理を行うことを特徴とする文
字列検索方法。 - 【請求項2】特許請求の範囲第1項の文字列検索方法に
おいて、 上記オートマトンとして1文字誤りを許容するオートマ
トンを使用することを特徴とする文字列検索方法。 - 【請求項3】特許請求の範囲第1項の文字列検索方法に
おいて、 上記オートマトンとして1文字入れ替わりを許容するオ
ートマトンを使用することを特徴とする文字列検索方
法。 - 【請求項4】特許請求の範囲第1項の文字列検索方法に
おいて、 上記オートマトンとして近傍条件を判定するオートマト
ンを使用することを特徴とする文字列検索方法。 - 【請求項5】特許請求の範囲第1項の文字列検索方法に
おいて、 上記オートマトンとしてドントケア文字を許容するオー
トマトンを使用することを特徴とする文字列検索方法。 - 【請求項6】コード表現された文字で構成される被検索
文字列中に指定された検索対象文字列が存在するか否か
を判定するオートマトンを用いた文字列検索装置におい
て、 複数の着目状態の状態番号を格納する状態番号格納手段
と、上記状態番号格納手段に格納された上記状態番号を
参照し、上記参照した状態番号に対応する状態について
照合処理を行う照合手段とを備えたことを特徴とする文
字列検索装置。
Priority Applications (12)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1231567A JP2880192B2 (ja) | 1989-09-08 | 1989-09-08 | 文字列検索方法及び装置 |
EP90909360A EP0437615B1 (en) | 1989-06-14 | 1990-06-14 | Hierarchical presearch-type document retrieval method, apparatus therefor, and magnetic disc device for this apparatus |
DE69032712T DE69032712T2 (de) | 1989-06-14 | 1990-06-14 | Hierarchischer vorsuch-typ dokument suchverfahren, vorrichtung dazu, sowie eine magnetische plattenanordnung für diese vorrichtung |
PCT/JP1990/000774 WO1990016036A1 (en) | 1989-06-14 | 1990-06-14 | Hierarchical presearch-type document retrieval method, apparatus therefor, and magnetic disc device for this apparatus |
US07/555,483 US5168533A (en) | 1989-06-14 | 1990-08-09 | Hierarchical presearch type text search method and apparatus and magnetic disk unit used in the apparatus |
US07/843,162 US5469354A (en) | 1989-06-14 | 1992-02-28 | Document data processing method and apparatus for document retrieval |
US07/914,334 US5220625A (en) | 1989-06-14 | 1992-07-17 | Information search terminal and system |
US07/985,795 US5519857A (en) | 1989-06-14 | 1992-11-30 | Hierarchical presearch type text search method and apparatus and magnetic disk unit used in the apparatus |
US08/031,625 US5471610A (en) | 1989-06-14 | 1993-03-15 | Method for character string collation with filtering function and apparatus |
US08/031,700 US5454105A (en) | 1989-06-14 | 1993-03-15 | Document information search method and system |
US08/444,842 US5748953A (en) | 1989-06-14 | 1995-05-18 | Document search method wherein stored documents and search queries comprise segmented text data of spaced, nonconsecutive text elements and words segmented by predetermined symbols |
US08/839,407 US6094647A (en) | 1989-06-14 | 1997-04-11 | Presearch type document search method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1231567A JP2880192B2 (ja) | 1989-09-08 | 1989-09-08 | 文字列検索方法及び装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0395672A JPH0395672A (ja) | 1991-04-22 |
JP2880192B2 true JP2880192B2 (ja) | 1999-04-05 |
Family
ID=16925537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1231567A Expired - Lifetime JP2880192B2 (ja) | 1989-06-14 | 1989-09-08 | 文字列検索方法及び装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2880192B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5471610A (en) * | 1989-06-14 | 1995-11-28 | Hitachi, Ltd. | Method for character string collation with filtering function and apparatus |
US20110106814A1 (en) * | 2008-10-14 | 2011-05-05 | Yohei Okato | Search device, search index creating device, and search system |
JP5339236B2 (ja) * | 2010-03-05 | 2013-11-13 | 独立行政法人 国立印刷局 | 要素列の近似的な照合又は検索及びその方法を実行するためのプログラムを格納した記録媒体 |
JP6404564B2 (ja) | 2013-12-24 | 2018-10-10 | 株式会社東芝 | デコーダ、デコード方法およびプログラム |
-
1989
- 1989-09-08 JP JP1231567A patent/JP2880192B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH0395672A (ja) | 1991-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2702927B2 (ja) | 文字列検索装置 | |
US4775956A (en) | Method and system for information storing and retrieval using word stems and derivative pattern codes representing familes of affixes | |
EP0378848A2 (en) | Method for use of morphological information to cross reference keywords used for information retrieval | |
JP2986865B2 (ja) | データ検索方法および装置 | |
US6470334B1 (en) | Document retrieval apparatus | |
JP2880192B2 (ja) | 文字列検索方法及び装置 | |
JPH1027183A (ja) | データ登録方法および装置 | |
JPH06348757A (ja) | 文書検索装置および方法 | |
JP2880199B2 (ja) | 記号列検索方法および検索装置 | |
JPH0561758A (ja) | 情報リンク装置 | |
JP2535629B2 (ja) | 検索システムの入力文字列正規化方式 | |
JPH07182333A (ja) | 日本語処理装置 | |
JP2825009B2 (ja) | 記号列検索方法および装置 | |
JP2002132789A (ja) | 文書検索方法 | |
JP3873305B2 (ja) | 仮名漢字変換装置および仮名漢字変換方法 | |
JPH0635971A (ja) | 文書検索装置 | |
JP3187671B2 (ja) | 電子辞書表示装置 | |
JPH02148174A (ja) | Ocrによる住所データベース検索装置 | |
JP2838972B2 (ja) | 自動索引作成装置 | |
JPH0816617A (ja) | 文書検索方法及び装置 | |
JPH04250568A (ja) | レコード検索装置 | |
JPH05313971A (ja) | リレーショナル・データベースにおけるキーワード管理方式 | |
JPH03127254A (ja) | 単語検索装置 | |
JPS61267828A (ja) | 情報登録検索装置 | |
JPS63254522A (ja) | キ−ワ−ド抽出装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080129 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080129 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090129 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090129 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100129 Year of fee payment: 11 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100129 Year of fee payment: 11 |