JPH0395672A - 文字列検索方法及び装置 - Google Patents
文字列検索方法及び装置Info
- Publication number
- JPH0395672A JPH0395672A JP1231567A JP23156789A JPH0395672A JP H0395672 A JPH0395672 A JP H0395672A JP 1231567 A JP1231567 A JP 1231567A JP 23156789 A JP23156789 A JP 23156789A JP H0395672 A JPH0395672 A JP H0395672A
- Authority
- JP
- Japan
- Prior art keywords
- state
- character
- automaton
- search
- transition
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 230000007704 transition Effects 0.000 claims abstract description 122
- 238000012795 verification Methods 0.000 claims description 31
- 150000001875 compounds Chemical class 0.000 claims description 7
- 239000000872 buffer Substances 0.000 abstract description 65
- 238000004519 manufacturing process Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 12
- 238000007796 conventional method Methods 0.000 description 9
- 238000003672 processing method Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008034 disappearance Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
め要約のデータは記録されません。
Description
検索方法に係り、被検索文字列中に複数の文字列集合が
存在するか否かを一括して判定するためのものである。
ドプロセッサなどにおける検索に利用され得るものであ
る。
のみならず、1次情報(本文)をも含む大規模データベ
ース・サービスの重要性が増してきている。従来,デー
タベースの情報検索では、シソーラスに基づいて統制さ
れたキーワードや分類コード等の2次情報による検索が
行われてきている。しかし、この方法では数十件から数
百件までにしか絞り込めないため、検索者が最終段階で
直接本文を読んで内容を確認しなければならないという
効率上の問題がある。また、分類体系自体が年月と共に
変化するため、常にキーワードや分類コードを更新しな
ければならないという問題も生じてくる。更に、キーワ
ード付け(インデキシングと言う)には時間がかかるた
め新たな文書はバッチ処理によりかなりの量をまとめて
’10する。
という問題がある。
由なキーワードに基づいて文書の本文を直接参照して内
容を検索できる全文検索システムが考えられている。
索装置がいくつか提案されている。その代表的な構戊を
第19図に示し、まず、その内容について説明する。
索装置全体の制御と,ホストコンピュータとの通信を行
う。すなわち、ホストコンピュータから送られてくる検
索要求201を受け付け,これを解析し、文字列照合手
段200と複合条件判別手段103へ検索情報202と
して送出する。
制御して、文字列記憶手段105に格納される文字列デ
ータ204を文字列照合手段200へ送りこむ。
検索要求に合致するものがあるかどうかを調べ、もし該
当するものがあれば、文字列を識別する情報205を複
合条件判別手段103へ出力する。複合条件判別手段1
03は該文字列識別情報205に基づいて検索要求中に
指示された相互の位置関係などの複合条件が満足するか
否かを調べる。複合条件が満足する場合には、該当する
文書へのポインタ情報や文書内容のテキストデータを検
索結果206としてホストコンピュータへ返送する。
00における文字列の照合方式としては、有限オートマ
トンを用いて複数の文字列を1回の走査で検索する方法
が知られている.その代表的な方式としては、以下に説
明する方法がある。
シック二″エフィシェント ストリングマッチング,コ
ミュニケーションズ エー シー エム,第18巻,第
6号,1975年,A.V. ^ho and
M.J.Corasick : ”Efficien
tString Matching”, CACM,
VOL.18, No,6. 1975)。
第2図を用いて説明する。同図は、文字列データの中か
ら、ユーザから与えられた検索ターム′゛インタフェー
ス′″を検索するためのオートマトンの状態遷移図であ
る,ここで、円形はオートマトンの状態を,矢印は状態
遷移を表している.各矢印に付記された文字はこれに対
応した状態遷移が起きる入力文字を示す。本図では″ン
″以外および“イ”以外の文字といった否定を表わす場
合は否定記号″″を付け「{″ン″ ] ] ″イ″}」と表わしている。矢印403は状態遷移の加
まる始点状態を示している。各円形の内部に記された数
値は,同状態の状態番号を示す。二重円は1′インタフ
ェース”を照合したことを示す終点の状態を表している
6本方法の特,徴は入力される可能性のある全ての入力
文字に対する状態遷移をオートマトンで記述している点
にある。このため状態遷移の数が多くなるため、検索タ
ームの数が多くなるというオートマトンの作成時間が極
めて長くなるという問題がある。
明する。オートマトンに文字が入力された場合、どの状
態において入力文字の照合を行なうべきかをh−クンに
置くことにより明らかにする。すなわち、トークンとは
、オートマトン内で遷移する状態の位置を表わすマーク
である。まず、初期設定としてトークンを始点状態であ
る状態Oに置く。この例の場合、入力文字が″イ″であ
るとトークンは状態1へ移動する。もし、ここで″イ″
以外の文字が入ってきた場合はトークンは状態Oに移動
する。一方、トークンが状態1にあって入力文字が″ン
″ならば、トークンは状態2に移動する。′゛イ″であ
れば状態1に移動する。
る。次にトークンが状態2にある場合、入力文字が″夕
″ならば、トークンは状態3に移動する。ここで、もし
、゛′イ″が入力されたときは、トークンは状態lへ移
動する。更に、状態3にトークンがある場合、″フェー
ス″が入力されると、トークンは状s4→状態5→状態
6→状態7と移動する。状態7は2重円で記されており
、ここでは′゛インタフェース″という文字列が照合さ
れたことになる。
する状態遷移をオートマトンに記述しているため、検索
タームが多くなると状態遷移の数が多くなりオートマト
ンの作成時間が極めて長くなるという問題がある。本方
法を実現するハードウェアについては、特開昭60−1
05039、特開昭60−105040に開示されてい
る。
説明する。本方法は従来方法lと比べオートマトン作成
時間を短縮するための工夫がされている。従来方式2で
は、従来方法王と比べオートマトンの作戊時間は3分の
1と大幅に改善されており、詳細について特開昭63−
311530に述られている。本方法を第3図と第4図
を用いて説明する。第3図は、第2図と同様に″インタ
フェース″を照合する場合のオートマトンの状態遷移図
を示したものである。初期設定として、トークンを始点
状態である状態0に置く。ここで、入力文字“イ″が入
力されたならばトークンが置かれている状態Oで照合を
行ない状態1へ移動する。もし、状mOで″イ″以外の
文字が入ってきた場合はトークンは状態0に移動する。
力されたならばトークンは状MA2に移動する。トーク
ンが状態2にあって1′夕″が入力されたならばトーク
ンは状態3に移動する。ここでもしトークンが状態3に
あって同オートマトンに記述されていない″フ″以外の
文字、例えば゛イ″が入力されたときは、本方式では「
フェイル」したと言い、第4図のフエイルテーブルを参
照することになる.フェイルテーブルにはトークンが置
かれている状態番号に対して再照合すべきフエイル先の
状態番号が格納されている。この場合、現在の状態番号
3に対応するフェイル先の値Oを得て状態Oヘトークン
を移動する。そして、ここで該入力文字″イ”について
照合することによりトークンは状態エヘ移動する。この
ような機能をフェイル機能と呼んでいる。更に、続けて
Uンタフェース″という入力文字列が1文字づつが入っ
てきた場合、トークンは状態2→状態3→状態4→状態
5→状態6→状態7と移動する。状態7は2重円で記さ
れており、ここでは″インタフェース″という文字列が
照合されたことになる。
れた場合、本文中にはユーザが指定した検索タームと異
なる表記(異表記)で記述されることもある。
長音記号)の代わりにKl 71 (マイナス記号
)を使用したり(これを長音異表記と呼ぶ)、゛′イン
ターフェース”のように″一”を付加したり(これを長
音の有無と呼ぶ)、″インタフェイス″のように発音の
表記の違いにより゛′フェー″を″フェイ″と記述した
りする(これを発音異表記と呼ぶ)。
せた″インタフェース”,“インターフェース”,′イ
ンタフェイスn,uインターフェイス”インターフエイ
ス”インタフェースJT,tLインターフェース”イン
ターフェース”,″インターフェース″の9語を検索タ
ームとする必要がある。
。第5図は,文字列データの中から、異表記を含む上記
9語を照合する場合のオートマトンの状態遷移図である
。検索タームの先頭から比較して遷移文字が異なる場合
は別状態に分岐する。
検索タームの例では、検索タームの前方から比較すると
″インタ′″までは同じであるが、その次の文字では′
゛フ″′とtt nで遷移文字が異なる。このため状
態3から遷移文字“フ”で状態22に遷移し、遷移文字
It I+で状態4へ遷移するといった状態遷移の分
岐が起こる。
の遷移先状態を割り付けているため本状のオートマトン
になる。第6図はこのオートマトンに示されてない文字
が入力された場合の遷移先を示すフェイルテーブルの説
明図である。このように、異表記を含めて照合を行なお
うとすると、検索タームが多くなるため状態数が非常に
増加してしまうという問題が発生する。
文字を使用することがある。検索タームに固定長のdo
n’t care文字を使用した例を第7図と第8図
を用いて説明する。第7図はl文字の固定長のdon’
t care文字″?”を含む検索ターム=′A
17 B Jlを検索する場合のオートマトンの状態
遷移図を表わしている。第8図はこのオートマトンに示
されてない文字が入力された場合の遷移先を示すフェイ
ルテーブルの説明図である。
ている)の場合についてオートマトンを作成している。
意味する文字記号である。従って、don’ t
care文字II ?++による遷移は本図の状態1を
遷移元とする全ての文字コードOO〜FFによる遷移と
して表わされる。すなわち”A?B″′は、先頭が11
A I+で間に任意の1文字が入り、末尾がIt B
I+である文字列を検索するという指定になる。
care文字が入るとオートマトンの状態数が非常に増
加してしまうという問題が発生する。
合、異表記を含む検索タームを全て列挙し、検索ターム
に展開する。さらに、これらに基づいたオートマトンを
作成する。ここで作成されるオートマトンは本状に記述
されるため非常に多くのオートマトンの状態が必要とな
る。
う場合も、don’ t care文字の部分が許
容する文字コードの全ての組合せを列挙し、検索ターム
に展開する。これらに基づきオートマトンを作成するた
め、異表記と同様に、非常に多くのオートマトンの状態
が必要となる。
ン作戒時間の増加や,更にはオートマトンを格納するた
めの状態遷移テーブルの容量が増加,すなわち,ハード
ウェアの増大という問題を発生する。
記やdon’ t care文字が指定された検索
を行なう場合もオートマトンの遷移を網状にまとめて記
述することにより、状態数を従来より低減し,オートマ
トンの作成時間の短縮をはかると共に、状態遷移テーブ
ルの容量が小さくて済むためコンパクトなハードウェア
で実現可能な検索方式を提供することを目的とする。
マトンにおいて検索ターム中の異表記が存在する部分文
字列の先頭でオートマトンの遷移を分岐し、末尾で分岐
した遷移を集合させることにより状態数の低減を図った
。don’ t care文字指定検索用オートマ
トンにおいても異表記検索と同様にdon’ t
care文字が許容する文字群を異表記と見なし、do
n’ t care文字でオートマトンの遷移を分
岐し、それらの遷移を1カ所の状態に集合させることに
より状態数の低減を図る。
遷移テーブルの許容が小さくできるコンパクトな検索装
置を実現した。
して採用したオートマトンの作成方法について説明する
。本方法は従来方法2と以下の点で異なる。すなわち,
従来方法2では「フェイル処理」を用いるため、フェイ
ル先状態を計算する必要性から本状に状a遷移を分岐し
たオートマトンを作成しなければならないため、状態数
が多くなるのに対して、本方法では「フェイル処理」が
不要で、状態遷移の分岐を抑え、状態遷移をまとめて遷
移先状態を共有することができるため、状態数の増加が
抑えられている(以後、本方法を用いて作成したオート
マトンを集合遷移許容形オートマトンと呼ぶ)。
移である。
様に,″インタフェース″と、その異表記である“イン
ターフェース” 1′インタフェイス”,″インター
フェイス”,“インターフェイス”一″インタフェース
”,″インターフェース″“インターフェース”インタ
ーフェース”を含めた9語の検索タームについて検索す
るためのものである。これらを、 (″イン+t(itタ″(“−pt it−n )
reタ″)(″フェイ″′゛フェ ( 11−It
!+ ) )IIス” )
(式1)という複合語表現形式で表すことが
できる。ここで(“一 “−”)は“一″と“一″が
等価であることを示しており,(′゛フェイ” ′゛
フェ(111111−”))は″フェイ” ″フェー
″および′゛フェー″が等価であることを示している。
は等価であるので部分文字列の末尾で遷移を同一遷移先
状態にまとめることが可能である。
合、例えば(′゛夕” ( H−tt It )゛′
夕”)の場合は、次の遷移文字の″フ″の遷移の遷移元
状態が″夕″の遷移先状態である状83と′゛夕一”お
よび゛′夕−″の遷移先状態である状態4であるので,
これらの2カ所を遷移元状態とする遷移に表わす。更に
、これらの遷移の遷移先状態を状態5とし、遷移にまと
める。
図のオートマトンに比べ約3分の1に減らすことができ
る。
る。
容形オートマトンの状態遷移図を用いた場合の作用につ
いて説明する。以後、集合許容形オートマトンをオート
マトンと酪して説明を行なう。同図のオートマトンは第
5図に示したオートマトンと同様に″インタフェース″
の異表記である“インターフェース”インタフエイス”
″インターフェイス”インターフェイス”“インタフェ
ース″′インターフェース″“インターフェース″,′
インターフェース”を含む9語の検索タームを検索する
ためのものである。
のオートマトンと比べ状態数を約3分の1と大幅に減ら
すことができている。このオートマトンは上記のコンカ
レントステートオートマトン方式により制御される。以
下、その内容を具体的に説明する。
る。本方法は「フェイル処理」を用いずに状態遷移を制
御しようとするものである。すなわち、「フェイル処理
」を行なう代わりに、複数のトークンを用いることによ
ってオートマトンの状態遷移を表わそうとするものであ
る。
ンの状態遷移図は、初期状態を除いてアクティブな状態
、すなわち、照合途中を示す遷移状S(トークンが置か
れた状態)が唯1個だけという条件のもとに作成された
ものである。その結果、照合途中で入力文字との不一致
が生じた場合には、トークンの動きが不連続になるため
「フェイル処理」を行なわなければならなくなる。
ークンを生成し、照合途中で不一致が生じた場合にはト
ークンを消滅させるという方法を採ることにより、フェ
イル処理を不要にしている。
トークンが同時に存在することにもなる。
ン方式とも呼ぶことにする。
、オートマトン作成時においてもフェイル先状態の計算
が不要な文字列検索装置を実現することができる。
する。始点状態では入力文字が入る度に照合を行なう.
遷移文字と照合した場合、新たなトークンを生成し、こ
のトークンを始点状態から遷移先状態へ移動させる。た
だし,始点状態から始点状態への状態遷移の場合には、
トークンを生或しない。したがって,始点状態から始点
状態への遷移は無効となるため、この遷移を省酩するこ
とも可能である。
づつ入力された場合についてオートマトンの動作を説明
する。
しトークンT1が生或され、状態1へ移動する。トーク
ンT1が状態1にきたところで″ン″が入力されると、
トークンT1は状fi2に移動する。また、これと同時
に始点状態でも゛′ン″による照合が行なわれるが不一
致なので新たなトークンは生成されない。更に状態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 17 B ′=を検索する場合のオー
トマトンであり、集合遷移を採用した上記方法を用いる
ことにより状態数を約150分の工と少なく実現できて
いる。
た場合の本方法の動作について説明する。
一致するためトークンTlが新たに生或され、状態1へ
と移動する。次にII X 11が入力されると、トー
クンT1は状態1から状態2に移動する。また、始点状
態での照合が不一致なので新たなトークンは生或されな
い。次に“B ”が入力されると、トークンT1は状態
2から状態3に移動する。同時に、始点状態での照合が
不一致なので新たなトークンは生成されない。状態3は
2重円で記されており、ここでは“A l’7 B I
Iが検索されたことになる。
ことにより、異表記憾容検索と同様に、オートマトンの
状態数が約150分の1と少なくて済む固定長don’
t care文字指定検索を実現することができ
る。
した距離指定検索の処理方法について述べる。
。ここではIIA”と“B IIの距離が4文字以内の
距離という上限顕離指定がされている場合を例にする。
とができ、この例ではre A uとII B I+の
距離が4文字以内の距離という上限距離指定の場合は、
“A B It , II A Q B +j
′r AQ?B” ”A???B” t’Ar2c2c
7?B”の5つの検索タームで表すことができる。また
、これから固定長don’ t care文字の場
合と同様レこ第11図に示すオートマトンを作成するこ
とができる。
字の場合と同様にトークンを制御することにより、上限
指定の距離指定検索を実現することができる。
。ここではII A Itとtt B uの耗離が2文
字以上の距離という下限距離指定がされた場合を例にす
る。下限距離指定では上限距離が無限大となるためdo
n″ j Care文字で表わすことができない。つ
まり、II A”とttB”の距離が2文字以上の距離
という下限距離指定の場合は、固定長don’ t
care文字で表わすと″A?17 B+I ,
LtA (7 Q 17 B”,uA????B”・・
となり検索ターム数が無限大になるためである。
説明する。
字で表わした検索タームでオートマトンを作成する。こ
のオートマトンの作成方法は固定長dOn’ t
care文字の場合と同様である。ここでは下限距離は
2なので”A??B”を検索タームとしてオートマトン
を作成する。次に,下限距離だけ遷移した状態(この例
では状B 3 )を仮の始点とし、この始点状態以降に
つながる状態についてオートマトンを作成する。このオ
ートマトンは、全ての入力文字に対して遷移を記述する
従来方式1を用いて作成できる。このようにして、上限
距離が無限大の場合でもオートマトンを作成することが
できることになる。しかし、この方法では従来方式1を
部分的に適合するためオートマトン作戊時間が増大する
という問題点がある。
e文字の場合と同様である。
’ t care文字II * uを指定した検索
の方法について説明する。
* ITは、下限距離に0を指定した場合の距離指定を
用いて実現することができる。すなわち、”AB本C
D ”はl! A B +1と” C D ’”の距離
がO文字以上の距離という下限距離指定に置き換えるこ
とができる。
し“た検索も下限距離指定と同様に実現することができ
る。
e文字の場合と同様である。
する。ここでは“A”と“B”の距離が2文字以上で、
かつ、4文字以下の距離という上下限距離指定を例にす
る。上下限距離指定は固定長don’ t car
e文字で表すことができ、この例のl(A”と11 B
I+の距離が2文字以上、4文字以内の距離という場
合には、tt A 9 B””A? ?B” ”A
? ? ?B’ , “A????B”の4つの検索
タームで表すことができ、これらから固定長coon’
t care文字の場合と同様に第14図に示す
オートマトンを作成することができる。
文字の場合と同様である。
処理方法について説明する。
について説明する。この例では検索タームとしては誤り
なしの場合として” A B C D ”について、1
文字削除として” A B C”,”ABD” ”A
CD”BCD”について、1文字相違として“A?CD
” 11AB?D” ” A B C ?”につい
て、1文字挿入として”A?Bcp”,”AB?CD”
,”ABC’7D”,”ABcD?”についてオートマ
トンを作成する。これらを複合語表現形式にすると(
”AB” ( ”C” ( ”D?”″?D”t)
)l ) −′O o″′)((“B II“A
” ( ′l ?B” ″B?”′?”))“C”“
A” (“B JI It C”BC”))“D”
“ABC”)と表すことができる。これに基づいて固定
長don″ t care文字の場合と同様に第15
図に示すオートマトンを作成することができる。
e文字の場合と同様である。
り許容検索の処理方法について説明する。
例について説明する。この例では検索タームとじては誤
りなしの場合として” A B C D ”について、
1文字入れ替わりとして”BACD” ”ACBD
”,“ABDC”についてオートマトンを作戊する。こ
れらを複合語表現形式にすると( # A I+(“B
C” ” C B ’″) ”BAC″′)“D
″”ABDC”)と表すことができる。これに基づいて
固定長don’ t cars文字の場合と同様に
第16図に示すオートマトンを作成することができる。
e文字の場合と同様である。
索、固定長don’ t care文字指定検索、文
字距離指定検長、可変長don’tQa r8文字指定
検索、1文字誤り許容検索、工文字入れ替わり許容検索
などの検索機能を実現するオートマトンを作成すること
ができる。したがって、オートマトンの作成時間も短縮
でき、状態遷移テーブルもコンパクトにできるためハー
ドウェア量の少ない文字列検索装置を実現することが可
能となる。
施例について述べる。
字コードと状態番号を入力することにより次状態番号を
出力する状態遷移テーブル220と、状態番号を入力す
ることにより照合したか否かの照合結果IDを出力する
照合結果テーブル260、および,現状態番号や次状態
番号を格納するバッファ280とバッファ281などか
ら或っている。
説明する。第1図の稿字列記憶手段105から読み出さ
れた文字列301は1文字づつレジスタ211に格納さ
れる。レジスタ211から出力される文字コード302
は,本発明によるオートマトンの遷移表が格納されてい
る状態遷移テーブル220にアドレス情報として入力さ
れる。
字コード302から次に遷移すべき遷移先状態番号30
3を出力する。次状態番号303はレジスタ250に格
納された後、セレクタ262及びマルチプレクサ260
を経由しバッファ280またはバッファ281のいずれ
か選択されている方に格納される。このとき、セレクタ
262では、初期状態番号(この例では、状態番号O)
が格納されているレジスタ251と次状態番号303を
コンパレータ252で比較した結果、同じ値であればセ
レクタ262は次状態番号303を選択する。すなわち
、次状態番号303が初期状態番号Oでない場合のみマ
ルチプレクサ260を経由しバッファ280またはバッ
ファ281のいずれか選択されている方に格納される。
読取り用と書込み用の2面バッファとして用い、高速処
理を実現している。この2つのバッファはlつにまとめ
回路規模を小さくすることも可能である。
0及びバソファ281には初期値として始点状態番号を
先頭アドレスに設定しておく。バッファ280及びバッ
ファ281に送られてきた次状態番号303は始点状態
の次のアドレスから格納する。現状態番号305はセレ
クタ261で選択されているバッファ280及びバッフ
ァ281のいずれかから逐次読み出され、全て読み出し
たときに読出し終了信号307を発生する。マルチプレ
クサ260とセレクタ261は同期しており、選択動作
についてはマルチプレクサ260がバッファ280を選
択しているときはセレクタ26↓はバッファ281を選
択している。また、マルチプレクサ260がバッファ2
81を選択しているときはセレクタ261はバッファ2
80を選択する。バッファ280及びバッファ281の
選択の切り替えは、セレクタ261が選択したバッファ
280または281のいずれかの読出し終了信号307
の発生のタイミングで行われる。状態遷移テーブル22
0には第18図に示した状態遷移表を格納する。これは
第9図のオートマトンに対応したものである。レジスタ
211は通常は、レジスタ250と同期して文字列デー
タを取り込むが、読出し終了信号が発生するまで文字列
データを保持し、現状態番号が全て読み出されるまで次
の入力を待つことになる。検索結果テーブル260には
文字列の終点となる終点状態に対応して各検索タームを
識別するための所定のコードが格納されている。第9図
のオートマトンに対応した検索結果テーブル260の内
容を第18図に示す。検索ターム番号が0以外の内容の
とき有効な検索ターム番号を表している。すなわち、状
態番号に対応した検索ターム番号がO以外のとき照合結
果として第1図の複合条件判定手段103へ送られる。
で、入力文字列を構戊する各文字ごとに繰返し行われる
ことにより検索処理が実現される。
イス”という文字列が入力された場合の本方式の照合動
作について説明する。
表を、また、検索結果テーブルには第18図の検索結果
表を格納する。これらのテーブルは,第9図のオートマ
トンに対応したものである。
点状態番号であるOを先頭アドレスに格納する。レジス
タ250、レジスタ251には初期状態番号である0を
格納する。マルチプレクサ260はバッファ281を選
択し、セレクタ261はパッファ280を選択する。し
たがって、次状態番号303は始点状態番号であるOと
なる。
明する。
。すると、文字コード302と現状態番号305をアド
レスとして状態遷移テーブル220より次状態番号1が
読み出され、レジスタ250に格納される。このとき現
状態番号305はOとなっている。
初期状態番号である0とレジスタ250に格納されてい
る次状態番号303である王を比較する。等しくないの
でセレクタ262は次状態番号303を選択する。この
ことは、状態Oから状態工に遷移文字“イ”による遷移
が記述されていることを示している。
号はOであるので照合結果306は出力されない。この
ことは、状態■に照合結果が格納されていないことを示
している。
ているので、バッファ281に次状態番号である1が、
始点状態番号に続く2つめの次状態番号として格納され
る。バッファ280から全ての現状態番号が読み取られ
たので、終了信号307が発生する。
択し、セレクタ261はバッファ281を選択すること
になる。すなわち、バッファ281内の2つの次状態番
号が現状態番号として、次の文字に対する遷移に用いら
れることになる。
まずバッファ280に格納されている現状態番号である
状態Oにおいて遷移文字″イ″が記述されているかの照
合が行なわれている。次に、遷移が記述されてなければ
次の現状態番号の処理が行なわれ、遷移が記述されてい
る場合、バッファ281に次状態番号が格納され、同時
に照合結果が格納されているかを、照合結果テーブルの
次状態番号で示されるアドレスに有効なタームIDが格
納されているかチェックすることにより調べられている
。この場合では遷移が記述されているので、次状態番号
である状態1がバッファ281に格納されており、照合
結果テーブルを調べたところ結果は格納されていないた
め照合結果は出力されない。
。すると、文字コード302と現状態番号3−05をア
ドレスとする状態遷移テーブル220より次状態番号で
ある0が出力され、レジスタ250に格納される。
初期状態番号であるOとレジスタ250に格納されてい
る次状態番号であるOを比較する。
されない。このため次状態番号303は,バッファ28
0に格納されない。このことは、状態Oには遷移文字″
ン”による遷移が記述されていないことを示している。
ら始点状態への遷移におけるトークンの生或を防いでい
る。
され、文字コード302と次状態番号であるlをアドレ
スとして状態遷移テーブル220より次状態番号2が出
力され、レジスタ250に格納される。コンパレータ2
52はレジスタ251に格納されている初期状態番号で
ある○とレジスタ250に格納されている次状態番号3
03である2を比較する。等しくないのでセレクタ26
2は次状態番号303を選択することになる。このこと
は、状態1から状態2に遷移文字″ン”による遷移が記
述されていることを示している。
号はOであるので照合結果306は出力されない。この
ことは、状態2に照合結果が格納されていないことを示
している。
択しているので、バッファ280に次状態番号303で
ある2が始点状態番号に続く2つめの次状態番号として
格納される。
ので、終了信号307が発生する。
択し、セレクタ261はバッファ280を選択すること
になる。すなわち、バツファ280内の2つの次状態番
号が2つの現状態番号として、次の文字に対する遷移に
用いられることになる。
まずバッファ281に格納されている現状態番号である
状態Oにおいて遷移文字′゛ン”′が記述されているか
の照合を行なっている。この場合記述されてないので次
の現状態番号である状態1について同様に照合を行なう
。状態2への遷移が記述されているので、状態2は次状
態番号としてバッファ280に格納される。また,状態
2には照合結果が格納されてないので,照合結果は出力
されていない。
るので説明を簡略する。まず、バッファ280に登録さ
れている,現状態番号である状態0における照合動作を
行なうこの場合記述されていないので次の現状態番号で
ある状態2について同様に照合を行なう。状態3への遷
移が記述されているので、状態3が次状態番号としてバ
ッファ280に格納される。また、状態3には照合結果
が格納されてないので、照合結果は出力されない。
るので説明を簡略する。まず、バッファ281に登録さ
れている、現状態番号である状態Oにおける照合動作を
行なう。この場合記述されてないので次の現状態番号で
ある状態3について同様に照合を行なう。状態4への遷
移が記述されているので、状態4が次状態番号としてバ
ッファ280に格納される。また、状frIA4には照
合結果が格納されてないので、照合結果は出力されない
。
るので説明を簡略する。まず、バッファ280に登録さ
れている、現状態番号である状態○における照合動作を
行なう。この場合記述されてないので次の現状態番号で
ある状態4について同様に照合を行なう。状態5への遷
移が記述されているので、状態5が次状態番号としてバ
ッファ28↓に格納される。また,状態5には照合結果
が格納されてないので、照合結果は出力されない。
。このステップではトークンが2つから3つに増加して
いるので詳細に説明する。
る状態遷移テーブル220より次状態番号として1が出
力され、レジスタ250に格納される。コンパレータ2
52はレジスタ251に格納されている初期状態番号で
あるOとレジスタ250に格納されている次状態番号で
ある工を比較する。この場合,等しくないのでセレクタ
262は次状態番号303を選択する。状態1における
検索結果テーブルの検索ターム番号はOであるので照合
結果306は出力されない。マルチプレクサ260では
、バッファ280が選択されているので、バッファ28
0に次状態番号である1が始点状態番号に続く2つめの
次状態番号として格納される。
され、文字コード302と次状態番号である6をアドレ
スとする状態遷移テーブル220より次状態番号として
7が出力され、レジスタ250に格納される。コンパレ
ータ252はレジスタ251に格納されている初期状態
番号であるOとレジスタ250に格納されている次状態
番号である7を比較する。この場合、等しくないのでセ
レクタ262は次状態番号を選択する。状態7における
検索結果テーブルの検索ターム番号はOであるので照合
結果306は出力されない,マルチプレクサ260では
、バッファ280が選択されているので、バッファ28
0に次状態番号である7が3つめの次状態番号として格
納される。バッファ281からは全ての現状態番号が読
み取られたので、終了信号307が発生する。
択し、セレクタ261はバッファ280を選択すること
になる。すなわち、バッファ280内の3つの次状態番
号が3つの現状態番号として、次の文字に対する遷移に
用いられることになる。
1に読み込まれる。すると、文字コード302と次状態
番号であるOをアドレスとする状態遷移テーブル220
より次状態番号として0が出力され、レジスタ250に
格納される。コンパレータ252はレジスタ251に格
納されている初期状態番号であるOとレジスタ250に
格納されている次状態番号であるOを比較する。この場
合、等しいのでセレクタ262では次状態番号303が
選択されない.このため次状態番号は、バッファ281
に格納されないことになる。
読み出され、文字コード302と次状態番号であるOを
アドレスとする状態遷移テーブル220より次状態番号
としてOが出力され、レジスタ250に格納される。コ
ンパレータ252はレジスタ251に格納されている初
期状態番号であるOとレジスタ250に格納されている
次状態番号である0を比較する。この場合、等しいので
セレクタ262では次状態番号が選択されない。
ことになる。
の消滅を実現している。
読み出され、文字コード302と次状態番号である7を
アドレスとする状態遷移テーブル220より次状態番号
として8が出力され、レジスタ250に格納される。コ
ンパレータ252はレジスタ251に格納されている初
期状態番号である0とレジスタ250に格納されている
次状態番号である8を比較する。この場合,等しくない
のでセレクタ262では次状態番号303が選択される
。
番号は1であるので検索ターム番号として1が処合結果
306として出力される。マルチプレクサ260では、
バッファ281が選択されているので、バッファ281
に次状態番号である8が始点状態番号に続く2つめの次
状態番号として格納される。
ので,終了信号307が発生する。
択し、セレクタ261はバッファ281を選択する。す
なわち、2つの次状態番号が2つの現状態番号として、
次の文字に対する遷移に用いられることを示している。
フェイス″という文字列の検索を実現している。
ることにより、「フェイル」という概念を必要としない
文字列検索方式を実現できる。このため、オートマトン
作成時間を短くすることができ、状態数を少なくできる
ため状態遷移テーブルをコンパクトにできるという利点
がある。
た検索、検索タームにl文字のd o n’tcare
文字や可変長don’ t care文字に指定した
検索、上限指定,下限指定、上下限指定の可能な文字距
離演算を行った検索、検索タームと1文字違った文字列
を検索する1文字誤り許容検索、および、検索タームと
工文字入れ替わった文字列を検索する1文字入れ替わり
検索などの検索機能をオートマトンの状態数が少なくで
きるためオートマトンの作成時間が短くて済み、更に、
状態遷移テーブルをコンパクトにできるためハードウェ
ア量の少ない文字列検索装置を実現することができる。
検索回路の実施例の構成を示すブロック図、第2図,第
3図,第5図,第7図は従来の有限オートマトンによる
文字列検索原理を表した説明図、第4図,第6図,第8
図,はフェイルテーブルの説明図、第9図,第10図,
第11図,第12図,第l3図,第l4図,第15図,
第16図、は本発明を用いた有限オートマトンによる文
字列検索方法の原理を表した説明図、第l7図は本発明
を用いた状態遷移テーブルの説明図を表した説明図、第
l8図は検索結果テーブルの説明図、件判定手段、10
4・・・記憶装置制御手段、↓O5・・・文字列記憶手
段、200・・・文字列照合手段、220・・・状態遷
移テーブル、230・・・フェイル検出器、260・・
・照合結果テーブル,303・・・次状態番号、305
・・・現状態番号、403・・・初期状態を示す矢印。
Claims (1)
- 【特許請求の範囲】 1、コード表現された文字で構成される被検索文字列中
に複数の検索対象文字列が存在するか否かを一括して判
定する有限オートマトンを用いた文字列検索方法におい
て、複数状態からの遷移を同一の状態に遷移させること
により状態数を減らすことを特徴とする文字列検索方法
。 2、コード表現された文字で構成される被検索文字列中
に複数の検索対象文字列が存在するか否かを一括して判
定する有限オートマトンを用いた文字列検索方法におい
て、被検索対象文字と検索対象文字と照合時に、オート
マトンのどの状態で該照合を行なうべき状態かを示すト
ークンを設け、始点状態では常に該照合が一致したかを
監視し、該照合の結果が一致した場合には、新たなトー
クンを生成すると共に、該トークンをオートマトンに従
い遷移先状態に移動し、始点以外の該トークンが置かれ
ている状態では該照合の結果が一致した場合にオートマ
トンに従い該トークンを遷移先状態に移動し、該照合が
一致しない場合は該トークンを消滅させるオートマトン
状態遷移制御方法を用いたことを特徴とする文字列検索
方法。 3、異表記文字列群を検索するための有限オートマトン
を用いた文字列許容検索方法において、検索対象文字列
から異表記を複合語表現形式A(式1)で作成し、最も
内側の括弧の中の部分文字列群において、先頭文字から
順に、同一の遷移状態を始点にしてオートマトンを作成
し、同じ文字なら同じ状態を遷移先状態として生成し、
異なる場合は新たな遷移先状態を生成し、該部分文字列
群の末尾文字で遷移先状態を同一状態にまとめ、網形式
にオートマトンの遷移を記述することを特徴とする文字
列検索方法。
Priority Applications (12)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1231567A JP2880192B2 (ja) | 1989-09-08 | 1989-09-08 | 文字列検索方法及び装置 |
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 |
DE69032712T DE69032712T2 (de) | 1989-06-14 | 1990-06-14 | Hierarchischer vorsuch-typ dokument suchverfahren, vorrichtung dazu, sowie eine magnetische plattenanordnung für diese vorrichtung |
EP90909360A EP0437615B1 (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 true JPH0395672A (ja) | 1991-04-22 |
JP2880192B2 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) |
Cited By (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 |
JP2011186569A (ja) * | 2010-03-05 | 2011-09-22 | National Printing Bureau | 要素列の近似的な照合又は検索及びその方法を実行するためのプログラムを格納した記録媒体 |
JPWO2010044123A1 (ja) * | 2008-10-14 | 2012-03-08 | 三菱電機株式会社 | 検索装置、検索用索引作成装置、および検索システム |
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 |
-
1989
- 1989-09-08 JP JP1231567A patent/JP2880192B2/ja not_active Expired - Lifetime
Cited By (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 |
JPWO2010044123A1 (ja) * | 2008-10-14 | 2012-03-08 | 三菱電機株式会社 | 検索装置、検索用索引作成装置、および検索システム |
JP2011186569A (ja) * | 2010-03-05 | 2011-09-22 | National Printing Bureau | 要素列の近似的な照合又は検索及びその方法を実行するためのプログラムを格納した記録媒体 |
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 |
---|---|
JP2880192B2 (ja) | 1999-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Morrison | PATRICIA—practical algorithm to retrieve information coded in alphanumeric | |
WO2008065735A1 (fr) | Procédé de division/connexion pour un arbre de nœuds couplé et programme | |
US6430557B1 (en) | Identifying a group of words using modified query words obtained from successive suffix relationships | |
JP2986865B2 (ja) | データ検索方法および装置 | |
US5081608A (en) | Apparatus for processing record-structured data by inserting replacement data of arbitrary length into selected data fields | |
US20020099698A1 (en) | Pattern retrieving method, pattern retrieval apparatus, computer-readable storage medium storing pattern retrieval program, pattern retrieval system, and pattern retrieval program | |
JPH0315980A (ja) | 文字列検索装置 | |
JPH0395672A (ja) | 文字列検索方法及び装置 | |
JPH1027183A (ja) | データ登録方法および装置 | |
JP3459049B2 (ja) | 文字列検索方法およひ装置 | |
JP2825009B2 (ja) | 記号列検索方法および装置 | |
JPH03131969A (ja) | 記号列検索方法および検索装置 | |
JPH11353316A (ja) | 省略語補完装置 | |
JPS61262924A (ja) | 電子フアイル装置 | |
JPH04340164A (ja) | マルチキーワード情報検索処理方式および検索ファイル作成装置 | |
JPH10177582A (ja) | 最長一致検索方法及び装置 | |
JPH0261768A (ja) | 電子辞書装置及び電子辞書検索方法 | |
JP2001092830A (ja) | 文字列の照合装置およびその方法 | |
EP0649106A1 (en) | Compactly stored word groups | |
JP2773657B2 (ja) | 文字列検索装置 | |
JP4061283B2 (ja) | 字句をデータに変換する装置、方法及びプログラム | |
JP2002063202A (ja) | 情報検索システムおよび方法 | |
JPH02148174A (ja) | Ocrによる住所データベース検索装置 | |
JPH04290158A (ja) | 文書作成装置 | |
JPH0869455A (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 |