JPH02109167A - 文字列検索方法及び装置 - Google Patents
文字列検索方法及び装置Info
- Publication number
- JPH02109167A JPH02109167A JP63260616A JP26061688A JPH02109167A JP H02109167 A JPH02109167 A JP H02109167A JP 63260616 A JP63260616 A JP 63260616A JP 26061688 A JP26061688 A JP 26061688A JP H02109167 A JPH02109167 A JP H02109167A
- Authority
- JP
- Japan
- Prior art keywords
- information
- character
- string
- character string
- keyword
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は文字列検索方法及び装置、更に詳しく言えば、
文献等の大量の文字列の中から特定の文字列すなわちキ
ーワードを高速に検索する方法及び装置に関するもので
ある。
文献等の大量の文字列の中から特定の文字列すなわちキ
ーワードを高速に検索する方法及び装置に関するもので
ある。
従来、大量の文字列中から複数のキーワードを検索する
方法の有効なものとして、キーワードから状態遷移図を
作り検索すべきテキストの文字列の各文字を順次、上記
状態遷移図とつき合わせてキーワード検索を行う方法が
知られている(コミュニケーション オブ ニー・シー
・エム、18゜6 (1975年6月)第333頁から
第340頁(Co+am、 ACM。
方法の有効なものとして、キーワードから状態遷移図を
作り検索すべきテキストの文字列の各文字を順次、上記
状態遷移図とつき合わせてキーワード検索を行う方法が
知られている(コミュニケーション オブ ニー・シー
・エム、18゜6 (1975年6月)第333頁から
第340頁(Co+am、 ACM。
18、6 (June 1975) pp、333−3
40))。
40))。
上記従来技術(以下EX S A法と呼ぶ)は、例えば
7キーワードとして、「並列」、「計算機」、「制御方
法」の3つが与えられると、第12図(a)のような遷
移図を作成する。そしてテキストの各文字を順次この遷
移図とつき合わせて検索を行う。第10図(a)の例で
は初期状態0にある時、入力テキスト文字が″並″′で
あれば状態1に遷移し、文字が″計″であれば状態3に
遷移し、文字が″制″であれば状態6に遷移する。状態
1にあって、テキスト文字列 状態2は最終状態であり、キーワード「並列」が検索さ
れたことがわかる。このようにF S A Vjでは複
数のキーワードが検索できる効率の良い方法である。実
際のFSA法による文字列検索処理は、第12図(a)
の状態遷移図を第1zlffl(b)のような状態遷移
表にして第12図(C)のようなプロゲラ11で実現さ
れている。
7キーワードとして、「並列」、「計算機」、「制御方
法」の3つが与えられると、第12図(a)のような遷
移図を作成する。そしてテキストの各文字を順次この遷
移図とつき合わせて検索を行う。第10図(a)の例で
は初期状態0にある時、入力テキスト文字が″並″′で
あれば状態1に遷移し、文字が″計″であれば状態3に
遷移し、文字が″制″であれば状態6に遷移する。状態
1にあって、テキスト文字列 状態2は最終状態であり、キーワード「並列」が検索さ
れたことがわかる。このようにF S A Vjでは複
数のキーワードが検索できる効率の良い方法である。実
際のFSA法による文字列検索処理は、第12図(a)
の状態遷移図を第1zlffl(b)のような状態遷移
表にして第12図(C)のようなプロゲラ11で実現さ
れている。
に述のようにFSA法は優れた方法であるが、処理が逐
次的になるという問題点がある1、第12図(c)に示
すようにFSA法では初期化(+203’lの後、テキ
ストの文字を1個入力する毎に(+204)、まず現在
の状態が最終状態か否かを調べ(1205)。
次的になるという問題点がある1、第12図(c)に示
すようにFSA法では初期化(+203’lの後、テキ
ストの文字を1個入力する毎に(+204)、まず現在
の状態が最終状態か否かを調べ(1205)。
そうであればキーワードの見つかったテキスト位置と長
さを出力する(1206)。そして現状態とテキスト文
字から遷移表を調べて次に遷移すべき状態を決定しく+
207.1208.1,209. !210.1211
)、状態とテキスj・位置を更新して(+212)、次
のテキスト文字について同様の処理をくり返す。
さを出力する(1206)。そして現状態とテキスト文
字から遷移表を調べて次に遷移すべき状態を決定しく+
207.1208.1,209. !210.1211
)、状態とテキスj・位置を更新して(+212)、次
のテキスト文字について同様の処理をくり返す。
つまりFSA法では、遷移先状態は各テキスト文字の処
理の最後(1212)でないと決定せず、かつ次のテキ
スト文字の処理は遷移先状態が決定しないと開始するこ
とができない。従って処理が本質的に逐次的となる。こ
のことは従来の汎用計算機ではもともと各命令は逐次的
に実行されるので欠点とはならない。しかし専用のハー
ドウェアでパイプライン/並列処理などの技術を用いて
高速化しようとした場合には、上述の逐次性により適用
できないという問題点があった。
理の最後(1212)でないと決定せず、かつ次のテキ
スト文字の処理は遷移先状態が決定しないと開始するこ
とができない。従って処理が本質的に逐次的となる。こ
のことは従来の汎用計算機ではもともと各命令は逐次的
に実行されるので欠点とはならない。しかし専用のハー
ドウェアでパイプライン/並列処理などの技術を用いて
高速化しようとした場合には、上述の逐次性により適用
できないという問題点があった。
従って、本発明の主な1]的は、大量の文字列のテキス
ト文字列情報から、パイプライン処理あるいはベクトル
計算処理等の並列処理によって、高速にキーワードを検
索する文字列検索方法及びそのための装置を提供するこ
とである。
ト文字列情報から、パイプライン処理あるいはベクトル
計算処理等の並列処理によって、高速にキーワードを検
索する文字列検索方法及びそのための装置を提供するこ
とである。
本発明の他の目的は複数キーワードに対しても効率が良
くかつパイプライン処理などの専用ハードウェアや通常
のベクトル計算機による高速化に適した新しい文字列検
索方法と、その専用装置を提供することにある。
くかつパイプライン処理などの専用ハードウェアや通常
のベクトル計算機による高速化に適した新しい文字列検
索方法と、その専用装置を提供することにある。
本発明の更に他の目的はFSA法に基づく文字列検索方
法に関して、この方法を四則・論理演算命令を備えた通
常のベクトル計算機上で高速処理する文字列検索方法を
提供することである。
法に関して、この方法を四則・論理演算命令を備えた通
常のベクトル計算機上で高速処理する文字列検索方法を
提供することである。
本発明は上記目的を達成するため、テキスト文字列中か
ら、単一又は複数のキーワード文字列を検索する文字列
検索処理を、テキスト文字列の情報から、キーワード文
字列及びそれに類似する文字列とからなる候補文字列群
の情報を検出する第1のステップと、第1のステップで
得られた候補文字列群の情報からキーワード文字列に対
応する情報を選択する第2ステップを行い、特に第1の
ステップをパイプライン的処理を行うことによって大量
のテキスト文字列を高速に絞り込み、候補文字列群の情
報を高速で得て、文字検索処理全体の高速化を実現して
いる。
ら、単一又は複数のキーワード文字列を検索する文字列
検索処理を、テキスト文字列の情報から、キーワード文
字列及びそれに類似する文字列とからなる候補文字列群
の情報を検出する第1のステップと、第1のステップで
得られた候補文字列群の情報からキーワード文字列に対
応する情報を選択する第2ステップを行い、特に第1の
ステップをパイプライン的処理を行うことによって大量
のテキスト文字列を高速に絞り込み、候補文字列群の情
報を高速で得て、文字検索処理全体の高速化を実現して
いる。
上記第1ステップは前処理として、検索の対象となるテ
キスト文字列に現われる全種類の文字に対して、キーワ
ード文字列の中でいかなる状態で表われるかの出現形態
情報を作る。
キスト文字列に現われる全種類の文字に対して、キーワ
ード文字列の中でいかなる状態で表われるかの出現形態
情報を作る。
上記前処理後テキスト文字列の情報から各文字の情報を
順次取り出し、上記出現形態情報と照合し、個別の出現
形態情報に変換し、 同時に、現在検索中の候補文字列の長さの情報をカウン
タに保持し、 上記個別の出現形態情報と上記長さの情報を利用して、
上記順次取り出される各文字を候補文字列に加えるか否
か判定し、その判定に基づいて上記カウンタの長さの情
報を更新し、 F記判定で、上記個別の出現形態情報から検索中の文字
の情報が候補文字列の−と判別したとき、その長さ情報
及び上記テキスト文字列における位置の情報を候補文字
列群の情報として出力する。
順次取り出し、上記出現形態情報と照合し、個別の出現
形態情報に変換し、 同時に、現在検索中の候補文字列の長さの情報をカウン
タに保持し、 上記個別の出現形態情報と上記長さの情報を利用して、
上記順次取り出される各文字を候補文字列に加えるか否
か判定し、その判定に基づいて上記カウンタの長さの情
報を更新し、 F記判定で、上記個別の出現形態情報から検索中の文字
の情報が候補文字列の−と判別したとき、その長さ情報
及び上記テキスト文字列における位置の情報を候補文字
列群の情報として出力する。
上記出現形態情報としては、最も簡単なものは文字が、
単一又は複数のキーワード文字列に現われるか否かの1
ビツトの情報や、実施例で詳細に説明する如く、キーワ
ードの文字列の中の位置(最初、最後、中間等)の情報
、あるいはキーワード文字列群の最短キーワードの文字
数以下か否かの情報等がある。
単一又は複数のキーワード文字列に現われるか否かの1
ビツトの情報や、実施例で詳細に説明する如く、キーワ
ードの文字列の中の位置(最初、最後、中間等)の情報
、あるいはキーワード文字列群の最短キーワードの文字
数以下か否かの情報等がある。
上記第1のステップを実行する専用装置として、上記出
現形態情報を格納する記憶手段と、検索すべきテキスト
文字列の各文字情報を一定周期で入力する入力手段と、
上記各文字情報をアドレス信号に変えるアドレス手段と
、In記記憶手段から1一記アドレス手段で指定された
アドレスの個別の出現形態情報を得る手段、検索中の候
補文字列の長さを計数するカウンタと、上記カウンタの
値及び上記個別の出現形態情報を入力とし、 −,1:
記検出中の候補文字列の次のテキスト文字を候補文字列
に加えるか否かを判定し、上記カウンタの値を更新する
カウンタ制御手段を設けて構成される。
現形態情報を格納する記憶手段と、検索すべきテキスト
文字列の各文字情報を一定周期で入力する入力手段と、
上記各文字情報をアドレス信号に変えるアドレス手段と
、In記記憶手段から1一記アドレス手段で指定された
アドレスの個別の出現形態情報を得る手段、検索中の候
補文字列の長さを計数するカウンタと、上記カウンタの
値及び上記個別の出現形態情報を入力とし、 −,1:
記検出中の候補文字列の次のテキスト文字を候補文字列
に加えるか否かを判定し、上記カウンタの値を更新する
カウンタ制御手段を設けて構成される。
上記第1ステップを実行する他の実施形態は、上記出現
形態情報を出現情報ベクトルとして生成し、上記テキス
ト文字列の各文字に対して上記出現情報ベクトル内の上
記各文字に対応する出現情報を読み出しテキスト文字列
内の各文字に一意に対応する形で要素となる検出状態ベ
クトルを生成し、上記検出状態ベクトルに格納された出
現情報かを用いて、対応するテキスト文字列の各文字が
候補文字列を構成するか否かを判定する。
形態情報を出現情報ベクトルとして生成し、上記テキス
ト文字列の各文字に対して上記出現情報ベクトル内の上
記各文字に対応する出現情報を読み出しテキスト文字列
内の各文字に一意に対応する形で要素となる検出状態ベ
クトルを生成し、上記検出状態ベクトルに格納された出
現情報かを用いて、対応するテキスト文字列の各文字が
候補文字列を構成するか否かを判定する。
」:記憶の実施形態の方法は四則演算機能を持つベクト
ル計算機によって実現される。
ル計算機によって実現される。
上記第2のステップとしては従来知られている文字列検
索方法が適用されるが、従来知られている上記FSA法
にベタ1−ル処理によって実現される。
索方法が適用されるが、従来知られている上記FSA法
にベタ1−ル処理によって実現される。
すなわち、第1ステップで得られた候補文字列群を複数
の部分文字列とし、上記部分文字列上のどの文字が検索
処理の対象となっているかを示す検索位置情報を作り、
上記部分文字列について検索位置情報をもとに文字を読
み出して、その読み出した文字をベクトル形式の入力文
字ベクトルとして並び換え、上記各部分文字列について
検索処理の任意の時点で各部分文字列がキーワード文字
列中のどのキーワードの文字とまで一致しているかを示
す状態からなる状態ベクトルを保持し、E記各部分文字
列について上記入力文字ベクトルと上記状態ベクトルと
から新しい一致状態へと遷移するための状態遷移ベクト
ルをキーワード文字列から生成する。次に一上記状態遷
移ベクトルを用いて、上記保持された状態ベクトルと上
記入力文字ベクトルとから各部分文字列に対して状態遷
移を行い、上記状態ベグ1−ルの各要素についてキーワ
ード文字列を検出したか否かな判定する受理判定する方
法が実施される。
の部分文字列とし、上記部分文字列上のどの文字が検索
処理の対象となっているかを示す検索位置情報を作り、
上記部分文字列について検索位置情報をもとに文字を読
み出して、その読み出した文字をベクトル形式の入力文
字ベクトルとして並び換え、上記各部分文字列について
検索処理の任意の時点で各部分文字列がキーワード文字
列中のどのキーワードの文字とまで一致しているかを示
す状態からなる状態ベクトルを保持し、E記各部分文字
列について上記入力文字ベクトルと上記状態ベクトルと
から新しい一致状態へと遷移するための状態遷移ベクト
ルをキーワード文字列から生成する。次に一上記状態遷
移ベクトルを用いて、上記保持された状態ベクトルと上
記入力文字ベクトルとから各部分文字列に対して状態遷
移を行い、上記状態ベグ1−ルの各要素についてキーワ
ード文字列を検出したか否かな判定する受理判定する方
法が実施される。
本発明ではテキスト文字列の中にあるキーワード文字列
の存在する位置、文字数、あるいはキーワード文字の内
容を探索する方法において、検索処理が2段階で行われ
、第1段階の第1次絞り込み処理ではキーワード文字列
を含む可能性の強い候補文字群が検索される。又第2段
階の第2次絞り込み処理では上記候補文字群からキーワ
ード文字列を検索する。
の存在する位置、文字数、あるいはキーワード文字の内
容を探索する方法において、検索処理が2段階で行われ
、第1段階の第1次絞り込み処理ではキーワード文字列
を含む可能性の強い候補文字群が検索される。又第2段
階の第2次絞り込み処理では上記候補文字群からキーワ
ード文字列を検索する。
第2次絞り込み処理は従来の文字列探索方法、あるいは
本発明の実施例として示した従来知られているFSA法
をベクトル処理的に行うこともできる。
本発明の実施例として示した従来知られているFSA法
をベクトル処理的に行うこともできる。
第1次絞り込み処理はキーワード文字列そのものではな
く候補文字列を検索するものであり、以下の実施例に示
す如く、パイプライン動作を行う専用装置あるいはベク
トル計算機等でパイプラインあるいは並列処理が可能と
なるため、極めて高速の処理を実現することができる。
く候補文字列を検索するものであり、以下の実施例に示
す如く、パイプライン動作を行う専用装置あるいはベク
トル計算機等でパイプラインあるいは並列処理が可能と
なるため、極めて高速の処理を実現することができる。
上記第1次絞り込み処理を専用装置で実現する場合、上
記記憶手段から出現形態情報を読み出すまでにテキスト
文字列の文字の読み出し、その文字を上記記憶装置のア
ドレスに変え、−上記記憶装置からの出現形態情報の読
み出す過程が1つの文字の処理について必要となるが、
出現形態情報は、その処理対象の文字がキーワード文字
列中に出現するか否か、あるいはキーワード文字列中で
どのような位置に出現するかを表わす情報であるため、
他の文字との関係を考慮することなく、−意に決定する
。従って、検索状態を表わすカウンタ値に関係なく先行
的な読み出しが可能であり、従って、相続く複数の文字
の処理を一部重複して、すなわち、1つの文字について
カウンタの値を更新中に、次の文字については出現状態
情報の読み出しを行い、更に次の文字についてはテキス
ト文字列から読み出しアドレス情報に変換する、すなわ
ちパイプライン処理を行うことができ、高速処理が実現
される。
記記憶手段から出現形態情報を読み出すまでにテキスト
文字列の文字の読み出し、その文字を上記記憶装置のア
ドレスに変え、−上記記憶装置からの出現形態情報の読
み出す過程が1つの文字の処理について必要となるが、
出現形態情報は、その処理対象の文字がキーワード文字
列中に出現するか否か、あるいはキーワード文字列中で
どのような位置に出現するかを表わす情報であるため、
他の文字との関係を考慮することなく、−意に決定する
。従って、検索状態を表わすカウンタ値に関係なく先行
的な読み出しが可能であり、従って、相続く複数の文字
の処理を一部重複して、すなわち、1つの文字について
カウンタの値を更新中に、次の文字については出現状態
情報の読み出しを行い、更に次の文字についてはテキス
ト文字列から読み出しアドレス情報に変換する、すなわ
ちパイプライン処理を行うことができ、高速処理が実現
される。
又他の実施例である、第1次絞り込み処理をべクトル計
算機で処理する場合、テキスト文字列情報は、各文字が
キーワード文字列に現われる文字か否かの出現情報を要
素とした検出情報ベクトルに変換され、同一の検出情報
ベクトル要素の配列状態から、それが候補文字列を構成
するか(Fかを判定処理をベクトル処理によって行うも
のであり、上記検出情報ベクトルの生成は、−上記判定
処理に先行して独立して実行できるものであり、かつ上
記判定処理のベクトル処理は、間接アドレスに基づくベ
クトル要素の移動や、ベクl−ル間の差の演算の極めて
簡単な処理で並列的に行われるため高速処理が実現でき
る。
算機で処理する場合、テキスト文字列情報は、各文字が
キーワード文字列に現われる文字か否かの出現情報を要
素とした検出情報ベクトルに変換され、同一の検出情報
ベクトル要素の配列状態から、それが候補文字列を構成
するか(Fかを判定処理をベクトル処理によって行うも
のであり、上記検出情報ベクトルの生成は、−上記判定
処理に先行して独立して実行できるものであり、かつ上
記判定処理のベクトル処理は、間接アドレスに基づくベ
クトル要素の移動や、ベクl−ル間の差の演算の極めて
簡単な処理で並列的に行われるため高速処理が実現でき
る。
上記、出現情報を用いてベクトル処理を行う方法は、上
記第1次絞り込み処理のみでなく、上記入力テキスト文
字列が一定の条件を満たす複数の部分文字列に分割でき
るときは1分割された部分文字列から取り出された要素
をベクトル要素とするベクトル情報にして、上記複数の
部分文字列に対応してFSA法を適用することによって
、[?SA法の並列・パイプライン処理ができ、特に、
上記候補文字群を上記複数の部分文字列とみなしたとき
、上記FSA法のベクトル処理が上記第2次絞り込み処
理に適用できる。
記第1次絞り込み処理のみでなく、上記入力テキスト文
字列が一定の条件を満たす複数の部分文字列に分割でき
るときは1分割された部分文字列から取り出された要素
をベクトル要素とするベクトル情報にして、上記複数の
部分文字列に対応してFSA法を適用することによって
、[?SA法の並列・パイプライン処理ができ、特に、
上記候補文字群を上記複数の部分文字列とみなしたとき
、上記FSA法のベクトル処理が上記第2次絞り込み処
理に適用できる。
第1図は本発明による文字列検索方法を実施する文字列
検索装置の一実施例の構成を示す図である。本実施例は
特に複数のキーワードに対しても効率よくパイプライン
処理を行う専用装置を使用するものである。
検索装置の一実施例の構成を示す図である。本実施例は
特に複数のキーワードに対しても効率よくパイプライン
処理を行う専用装置を使用するものである。
同図において、主記憶装置10】には検索すべき文字列
(すなわち、テキスト文字列)の情報を格納する領域1
02.キーワード群の情報を格納する領域144.14
5及び146.−Jz記テキストの各文字がキーワード
文字列中に出現するか否か、あるいはキーワード文字列
中でどのような位置に出現するかを示す出現形態情報を
格納する領域103.テキスト文字列からキーワー1く
文字列又はそれに類似する文字列(以下候補文字列群と
呼ぶ)の情報、すなわち、第1次絞り込み結果を格納す
る領域104、検索されたキーワード文字列の情報、す
なわち、第2次絞り込み結果を格納する領域105及び
プロセッサ118の動作を行わせるテキストサチプログ
ラムが格納される領域106を含む。以下、簡明のため
上記各領域に格納された情報を領域番号で示す。
(すなわち、テキスト文字列)の情報を格納する領域1
02.キーワード群の情報を格納する領域144.14
5及び146.−Jz記テキストの各文字がキーワード
文字列中に出現するか否か、あるいはキーワード文字列
中でどのような位置に出現するかを示す出現形態情報を
格納する領域103.テキスト文字列からキーワー1く
文字列又はそれに類似する文字列(以下候補文字列群と
呼ぶ)の情報、すなわち、第1次絞り込み結果を格納す
る領域104、検索されたキーワード文字列の情報、す
なわち、第2次絞り込み結果を格納する領域105及び
プロセッサ118の動作を行わせるテキストサチプログ
ラムが格納される領域106を含む。以下、簡明のため
上記各領域に格納された情報を領域番号で示す。
テキストサーチユニット117はプロセッサ118によ
って起動され、テキスト文字列102.キーワード文字
列144.145.146及び出現形態情報103を入
力として、上記第1次絞り込み結果祭パイプライン処理
によって得、これを領域104に第1次絞り込み結果と
して格納する専用処理装置である。
って起動され、テキスト文字列102.キーワード文字
列144.145.146及び出現形態情報103を入
力として、上記第1次絞り込み結果祭パイプライン処理
によって得、これを領域104に第1次絞り込み結果と
して格納する専用処理装置である。
第2図は説明の都合上主記憶装置101に格納されるデ
ータの例を示す。同図においてテキスト文字列102は
「行列計算法及び並列計算機の制御方法」で、キーワー
ド群を「並列」、「計算機」及び「制御方法」とする。
ータの例を示す。同図においてテキスト文字列102は
「行列計算法及び並列計算機の制御方法」で、キーワー
ド群を「並列」、「計算機」及び「制御方法」とする。
なお図面は簡明のため文字で示しているが、実際には2
バイトの文字コードで記憶されている。テキスト文字列
左の数字はインデックス、すなわち、テキスト文字列の
配列位置を表わす。
バイトの文字コードで記憶されている。テキスト文字列
左の数字はインデックス、すなわち、テキスト文字列の
配列位置を表わす。
出現形態情報1.03(4ビツト)はテキスト文字列に
表われる全種類の文字に対し、その各文字がキーワード
に対して、いかなる表われ方を示す情報である。領域1
03の左側の数字は前記2バイトの文字コードを10進
数で表わしたものである。例えば文字「並」の文字コー
ドは」0進数で表わすと130となり、その出現形態は
” 1.100 ”で表わされる。この各ビットの意味
については後で説明する。
表われる全種類の文字に対し、その各文字がキーワード
に対して、いかなる表われ方を示す情報である。領域1
03の左側の数字は前記2バイトの文字コードを10進
数で表わしたものである。例えば文字「並」の文字コー
ドは」0進数で表わすと130となり、その出現形態は
” 1.100 ”で表わされる。この各ビットの意味
については後で説明する。
前記第1次絞り込み結果104の左設の数字は候補文字
列の先頭文字のテキスト文字列102におけるインデッ
クス、石段の数字は候補文字列の長さ。
列の先頭文字のテキスト文字列102におけるインデッ
クス、石段の数字は候補文字列の長さ。
例えば第1候補文字列の(2,3)はテキスト文字列1
02のインデックス2の文字「計」から始まる長さ3の
文字列「計算法」を指している。第2図の第1次絞り込
み結果104は候補文字列群は「計算法」、「並列」、
「計算機」及び「制御方法」であることを表わしている
。
02のインデックス2の文字「計」から始まる長さ3の
文字列「計算法」を指している。第2図の第1次絞り込
み結果104は候補文字列群は「計算法」、「並列」、
「計算機」及び「制御方法」であることを表わしている
。
第2次絞り込み結果105は候補文字列群の情報104
から、キーワードに完全に−・致したもののみを選んで
記憶したもので、数字の内容は第1次絞り込み結果の場
合と同じ表記法である。上記候補文字列群の中で「計算
法」はキーワード群144゜145、146にないので
雑音として除かれている。
から、キーワードに完全に−・致したもののみを選んで
記憶したもので、数字の内容は第1次絞り込み結果の場
合と同じ表記法である。上記候補文字列群の中で「計算
法」はキーワード群144゜145、146にないので
雑音として除かれている。
なお、領域104.105の情報は左、右それぞれ4バ
イトのコードで表わされる。
イトのコードで表わされる。
次に、上記文字列検索装置による文字列検索処理の概要
について説明する。
について説明する。
第3図は本発明の文字列検索方法の処理の概要を示す。
処理ユニット118はテキストサーチプログラム106
を開始する。まず、第1次絞り込み処理ルーチン3Iが
コールされると、キーワード群144.145゜146
を入力とし出現形態情報(出現形態マツプと呼ぶ)を作
り、主記憶装置+01の領域】03に格納する。この8
現形態マツプ103の詳細については後述する。
を開始する。まず、第1次絞り込み処理ルーチン3Iが
コールされると、キーワード群144.145゜146
を入力とし出現形態情報(出現形態マツプと呼ぶ)を作
り、主記憶装置+01の領域】03に格納する。この8
現形態マツプ103の詳細については後述する。
上記出現形態マツプ103が形成された後、テキストサ
ーチ命令が入力されると、処理ユニット118はテキス
トサーチユニット117を起動し、テキスト文字列10
2.キーワー1く群144〜146.出現形態マツプ1
03の情報を主記憶装置!01から入力する。
ーチ命令が入力されると、処理ユニット118はテキス
トサーチユニット117を起動し、テキスト文字列10
2.キーワー1く群144〜146.出現形態マツプ1
03の情報を主記憶装置!01から入力する。
サーチユニット117は後述の構成と動作によって、候
補文字列を検索し、その結果を領域104に格納する。
補文字列を検索し、その結果を領域104に格納する。
この処理ルーチン31が完了すると、第2次絞り込みル
ーチン;32がコールされる。
ーチン;32がコールされる。
第2次絞り込み処理ルーチン32はテキスト文字列10
2.キーツー1−群144〜146と第】次絞り込み処
理結果104の情報を入力とし、処理ユニツM18で、
前述の如き雑音を除き、最終結果を得て、これを主記憶
装置+01の領域305に格納し、テキス(・サーチ処
理を終rする。第2次絞り込み処理ルチン32では、従
来の文字列検索法、本実施例ではFSA法を第1次絞り
込み結果104の指す各候補文字列について適用する。
2.キーツー1−群144〜146と第】次絞り込み処
理結果104の情報を入力とし、処理ユニツM18で、
前述の如き雑音を除き、最終結果を得て、これを主記憶
装置+01の領域305に格納し、テキス(・サーチ処
理を終rする。第2次絞り込み処理ルチン32では、従
来の文字列検索法、本実施例ではFSA法を第1次絞り
込み結果104の指す各候補文字列について適用する。
第1次絞り込み処理ルーチンではテキストサーチ命令ッ
l−117によりパイプライン的処理が行われ高速に候
補が絞り込まれる。
l−117によりパイプライン的処理が行われ高速に候
補が絞り込まれる。
以下、上記実施例の各部の構成動作の詳細について説明
する。
する。
=27−
第4図は上記第1次絞り込み処理ルーチン31の内容を
示すフローチャー1−である。
示すフローチャー1−である。
処理ユニット118はサーチプログラム106に従って
、最初に初期化を行う。すなわち、プログラム変数mに
キーワードのうち文字数の最も短いものの長さ(この場
合、キーワード144.145.146のうち最短は[
並列」の2)を代入し、出現形態マツプ103の全エン
トりをOにクリアし、プログラム変数Nにテキスト10
2の長さ(この場合18)を代入する(ステップ401
)。
、最初に初期化を行う。すなわち、プログラム変数mに
キーワードのうち文字数の最も短いものの長さ(この場
合、キーワード144.145.146のうち最短は[
並列」の2)を代入し、出現形態マツプ103の全エン
トりをOにクリアし、プログラム変数Nにテキスト10
2の長さ(この場合18)を代入する(ステップ401
)。
次にキーワード144〜146中の各文字を調べて出現
形態マツプ103を作成する。具体的には各キーワード
について(ステップ佃2)、キーワード中の文字Cq(
キーワードのq番目の文字の意)を順次取り出しくステ
ップ403) 、まず09をあるハツシュ関数hash
によりハツシュし結果をプログラム変数jに代入する(
ステップ404)。ハツシュ関数hashのハツシュ法
はテキストサーチュニノNI7中のハツシュ回路116
のものと同一処理を行うもので後で説明する。ハシシュ
するl]的は出現形態マツプの大きさをできるだけ小さ
くするためである。次に文字C9の出現形態を調べる。
形態マツプ103を作成する。具体的には各キーワード
について(ステップ佃2)、キーワード中の文字Cq(
キーワードのq番目の文字の意)を順次取り出しくステ
ップ403) 、まず09をあるハツシュ関数hash
によりハツシュし結果をプログラム変数jに代入する(
ステップ404)。ハツシュ関数hashのハツシュ法
はテキストサーチュニノNI7中のハツシュ回路116
のものと同一処理を行うもので後で説明する。ハシシュ
するl]的は出現形態マツプの大きさをできるだけ小さ
くするためである。次に文字C9の出現形態を調べる。
はじめに文字C9の出現位置(q番目)と最短キーワー
ド長rnとを比較しくステップ405)、出現位11i
qがIn以前ならば出現形態マツプ103の第jエント
リの第Oビットに“I IIをたてる(ステップ406
)。第2の文字C9がキーワードの先頭に出現するかを
調べ(ステップ407)、出現する場合には出現形態マ
ツプ]03の第9jエントリの第1ビツトを1′″にす
る(ステップ408)。同様に文字C9がキーワドの中
間(先頭と最後以外)に出現するか(ステップ409)
、あるいは文字cqがキーワードの最後に出現するか(
ステップ旧1)を調べ、それぞれ出現形態マツプ103
の第jエントリの第2ビツト及び第3ビツトをLL I
11にする(ステップ410゜412)。以上により
出現形態マツプ103が作成される。この手順を第5図
及び第6図を用いて第2図に示した具体例で説明する。
ド長rnとを比較しくステップ405)、出現位11i
qがIn以前ならば出現形態マツプ103の第jエント
リの第Oビットに“I IIをたてる(ステップ406
)。第2の文字C9がキーワードの先頭に出現するかを
調べ(ステップ407)、出現する場合には出現形態マ
ツプ]03の第9jエントリの第1ビツトを1′″にす
る(ステップ408)。同様に文字C9がキーワドの中
間(先頭と最後以外)に出現するか(ステップ409)
、あるいは文字cqがキーワードの最後に出現するか(
ステップ旧1)を調べ、それぞれ出現形態マツプ103
の第jエントリの第2ビツト及び第3ビツトをLL I
11にする(ステップ410゜412)。以上により
出現形態マツプ103が作成される。この手順を第5図
及び第6図を用いて第2図に示した具体例で説明する。
第5図はハツシュ回路(第1図の回路116と同一の機
能を持つ)の構成を示す図である。入力はC3−C1,
の16ビットであり、出力はA。−A、の10ピノI〜
である。0゜〜C,,のうち出力A、〜A、と接続され
ていないものは無視されることを示している。ずなオ〕
ぢ、ハツシュ法どしては入力C2とC3のul:他論理
和(1・:OR)がA。となり、(、、C,、C,の各
ビン1−がA、、A2.A、に等しく、C10−CI
SビットはΔ。
能を持つ)の構成を示す図である。入力はC3−C1,
の16ビットであり、出力はA。−A、の10ピノI〜
である。0゜〜C,,のうち出力A、〜A、と接続され
ていないものは無視されることを示している。ずなオ〕
ぢ、ハツシュ法どしては入力C2とC3のul:他論理
和(1・:OR)がA。となり、(、、C,、C,の各
ビン1−がA、、A2.A、に等しく、C10−CI
SビットはΔ。
〜A、に等しいことになる。第6図はキーワード144
〜146中の各文字についてその文字コードとハツシュ
結果と出現形態情報とをまとめた表である。
〜146中の各文字についてその文字コードとハツシュ
結果と出現形態情報とをまとめた表である。
例えば、文字「並」についてはその文字コー1−(例え
ばKEISコード)がCA、 C2であり、第5図のハ
ツシュを行うと結果は82 (+6進)となる(10進
130)。さらに文字「並」は最短キーワード長2より
前の位置に出現し、またキーワー1〜「並列」の先頭の
文字であるので、出現形態情報の第0ビツト及び第1ビ
ツトが1となる。また、中間あるいは最後に出現するも
のでないので第2.第3ビツトは′″0″となる。従っ
て出現形態マツプ103の第130エントリは、”11
00”となる。他のキーツー1〜文字についても同様で
あり、出現形態マツプ103中の第6図のハツシュ値が
示す位置にその出現形態情報4ピツ]〜が格納されてい
る。
ばKEISコード)がCA、 C2であり、第5図のハ
ツシュを行うと結果は82 (+6進)となる(10進
130)。さらに文字「並」は最短キーワード長2より
前の位置に出現し、またキーワー1〜「並列」の先頭の
文字であるので、出現形態情報の第0ビツト及び第1ビ
ツトが1となる。また、中間あるいは最後に出現するも
のでないので第2.第3ビツトは′″0″となる。従っ
て出現形態マツプ103の第130エントリは、”11
00”となる。他のキーツー1〜文字についても同様で
あり、出現形態マツプ103中の第6図のハツシュ値が
示す位置にその出現形態情報4ピツ]〜が格納されてい
る。
第1次絞り込み処理ルーチン31のステップ401で初
期化として出現形態マツプ103はオールOにクリアさ
れているので、キーワードに出現しない文字については
対応する出現形態情報は” o o o o ”となる
。
期化として出現形態マツプ103はオールOにクリアさ
れているので、キーワードに出現しない文字については
対応する出現形態情報は” o o o o ”となる
。
さてステップ402〜412により出現形態マツプ10
3の作成が終わると、テキストサーチ命令が発行される
(ステップ4I3)。
3の作成が終わると、テキストサーチ命令が発行される
(ステップ4I3)。
第7図はテキストサーチ命令の内容を示す図である。命
令は32ビツトで構成され、最初の16ビツトは命令の
種類を示すコード7Iであり5次の8ピッ1−は無視さ
れ1次の4ピツI・には3つの汎用レジスタ74.75
及び76を指定する値R1であり、最後の4ビツトには
2つの汎用レジスタ76及び78を指定する値R2でで
ある。汎用レジスタ74にはテキスト文字列102の先
頭の文字のテキスト先頭アドレスが、汎用レジスタ75
には出現形態マツプ103の先頭アドレスが、汎用レジ
スタ76には、第1次絞り込み結果104の先頭アドレ
スが格納されている。汎用レジスタ77には、耐記最短
のキーワード長(プログラム変数mの値、本実施例のn
12)が、汎用レジスタ78にはテキス1へ文字列の長
さ(プログラム変数N (=18)の値)がそれぞれ格
納されている。
令は32ビツトで構成され、最初の16ビツトは命令の
種類を示すコード7Iであり5次の8ピッ1−は無視さ
れ1次の4ピツI・には3つの汎用レジスタ74.75
及び76を指定する値R1であり、最後の4ビツトには
2つの汎用レジスタ76及び78を指定する値R2でで
ある。汎用レジスタ74にはテキスト文字列102の先
頭の文字のテキスト先頭アドレスが、汎用レジスタ75
には出現形態マツプ103の先頭アドレスが、汎用レジ
スタ76には、第1次絞り込み結果104の先頭アドレ
スが格納されている。汎用レジスタ77には、耐記最短
のキーワード長(プログラム変数mの値、本実施例のn
12)が、汎用レジスタ78にはテキス1へ文字列の長
さ(プログラム変数N (=18)の値)がそれぞれ格
納されている。
処理ユニツ1−118は上記テキストサーチ命令を検出
すると、汎用レジスタ74.75.76、77及び78
の値を、それぞれ信号線139c、 +39b、 13
9a。
すると、汎用レジスタ74.75.76、77及び78
の値を、それぞれ信号線139c、 +39b、 13
9a。
+39 e及び139dを介して、テギス1−サーチユ
ニット117のベクトル要素フェッチ回路152.フェ
ッチ回路I54.ベク1−ル要素ストア回路151.制
御論理回路1. I ]へ送られ、テキストサーヂユニ
ット117は起動される。以後処理ユニット+18は制
御回路11.1の中のテキスト制御論理回路211から
の完了報告信号140が来るまで待状態に入る。
ニット117のベクトル要素フェッチ回路152.フェ
ッチ回路I54.ベク1−ル要素ストア回路151.制
御論理回路1. I ]へ送られ、テキストサーヂユニ
ット117は起動される。以後処理ユニット+18は制
御回路11.1の中のテキスト制御論理回路211から
の完了報告信号140が来るまで待状態に入る。
テキストサーチユニット117は起動されると、カウン
タ112〜115をOリセットするとともに主記憶装置
1011の出現形態マツプ103をフェッチ回路154
によりパス120を介して出現形態マツプ格納用RA
M 109にすへて読み込む。次に主記憶装置101」
二のテキスト文字列102の処理に移る。
タ112〜115をOリセットするとともに主記憶装置
1011の出現形態マツプ103をフェッチ回路154
によりパス120を介して出現形態マツプ格納用RA
M 109にすへて読み込む。次に主記憶装置101」
二のテキスト文字列102の処理に移る。
テキスト文字列102はデータバス月9及びベクトル要
素フェッチ回路152を介して、ベクトルフエツチされ
、フェッチデータに含まれるテキスト文字列の各文字は
データバス153を介してレジスタ108に順次セラ1
−される。レジスタ108にセットされたテキスト文字
(2バイト)は、信号線127を介してハツシュ回路1
16に送られて、10ピッl−から成る値にハツシュさ
れる。このハツシュ値がアドレス線128を介してRA
M 109の読み出しアドレスとして送られ、テキス
ト文字に対応する出現形態情報が読み出されて信号線1
29を介して制御論理回路111に送られる。制御論理
回路111はカウンタ制御論理回路211〜214及び
ストア制御論理回路を含み各カウンタ制御論理211〜
214は現在のカウンタ群112. ]13.11.4
.1.15の値と、信号線129からの出現形態情報を
もとに、現在検出中の候補文字列に読み出したテキスト
文字(レジスタ108の内容)を加えられるか否かを判
定し、その判定結果にもとづいて各カウンタへの更新指
示信号156゜132.134.136を送出する。ス
トア制御論理1!jl路2]、5は各カウンタ112.
113.114.115の値と出現形態情報129をも
とに、レジスタ110に格納された。
素フェッチ回路152を介して、ベクトルフエツチされ
、フェッチデータに含まれるテキスト文字列の各文字は
データバス153を介してレジスタ108に順次セラ1
−される。レジスタ108にセットされたテキスト文字
(2バイト)は、信号線127を介してハツシュ回路1
16に送られて、10ピッl−から成る値にハツシュさ
れる。このハツシュ値がアドレス線128を介してRA
M 109の読み出しアドレスとして送られ、テキス
ト文字に対応する出現形態情報が読み出されて信号線1
29を介して制御論理回路111に送られる。制御論理
回路111はカウンタ制御論理回路211〜214及び
ストア制御論理回路を含み各カウンタ制御論理211〜
214は現在のカウンタ群112. ]13.11.4
.1.15の値と、信号線129からの出現形態情報を
もとに、現在検出中の候補文字列に読み出したテキスト
文字(レジスタ108の内容)を加えられるか否かを判
定し、その判定結果にもとづいて各カウンタへの更新指
示信号156゜132.134.136を送出する。ス
トア制御論理1!jl路2]、5は各カウンタ112.
113.114.115の値と出現形態情報129をも
とに、レジスタ110に格納された。
候補文字列のインデックスと、その文字列の長さとを主
記憶装置101にストアする要求信号+22を発生する
。
記憶装置101にストアする要求信号+22を発生する
。
テキストカウンタ112は現在処理中のテキスト文字の
テキスト102内での位置iを示し、一致長カウンタ1
13は現在検出中の候補文字列の長さQを示し、有効長
カウンタ114はテキス1〜文字の出現形態からみてそ
のテキスト文字を候補文字列に加え得ない場合に、現在
検出中の候補文字列のうちどこ(V)までが有効な候補
文字列として出力可能かを示し、結果カウンタ115は
現在までにいくつ(k)の候補文字列が検出済みかを示
すものである。
テキスト102内での位置iを示し、一致長カウンタ1
13は現在検出中の候補文字列の長さQを示し、有効長
カウンタ114はテキス1〜文字の出現形態からみてそ
のテキスト文字を候補文字列に加え得ない場合に、現在
検出中の候補文字列のうちどこ(V)までが有効な候補
文字列として出力可能かを示し、結果カウンタ115は
現在までにいくつ(k)の候補文字列が検出済みかを示
すものである。
一つの候補文字列が検出される毎に、減算器141で得
られるテキストカウンタ112と一致長カウンタ113
との値の差と、有効長カウンタ114の値のペアがレジ
スタ110に信号線125及び1;35を介してセント
される。セントされたデータは、データバス150を介
してベクトル要素ス1−ア回路151に送られる。ベク
トル要素ス]〜ア回路151は受けとったデータをデー
タバス12+を介して主記憶装置101に送出し、第1
次絞り込み結果104中の結果カウンタ】15が示す位
置にス1−アする。
られるテキストカウンタ112と一致長カウンタ113
との値の差と、有効長カウンタ114の値のペアがレジ
スタ110に信号線125及び1;35を介してセント
される。セントされたデータは、データバス150を介
してベクトル要素ス1−ア回路151に送られる。ベク
トル要素ス]〜ア回路151は受けとったデータをデー
タバス12+を介して主記憶装置101に送出し、第1
次絞り込み結果104中の結果カウンタ】15が示す位
置にス1−アする。
第1図のテキストカウンタ制御論理回路211゜一致長
カウンタ制御論理回路212.有効長カウンタ制御論理
回路213.結果カウンタ制御論理回路214、及びス
ト制御論理回路215はそれぞれ第8図(A)、(B)
、(C)、(D)及び(II)の真理値表で表わす機能
構成を持つ。]−記真理値表では、説明の簡りiのため
、テキストカウンタ112を1゜致長カウンタ113を
Q、有効長カウンタ114をV。
カウンタ制御論理回路212.有効長カウンタ制御論理
回路213.結果カウンタ制御論理回路214、及びス
ト制御論理回路215はそれぞれ第8図(A)、(B)
、(C)、(D)及び(II)の真理値表で表わす機能
構成を持つ。]−記真理値表では、説明の簡りiのため
、テキストカウンタ112を1゜致長カウンタ113を
Q、有効長カウンタ114をV。
結果カウンタ115をに、出現形態情報129の第0〜
第3ピツ1〜をa Q 〜a 31最短キーワード長7
7をm。
第3ピツ1〜をa Q 〜a 31最短キーワード長7
7をm。
テキスト長78をNと表わす。又、入力状態の中で、N
> i 、 Q ”= O、Q < m A K o
+ V < m +は条件を表わし、これらの条件が
成立するときはII i、 II不成立のときは10′
″で表わす、II X ++はこれらの条件は無視され
ることを表わす。
> i 、 Q ”= O、Q < m A K o
+ V < m +は条件を表わし、これらの条件が
成立するときはII i、 II不成立のときは10′
″で表わす、II X ++はこれらの条件は無視され
ることを表わす。
出力信号でII 、 No P 、 5eto 、 5
etlはそれぞれカウンタの値を1増すこと、変更しな
いこと。
etlはそれぞれカウンタの値を1増すこと、変更しな
いこと。
0にセットすること、1にセットすることを表わす。
以下、第2図で示した、具体的テキスト文字列102か
ら候補文字列を検索する場合の制御論理回路111及び
カウンタ群の動作をより詳細に説明する。
ら候補文字列を検索する場合の制御論理回路111及び
カウンタ群の動作をより詳細に説明する。
第9図は各時刻にテキスト文字列+02の各文字を読み
込む毎の各カウンタあるいは信号の様子を示したもので
ある。
込む毎の各カウンタあるいは信号の様子を示したもので
ある。
まず時刻Oではカウンタ群112〜115は初期状態で
いずれも0となっている。
いずれも0となっている。
時刻1でのカウンタ制御論理の入力状態は、N:I8.
i=oであり、N>iは成立するからu i u、U
=Oも1 ” + V <mもO<2なのでII J、
+10 (m Ar oはO<2&Oなので++ 1
n 、 、、、 、 a。
i=oであり、N>iは成立するからu i u、U
=Oも1 ” + V <mもO<2なのでII J、
+10 (m Ar oはO<2&Oなので++ 1
n 、 、、、 、 a。
a3は” o o o”となっている(但し1′Δ″は
論;36 埋積を表わし、aoはaoの否定を表わす)。
論;36 埋積を表わし、aoはaoの否定を表わす)。
従ってテキストカウンタ制御論理211の項番2゜一致
長カウンタ制御論理212の項番】、有効長カウンタ制
御論理213の項番1.結果カウンタ制御論理214の
項番1.及びス1−ア制御論理215の項番」に対応す
る動作指示が行われる。すなわち、動作指示は門を+1
更新し、Q HV 1スI〜ア信号122、及び完了報
告信号140はrr Onとし、kはそのまま更新しな
いことを示している。従って時刻1のテキス1〜文字「
行」処理の結果、テキストカウンタjへは信号156を
介して+J更新指示が出され、一致長カウンタp、有効
長カウンタVには0リセツトの指示がそれぞれ信号線1
32.134を介して出される。よって、各カウンタ、
j、 HQI V lkの値は第9図時刻lの個所が示
すようにJ、、0゜0.0となる。
長カウンタ制御論理212の項番】、有効長カウンタ制
御論理213の項番1.結果カウンタ制御論理214の
項番1.及びス1−ア制御論理215の項番」に対応す
る動作指示が行われる。すなわち、動作指示は門を+1
更新し、Q HV 1スI〜ア信号122、及び完了報
告信号140はrr Onとし、kはそのまま更新しな
いことを示している。従って時刻1のテキス1〜文字「
行」処理の結果、テキストカウンタjへは信号156を
介して+J更新指示が出され、一致長カウンタp、有効
長カウンタVには0リセツトの指示がそれぞれ信号線1
32.134を介して出される。よって、各カウンタ、
j、 HQI V lkの値は第9図時刻lの個所が示
すようにJ、、0゜0.0となる。
時刻2ではテキストの次の文字「列」の出現形態情報が
読出される。文字[列Jのハツシュ値は435であり(
第6図参照)、出現形態マツプの第435エン1−りは
” 1001”なので” 1001 ”がパス129を
介してカウンタ制御論理Illに送l)れる。時刻2で
の入力状態は、N>jは18〉1なので11”、Q=O
もLL ]、 ++ 、 ■< mもO<2なので“1
” 、Q<mAa、はa。−1なので゛″0′″a工a
2a3は’001”となる。対応する動作指示は時刻1
での項番1に対応するものと同一であり、カウンタiの
みが+1され、カウンタのイ直1゜Q、v、にはそれぞ
れ2.O,O,Oとなる。この意味は、r列」はキーワ
ードの文字ではあるがその出現形態は” 1001 ’
″、すなオ〕ち最短キーワード長より前に出現しかつキ
ーワードの最後の文字であることを示している。 一致
長カウンタQは現在0であるので、キーワード文字が表
オ〕れるとすればキーワードの先頭文字でなければなら
ない。従って[列Jは候補となり得ないので候補文字列
に加えられず、検出中の候補文字列の長さを示す一致長
カウンタの値QはOのままとする。
読出される。文字[列Jのハツシュ値は435であり(
第6図参照)、出現形態マツプの第435エン1−りは
” 1001”なので” 1001 ”がパス129を
介してカウンタ制御論理Illに送l)れる。時刻2で
の入力状態は、N>jは18〉1なので11”、Q=O
もLL ]、 ++ 、 ■< mもO<2なので“1
” 、Q<mAa、はa。−1なので゛″0′″a工a
2a3は’001”となる。対応する動作指示は時刻1
での項番1に対応するものと同一であり、カウンタiの
みが+1され、カウンタのイ直1゜Q、v、にはそれぞ
れ2.O,O,Oとなる。この意味は、r列」はキーワ
ードの文字ではあるがその出現形態は” 1001 ’
″、すなオ〕ち最短キーワード長より前に出現しかつキ
ーワードの最後の文字であることを示している。 一致
長カウンタQは現在0であるので、キーワード文字が表
オ〕れるとすればキーワードの先頭文字でなければなら
ない。従って[列Jは候補となり得ないので候補文字列
に加えられず、検出中の候補文字列の長さを示す一致長
カウンタの値QはOのままとする。
時刻3ではテキスト文字[計」が読み込まれるが「計」
の出現形態情報は第6図に示したように”1400”で
あり、カウンタ値1とカウンタ値Qが+1され、カウン
タ値i、Q、v、にはそれぞれ3.i、O,Oとなる。
の出現形態情報は第6図に示したように”1400”で
あり、カウンタ値1とカウンタ値Qが+1され、カウン
タ値i、Q、v、にはそれぞれ3.i、O,Oとなる。
つまり現時点では候補文字列は未検出(Q=O)であり
、かつ「計」はキーワードの先頭に出現する文字なので
候補文字列の先頭となり得る。そこで一致長カウンタ値
Qを+1して1として何らかの候補文字列が検出され始
めたことを記憶する。
、かつ「計」はキーワードの先頭に出現する文字なので
候補文字列の先頭となり得る。そこで一致長カウンタ値
Qを+1して1として何らかの候補文字列が検出され始
めたことを記憶する。
時刻4ではテキスト文字「算」が読み込まれるが、文字
「算」の出現形態情報は” 101.0″′であり、カ
ウンタ値1とカウンタ値Qが+1され、カウンタ値i、
Q、v、にはそれぞれ4,2,0゜0となる。これは、
現時点で候補文字列を検出中(fl=1)であったので
キーワードの中間に出現する文字[算Jを候補文字列に
加え得るためである。
「算」の出現形態情報は” 101.0″′であり、カ
ウンタ値1とカウンタ値Qが+1され、カウンタ値i、
Q、v、にはそれぞれ4,2,0゜0となる。これは、
現時点で候補文字列を検出中(fl=1)であったので
キーワードの中間に出現する文字[算Jを候補文字列に
加え得るためである。
時刻5ではテキスト文字「法jが読み込まれるが、文字
「法」の出現形態情報は” OOO1”であり、N >
」は18〉4であるから”]”、9=0は2≠0であ
るから”O” 、v<mはO<2であるから” l ”
+ Q < m A a oは2≧2であるから”
O” + a 、a z a 3は” OOI ”とな
る。従ってカウンタ値Qは0にリセットされ、有効長カ
ウンタ値Vにはト日、すなわち“3″がセットされる。
「法」の出現形態情報は” OOO1”であり、N >
」は18〉4であるから”]”、9=0は2≠0であ
るから”O” 、v<mはO<2であるから” l ”
+ Q < m A a oは2≧2であるから”
O” + a 、a z a 3は” OOI ”とな
る。従ってカウンタ値Qは0にリセットされ、有効長カ
ウンタ値Vにはト日、すなわち“3″がセットされる。
これは文字「法」はキーワードの最後に出現する文字な
ので候補文字列はこの[法」の文字を加えて1つ完結す
るからである。このように有効長カウンタ値Vは現在検
出中の候補文字列中でキーワードの最後に出現する文字
を発見した時にそこまでの候補文字列の長さを記憶する
ためのものである。
ので候補文字列はこの[法」の文字を加えて1つ完結す
るからである。このように有効長カウンタ値Vは現在検
出中の候補文字列中でキーワードの最後に出現する文字
を発見した時にそこまでの候補文字列の長さを記憶する
ためのものである。
時刻6ではテキスト文字「お」が読み込まれるが「お」
の出現形態情報は” o o o o ”であり、v<
mは3≧2でLL Q IIであり、 Q (rn A
a oは0く2△0であるから“1″となる。よって
、カウンタ値iとkが+1され、ストア信号122がI
I i IIとなり、値QとVはOになる。すなわち最
短キーワード長m以上の有効長■をもつ候補文字列を検
出済みでかつ現テキスト文字は候補文字列には加え得な
いので検出済みの候補文字列(「計算法」)を第1次絞
り込み結果+04の第1要素としてベクトル要素ストア
回路151に主記憶装置+01に格納する。格納データ
はレジスタ1 ]、 0に格納された値であり、前半4
バイトは時刻4のテキストカウンタ値1と一致長aの差
2が、また後半4バイトには時刻5の有効長カウンタの
値3がそれぞれス1〜アされるので、第1次絞り込み結
果104の第O要素は(2,3)となる(レジスタ1.
10の前半にはjとQの差が加算器14+で加算されて
レジスタ147で1時刻分遅延されるので1時刻4のカ
ウンタ値が反映される)。ベクトル要素ストア回路15
1は信号線139aに示された結果ベクトル104の先
頭アドレスと信号線136により示された結果カウンタ
とから、結果カウンタが指す要素の主記憶アドレスを計
算し、信号線+50が示すデータを信号線121を介し
てそのアドレスに格納する回路である。
の出現形態情報は” o o o o ”であり、v<
mは3≧2でLL Q IIであり、 Q (rn A
a oは0く2△0であるから“1″となる。よって
、カウンタ値iとkが+1され、ストア信号122がI
I i IIとなり、値QとVはOになる。すなわち最
短キーワード長m以上の有効長■をもつ候補文字列を検
出済みでかつ現テキスト文字は候補文字列には加え得な
いので検出済みの候補文字列(「計算法」)を第1次絞
り込み結果+04の第1要素としてベクトル要素ストア
回路151に主記憶装置+01に格納する。格納データ
はレジスタ1 ]、 0に格納された値であり、前半4
バイトは時刻4のテキストカウンタ値1と一致長aの差
2が、また後半4バイトには時刻5の有効長カウンタの
値3がそれぞれス1〜アされるので、第1次絞り込み結
果104の第O要素は(2,3)となる(レジスタ1.
10の前半にはjとQの差が加算器14+で加算されて
レジスタ147で1時刻分遅延されるので1時刻4のカ
ウンタ値が反映される)。ベクトル要素ストア回路15
1は信号線139aに示された結果ベクトル104の先
頭アドレスと信号線136により示された結果カウンタ
とから、結果カウンタが指す要素の主記憶アドレスを計
算し、信号線+50が示すデータを信号線121を介し
てそのアドレスに格納する回路である。
以下同様に時刻が進むのに同期して第9図に示すように
候補文字列の検出が進み、時刻18ではカウンタ値i、
n、v、にはそれぞれ18,0,4.。
候補文字列の検出が進み、時刻18ではカウンタ値i、
n、v、にはそれぞれ18,0,4.。
3となる。ここで最後の候補文字列「制御方法」を指す
データ(1,4,4,)が第1次絞り込み結果104の
第3要素として格納されるとともに完了報告信号140
が1″′となり、処理ユニット118にテキストサーチ
ユニットの動作完了が伝えられる。
データ(1,4,4,)が第1次絞り込み結果104の
第3要素として格納されるとともに完了報告信号140
が1″′となり、処理ユニット118にテキストサーチ
ユニットの動作完了が伝えられる。
出現形態情報の第Oビット目はその文字がキーワード中
で最短キーワード長より前に出現するか否かを示してい
た。このビットが存在することにより、例えばテキスト
文字列中に、F側法」という文字列が出て来た場合にこ
の文字列を候補から除外できる。というのは「法」は最
短キーワード長2より後ろの位置(3番目)に出現する
ので、候補文字列としてはrHJを検出している段階で
r法ノが出現することはあり得ないとわかるからである
。このように出現形態情報はなるへく少ないビット数で
、かつなるべくキーワードに近い文字列のみを候補文字
列として検出するように工夫されている。
で最短キーワード長より前に出現するか否かを示してい
た。このビットが存在することにより、例えばテキスト
文字列中に、F側法」という文字列が出て来た場合にこ
の文字列を候補から除外できる。というのは「法」は最
短キーワード長2より後ろの位置(3番目)に出現する
ので、候補文字列としてはrHJを検出している段階で
r法ノが出現することはあり得ないとわかるからである
。このように出現形態情報はなるへく少ないビット数で
、かつなるべくキーワードに近い文字列のみを候補文字
列として検出するように工夫されている。
完了報告信号140を受取った処理ユニツld18はテ
キストサーチ命令処理を完了し、第1次絞り込み処理ル
ーチン31(第3図)のコールが完了しリターンする(
ステップ414)。
キストサーチ命令処理を完了し、第1次絞り込み処理ル
ーチン31(第3図)のコールが完了しリターンする(
ステップ414)。
第10図は第1図のテキストサーチユニットによる第1
次絞り込み処理における各部の時間関係を示す図である
。テキストサーチユニットの処理は1つの入力文字に対
してテキス1へ文字の読出しT(すなわち、フェッチ回
路153の出力からレジスタ108への入力)、ハツシ
ュ回路1】6によるRAM109のア1くレス生成A、
RAM109からの出現形態情報の読出しR2及びカウ
ンタ更新の処理Cが経時的に行われる。しかし、連続す
る複数の文字列に対し、第10図に示す如くマシンサイ
クル(to 。
次絞り込み処理における各部の時間関係を示す図である
。テキストサーチユニットの処理は1つの入力文字に対
してテキス1へ文字の読出しT(すなわち、フェッチ回
路153の出力からレジスタ108への入力)、ハツシ
ュ回路1】6によるRAM109のア1くレス生成A、
RAM109からの出現形態情報の読出しR2及びカウ
ンタ更新の処理Cが経時的に行われる。しかし、連続す
る複数の文字列に対し、第10図に示す如くマシンサイ
クル(to 。
1、オ□・・・・・む。、6)単位は処理が重複しパイ
プライン的に処理されるため、見かけ」−1マシンザイ
クルで1テキスト文字の処理が完了する。
プライン的に処理されるため、見かけ」−1マシンザイ
クルで1テキスト文字の処理が完了する。
次に、テキストサーチプログラム106は第2次絞り込
み処理ルーチン32をコールする。
み処理ルーチン32をコールする。
第111は第2次絞り込み処理ルーチン32の構成を示
すフローチャートである。第2次絞り込み処理ルーチン
32は第1次絞り込み処理結果104の各要素について
(ステップ11)、プログラム変数’]’ cに各要素
が指す候補文字列を代入しくステップ12)、Tcを検
索対象テキスト文字列144〜146をキーワードとし
て従来知られている方法、ここではFSA法(第11図
(Q)参照)により文字列検索を行い(ステップ13)
、第1次絞り込み結果+04内にある「計算法Jのよう
な雑音に除去して、第2次絞り込み結果1.05を作成
してリターンする(ステップ14)。FSA法による文
字列検索は公知であり、その動作も例えばシー・ニー・
シー・エム、18゜6 (1975年6月)第333頁
から第340頁(CACM、 +8゜60une 19
75) pp、333−340)上記載されているので
、簡単に説明する。
すフローチャートである。第2次絞り込み処理ルーチン
32は第1次絞り込み処理結果104の各要素について
(ステップ11)、プログラム変数’]’ cに各要素
が指す候補文字列を代入しくステップ12)、Tcを検
索対象テキスト文字列144〜146をキーワードとし
て従来知られている方法、ここではFSA法(第11図
(Q)参照)により文字列検索を行い(ステップ13)
、第1次絞り込み結果+04内にある「計算法Jのよう
な雑音に除去して、第2次絞り込み結果1.05を作成
してリターンする(ステップ14)。FSA法による文
字列検索は公知であり、その動作も例えばシー・ニー・
シー・エム、18゜6 (1975年6月)第333頁
から第340頁(CACM、 +8゜60une 19
75) pp、333−340)上記載されているので
、簡単に説明する。
第12図は、従来知られているF S A i/Aを説
明する図で、(a)はキーワードに対する状態遷移図の
例で、キーワード「並列」、「計算機」、「制御方法」
の場合に、文字列の遷移な状態(丸で包んだ数字)で表
わしたものである。例えば初期状態を0とし入力文字が
「並」であれば状態Oは状態″1″′に1文字が「計」
であれば状態3に1文字が「制」であれば状態6に、そ
れぞれ遷移する6又状態が1のとき次の文字が「列Jで
あれば状態2に遷移する。もちろん入力文字がキーワー
ドにない文字、あるいはキーワードの文字列と異なった
順で入った時は状態はOにリセッ1−される。
明する図で、(a)はキーワードに対する状態遷移図の
例で、キーワード「並列」、「計算機」、「制御方法」
の場合に、文字列の遷移な状態(丸で包んだ数字)で表
わしたものである。例えば初期状態を0とし入力文字が
「並」であれば状態Oは状態″1″′に1文字が「計」
であれば状態3に1文字が「制」であれば状態6に、そ
れぞれ遷移する6又状態が1のとき次の文字が「列Jで
あれば状態2に遷移する。もちろん入力文字がキーワー
ドにない文字、あるいはキーワードの文字列と異なった
順で入った時は状態はOにリセッ1−される。
(b)図は、上記(a)の状態遷移図を信号処理に適用
できるようにした状態遷移表である。
できるようにした状態遷移表である。
FSA法では、(c)図に示す如く、初期処理として、
状態遷移表を作成しく1203)、テキスト文字の1個
を入力する毎に(1204)、現在の状態が最終状態(
キーワードの最後の文字の入力)であるか否かを調へ(
+205)、最終状態であればそのテキスト文字の位置
とキーワード長さを出力する(1206)、そして現状
態とテキスト文字から状態遷移表(b)を調べ、次に遷
移すべき状態を決定しく1207.1208.1209
.12+0.1.2+1.)、状態とテキスト位置を更
新(1112)、次のテキスト文字について同様の処理
をテキスト文字の処理の最後まで繰り返す。
状態遷移表を作成しく1203)、テキスト文字の1個
を入力する毎に(1204)、現在の状態が最終状態(
キーワードの最後の文字の入力)であるか否かを調へ(
+205)、最終状態であればそのテキスト文字の位置
とキーワード長さを出力する(1206)、そして現状
態とテキスト文字から状態遷移表(b)を調べ、次に遷
移すべき状態を決定しく1207.1208.1209
.12+0.1.2+1.)、状態とテキスト位置を更
新(1112)、次のテキスト文字について同様の処理
をテキスト文字の処理の最後まで繰り返す。
上記公知の[パSへ法を1本発明の文字列検索方法の第
2次絞り込み処理に適用する場合、入力テキスト文字列
(第12図(c)ステップ1204)とし。
2次絞り込み処理に適用する場合、入力テキスト文字列
(第12図(c)ステップ1204)とし。
て、第1次絞り込み結果10・1の要素、すなオ)ち候
補文字列の先頭文字のテギスト文字列におけろイ◇W(
インデックス=1、)及び候補文字列の長さ(字数:s
)による文字をプログラム変数゛1゛Cとして、Lから
I; + s −1の文字を順次入力ぐる。
補文字列の先頭文字のテギスト文字列におけろイ◇W(
インデックス=1、)及び候補文字列の長さ(字数:s
)による文字をプログラム変数゛1゛Cとして、Lから
I; + s −1の文字を順次入力ぐる。
各文字についての文字列検索処理は第12図(())の
プログラムステップ1205〜1212を実行すること
によって行う。
プログラムステップ1205〜1212を実行すること
によって行う。
第2次絞り込み処理ルーチン32が完ですると、目的と
していた最終結果+05が得られるのでテキストサーチ
プログラム106が完rする(ステップ33)。
していた最終結果+05が得られるのでテキストサーチ
プログラム106が完rする(ステップ33)。
本実施例ではテキスト102の格納手段と11.て主記
憶装置101を用いたが、テキストは順次読み出しであ
るので、磁気ディスク装置や磁気テープ装置でも良いこ
とは明らかである。
憶装置101を用いたが、テキストは順次読み出しであ
るので、磁気ディスク装置や磁気テープ装置でも良いこ
とは明らかである。
また、本実施例では文字コードを2パイ1−としたが、
】バイ1〜コー1くでも差し支えない。但し、1バイト
コードの場合(例えば■ζBC(U r Cコトなど)
は、第1次絞り込み処理で検出される候補文字列の址が
多くなり、第2次絞り込み処理での負荷が増大するII
I能性がある。これは例えばlバイ(・コードで表現可
能な英字は26種しかないのでキーワードが多くなると
ほとんどの英字がキーワード中に出現してしまい(2バ
イl−コードが必要な漢字はキーワードが増えてもキー
ワード中に出現する漢字群の、全漢字に対する割合は小
さい)、テキスi−中の多くの文字列がキーワー1くと
類似と判断されるからである。
】バイ1〜コー1くでも差し支えない。但し、1バイト
コードの場合(例えば■ζBC(U r Cコトなど)
は、第1次絞り込み処理で検出される候補文字列の址が
多くなり、第2次絞り込み処理での負荷が増大するII
I能性がある。これは例えばlバイ(・コードで表現可
能な英字は26種しかないのでキーワードが多くなると
ほとんどの英字がキーワード中に出現してしまい(2バ
イl−コードが必要な漢字はキーワードが増えてもキー
ワード中に出現する漢字群の、全漢字に対する割合は小
さい)、テキスi−中の多くの文字列がキーワー1くと
類似と判断されるからである。
この問題は1バイ1−コードの文字については。
連続する2バイトを1文字として扱うことにより解決で
きる。例えば英単語”paral、1.el”ではPa
LL8%I 、 LLra、 LLa]′T 、
LL II 、 1lleI+及び月 rr el +″の7つの文字から成る列と考えて他は
本実施例と全く同じ処理を行えば良い。これについては
後述する。
きる。例えば英単語”paral、1.el”ではPa
LL8%I 、 LLra、 LLa]′T 、
LL II 、 1lleI+及び月 rr el +″の7つの文字から成る列と考えて他は
本実施例と全く同じ処理を行えば良い。これについては
後述する。
ハツシュ回路116は入力2バイトを10ビツトに圧縮
するものである。むろんより少ないビットに圧縮すれば
RAM+09の容量を小さくできるが、反面、異なる文
字のハツシュ結果が同じ値となる(一般に衝突と呼ばれ
ている)確率が大きくなり、やはり第1次絞り込み結果
104中の雑音の量を増加させる。
するものである。むろんより少ないビットに圧縮すれば
RAM+09の容量を小さくできるが、反面、異なる文
字のハツシュ結果が同じ値となる(一般に衝突と呼ばれ
ている)確率が大きくなり、やはり第1次絞り込み結果
104中の雑音の量を増加させる。
本実施例での出現形態情報は4ビツトとしたが、回路簡
単化のため簡帖化することも考えられる。
単化のため簡帖化することも考えられる。
例えば第Oビットは省略できる(むろん雑音量は増大す
る可能性がある)。また、最小構成としては、その文字
がキーワード中に出現するか否かのみを示す1ビツトだ
けにしても良い。この場合、有効長カウンタ114は不
要であり、カウンタ制御論理1 ]、、 1では、キー
ワード中に出現する文字が連続して現われる毎に一致長
カウンタ113を+1し、キーワード中に出現しない文
字が表われた時に。
る可能性がある)。また、最小構成としては、その文字
がキーワード中に出現するか否かのみを示す1ビツトだ
けにしても良い。この場合、有効長カウンタ114は不
要であり、カウンタ制御論理1 ]、、 1では、キー
ワード中に出現する文字が連続して現われる毎に一致長
カウンタ113を+1し、キーワード中に出現しない文
字が表われた時に。
一致長カウンタ113が最短キーワード長207以−h
であれば候補として現在検出中の文字列を出力し、そう
でなければ出力しないようにすれば良い。従って回路が
大幅に簡単化されるが、この場合も雑音量は一般に増加
する。
であれば候補として現在検出中の文字列を出力し、そう
でなければ出力しないようにすれば良い。従って回路が
大幅に簡単化されるが、この場合も雑音量は一般に増加
する。
次に1本発明による文字列検索方法をベクトル演算処理
によって行った実施例について説明する。
によって行った実施例について説明する。
ベクトル演算処理は、ベクトルデータ、すなわち、一定
間隔で配列された要素のデータ群、の各要素毎の並列演
算、及びパイプライン処理を行うもので、四則論理演算
及び移動命令を備えた通常のベクトル計算機(例えば日
立製作所説S 8]07レイプロセツサシステム)によ
って実施される。文字列検索においては文字列の各文字
のデータ、例えば、文字コート、文字の出現情報、ある
いは文字列における位置情報がベクトルデータのベクト
ル要素となる。以下簡明のためベクトルデータ、ベクト
ル要素は単に「ベクトル」、[要素Jと呼ぶ。
間隔で配列された要素のデータ群、の各要素毎の並列演
算、及びパイプライン処理を行うもので、四則論理演算
及び移動命令を備えた通常のベクトル計算機(例えば日
立製作所説S 8]07レイプロセツサシステム)によ
って実施される。文字列検索においては文字列の各文字
のデータ、例えば、文字コート、文字の出現情報、ある
いは文字列における位置情報がベクトルデータのベクト
ル要素となる。以下簡明のためベクトルデータ、ベクト
ル要素は単に「ベクトル」、[要素Jと呼ぶ。
第13図は前記候補文字列を検索する第1次絞り込み処
理の手順を示したフローチャー1− P A D(Pr
ograIIIAnalysis Diagram)で
あり、処理ベクトルデータの流れを示した第14図を必
要に応して参照しながら説明する。なお第11図のベク
トルデータは、記憶装置、あるいはベクトルレジスタに
格納されるデータであり、縦方向がそれぞれ]つのベク
トルを構成し、1つのます目は要素を表わす。
理の手順を示したフローチャー1− P A D(Pr
ograIIIAnalysis Diagram)で
あり、処理ベクトルデータの流れを示した第14図を必
要に応して参照しながら説明する。なお第11図のベク
トルデータは、記憶装置、あるいはベクトルレジスタに
格納されるデータであり、縦方向がそれぞれ]つのベク
トルを構成し、1つのます目は要素を表わす。
第1次絞り込み処理は、第14図に示す検索キーワード
群を表わすキーワードベクトルKEYと、テキスI−1
’ EX Tを入力して、キーワー1〜あるいはこれに
類似する候補文字列のテキス1〜にでの位置を示す先頭
位置ベクトルTOPと長さを示す候補長ベクトルLNG
を出力するプログラムで実現される。プログラムとその
処理対象である上述の各データはいずれも主記憶装置に
格納され、必要に応じてベクトルレジスタにロートされ
、演算をうける。
群を表わすキーワードベクトルKEYと、テキスI−1
’ EX Tを入力して、キーワー1〜あるいはこれに
類似する候補文字列のテキス1〜にでの位置を示す先頭
位置ベクトルTOPと長さを示す候補長ベクトルLNG
を出力するプログラムで実現される。プログラムとその
処理対象である上述の各データはいずれも主記憶装置に
格納され、必要に応じてベクトルレジスタにロートされ
、演算をうける。
以下処理の詳細について説明する。
第1次絞り込み処理ルーチンを起動する(+300)と
、初期化が行われる。すなわち、プログラム変数M I
N K Lにキーワードのうち最も短いものの長さ(
第14図の例ではキーワード群KEYのうち最短は”
T E X T”の4)を代入し、出現情報ベクトルに
、WDの全エントリ10クリアし、プログラム変数Nに
テキストベクトル’r E X Tの長さ(この場合は
25)を代入する(ステップ1301)。
、初期化が行われる。すなわち、プログラム変数M I
N K Lにキーワードのうち最も短いものの長さ(
第14図の例ではキーワード群KEYのうち最短は”
T E X T”の4)を代入し、出現情報ベクトルに
、WDの全エントリ10クリアし、プログラム変数Nに
テキストベクトル’r E X Tの長さ(この場合は
25)を代入する(ステップ1301)。
これらの長さのデータはテキスト文字、キーワード文字
の入力時に得られ、レジスタ(図示せず)上記録される
。次にキーツー1〜KEY中の各文字を調べて出現情報
ベクトルKWDを作成する。11体的には、各キーワー
ドについて(ステップ+302) 。
の入力時に得られ、レジスタ(図示せず)上記録される
。次にキーツー1〜KEY中の各文字を調べて出現情報
ベクトルKWDを作成する。11体的には、各キーワー
ドについて(ステップ+302) 。
キーワードベクトルの文字Cq(キーワードの第q文字
目の、意)を順次取り出しくステップ+303)。
目の、意)を順次取り出しくステップ+303)。
出現情報ベクトルKWDの第C9エン1−りに1を代入
する(ステップ13(14)。以上により出現情報ベク
トルK Vt’ Dが作成される。この手順を第14図
を用いて具体例でみることにする。キーワードベクトル
の最初のキーワード” S E A RCH”について
、文字Sはその文字コード(EBCDIiKコード)が
”E2(、、)”であり、10進数では226である。
する(ステップ13(14)。以上により出現情報ベク
トルK Vt’ Dが作成される。この手順を第14図
を用いて具体例でみることにする。キーワードベクトル
の最初のキーワード” S E A RCH”について
、文字Sはその文字コード(EBCDIiKコード)が
”E2(、、)”であり、10進数では226である。
従って出現情報ベクトルに、 W IJの第226エン
トリの要素を1にする。他のキーワード文字についても
同様であり、各文字に対応するエン1−りに1が代入さ
れる。前述のように、出現情報ベクトルKWDは初期化
ステップ13旧で全要素がOにクリアされているので、
キーワードに出現しない文字については対応する出現情
報はIf OIJのままとなる。
トリの要素を1にする。他のキーワード文字についても
同様であり、各文字に対応するエン1−りに1が代入さ
れる。前述のように、出現情報ベクトルKWDは初期化
ステップ13旧で全要素がOにクリアされているので、
キーワードに出現しない文字については対応する出現情
報はIf OIJのままとなる。
さらに検出状態ベクトルMSKIの先頭と最終の要素を
0にセットする。これは、検出状態ベクトルより、候補
文字列を識別するステップ(1306)のためであり、
詳細は後述する。以上で初期化のステップが完了する(
ステップ1301)。
0にセットする。これは、検出状態ベクトルより、候補
文字列を識別するステップ(1306)のためであり、
詳細は後述する。以上で初期化のステップが完了する(
ステップ1301)。
さて、ステップ1302により、出現情報ベクトルKW
Dの作成が終わると、テキストベクトルTEXTより候
補文字列を検出する処理が行われる(ステップ1305
〜1314)。
Dの作成が終わると、テキストベクトルTEXTより候
補文字列を検出する処理が行われる(ステップ1305
〜1314)。
検出の第1ステップとして、検出状態ベクトルMSKI
の生成がなされる。すなわち、テキス1〜ベクトルTE
XTの各要素について、その値が読み出され、読み出さ
れた各要素(1要素がテキストの1文字に対応している
)の値から出現情報バク1ヘルの対応する要素を参照し
て各要素(つまり、テキスト中の各文字)に対する出現
情報を検出状態ベクトルMSKIに格納する(ステップ
+305)。
の生成がなされる。すなわち、テキス1〜ベクトルTE
XTの各要素について、その値が読み出され、読み出さ
れた各要素(1要素がテキストの1文字に対応している
)の値から出現情報バク1ヘルの対応する要素を参照し
て各要素(つまり、テキスト中の各文字)に対する出現
情報を検出状態ベクトルMSKIに格納する(ステップ
+305)。
この演算は、間接アドレスに基づくベクトル要素の移動
であり、通常のベクトル計算機に備えられた命令で実現
される。以上の処理により、検出状態ベクトルMSKI
には、テキスト中の各文字についてその文字がキーワー
ド内に出現する文字であるか否かが(この例では、出現
する場合が」。
であり、通常のベクトル計算機に備えられた命令で実現
される。以上の処理により、検出状態ベクトルMSKI
には、テキスト中の各文字についてその文字がキーワー
ド内に出現する文字であるか否かが(この例では、出現
する場合が」。
出現しない場合はOである)、テキス1〜ベクトルの各
要素と1対1に対応する形で格納されることになる。第
14図の例で言えば、テキストベクトルT E X、
Tの第1要素から第6要素の表わす文字列” S E
A RCH”については、各文字がキーワードに含まれ
る文字からなっているので、検出状態ベクトルM、 S
K 1の第1要素から第6要素に格納される値は1で
ある。以下のステップでは、この検出状態ベクトルM
S K 1. (1404)を走査して、キーワード内
に出現する文字が最短キーワード長MINKL以上連続
して表われる(すなわち、検出状態ベクI〜ルの要素に
ついて、その値が1であるような要素が連続して表われ
る)場合に、その文字から構成される文字列を候補文字
列として検出し、その位置情報を結果ベクトル(TOP
。
要素と1対1に対応する形で格納されることになる。第
14図の例で言えば、テキストベクトルT E X、
Tの第1要素から第6要素の表わす文字列” S E
A RCH”については、各文字がキーワードに含まれ
る文字からなっているので、検出状態ベクトルM、 S
K 1の第1要素から第6要素に格納される値は1で
ある。以下のステップでは、この検出状態ベクトルM
S K 1. (1404)を走査して、キーワード内
に出現する文字が最短キーワード長MINKL以上連続
して表われる(すなわち、検出状態ベクI〜ルの要素に
ついて、その値が1であるような要素が連続して表われ
る)場合に、その文字から構成される文字列を候補文字
列として検出し、その位置情報を結果ベクトル(TOP
。
i NG)として出力する。更に詳しく説明する。
まず、検出状態ベクトルMSKiから重複要素の検出を
行う。すなわち、検出状態ベクトルMSK1の各要素M
SKI(I)(ここで、■は要素番号である)に対し、
1つ前の要素MSKI(11)との差をとり、この値を
区切り位置ベクトルMSK2の第1番目の要素MSK2
(1)に格納する。この演算はベクトル間の差をとる通
常のベクトル命令で実現される。また、前述の初期化ス
テップ(+305)で、出現状態ベクトルMSK+の第
0番目の要素と、第6+1要素の要素をOで初期化した
のは、このステップ(+306)に備えたためである。
行う。すなわち、検出状態ベクトルMSK1の各要素M
SKI(I)(ここで、■は要素番号である)に対し、
1つ前の要素MSKI(11)との差をとり、この値を
区切り位置ベクトルMSK2の第1番目の要素MSK2
(1)に格納する。この演算はベクトル間の差をとる通
常のベクトル命令で実現される。また、前述の初期化ス
テップ(+305)で、出現状態ベクトルMSK+の第
0番目の要素と、第6+1要素の要素をOで初期化した
のは、このステップ(+306)に備えたためである。
以」―、検出状態ベクI−ルMSKIの要素と区切り位
置ベクトルMSK2との要素は一意対応で演算される。
置ベクトルMSK2との要素は一意対応で演算される。
そこで検出状態ベグトルMSK1内で1の値をもつ要素
が連続する場合に、その連続する要素列の先頭要素MS
KI(1)(ただし■は要素番号である)に対応する区
切り位置ベクトルM、 S K 2の要素MSK2(T
)の値は■となり、同様に連続する要素列の最終要素M
SKI(J)(ただしJは要素番号である)に対応する
区切り位置ベクトルMSK2の要素MSK2(J)の1
つ後の要素MSK2(J+1)の値は−1となる。第1
4図の例では、テキストベクトルTEXTの先頭の単語
” S E A、 RCH″について、その先頭文字I
I S I+の格納される要素の番号は1であり1区切
り位置ベクトルMSK2の第1要素の値は1となる。ま
た最後の文字” H’″の格納される要素の番号は6で
あり1区切り位置ベクトルMSK2の第6+1要素の値
は−1となる。
が連続する場合に、その連続する要素列の先頭要素MS
KI(1)(ただし■は要素番号である)に対応する区
切り位置ベクトルM、 S K 2の要素MSK2(T
)の値は■となり、同様に連続する要素列の最終要素M
SKI(J)(ただしJは要素番号である)に対応する
区切り位置ベクトルMSK2の要素MSK2(J)の1
つ後の要素MSK2(J+1)の値は−1となる。第1
4図の例では、テキストベクトルTEXTの先頭の単語
” S E A、 RCH″について、その先頭文字I
I S I+の格納される要素の番号は1であり1区切
り位置ベクトルMSK2の第1要素の値は1となる。ま
た最後の文字” H’″の格納される要素の番号は6で
あり1区切り位置ベクトルMSK2の第6+1要素の値
は−1となる。
この結果、区切り位置ベクトルM S K 2 (+4
06)を走査して、各要素の値を検査することにより、
検出ベクトル内に出現する値]が連続する要素の列に対
して、その先頭と最終の要素の位置が検出される。また
前述のように、検出状態ベクトルMSKIの要素とテキ
ストベクトルTEXTの要素は一意に対応している。そ
こで、区切り位置ベクトルMSK2の各要MMsK2(
I)についてその要素の値が」であれば、その要素に対
応するテキストベクトルT E X、 Tの第1要素は
候補文字列の先頭要素であるから、候補文字列の先頭要
素の位置を示す要素番号■を先頭位置ベクトルTOPと
して記憶装置に格納する(ステップ1307.1309
>。
06)を走査して、各要素の値を検査することにより、
検出ベクトル内に出現する値]が連続する要素の列に対
して、その先頭と最終の要素の位置が検出される。また
前述のように、検出状態ベクトルMSKIの要素とテキ
ストベクトルTEXTの要素は一意に対応している。そ
こで、区切り位置ベクトルMSK2の各要MMsK2(
I)についてその要素の値が」であれば、その要素に対
応するテキストベクトルT E X、 Tの第1要素は
候補文字列の先頭要素であるから、候補文字列の先頭要
素の位置を示す要素番号■を先頭位置ベクトルTOPと
して記憶装置に格納する(ステップ1307.1309
>。
次に、区切り位置ベクトルMSK2の各要素についてそ
の要素の値が−1であれば、テキストベクトルT E
X、 Tの第1−1要素は候補文字列の最終要素である
から、候補文字列の最終要素の1つ後の要素の位置を示
す要素番号Iを終了位置ベクトルBTMとして記憶装置
に格納する(ステップ1308、1310)。
の要素の値が−1であれば、テキストベクトルT E
X、 Tの第1−1要素は候補文字列の最終要素である
から、候補文字列の最終要素の1つ後の要素の位置を示
す要素番号Iを終了位置ベクトルBTMとして記憶装置
に格納する(ステップ1308、1310)。
以上の処理について、ステップ1307.1309を例
にとり、実際のベクトル命令列として如何に実行がなさ
れるかを説明する。検出状態ベクトルとスカラ値である
1をベクトル比較命令により比較し、先頭位置マスクベ
クトルM1を生成する(ステップ1307)。先頭位置
マスクベクトルには、検出状態ベクトルMSKIの値が
1である要素について、対応する位置に1が格納される
。次に、先頭位置マスクベクトルM1を用いて、位置ベ
クトルI)OSの要素のうち、マスクの値が1であるも
のを、先頭位置ベクトルTOPに格納する(ステップ1
309)。このステップについても、間接アドレスに基
づくベクトルの要素移動を行う通常のベクトル命令によ
り実現することができる。ステップ1.308.13]
0についても同様に1通常のベクトル命令による実行が
可能である。
にとり、実際のベクトル命令列として如何に実行がなさ
れるかを説明する。検出状態ベクトルとスカラ値である
1をベクトル比較命令により比較し、先頭位置マスクベ
クトルM1を生成する(ステップ1307)。先頭位置
マスクベクトルには、検出状態ベクトルMSKIの値が
1である要素について、対応する位置に1が格納される
。次に、先頭位置マスクベクトルM1を用いて、位置ベ
クトルI)OSの要素のうち、マスクの値が1であるも
のを、先頭位置ベクトルTOPに格納する(ステップ1
309)。このステップについても、間接アドレスに基
づくベクトルの要素移動を行う通常のベクトル命令によ
り実現することができる。ステップ1.308.13]
0についても同様に1通常のベクトル命令による実行が
可能である。
例えば、第14図の例でいえば、区切り位置ベクトルM
、 S K 2の第1要素は1であるから、先頭位置ベ
クトルTOPの第1要素には1が格納され、区切り位置
ベクトルMSK2の第7要素は−」−であるから、終了
位置ベクトルBTMの第1要素には7が格納される。
、 S K 2の第1要素は1であるから、先頭位置ベ
クトルTOPの第1要素には1が格納され、区切り位置
ベクトルMSK2の第7要素は−」−であるから、終了
位置ベクトルBTMの第1要素には7が格納される。
以上のステップにより、テキストベクトルTEX、T内
の候補文字列の先頭文字の位置が先頭位置ベクトル゛I
” OPと、候補文字列の最後の1つ後の位置が終了位
置ベクトルBTMとして記憶装置に格納される。この候
補文字列の先頭位置と終了位置を検出するステップは、
各々区切り位置ベクトルMSK2をサーチして特定の要
素値(具体的にはII I 11と11111である)
を検出する処理であり、要素毎に各々独立のベクトル命
令で並列に実行される。また、検出状態ベクトルMSK
Iから区切り位置ベクトルMSK2を生成するベクトル
命令処理(ステップ1306)について、区切り位置ベ
クトルMSK2の各要素の値が71.、成される毎に、
後続のベクトル命令であるステップ1307. +30
8゜1309、1310を実行することができる。従っ
て、ベクトル命令列をオーバラップすることくチエイニ
ング)が可能であり、高速な処理が実現される。
の候補文字列の先頭文字の位置が先頭位置ベクトル゛I
” OPと、候補文字列の最後の1つ後の位置が終了位
置ベクトルBTMとして記憶装置に格納される。この候
補文字列の先頭位置と終了位置を検出するステップは、
各々区切り位置ベクトルMSK2をサーチして特定の要
素値(具体的にはII I 11と11111である)
を検出する処理であり、要素毎に各々独立のベクトル命
令で並列に実行される。また、検出状態ベクトルMSK
Iから区切り位置ベクトルMSK2を生成するベクトル
命令処理(ステップ1306)について、区切り位置ベ
クトルMSK2の各要素の値が71.、成される毎に、
後続のベクトル命令であるステップ1307. +30
8゜1309、1310を実行することができる。従っ
て、ベクトル命令列をオーバラップすることくチエイニ
ング)が可能であり、高速な処理が実現される。
さて、前述のように第1次絞り込み処理では、テキスト
ベクトルT E X、 T内で、キーワードに使われる
文字が最短連続長MTNKL以り連続して出現する場合
に、その文字列を候補文字列としてその先頭位置と文字
列長を出力する。そのため、以上のステップで得られた
候補文字列のうち、最短連続長未満の文字列を候補から
削除する。まず、終了位置ベクトルBTMの各要素につ
いて、先頭位置ベクトルTOPの対応する要素の減算を
行い(ステップ1311、この処理は通常のベクトル命
令により実行できる)、最短連続M I N K L以
上の値については(ステップ+312>、候補文字列長
として、候補長ベクトルL N Gに出力を行うと共に
、対応する候補文字列の先頭位置を先頭位置ベクトル゛
]” OPに出力する(ステップ! 313 )。また
、終了位置ベクトルBTMの要素がら先頭位置ベクトル
TOPの要素を減算した値が最短連続長MINK■7よ
りも小さい場合には、対応する候補文字列はキーワード
に一致しないことが明らかなので出力は行わない(ステ
ップ+314)、第14図の例でいえば、先頭位置ベク
トル丁’opと終了位置ベタ1−ルB T Mの第2要
素によって指定されるテキストベクトルTEXTJ―の
11 A I″なる文字列については、その長さは1で
あり、最短連続長MINKL=4より小さいので、この
文字列を示す要素番号の値は先頭位置ベクトルT OI
)と候補長ベクトルL N Gに出力されない。このよ
うに、最短連続長M I N K Lを設けてチエツク
を行うことで、なるべくキーワードに近い文字列が候補
文字列として検出される。
ベクトルT E X、 T内で、キーワードに使われる
文字が最短連続長MTNKL以り連続して出現する場合
に、その文字列を候補文字列としてその先頭位置と文字
列長を出力する。そのため、以上のステップで得られた
候補文字列のうち、最短連続長未満の文字列を候補から
削除する。まず、終了位置ベクトルBTMの各要素につ
いて、先頭位置ベクトルTOPの対応する要素の減算を
行い(ステップ1311、この処理は通常のベクトル命
令により実行できる)、最短連続M I N K L以
上の値については(ステップ+312>、候補文字列長
として、候補長ベクトルL N Gに出力を行うと共に
、対応する候補文字列の先頭位置を先頭位置ベクトル゛
]” OPに出力する(ステップ! 313 )。また
、終了位置ベクトルBTMの要素がら先頭位置ベクトル
TOPの要素を減算した値が最短連続長MINK■7よ
りも小さい場合には、対応する候補文字列はキーワード
に一致しないことが明らかなので出力は行わない(ステ
ップ+314)、第14図の例でいえば、先頭位置ベク
トル丁’opと終了位置ベタ1−ルB T Mの第2要
素によって指定されるテキストベクトルTEXTJ―の
11 A I″なる文字列については、その長さは1で
あり、最短連続長MINKL=4より小さいので、この
文字列を示す要素番号の値は先頭位置ベクトルT OI
)と候補長ベクトルL N Gに出力されない。このよ
うに、最短連続長M I N K Lを設けてチエツク
を行うことで、なるべくキーワードに近い文字列が候補
文字列として検出される。
プログラムがステップ1315に達すると、第1次絞り
込み処理ルーチンは終了する。
込み処理ルーチンは終了する。
第15図は本発明による文字列検索方法の一実施例の処
理フロー図で、特に前述の第2次絞り込み処理、すなわ
ち候補文字列群の情報からキーワードに合致する情報を
検出する処理に有効な方法である。第2次絞り込み処理
の方法としては、通常のテキストサーチ処理機能をもつ
従来方式(例えばスカラFSA法など)が適用可能であ
る。しかし、次の理由から、第2次絞り込み処理はなる
べく高速であることが望ましい。すなわち、上記文字列
検索方法の実行時間は第1次絞り込み処理実行時間と第
2次絞り込み処理実行時間の和で決まる。従って、第1
次絞り込み処理結果の文字列に含まれる文字の量が、テ
キスト全体の文字量の1/nであるとし、第2次検索を
通常のスカラプログラムによるFSA法で行う場合を考
えると、第1次検索処理がいかに高速であってもスカラ
プログラムによるFSA法に対する性能向上比は、たか
だか0倍にとどまる。
理フロー図で、特に前述の第2次絞り込み処理、すなわ
ち候補文字列群の情報からキーワードに合致する情報を
検出する処理に有効な方法である。第2次絞り込み処理
の方法としては、通常のテキストサーチ処理機能をもつ
従来方式(例えばスカラFSA法など)が適用可能であ
る。しかし、次の理由から、第2次絞り込み処理はなる
べく高速であることが望ましい。すなわち、上記文字列
検索方法の実行時間は第1次絞り込み処理実行時間と第
2次絞り込み処理実行時間の和で決まる。従って、第1
次絞り込み処理結果の文字列に含まれる文字の量が、テ
キスト全体の文字量の1/nであるとし、第2次検索を
通常のスカラプログラムによるFSA法で行う場合を考
えると、第1次検索処理がいかに高速であってもスカラ
プログラムによるFSA法に対する性能向上比は、たか
だか0倍にとどまる。
6〇−
そこで、本実施例では、第2次絞り込み処理製高速化す
るため、従来知られているFSA法とベクトル化方法を
巧みに組合せることによって、高速化を実現している。
るため、従来知られているFSA法とベクトル化方法を
巧みに組合せることによって、高速化を実現している。
すなわち、ベクトル演算処理の高速化に必要な条件は
0)ベクトル長が長いこと。
(2)各ベクトル要素が独立に計算可能であること。
である。
そこで、テキスト文字列において、そのテキスト文字列
が含むキーワードを分割することなく、テキスト文字列
が互いに重複することのないように複数の部分文字列に
テキス]・文字列を分割することができれば、以下の手
順に従ってFSA法をベクトル化して処理することが可
能である6豪略は以下の通りである。
が含むキーワードを分割することなく、テキスト文字列
が互いに重複することのないように複数の部分文字列に
テキス]・文字列を分割することができれば、以下の手
順に従ってFSA法をベクトル化して処理することが可
能である6豪略は以下の通りである。
まずキーワードから状態遷移表を作成し、これをベクト
ル形式のデータである状態遷移ベクトルとする。次に各
部分文字列について部分文字列毎に一意に対応する状態
を割り当て、これらの状態を要素とする状態ベクトルを
生成する。次に各部分文字列の第1番[1の文字からな
る入力文7八”りトルを生成する。この3つのベクl〜
ルに基づき、各部分文字列における1文字分の検出処理
(FSA法の状態遷移処理)をベクトル処理として実行
する。すなわち、状態ベクトルの各要素について。
ル形式のデータである状態遷移ベクトルとする。次に各
部分文字列について部分文字列毎に一意に対応する状態
を割り当て、これらの状態を要素とする状態ベクトルを
生成する。次に各部分文字列の第1番[1の文字からな
る入力文7八”りトルを生成する。この3つのベクl〜
ルに基づき、各部分文字列における1文字分の検出処理
(FSA法の状態遷移処理)をベクトル処理として実行
する。すなわち、状態ベクトルの各要素について。
対応する入力文字ベクトルの要素に従って状態遷移ベク
トルを参照し、読み出した遷移先状態で状態遷移ベクト
ルの要素を書き換えることで、各部分文字列について1
文字分の検出処理かヘクトル処理の形で実現される。1
文字分の状態遷移処理を行った後は、各部分文字列の第
2文字L]の文字で入力文字ベクトルを作成し、状態遷
移処理を繰り返す。以−にの処理を部分文字列の最終文
字に到るまで繰り返せばよい。
トルを参照し、読み出した遷移先状態で状態遷移ベクト
ルの要素を書き換えることで、各部分文字列について1
文字分の検出処理かヘクトル処理の形で実現される。1
文字分の状態遷移処理を行った後は、各部分文字列の第
2文字L]の文字で入力文字ベクトルを作成し、状態遷
移処理を繰り返す。以−にの処理を部分文字列の最終文
字に到るまで繰り返せばよい。
この方法によれば、部分文字列数が十分大きけ九ば前述
の条件(1)が満たされ、また部分文字列どうしは互い
に無関係であるから条件(2)についても満足すること
ができ、ベクトル化が可能となる。前記第1次絞り込み
処理の結果である候補文字列は明らかに前述の2つの要
件な満たすテキスト文字列の部分文字列になっている。
の条件(1)が満たされ、また部分文字列どうしは互い
に無関係であるから条件(2)についても満足すること
ができ、ベクトル化が可能となる。前記第1次絞り込み
処理の結果である候補文字列は明らかに前述の2つの要
件な満たすテキスト文字列の部分文字列になっている。
以下の実施例の説明では上記第1次絞り込み結果を上記
部分文字列とした場合について説明するが、FSA法の
ベクトル化は本実施例に限定されない。例えばテキスト
文字列を部分文字列に分割する方法としては、最も単純
にはテキスト中のキーワードでないような区切り記号を
用いることが考えられる。例えば和文であれば句点や読
点、英文であれば空白がこれにあたる。
部分文字列とした場合について説明するが、FSA法の
ベクトル化は本実施例に限定されない。例えばテキスト
文字列を部分文字列に分割する方法としては、最も単純
にはテキスト中のキーワードでないような区切り記号を
用いることが考えられる。例えば和文であれば句点や読
点、英文であれば空白がこれにあたる。
以下、第15図に示されるPADに従って、必要に応じ
てベクトルデータの流れを示した第17図を参照して実
施例の処理を詳細に説明する。なお、第17図のベクト
ルデータの内容は、第14図で示したテキスト文字列、
キーワード文字列に対応するものである。
てベクトルデータの流れを示した第17図を参照して実
施例の処理を詳細に説明する。なお、第17図のベクト
ルデータの内容は、第14図で示したテキスト文字列、
キーワード文字列に対応するものである。
まず、テキス1〜サーチプログラム106により。
第2次絞り込みルーチン:+2がコールされ、第15図
のベクトル化FSA法処理ルーチン1501が起動され
る。ベクトル化FSA法処理ルーチンの起動にあたり、
呼出し側から渡されるパラメータを第17図(a)に示
す。ただしパラメータの内、状態遷移ベクトルF S
A、 T B Lと受理ベクトルA CCI)Tは9本
ルーチン1501の内部変数であり、パラメータとして
は渡していない。またテキストベクトルTEXTと、候
補文字列の位置と長さを示すベクトルである先頭位置ベ
クトル’r o pと候補長ベクトルL N Gが、さ
らに各候補文字列に対応する状態からなる状態ベクトル
5TATEが渡される。
のベクトル化FSA法処理ルーチン1501が起動され
る。ベクトル化FSA法処理ルーチンの起動にあたり、
呼出し側から渡されるパラメータを第17図(a)に示
す。ただしパラメータの内、状態遷移ベクトルF S
A、 T B Lと受理ベクトルA CCI)Tは9本
ルーチン1501の内部変数であり、パラメータとして
は渡していない。またテキストベクトルTEXTと、候
補文字列の位置と長さを示すベクトルである先頭位置ベ
クトル’r o pと候補長ベクトルL N Gが、さ
らに各候補文字列に対応する状態からなる状態ベクトル
5TATEが渡される。
ここで、候補文字列を示す2つのベクトルTOPとLN
Gには、第1次絞り込み処理の結果である3つの部分文
字列“5EARC,H”、”5ORT′’” A L
G ORI T i(M″′を指し示すインデックス値
が格納されている。また状態ベクトル5TATEの各要
素については初期状態の値Oが格納されている。
Gには、第1次絞り込み処理の結果である3つの部分文
字列“5EARC,H”、”5ORT′’” A L
G ORI T i(M″′を指し示すインデックス値
が格納されている。また状態ベクトル5TATEの各要
素については初期状態の値Oが格納されている。
さらに、第2次絞り込み処理の結果得られた文字列(キ
ーワードに一致する文字列)の位置と長さを格納する領
域として、検索結果位置ベクトルRT OPと検索結果
長ベクトルRL N Gが与えら一図一 れる、第17図では、ベクトルRTOP及びRL NG
は実施例に基づく最終結果に対する値が示されているが
、もちろん起動時にはこれらの値は格納されてはいない
。本実施例では簡単のため、出力領域として十分な長さ
すなわち要素数のベクトルが用意されている。
ーワードに一致する文字列)の位置と長さを格納する領
域として、検索結果位置ベクトルRT OPと検索結果
長ベクトルRL N Gが与えら一図一 れる、第17図では、ベクトルRTOP及びRL NG
は実施例に基づく最終結果に対する値が示されているが
、もちろん起動時にはこれらの値は格納されてはいない
。本実施例では簡単のため、出力領域として十分な長さ
すなわち要素数のベクトルが用意されている。
さて2以上のパラメータを渡されたベクトル化FSA法
処理ルーチン(1,501)は、まず初期化を行う (
ステップ1502)。まずキーワードKEYより、状態
遷移ベクトルF S A TB Lと受理ベクトルな生
成する。さらにプログラム変数りに先頭位置ベクトルT
OPのベクトル長さをセットする。
処理ルーチン(1,501)は、まず初期化を行う (
ステップ1502)。まずキーワードKEYより、状態
遷移ベクトルF S A TB Lと受理ベクトルな生
成する。さらにプログラム変数りに先頭位置ベクトルT
OPのベクトル長さをセットする。
つまり、プログラム変数りには、絞り込みの対象となる
候補文字列(部分文字列)の数(本実施例ではL−3)
がセットされる。
候補文字列(部分文字列)の数(本実施例ではL−3)
がセットされる。
第16図は上記状態遷移ベクトルFSATBL及び受理
ベクI〜ルACCPTを説明する図である。
ベクI〜ルACCPTを説明する図である。
第16図(a)は、”5EARCH” 、”ALGOR
ITHM”、”TEXT”の3つをキーワードとして与
えた場合の状態遷移図である。第16図は上記状態遷移
図(a)をもとに作られた、状態と入力文字と状態遷移
先の関係を表わす表で、その中で、状態遷移先はベクト
ルデータF S A T 13Lを構成する。状態遷移
先FSATB[、には各状態毎に入力文字セットの分(
この場合、入力文字はi Bのコードであるから2 B
= 256種)だけエン1−りが用意されており、各文
字はその文字コートを8ビツトの2進整数として昇順に
エン1−リ」−に並へられている。従ってF S A
T B Lのベクトルの要素数は〔状態数X256:l
である。FSΔi’ BLの各要素には、ある状態のも
とて特定の入力文字を入力した場合の遷移先状態が格納
されている。
ITHM”、”TEXT”の3つをキーワードとして与
えた場合の状態遷移図である。第16図は上記状態遷移
図(a)をもとに作られた、状態と入力文字と状態遷移
先の関係を表わす表で、その中で、状態遷移先はベクト
ルデータF S A T 13Lを構成する。状態遷移
先FSATB[、には各状態毎に入力文字セットの分(
この場合、入力文字はi Bのコードであるから2 B
= 256種)だけエン1−りが用意されており、各文
字はその文字コートを8ビツトの2進整数として昇順に
エン1−リ」−に並へられている。従ってF S A
T B Lのベクトルの要素数は〔状態数X256:l
である。FSΔi’ BLの各要素には、ある状態のも
とて特定の入力文字を入力した場合の遷移先状態が格納
されている。
例えば、状態0で文字II A IIを入力した場合、
状態遷移ベクトルF S A T B Lの第193番
目(II AIIのEBCDICコードは16進数のC
1であり、10進数では193となる)の要素を参照し
て状態7に遷移することがわかる。また、第16図(c
)の受理衣は状態がキーワードとして受理できるものか
をチエツクするものである。すなわち、受理ベクトルA
CCPTは、各状態に対応するエントリが用意されてお
り、受理状態であれば検出されたキーワードの長さが、
受理状態でなければOが格納されている。第16図の例
でいえば、キーワード″S)にΔRCH″を検出した状
態f3に対応するFSATBLの要素の値は6となり、
文字数6の文字列をキーワードとして検出したことが示
される。
状態遷移ベクトルF S A T B Lの第193番
目(II AIIのEBCDICコードは16進数のC
1であり、10進数では193となる)の要素を参照し
て状態7に遷移することがわかる。また、第16図(c
)の受理衣は状態がキーワードとして受理できるものか
をチエツクするものである。すなわち、受理ベクトルA
CCPTは、各状態に対応するエントリが用意されてお
り、受理状態であれば検出されたキーワードの長さが、
受理状態でなければOが格納されている。第16図の例
でいえば、キーワード″S)にΔRCH″を検出した状
態f3に対応するFSATBLの要素の値は6となり、
文字数6の文字列をキーワードとして検出したことが示
される。
第15図に戻り、次に候補文字列が存在する限り(ステ
ップ1503)以下のステップを繰り返す。
ップ1503)以下のステップを繰り返す。
まず、候補文字列の全てについて、先頭位置ベクトル1
゛OPの指す1文字からなるベクトルINCHを作成す
る(ステップ+504)。この処理は間接アドレスによ
るベクトル移動命令により実現がなされる。結果のベク
トルI N CF(と状態ベクI〜ルS T A、 T
Eの値から、状態遷移ベクトルFSAT B Lを参
照し、遷移先状態の値で状態ベクトルSTΔTEを更新
する(ステップ+505)。このステップは通常のべり
1−ル命令(積演算、和演算。
゛OPの指す1文字からなるベクトルINCHを作成す
る(ステップ+504)。この処理は間接アドレスによ
るベクトル移動命令により実現がなされる。結果のベク
トルI N CF(と状態ベクI〜ルS T A、 T
Eの値から、状態遷移ベクトルFSAT B Lを参
照し、遷移先状態の値で状態ベクトルSTΔTEを更新
する(ステップ+505)。このステップは通常のべり
1−ル命令(積演算、和演算。
間接アドレスに基づく移動演算等)の組合せで実現でき
る。
る。
次に、ステップ1504.15C15により各候補文字
列に対し1文字分の状態遷移が終了したので、各候補文
字列について、先頭位置ベクトルTOPの値を1インク
リメントし、候補長ベクトルL N Gの値を1デクリ
メントする(ステップ+506)。すなわち先頭位置ベ
クトルTOPは各候補文字列について、次の入力文字の
テキスト上での位置を示すベクトルであり、候補長ベク
トルL N Gは各候補文字列について、検索処理の対
象となる残りの文字数を示す値である。上述の例に従っ
て、3つの候補文字列の先頭文字について、上記のステ
ップを実行した時点(第15図■の時点)での先頭位置
ベクトルTOPと入力文字ベクトルINCH,状態ベク
トル5TATE、そして候補長ベク]・ルLNGの値を
第17図(b)■に示した。ここで先頭位置ベクトルT
OPの値は初期値より各々1大きな値となり、各候補文
字列の第2文字目が次の遷移処理(ステップ1504.
1505)の対象となることを示している。また入力文
字ベクトルINCHには、各候補文字列の先頭文字が格
納され、状態ベクトル5TATEには、入力文字TNC
Hに基づく遷移結果が格納されている。第1番目の候補
文字列についてみれば、状態Oで文字パS′″を入力し
たことで状態]−に遷移したことがわかる。候補長ベク
トルL N Gについては、1文字分の遷移処理を行っ
たために、各要素とも初期状態より]少ない値が格納さ
れている。
列に対し1文字分の状態遷移が終了したので、各候補文
字列について、先頭位置ベクトルTOPの値を1インク
リメントし、候補長ベクトルL N Gの値を1デクリ
メントする(ステップ+506)。すなわち先頭位置ベ
クトルTOPは各候補文字列について、次の入力文字の
テキスト上での位置を示すベクトルであり、候補長ベク
トルL N Gは各候補文字列について、検索処理の対
象となる残りの文字数を示す値である。上述の例に従っ
て、3つの候補文字列の先頭文字について、上記のステ
ップを実行した時点(第15図■の時点)での先頭位置
ベクトルTOPと入力文字ベクトルINCH,状態ベク
トル5TATE、そして候補長ベク]・ルLNGの値を
第17図(b)■に示した。ここで先頭位置ベクトルT
OPの値は初期値より各々1大きな値となり、各候補文
字列の第2文字目が次の遷移処理(ステップ1504.
1505)の対象となることを示している。また入力文
字ベクトルINCHには、各候補文字列の先頭文字が格
納され、状態ベクトル5TATEには、入力文字TNC
Hに基づく遷移結果が格納されている。第1番目の候補
文字列についてみれば、状態Oで文字パS′″を入力し
たことで状態]−に遷移したことがわかる。候補長ベク
トルL N Gについては、1文字分の遷移処理を行っ
たために、各要素とも初期状態より]少ない値が格納さ
れている。
さて状態遷移が終わると、各候補文字列について、遷移
後の断状態が受理状態であるか否かの検査を行う。まず
遷移後の状態5TATEをもとに受理ベクトルACCP
Tを参照して、参照した値が正の数であれば(ステップ
1507)受理状態であるから、検出文字列の先頭位置
と長さを出力用のベクトルRTOP、RLNGに格納す
る(ステップ1508)。受理ベクトルACCPTを参
照した値がOなる受理状態ではないので、次のステップ
に進む。第17図(b)■の例では、状態ベクトル5T
ATEの各要素である状態1,7は共に受理状態ではな
いので、結果文字列の出力は行われない。
後の断状態が受理状態であるか否かの検査を行う。まず
遷移後の状態5TATEをもとに受理ベクトルACCP
Tを参照して、参照した値が正の数であれば(ステップ
1507)受理状態であるから、検出文字列の先頭位置
と長さを出力用のベクトルRTOP、RLNGに格納す
る(ステップ1508)。受理ベクトルACCPTを参
照した値がOなる受理状態ではないので、次のステップ
に進む。第17図(b)■の例では、状態ベクトル5T
ATEの各要素である状態1,7は共に受理状態ではな
いので、結果文字列の出力は行われない。
次に、候補文字列の圧縮ステップについて説明する。ま
ず圧縮結果を出力する位置を示すプログラム変数Jを1
にセットする(ステップ+509)。
ず圧縮結果を出力する位置を示すプログラム変数Jを1
にセットする(ステップ+509)。
次に全ての候補文字列について、各候補文字列の残りの
長さである候補長ベクトルL N Gの要素の値を検査
する(ステップ15]0)。もし長さがOより大きけれ
ば、候補文字列の残りの部分に次の状S遷移処理を行う
必要があるから、先頭位置ベクトルTOP、候補長ベク
トルLNG、状態ベクトル5TATEから除外しないで
おく (ステップ15+1)、もし長さがOであれば、
該当する候補文字列の最終文字について状態遷移処理を
実行したことがわかるので、この候補文字列に関する先
頭位置、候補長、状態の各情報を各ベクトルから対応す
る要素を除外する。最後に、残った候補文字列の数をプ
ログラム変数Nにセラ1−する(ステップ1512)。
長さである候補長ベクトルL N Gの要素の値を検査
する(ステップ15]0)。もし長さがOより大きけれ
ば、候補文字列の残りの部分に次の状S遷移処理を行う
必要があるから、先頭位置ベクトルTOP、候補長ベク
トルLNG、状態ベクトル5TATEから除外しないで
おく (ステップ15+1)、もし長さがOであれば、
該当する候補文字列の最終文字について状態遷移処理を
実行したことがわかるので、この候補文字列に関する先
頭位置、候補長、状態の各情報を各ベクトルから対応す
る要素を除外する。最後に、残った候補文字列の数をプ
ログラム変数Nにセラ1−する(ステップ1512)。
第17図(b)■の例で言えば、各候補文字列とも残り
の長さを示す候補長ベクトルの要素値がOより大きいの
で、候補文字列数は不変である。
の長さを示す候補長ベクトルの要素値がOより大きいの
で、候補文字列数は不変である。
ステップ1504からステップ1511について、各候
補文字列の性質を表わすベクトル(先頭位置ベクトルT
OP、候補長ベクトルL N G 、入力文字ベクトル
INCH,状態ベクトル5TATE)において、各ベク
トル要素は互いに無関係である。従ってこれらのステッ
プを構成するベクトル命令例では、あるベクトル命令が
出力するベクトルにおいて、要素の値が確定した時点で
、このベクトルを入力とする次のベクトル命令の演算を
開始することが可能であるから、ベクトル命令列の間で
実行をオーバラップすること(チエイニングと呼ばれる
)ができ、高速化が達成される。このように本実施例の
バク1ヘルF S A法は、ベクトル計算機において好
適なアルゴリズムとなっている。
補文字列の性質を表わすベクトル(先頭位置ベクトルT
OP、候補長ベクトルL N G 、入力文字ベクトル
INCH,状態ベクトル5TATE)において、各ベク
トル要素は互いに無関係である。従ってこれらのステッ
プを構成するベクトル命令例では、あるベクトル命令が
出力するベクトルにおいて、要素の値が確定した時点で
、このベクトルを入力とする次のベクトル命令の演算を
開始することが可能であるから、ベクトル命令列の間で
実行をオーバラップすること(チエイニングと呼ばれる
)ができ、高速化が達成される。このように本実施例の
バク1ヘルF S A法は、ベクトル計算機において好
適なアルゴリズムとなっている。
以上で、各候補文字列について1文字分の処理が終了す
る。そこで、ステップ1503に戻り、候補文字列数を
示す変数N IJ< oより大きいか否かを調べる。変
数NがN>O5つまり候補文字列が残っている限りは上
記のステップ(ステップ1504〜+512)を繰り返
し実行する。候補文字列が尽きた時点でベクトル化FS
A法の処理(+501)が終了し、リターンする(ステ
ップ15J3)。
る。そこで、ステップ1503に戻り、候補文字列数を
示す変数N IJ< oより大きいか否かを調べる。変
数NがN>O5つまり候補文字列が残っている限りは上
記のステップ(ステップ1504〜+512)を繰り返
し実行する。候補文字列が尽きた時点でベクトル化FS
A法の処理(+501)が終了し、リターンする(ステ
ップ15J3)。
最後に第17図の例を用いて、候補文字列の圧縮と、結
果文字列の出力について説明する。第16図ステップ1
504〜1512のループのうち、■点での各ベクトル
の値を示したものが第171(b)である。
果文字列の出力について説明する。第16図ステップ1
504〜1512のループのうち、■点での各ベクトル
の値を示したものが第171(b)である。
第17図(b)の■では、候補長ベクトルLNGの第2
要素の値がOとなり、候補文字列” S ORT ”の
サーチが終了したことがわかる。そこでステップ151
0−1511の処理で候補文字列”5ORT”&、−関
するデータが削除され、第17図■以降では候補長が2
(N=2)となる。また第17図(b)■では、状態
ベクトル5TATEの第1要素の値が6になっている。
要素の値がOとなり、候補文字列” S ORT ”の
サーチが終了したことがわかる。そこでステップ151
0−1511の処理で候補文字列”5ORT”&、−関
するデータが削除され、第17図■以降では候補長が2
(N=2)となる。また第17図(b)■では、状態
ベクトル5TATEの第1要素の値が6になっている。
状態6については受理ベクトルACCP T (1,5
02)の第6要素の値が6であり、受理状態であること
がわかる。そこで、ステップ1507〜1508により
候補文字列“S E A R,CH”についてはキーワ
ードに一致する文字列として結果格納用のベクトルRT
OP、RLNGに対する出力(キーワードのテキスト文
字列の位置及び文字数)が取り出される。
02)の第6要素の値が6であり、受理状態であること
がわかる。そこで、ステップ1507〜1508により
候補文字列“S E A R,CH”についてはキーワ
ードに一致する文字列として結果格納用のベクトルRT
OP、RLNGに対する出力(キーワードのテキスト文
字列の位置及び文字数)が取り出される。
以上の処理によってベクトル化FSA法による第2次絞
り込み処理の結果、第1次絞り込み処理結果である候補
文字列” S E A RCH″“S○RT” 、”A
LGORTTI−IM”のうち、雑音である候補文字列
” S ORT ”が除去され、全体として完全なサー
チが実現される。
り込み処理の結果、第1次絞り込み処理結果である候補
文字列” S E A RCH″“S○RT” 、”A
LGORTTI−IM”のうち、雑音である候補文字列
” S ORT ”が除去され、全体として完全なサー
チが実現される。
第2次絞り込み処理ルーチン32が完了すると、目的の
最終結果が得られるのでテキストサーチプログラムが完
了する(ステップ33)。
最終結果が得られるのでテキストサーチプログラムが完
了する(ステップ33)。
本実施例では、第1次絞り込み処理と第2次絞り込み処
理の対象となる文字コードを1バイトとしたが2バイト
コートでも差し支えない。また、1バイトコードのテキ
ストについても、連続する2バイトを1文字として扱う
ことにより、2バイト単位で第1次絞り込み処理を実現
すれば、第1次絞り込み処理で検出される候補文字列の
量が1バイト単位で検出した場合に比べて低下し、第2
次絞り込み処理の負荷を低下することができる。
理の対象となる文字コードを1バイトとしたが2バイト
コートでも差し支えない。また、1バイトコードのテキ
ストについても、連続する2バイトを1文字として扱う
ことにより、2バイト単位で第1次絞り込み処理を実現
すれば、第1次絞り込み処理で検出される候補文字列の
量が1バイト単位で検出した場合に比べて低下し、第2
次絞り込み処理の負荷を低下することができる。
この改良方法について、第18図を用いてその概要を説
明する。対象とするテキスト及びキーワードは】バイ]
・コード(EBCDTKコード)で表わされるものとし
、また簡単のため出現文字はアルファベット26文字と
空白の全部で27種類とする。
明する。対象とするテキスト及びキーワードは】バイ]
・コード(EBCDTKコード)で表わされるものとし
、また簡単のため出現文字はアルファベット26文字と
空白の全部で27種類とする。
さらに出現状態ベクトルKWD (2001)のエント
リを729 (=27X27)に制限する。第18図に
示されるように、キーワードは連続する2バイ1−が1
文字として扱われ出現状態ベクトルに、WDI81に賛
録されている。例えば単語“TEXT”はII T F
IT 、 II EX ++ 、 11 X T
++の4つの文字からなる列として扱い、対応するエ
ントリに1が格納されている。テキスト文字列について
も連続する2バイトを1文字として扱う(テキストベク
1〜ルT E X T 182)。第1次絞り込み処理
のアルゴリズムに関しては、処理の単位が変わるだけで
あとは」二連の実施例と全く同じ処理を行えばよい。本
改良法では、1バイト髪1文字として処理を行う場合に
候補文字列に出現する” HA S H”なる雑音を除
去することができる(エントリ” HA ””AS”
、”SH”の出現状態ベクトルに、 W D181での
値がOであるため)。従って、第1次絞り込み処理の結
果である候補文字量が低減されて、第2次絞り込み処理
での処理量が少なくなり、全体として高速化が達成され
る。
リを729 (=27X27)に制限する。第18図に
示されるように、キーワードは連続する2バイ1−が1
文字として扱われ出現状態ベクトルに、WDI81に賛
録されている。例えば単語“TEXT”はII T F
IT 、 II EX ++ 、 11 X T
++の4つの文字からなる列として扱い、対応するエ
ントリに1が格納されている。テキスト文字列について
も連続する2バイトを1文字として扱う(テキストベク
1〜ルT E X T 182)。第1次絞り込み処理
のアルゴリズムに関しては、処理の単位が変わるだけで
あとは」二連の実施例と全く同じ処理を行えばよい。本
改良法では、1バイト髪1文字として処理を行う場合に
候補文字列に出現する” HA S H”なる雑音を除
去することができる(エントリ” HA ””AS”
、”SH”の出現状態ベクトルに、 W D181での
値がOであるため)。従って、第1次絞り込み処理の結
果である候補文字量が低減されて、第2次絞り込み処理
での処理量が少なくなり、全体として高速化が達成され
る。
本発明によれば、複数キーワードに対する文字列検索が
2段階から構成され、第1段階ではテキス1〜がキーワ
ード及びそれに類似する文字列とに絞り込まれ、第2段
階では絞り込まれた各文字列に対し、キーワードを含む
か否かが再度チエツクされる。第10図で説明したよう
に第1段階はパイプライン処理による高速化が行え、第
2段階では処理する文字量が絞り込まれて低減されてい
るので、全体として高速化される。今、従来の文字列検
索の処理速度を15、第1段階での処理速度をα。
2段階から構成され、第1段階ではテキス1〜がキーワ
ード及びそれに類似する文字列とに絞り込まれ、第2段
階では絞り込まれた各文字列に対し、キーワードを含む
か否かが再度チエツクされる。第10図で説明したよう
に第1段階はパイプライン処理による高速化が行え、第
2段階では処理する文字量が絞り込まれて低減されてい
るので、全体として高速化される。今、従来の文字列検
索の処理速度を15、第1段階での処理速度をα。
第1段階による絞り込みの串(すなわち候補文字列の量
÷テキスト量)をβとし、第2段階では従来の文字列検
索と同じ方法を適用するものとすると、第1段階での処
理時間はテキスト文字をNとしてN/α、第2段階での
処理時間は候補の量はNβで速度]、なのでNβとなる
。
÷テキスト量)をβとし、第2段階では従来の文字列検
索と同じ方法を適用するものとすると、第1段階での処
理時間はテキスト文字をNとしてN/α、第2段階での
処理時間は候補の量はNβで速度]、なのでNβとなる
。
従って本発明の方法と従来方法の処理時間の比=75
は
N/α+Nβ:N=−+β:1である。
例えば、α=IO1β=0.1とすれば本発明の方法は
従来方法よりも5倍高速であることがわかる。
従来方法よりも5倍高速であることがわかる。
ここでαとβの実際の値についてもう少し詳しく説明す
る。始めに専用ハードウェアにより、本発明を実現した
場合について述べる。
る。始めに専用ハードウェアにより、本発明を実現した
場合について述べる。
まず、αについてみる。本発明の第1段階における1テ
キスト文字の処理は、テキスト文字の読み出し、ハツシ
ュによるRAMアドレスの生成。
キスト文字の処理は、テキスト文字の読み出し、ハツシ
ュによるRAMアドレスの生成。
RAMからの出現形態情報読み出し、及びカウンタ更新
から成っており、第10図に示したようにパイプライン
化され見かけ上1単位時刻(マシンサイクル)で1テキ
スト文字の処理が完了する。
から成っており、第10図に示したようにパイプライン
化され見かけ上1単位時刻(マシンサイクル)で1テキ
スト文字の処理が完了する。
方第12図に示すFSA法のプログラムでは1テキスト
文字当たりステップ1204〜1212のループを回る
ので少なくとも10マシンサイクル以上を要する。
文字当たりステップ1204〜1212のループを回る
ので少なくとも10マシンサイクル以上を要する。
従ってα≧10となる。
次に、βについて説明する。βは前述のように、テキス
トが第1段階でどの程度まで絞り込まれたかを示す割合
である。この割合はテキストとキーワードに依存して大
きく変化する。種々のテキストとキーワードの紹合せに
ついてβを実測した結果を第19図に示す。第19図は
あるテキス1〜とキーワードの組合せをjつのケースと
して、9つのケースについてβを実測したもので、絞り
込まれた候補をさらに雑音とキーワード一致文字列とに
分離して示している。ケース3〜ケース2は、同一分野
のテキストとキーワード、例えば計算機関係の文献をテ
キストとして計算機の技術用語をキーワードとして与え
たような場合であり、ケース3〜ケース8は異分野のテ
キストとキーワードの組合せについてみたものである。
トが第1段階でどの程度まで絞り込まれたかを示す割合
である。この割合はテキストとキーワードに依存して大
きく変化する。種々のテキストとキーワードの紹合せに
ついてβを実測した結果を第19図に示す。第19図は
あるテキス1〜とキーワードの組合せをjつのケースと
して、9つのケースについてβを実測したもので、絞り
込まれた候補をさらに雑音とキーワード一致文字列とに
分離して示している。ケース3〜ケース2は、同一分野
のテキストとキーワード、例えば計算機関係の文献をテ
キストとして計算機の技術用語をキーワードとして与え
たような場合であり、ケース3〜ケース8は異分野のテ
キストとキーワードの組合せについてみたものである。
第19図より明らかなように同一分野ではβは0.1〜
0.15程度、異分野では0〜0.01程度となり、こ
の例では平均約0.05 <らいになる。
0.15程度、異分野では0〜0.01程度となり、こ
の例では平均約0.05 <らいになる。
従って本発明の文字列検索方法及び装置は、第19図の
例ではFSA法に比べ約6.7倍程度高速となる。
例ではFSA法に比べ約6.7倍程度高速となる。
次に、通常のベクトルδ1算機を用いて本発明を実現し
た場合の効果について説明する。この場合、第1次絞り
込み処理のルーチンは第13図のフロチャートに従い、
第2次絞り込み処理ルーチンは第15図のフローチャー
1−に従い実現される。しかしベクトル化されたプログ
ラムを処理する場合に、ベクトル命令列のうちでオーバ
ラップ可能な命令列を並列に実行する能力(チエイニン
グと呼ばti。
た場合の効果について説明する。この場合、第1次絞り
込み処理のルーチンは第13図のフロチャートに従い、
第2次絞り込み処理ルーチンは第15図のフローチャー
1−に従い実現される。しかしベクトル化されたプログ
ラムを処理する場合に、ベクトル命令列のうちでオーバ
ラップ可能な命令列を並列に実行する能力(チエイニン
グと呼ばti。
る)は、通常ベクトル計算機の機種毎に異なる。
従って、前述のパラメータαに一〕いて、−概にこれを
言うことはできない。以丁では、プログ弓ム言語FOR
T RA Nにより記述された本発明のアルゴリズムを
1日立製作所製S81.Oアレイプロセッサシステムで
実行した場合の性能と、従来のFパSA法を5810ア
レイプロセツサシステムのスカシプロセシングユニット
で実行した場合の性能とを実測した結果に基づいて、本
発明の効果を述べる。第20図は、16386文字のテ
キストに対し、2通りのキーワードを与えて両者の性能
を実測した値である。前述のように1本発明のテキスl
〜サチ方式では、耐記のパラメータβの値が性能を大き
く左右する。そこで、キーワード列を2通り与えて、β
の値力司、015と0.8の場合の性能を実測している
。この値から逆算すると、ベクトル化された第1次検索
処理ルーチンの、スカラFSA法に対する性能比は13
.2倍、ベクトル化FSA法のスカシF S A法に対
する性能比は6.56倍である。従って、ベクトル計算
機による本発明のテキストサチ処理方法とスカラFSA
法の処理時間の比はである(ここでNはテキストの巣で
ある)。
言うことはできない。以丁では、プログ弓ム言語FOR
T RA Nにより記述された本発明のアルゴリズムを
1日立製作所製S81.Oアレイプロセッサシステムで
実行した場合の性能と、従来のFパSA法を5810ア
レイプロセツサシステムのスカシプロセシングユニット
で実行した場合の性能とを実測した結果に基づいて、本
発明の効果を述べる。第20図は、16386文字のテ
キストに対し、2通りのキーワードを与えて両者の性能
を実測した値である。前述のように1本発明のテキスl
〜サチ方式では、耐記のパラメータβの値が性能を大き
く左右する。そこで、キーワード列を2通り与えて、β
の値力司、015と0.8の場合の性能を実測している
。この値から逆算すると、ベクトル化された第1次検索
処理ルーチンの、スカラFSA法に対する性能比は13
.2倍、ベクトル化FSA法のスカシF S A法に対
する性能比は6.56倍である。従って、ベクトル計算
機による本発明のテキストサチ処理方法とスカラFSA
法の処理時間の比はである(ここでNはテキストの巣で
ある)。
次に、英語論文を対象とした絞り込み率βの実測結果を
第21図に示す。第19図では、ケース0〜ケース2は
同一分野のテキストとキーワード、ケス3〜ケース8は
異分野のテキストとキーワードの組合せについてみてい
る。しかし、第19図とは異なり、テキスl〜とキーワ
ード間での−M、不一致に関する情報と、絞り込み率β
の間に明確な相関関係はない。これは、キーワードを出
現情報ベクトルへ登録する際にIB小単位登録を行って
いるため、雑音の占める割合いが大きいことによる。こ
の例で、βの平均値は約0.61である。
第21図に示す。第19図では、ケース0〜ケース2は
同一分野のテキストとキーワード、ケス3〜ケース8は
異分野のテキストとキーワードの組合せについてみてい
る。しかし、第19図とは異なり、テキスl〜とキーワ
ード間での−M、不一致に関する情報と、絞り込み率β
の間に明確な相関関係はない。これは、キーワードを出
現情報ベクトルへ登録する際にIB小単位登録を行って
いるため、雑音の占める割合いが大きいことによる。こ
の例で、βの平均値は約0.61である。
従って、ベクトル計算機上での本アルゴリズ11の性能
は、第21図の例ではI” S A法と比べて約5.9
倍程度高速となる。
は、第21図の例ではI” S A法と比べて約5.9
倍程度高速となる。
第1図は本発明による文字列検索装置の−・実施例の構
成を示す図、第2図は第1図の1−、記憶装置の詳細図
、第3図は本発明による文字列検索方法の一実施例の処
理を示すフローチャート、第4図は第3図における第1
次絞り込み処理の詳細なフローチャート、第5図は第1
図の実施例に使用されるハツシュ回路の構成図、第6図
は第1図の実施例におけるキーワード文字の属性を表わ
す図、第7図は第1図の実施例におけるテキストサーチ
命令の形式を示す図、第8図は第1図の実施例における
各カウンタ制御論理回路及びストア制御論理回路の構成
を示す真理値表、第9図は第1図の実施例における動作
履歴を示す図、第10図は第1図の実施例のパイプライ
ン動作を示すタイムチャート、第11図は本発明による
文字検索方法における第2次絞り込み処理の一実施例の
処理フローチャー1・、第12図はFSA法の説明図、
第13図及び第15図は本発明による文字検索方法の他
の実施例のフローチャート、第14図は第13図の実施
例におけるベクトルデータの流れを示す図、第16図は
第15図の実施例に使用される状態遷移表を示した図。 第17図は第15図の実施例によるベクトル化FSA法
の処理におけるベクトルデータの流れを示す図。 第18図は本発明による文字列検索方法の一実施例に使
用されるデータの構成を示す図、第19図及び第21図
はいずれも本発明による第1次絞り込み処理による絞り
込みの割合を実測した結果に示す図、第20図は本発明
による文字検索方法の一実施例における実測した結果を
示す図である。 〈符号の説明〉 】02・テキスト文字列 103・出現形態マツプ +04・第1次絞り込み結果 105・・・第2次絞り込み結果 106・・・テキストサーチプログラム117・・・テ
キスI〜サーチユニット31・・・第1次絞り込み処理
ルーチン32・・・第2次絞り込み処理ルーチン109
・・・出現形態マツプ格納用RAM】13・・・一致長
カウンタ +16・・・ハツシュ回路 144〜146・・・キーワード文字列1501・・ベ
クトル化FSA法プログラム211・・・テキストカウ
ンタ制御論理212・・・一致長カウンタ制御論理 213・・・有効長カウンタ制御論理 2]4・・・結果カウンタ制御論理 215・・・ストア制御論理
成を示す図、第2図は第1図の1−、記憶装置の詳細図
、第3図は本発明による文字列検索方法の一実施例の処
理を示すフローチャート、第4図は第3図における第1
次絞り込み処理の詳細なフローチャート、第5図は第1
図の実施例に使用されるハツシュ回路の構成図、第6図
は第1図の実施例におけるキーワード文字の属性を表わ
す図、第7図は第1図の実施例におけるテキストサーチ
命令の形式を示す図、第8図は第1図の実施例における
各カウンタ制御論理回路及びストア制御論理回路の構成
を示す真理値表、第9図は第1図の実施例における動作
履歴を示す図、第10図は第1図の実施例のパイプライ
ン動作を示すタイムチャート、第11図は本発明による
文字検索方法における第2次絞り込み処理の一実施例の
処理フローチャー1・、第12図はFSA法の説明図、
第13図及び第15図は本発明による文字検索方法の他
の実施例のフローチャート、第14図は第13図の実施
例におけるベクトルデータの流れを示す図、第16図は
第15図の実施例に使用される状態遷移表を示した図。 第17図は第15図の実施例によるベクトル化FSA法
の処理におけるベクトルデータの流れを示す図。 第18図は本発明による文字列検索方法の一実施例に使
用されるデータの構成を示す図、第19図及び第21図
はいずれも本発明による第1次絞り込み処理による絞り
込みの割合を実測した結果に示す図、第20図は本発明
による文字検索方法の一実施例における実測した結果を
示す図である。 〈符号の説明〉 】02・テキスト文字列 103・出現形態マツプ +04・第1次絞り込み結果 105・・・第2次絞り込み結果 106・・・テキストサーチプログラム117・・・テ
キスI〜サーチユニット31・・・第1次絞り込み処理
ルーチン32・・・第2次絞り込み処理ルーチン109
・・・出現形態マツプ格納用RAM】13・・・一致長
カウンタ +16・・・ハツシュ回路 144〜146・・・キーワード文字列1501・・ベ
クトル化FSA法プログラム211・・・テキストカウ
ンタ制御論理212・・・一致長カウンタ制御論理 213・・・有効長カウンタ制御論理 2]4・・・結果カウンタ制御論理 215・・・ストア制御論理
Claims (1)
- 【特許請求の範囲】 1、テキスト文字列を表わすテキスト文字列情報から、
キーワード文字列に対応する情報を検索する方法であっ
て、 上記テキスト文字列情報から上記キーワード及び上記キ
ーワード文字列に類似する文字列とからなる候補文字列
の情報を検出する第1ステップと、 上記第1ステップで得られた候補文字列の情報が上記キ
ーワード文字列の情報に一致するか否かを調べ、上記候
補文字列の情報からキーワード文字列の情報を抽出する
第2ステップとを有することを特徴とする文字列検索方
法。 2、請求項第1記載において、上記第1ステップは、少
なくとも上記テキスト文字列に表われる全ての文字のそ
れぞれについて、上記キーワード文字列中の出現形態を
表わす出現形態情報を得る第3ステップと、上記テキス
ト文字列情報の各文字の情報を順次得る第4ステップと
、上記第4ステップで得られた文字の情報を上記出現形
態情報に照合して個別の出現形態情報に変換する第6ス
テップと、上記個別の出現形態情報を用いて、上記個別
の出現形態情報に対応する文字を上記候補文字列に加え
るか否かを判定する第7ステップとを有し、上記第4、
第5、第6及び第7ステップが複数の文字に対してパイ
プライン処理されることを特徴とする文字列検索方法。 3、請求項第2記載の文字列検索方法において、上記第
2ステップが、上記キーワード文字列情報を用いて、キ
ーワードの状態遷移表を作る第8ステップと、上記候補
文字列の情報に対応するテキスト文字列を入力とし、上
記状態遷移表によって、上記候補文字列の中から上記キ
ーワード文字列に対応する情報を選出する第9ステップ
を有する文字列検索方法。 4、請求項第2記載において、上記出現形態情報は各文
字がキーワード文字列に出現するか否かを表わす情報で
ある文字列検索方法。 5、請求項第2記載において、上記出現形態情報は各文
字がキーワード文字列の中のどのような位置に出現する
かを示す情報である文字列検索方法。 6、請求項第1、第2、第3、第4又は第5記載におい
て、上記第2ステップで得られるキーワード文字列の情
報が上記テキスト文字列におけるキーワードの最初の文
字の上記テキスト文字列における位置情報及び上記キー
ワード文字列の長さの情報である文字列検索方法。 7、テキスト文字列を表わす第1情報、キーワード文字
列を表わす第2情報、上記テキスト文字列の各文字が上
記キーワード文字列に現れる形態を表わす出現形態情報
、上記第1及び第2情報ならび上記出現形態情報を用い
て上記テキスト文字列から上記キーワード文字列又は上
記キーワード文字列に類似する文字列からなる候補文字
列群を表わす第3情報を得る第1プログラム及び上記第
1情報と上記第2情報と上記第3情報を用いて上記第3
情報の中の上記キーワード文字列に関する第4の情報を
選ぶ第2プログラムを格納する単一又は複数の記憶装置
と、上記第1及び第2プログラムによって動作する処理
ユニットと、 上記処理ユニットが第1プログラムが実行されるときに
起動し、上記記憶手段の出現状態情報を記憶するメモリ
と、上記テキスト文字列の第1情報を各文字毎に順次読
み出し、上記第1情報を上記メモリのアドレスとして上
記出現形態情報を読み出す第1手段と、検出中の候補文
字列の長さを保持する一致長カウンタと、上記一致長カ
ウンタの計数値及び第1の手段で得られた出現形態情報
とに従って、上記検出中の候補文字列の次のテキスト文
字を候補文字列に加えるか否かを判定し上記一致長カウ
ンタを更新する制御手段とを有するテキストサーチ装置
とを持つ文字列検索装置。 8、請求項第8記載において、上記出現形態情報がテキ
スト文字列に表われる全種類の文字について、各文字が
キーワード文字列に出現するか否かの情報である文字検
索装置。 9、請求項第7記載において、上記出現形態情報がテキ
スト文字列に表われる全種類の文字について、各文字が
キーワード文字列中でどのような位置に出現するかを表
わす情報である文字検索装置。 10、請求項第9記載において、上記出現形態情報が、
キーワード文字列の最短長さ以下であるか否かの情報、
キーワード文字列の先頭に表われるかの情報、キーワー
ド文字列の先頭と最後外に出現するか否かの情報、キー
ワード文字列の最後に出現するか否かの情報を有する文
字列検索装置。 11、請求項第10記載において、さらに、テキスト文
字列の検索された文字の位置を計数するテキストカウン
タと、候補文字列の最後の文字が検出されたとき、その
候補文字列の長さを計数する有効長カウンタと、複数の
候補文字列の順位を計数する結果カウンタとを有し、上
記制御手段は候補文字列が検出される毎に、上記テキス
トカウンタ、一致長カウンタ、有効長カウンタより、上
記候補文字列の最初の文字の上記テキスト文字列上の位
置情報及び上記候補文字列の長さの情報を得るように制
御する論理回路で構成された文字列検索装置。 12、テキスト文字列を表わす第1情報を順次入力する
第1手段、テキストに現われる全文字のそれぞれに対し
、上記全文字のそれぞれが検索すべきキーワードの文字
列の中で表われる形態情報を記憶した形態情報メモリ、
上記第1手段で得られた第1情報を上記形態情報メモリ
のアドレス信号に変換するアドレス変換手段、検索中の
テキストの文字列が上記キーワード文字列の候補文字と
して連続して発生しているとき、その長さを保持する第
1のカウンタと、上記第1のカウンタの及び上記形態情
報メモリからの形態情報を入力し、上記第1のカウンタ
で保持されている候補文字列の次のテキスト文字を候補
文字列に加えるか否かを判定し、上記カウンタを更新す
る制御手段とを有し、テキスト文字列の情報から、キー
ワード文字列の候補文字列群の情報を得る文字列検索装
置。 13、請求項第12記載において、上記候補文字列群の
情報は、上記候補文字列の先頭文字の上記テキスト文字
列上における位置情報と候補となるキーワード文字列の
文字数の情報とからなる文字列検索装置。 14、請求項第12記載において、上記形態情報は、検
索すべき文字がキーワード文字列に出現するか否かの情
報である文字列検索装置。 15、請求項第13記載において、上記形態情報は検索
すべき文字のキーワード文字列における位置に関する情
報である文字列検索装置。 16、請求項第1記載の文字列検索方法において、上記
第1のステップは、上記テキスト文字列に表われる全て
の文字に対して、各文字がキーワード文字列内に出現す
るか否かを表わす出現情報からなる出現情報ベクトルを
生成する第3のステップと、上記テキスト文字列の各文
字に対して上記出現情報ベクトル内の上記各文字に対応
する出現情報を読み出し、上記読み出した出現情報がテ
キスト文字列の各文字に一意に対応する要素となる検出
状態ベクトル情報を生成する第4のステップと、 上記検出状態ベクトルを読み出し、検出状態ベクトルを
構成する出現情報から対応するテキスト文字列の各文字
が候補文字列を構成する文字であるか否かを判定する第
5のステップとを有する文字列検索方法。 17、請求項第16記載の文字列検索方法において、上
記第5のステップは、上記検出状態ベクトルで同一の出
現情報が連続して並ぶ両端の位置を表わす区切り位置ベ
クトルを生成する第6のステップと、上記第6ステップ
で得られた区切り位置ベクトル情報から上記両端の位置
の先頭位置のベクトル要素のみを集めて構成される先頭
位置ベクトル及び上記両端の位置の終了位置のベクトル
要素のみを集めて終了位置ベクトル情報を作る第7のス
テップと、上記先頭位置ベクトル及び上記終了位置ベク
トルから、候補文字列の先頭文字の位置情報及び字数の
情報を上記候補文字列の情報として出力する第8ステッ
プとを持つ文字列検索方法。 18、請求項第17記載の文字列検索方法において、上
記第8のステップは、上記候補文字列の字数がキーワー
ド文字列群の最少文字数より少ないものを候補文字列情
報より除くステップを有する文字列検索方法。 19、請求項第1記載において、上記第1ステップは、
少なくとも上記テキスト文字列にあらわれる、あらかじ
め定められた長さを有する全ての部分文字列のそれぞれ
について、上記キーワード文字列中の出現形態を表わす
出現形態情報を得る第3ステップと、上記テキスト文字
列情報の各部分文字列の情報を順次得る第4ステップと
、上記第4ステップで得られた部分文字列の情報を上記
出現形態情報に照合して個別の出現形態情報に変換する
第6ステップと、上記個別の出現形態情報に対応する部
分文字列を上記候補文字列に加えるか否かを判定する第
7ステップとを有し、上記第4、第5、第6及び第7ス
テップが複数の部分文字列に対してパイプライン処理さ
れることを特徴とする文字列検索方法。 20、テキスト文字列を表わす第1の文字列情報からキ
ーワード文字列に対応する情報を検索する方法であって
、 上記キーワード文字列に対応する状態遷移表を作り、上
記テキスト文字列に表われる文字と状態とによって定ま
る新たな状態をベクトル要素とする状態遷移先ベクトル
を作る第1ステップと、 上記テキスト文字列の情報を、上記テキスト文字列に含
まれるキーワード文字列が分断されることなく、かつ、
テキスト文字列中の任意の文字が2つ以上の部分文字列
に含まれないように、複数の部分文字列情報に分割する
第2ステップと、 上記複数の部分文字列情報のそれぞれから検索対象とな
っている文字の情報を取り出し、上記取り出した情報の
それぞれをベクトル要素とする入力文字ベクトルを作る
第3ステップと、上記入力文字ベクトル及び上記状態遷
移先ベクトルより上記検索対象となっている文字の状態
をベクトル要素とする状態ベクトルを作る第4ステップ
と、 上記入力文字ベクトルと状態ベクトルを用いて上記部分
文字列毎の状態遷移処理をパイプライン処理によって行
う第5ステップとを有する文字列検索方法。 21、テキスト文字列を表わす第1の文字列情報から、
検索すべきキーワード文字列の存在する上記テキスト文
字列の位置及び文字列の字数を検索する方法において、 上記キーワード文字列の文字の遷移を状態情報で表わす
状態遷移表を作り、上記状態遷移表を用いて、上記テキ
スト文字列に表われる全文字のそれぞれと上記状態情報
によって定まる新しい状態情報をベクトル要素とする状
態遷移ベクトルを作る状態遷移ベクトル生成ステップと
、上記テキスト文字列の情報を上記テキスト文字列に含
まれるキーワード文字列が分断されることなく、かつ、
上記テキスト文字列中の任意の文字が、重複して2つ以
上の部分文字列に含まれないように、複数の部分文字列
情報に分割する分割ステップと、 上記複数の部分文字列情報のそれぞれから、検索すべき
文字情報を順次切り出し、これをベクトル要素として、
上記部分文字列の数の要素からなる入力文字ベクトルを
作る入力文字ベクトル生成ステップと、 上記入力文字ベクトルと上記状態遷移ベクトルと、上記
検索すべき文字情報の1つ前の文字列情報に対応する状
態情報とから、上記入力文字ベクトルに対応する遷移状
態を要素とする状態ベクトルを作る状態ベクトル生成ス
テップと、上記状態ベクトルの各要素の状態情報がキー
ワードの最終文字の状態であるか否かを判別し、キーワ
ード文字列の最終文字の状態であるときは、その要素に
対応する部分文字列における上記最終文字の位置及び文
字数を出力し、キーワード文字列の最終文字の状態でな
いときは上記入力文字ベクトル生成ステップに戻り、次
の検索すべき文字情報の処理に進む判別ステップとを有
し、 上記入力文字ベクトル生成ステップ、状態ベクトル生成
ステップ及び判別ステップを上記部分文字列毎に独立に
行うことを特徴とする文字列検索方法。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63260616A JP2790466B2 (ja) | 1988-10-18 | 1988-10-18 | 文字列検索方法及び装置 |
| PCT/JP1989/001064 WO1990004826A1 (en) | 1988-10-18 | 1989-10-17 | Method and apparatus for retrieving key word sequence for concurrent processing |
| DE3991231A DE3991231C2 (de) | 1988-10-18 | 1989-10-17 | Vektorprozessor und Verfahren zum Suchen einer Stichwortzeichenfolge in einer Textzeichenfolge |
| US07/499,424 US5604910A (en) | 1988-10-18 | 1989-10-17 | Method of and vector processor for searching text for key words based on candidate character strings obtained from the text using parallel processing |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63260616A JP2790466B2 (ja) | 1988-10-18 | 1988-10-18 | 文字列検索方法及び装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH02109167A true JPH02109167A (ja) | 1990-04-20 |
| JP2790466B2 JP2790466B2 (ja) | 1998-08-27 |
Family
ID=17350401
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63260616A Expired - Lifetime JP2790466B2 (ja) | 1988-10-18 | 1988-10-18 | 文字列検索方法及び装置 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5604910A (ja) |
| JP (1) | JP2790466B2 (ja) |
| DE (1) | DE3991231C2 (ja) |
| WO (1) | WO1990004826A1 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012073718A (ja) * | 2010-09-28 | 2012-04-12 | Casio Comput Co Ltd | Nグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラム |
| JP2014235625A (ja) * | 2013-06-04 | 2014-12-15 | 日本電気株式会社 | 文字列抽出装置、方法及びプログラム |
Families Citing this family (31)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5819291A (en) * | 1996-08-23 | 1998-10-06 | General Electric Company | Matching new customer records to existing customer records in a large business database using hash key |
| EP0968478A1 (de) * | 1997-03-18 | 2000-01-05 | Siemens Aktiengesellschaft | Verfahren zur automatischen generierung einer zusammenfassung von einem text durch einen rechner |
| US5999925A (en) * | 1997-07-25 | 1999-12-07 | Claritech Corporation | Information retrieval based on use of sub-documents |
| US7143350B2 (en) * | 1999-06-30 | 2006-11-28 | Microsoft Corporation | Method and system for character sequence checking according to a selected language |
| US6738779B1 (en) | 2001-02-21 | 2004-05-18 | Telecom Italia S.P.A. | Apparatus for and method of multiple parallel string searching |
| US7552385B2 (en) * | 2001-05-04 | 2009-06-23 | International Business Machines Coporation | Efficient storage mechanism for representing term occurrence in unstructured text documents |
| US7737134B2 (en) * | 2002-03-13 | 2010-06-15 | The Texas A & M University System | Anticancer agents and use |
| GB2399900B (en) * | 2003-03-27 | 2005-10-05 | Micron Technology Inc | Data reording processor and method for use in an active memory device |
| US7949732B1 (en) | 2003-05-12 | 2011-05-24 | Sourcefire, Inc. | Systems and methods for determining characteristics of a network and enforcing policy |
| US7539681B2 (en) * | 2004-07-26 | 2009-05-26 | Sourcefire, Inc. | Methods and systems for multi-pattern searching |
| US7733803B2 (en) * | 2005-11-14 | 2010-06-08 | Sourcefire, Inc. | Systems and methods for modifying network map attributes |
| US8046833B2 (en) * | 2005-11-14 | 2011-10-25 | Sourcefire, Inc. | Intrusion event correlation with network discovery information |
| US7735090B2 (en) * | 2005-12-15 | 2010-06-08 | International Business Machines Corporation | On demand software contract modification and termination in running component assemblies |
| US7948988B2 (en) * | 2006-07-27 | 2011-05-24 | Sourcefire, Inc. | Device, system and method for analysis of fragments in a fragment train |
| US7701945B2 (en) | 2006-08-10 | 2010-04-20 | Sourcefire, Inc. | Device, system and method for analysis of segments in a transmission control protocol (TCP) session |
| US9069547B2 (en) | 2006-09-22 | 2015-06-30 | Intel Corporation | Instruction and logic for processing text strings |
| US20080196102A1 (en) * | 2006-10-06 | 2008-08-14 | Sourcefire, Inc. | Device, system and method for use of micro-policies in intrusion detection/prevention |
| JP5141560B2 (ja) * | 2007-01-24 | 2013-02-13 | 富士通株式会社 | 情報検索プログラム、該プログラムを記録した記録媒体、情報検索装置、および情報検索方法 |
| US8069352B2 (en) * | 2007-02-28 | 2011-11-29 | Sourcefire, Inc. | Device, system and method for timestamp analysis of segments in a transmission control protocol (TCP) session |
| EP2156290B1 (en) * | 2007-04-30 | 2020-03-25 | Cisco Technology, Inc. | Real-time awareness for a computer network |
| US7991987B2 (en) * | 2007-05-10 | 2011-08-02 | Intel Corporation | Comparing text strings |
| JP4568320B2 (ja) * | 2007-11-19 | 2010-10-27 | 株式会社日立製作所 | 処理手順生成装置及び処理手順生成方法 |
| US8474043B2 (en) * | 2008-04-17 | 2013-06-25 | Sourcefire, Inc. | Speed and memory optimization of intrusion detection system (IDS) and intrusion prevention system (IPS) rule processing |
| WO2010045089A1 (en) | 2008-10-08 | 2010-04-22 | Sourcefire, Inc. | Target-based smb and dce/rpc processing for an intrusion detection system or intrusion prevention system |
| CA2789824C (en) | 2010-04-16 | 2018-11-06 | Sourcefire, Inc. | System and method for near-real time network attack detection, and system and method for unified detection via detection routing |
| US8433790B2 (en) | 2010-06-11 | 2013-04-30 | Sourcefire, Inc. | System and method for assigning network blocks to sensors |
| US8671182B2 (en) | 2010-06-22 | 2014-03-11 | Sourcefire, Inc. | System and method for resolving operating system or service identity conflicts |
| US8601034B2 (en) | 2011-03-11 | 2013-12-03 | Sourcefire, Inc. | System and method for real time data awareness |
| CN108182221B (zh) * | 2017-12-26 | 2022-05-31 | 北京乐蜜科技有限责任公司 | 数据处理的方法以及相关设备 |
| US11232132B2 (en) * | 2018-11-30 | 2022-01-25 | Wipro Limited | Method, device, and system for clustering document objects based on information content |
| US11409533B2 (en) * | 2020-10-20 | 2022-08-09 | Micron Technology, Inc. | Pipeline merging in a circuit |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS62210538A (ja) * | 1986-03-12 | 1987-09-16 | Hitachi Ltd | 記号列サ−チ方法および装置 |
| JPS62241026A (ja) * | 1986-04-11 | 1987-10-21 | Nec Corp | 文字列検索方式 |
| JPS63223987A (ja) * | 1987-03-13 | 1988-09-19 | Canon Inc | 文字検索方法 |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4094001A (en) * | 1977-03-23 | 1978-06-06 | General Electric Company | Digital logic circuits for comparing ordered character strings of variable length |
| US4423206A (en) * | 1981-06-16 | 1983-12-27 | The Dow Chemical Co. | Vicinal alkylene oxide polymerization |
| JPS60136870A (ja) * | 1983-12-26 | 1985-07-20 | Hitachi Ltd | ベクトル処理装置 |
| JPH0724055B2 (ja) * | 1984-07-31 | 1995-03-15 | 株式会社日立製作所 | 単語分割処理方法 |
| US5146539A (en) * | 1984-11-30 | 1992-09-08 | Texas Instruments Incorporated | Method for utilizing formant frequencies in speech recognition |
| GB8517918D0 (en) * | 1985-07-16 | 1985-08-21 | British Telecomm | Recognition system |
| JPH0797373B2 (ja) * | 1985-08-23 | 1995-10-18 | 株式会社日立製作所 | 文書フアイリングシステム |
| US5051947A (en) * | 1985-12-10 | 1991-09-24 | Trw Inc. | High-speed single-pass textual search processor for locating exact and inexact matches of a search pattern in a textual stream |
| US4972349A (en) * | 1986-12-04 | 1990-11-20 | Kleinberger Paul J | Information retrieval system and method |
| US5014327A (en) * | 1987-06-15 | 1991-05-07 | Digital Equipment Corporation | Parallel associative memory having improved selection and decision mechanisms for recognizing and sorting relevant patterns |
| US5060143A (en) * | 1988-08-10 | 1991-10-22 | Bell Communications Research, Inc. | System for string searching including parallel comparison of candidate data block-by-block |
-
1988
- 1988-10-18 JP JP63260616A patent/JP2790466B2/ja not_active Expired - Lifetime
-
1989
- 1989-10-17 US US07/499,424 patent/US5604910A/en not_active Expired - Fee Related
- 1989-10-17 DE DE3991231A patent/DE3991231C2/de not_active Expired - Fee Related
- 1989-10-17 WO PCT/JP1989/001064 patent/WO1990004826A1/ja not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS62210538A (ja) * | 1986-03-12 | 1987-09-16 | Hitachi Ltd | 記号列サ−チ方法および装置 |
| JPS62241026A (ja) * | 1986-04-11 | 1987-10-21 | Nec Corp | 文字列検索方式 |
| JPS63223987A (ja) * | 1987-03-13 | 1988-09-19 | Canon Inc | 文字検索方法 |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012073718A (ja) * | 2010-09-28 | 2012-04-12 | Casio Comput Co Ltd | Nグラム検索のための転置インデックスの生成方法および生成装置、当該転置インデックスを用いた検索方法および検索装置、ならびに、コンピュータプログラム |
| JP2014235625A (ja) * | 2013-06-04 | 2014-12-15 | 日本電気株式会社 | 文字列抽出装置、方法及びプログラム |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2790466B2 (ja) | 1998-08-27 |
| WO1990004826A1 (en) | 1990-05-03 |
| US5604910A (en) | 1997-02-18 |
| DE3991231C2 (de) | 1995-06-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH02109167A (ja) | 文字列検索方法及び装置 | |
| US10169425B2 (en) | Fast identification of complex strings in a data stream | |
| US5737732A (en) | Enhanced metatree data structure for storage indexing and retrieval of information | |
| JP3672242B2 (ja) | パターン検索方法、パターン検索装置、コンピュータプログラム及び記憶媒体 | |
| US20080319987A1 (en) | System, method and program for creating index for database | |
| JPH04247571A (ja) | データベースレコード処理装置 | |
| CN109828789A (zh) | 加速压缩方法以及加速压缩装置 | |
| JP3151730B2 (ja) | データベース検索システム | |
| JP3284064B2 (ja) | デジタル探索装置 | |
| CN109802685A (zh) | 加速压缩方法以及加速压缩装置 | |
| CN109857463A (zh) | 加速压缩方法以及加速压缩装置 | |
| CN113495901B (zh) | 一种面向可变长数据块的快速检索方法 | |
| JP2880199B2 (ja) | 記号列検索方法および検索装置 | |
| JP2001022766A (ja) | 多次元データベースの高速処理方法および装置 | |
| JP2001306614A (ja) | 文字列検索方法およびその方法を用いた文字列検索装置 | |
| JP3062119B2 (ja) | 文字列探索用テーブル、その作成方法及び文字列探索方法 | |
| CN109802686A (zh) | 加速压缩方法以及加速压缩装置 | |
| JP2772124B2 (ja) | 辞書検索方式 | |
| JP2535655B2 (ja) | 辞書検索方式 | |
| JPH10149367A (ja) | テキスト蓄積検索装置 | |
| JPH0423167A (ja) | コマンド検索方式 | |
| Zhukovaа et al. | About the possibility of determining the prefix and suffix of a word by subwords of fixed length | |
| JP3018579B2 (ja) | 名前検索処理装置 | |
| JP6096970B1 (ja) | マルメ圧縮ソフトウェアを記録した記録媒体 | |
| CA2579561C (en) | Fast identification of complex strings in a data stream |