JPH09198398A - パターン検索装置 - Google Patents
パターン検索装置Info
- Publication number
- JPH09198398A JPH09198398A JP8005236A JP523696A JPH09198398A JP H09198398 A JPH09198398 A JP H09198398A JP 8005236 A JP8005236 A JP 8005236A JP 523696 A JP523696 A JP 523696A JP H09198398 A JPH09198398 A JP H09198398A
- Authority
- JP
- Japan
- Prior art keywords
- search
- keywords
- pattern
- text
- 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.)
- Pending
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
-
- 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
- Y10S707/99935—Query augmenting and refining, e.g. inexact access
-
- 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
- Y10S707/99936—Pattern matching access
-
- 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/99937—Sorting
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)【要約】
【課題】 パターン検索装置、特に文字列検索装置に関
し、複数の検索方法のうちから最も検索効率のよい方法
を自動的に選択可能とする。 【解決手段】 検索対象内の検索パターンの検出を行う
パターン検索装置において、検索パターンの個数を含む
検索条件に対応して、複数の検索方法の中から1つの検
索方法を選択する手段1を備える。
し、複数の検索方法のうちから最も検索効率のよい方法
を自動的に選択可能とする。 【解決手段】 検索対象内の検索パターンの検出を行う
パターン検索装置において、検索パターンの個数を含む
検索条件に対応して、複数の検索方法の中から1つの検
索方法を選択する手段1を備える。
Description
【0001】
【発明の属する技術分野】本発明は検索対象から検索パ
ターンを検出するパターン検索装置に係り、更に詳しく
はテキストとしての文字列の中から検索すべき文字列、
すなわちキーワードを検索する文字列検索装置に関す
る。
ターンを検出するパターン検索装置に係り、更に詳しく
はテキストとしての文字列の中から検索すべき文字列、
すなわちキーワードを検索する文字列検索装置に関す
る。
【0002】最近のコード化された文章の増加に伴っ
て、文字列検索装置の必要性は一段と大きくなってい
る。また機械によって読むことができる文章の増加と共
に、ユーザの要求も多様化しつつあり、そのような多様
化するユーザの要求を満たすために、例えばキーワード
の数やその長さなどの検索条件に対応して検索効率を向
上させる必要性が大きくなっている。
て、文字列検索装置の必要性は一段と大きくなってい
る。また機械によって読むことができる文章の増加と共
に、ユーザの要求も多様化しつつあり、そのような多様
化するユーザの要求を満たすために、例えばキーワード
の数やその長さなどの検索条件に対応して検索効率を向
上させる必要性が大きくなっている。
【0003】
【従来の技術】本発明は、検索対象内の検索パターンの
検出を行うパターン検索装置を一般的な対象とするが、
具体的には文字列検索装置を実施例として説明するの
で、ここでは文字列検索装置に関する従来技術を説明す
る。
検出を行うパターン検索装置を一般的な対象とするが、
具体的には文字列検索装置を実施例として説明するの
で、ここでは文字列検索装置に関する従来技術を説明す
る。
【0004】従来の文字列検索装置ではその装置の使用
目的に合わせて次に述べる文字列検索方法のうちの1つ
が用いられて文字列の検索が行われている。第1の方法
は検索文字列、すなわちキーワードの数が1つだけの場
合に効率的に検索を実行できるBoyer-Moore 法(以下B
M法と略称する)である。この方法は次の文献に与えら
れている。
目的に合わせて次に述べる文字列検索方法のうちの1つ
が用いられて文字列の検索が行われている。第1の方法
は検索文字列、すなわちキーワードの数が1つだけの場
合に効率的に検索を実行できるBoyer-Moore 法(以下B
M法と略称する)である。この方法は次の文献に与えら
れている。
【0005】Boyer R.S., Moore J.S.: A Fast String
Searching Algorithm, CACM Vol.20, No.10, pp.762 (1
977) ここで具体例を用いてBM法による検索について説明す
る。英文テキストを対象としてキーワード“AT−TH
AT”を検索する場合を考える。BM法では、まず最初
にテキストの先頭にキーワードの先頭が一致するように
キーワードがテキストに対応させられ、キーワードの一
番後の文字がテキストの対応する文字と比較(矢印で示
す)される。その様子を次に示す。
Searching Algorithm, CACM Vol.20, No.10, pp.762 (1
977) ここで具体例を用いてBM法による検索について説明す
る。英文テキストを対象としてキーワード“AT−TH
AT”を検索する場合を考える。BM法では、まず最初
にテキストの先頭にキーワードの先頭が一致するように
キーワードがテキストに対応させられ、キーワードの一
番後の文字がテキストの対応する文字と比較(矢印で示
す)される。その様子を次に示す。
【0006】
【数1】
【0007】テキストの文字Fはキーワード中には存在
しないために、キーワード内の前の6文字をテキストの
対応する文字と比較することなく、キーワードを右側に
7つだけ移動させることができる。この状態を次に示
す。
しないために、キーワード内の前の6文字をテキストの
対応する文字と比較することなく、キーワードを右側に
7つだけ移動させることができる。この状態を次に示
す。
【0008】
【数2】
【0009】再びキーワードの一番後の文字がテキスト
の対応する位置の文字と比較され、一致しないことが分
かる。ここでテキストの文字、すなわち“−”はキーワ
ード中で前から3文字目に存在するので、キーワードを
4つだけ右側に移動することができる。この状態を次に
示す。
の対応する位置の文字と比較され、一致しないことが分
かる。ここでテキストの文字、すなわち“−”はキーワ
ード中で前から3文字目に存在するので、キーワードを
4つだけ右側に移動することができる。この状態を次に
示す。
【0010】
【数3】
【0011】ここでキーワードの一番後の文字がテキス
トと一致したため、その前の文字が比較される。ここで
はテキストの文字“L”はキーワード中には存在しない
ので、Lの位置から7つ、すなわち上の状態で6つだけ
キーワードが右側に移動される。この状態を次に示す。
トと一致したため、その前の文字が比較される。ここで
はテキストの文字“L”はキーワード中には存在しない
ので、Lの位置から7つ、すなわち上の状態で6つだけ
キーワードが右側に移動される。この状態を次に示す。
【0012】
【数4】
【0013】ここでキーワードの最後とその前の文字は
テキストと一致するが、更にその前の文字は一致せず、
次に示すようにキーワードが5つだけ右側に移動され、
テキスト中からキーワードが検出される。
テキストと一致するが、更にその前の文字は一致せず、
次に示すようにキーワードが5つだけ右側に移動され、
テキスト中からキーワードが検出される。
【0014】
【数5】
【0015】BM法でキーワードを右側に動かすべき量
は、キーワード自身と照合が失敗した時のテキスト上の
文字とから決まるため、照合を始める前にあらかじめそ
の量を示すテーブルを作っておき、文字列の検索を行う
ことができる。
は、キーワード自身と照合が失敗した時のテキスト上の
文字とから決まるため、照合を始める前にあらかじめそ
の量を示すテーブルを作っておき、文字列の検索を行う
ことができる。
【0016】第2の方法は、BM法と同様にキーワード
の数が1つだけの場合を対象とするものであり、例えば
英語においてaやeなどのアルファベットがqやxなど
に比べて出現頻度が多いことに着目して、出現頻度に応
じた検索を行うオプティマル・ミスマッチ法など、任意
の順序で文字比較を行えるようにBM法を改良したSund
ay法である。この方法の文献を次に示す。
の数が1つだけの場合を対象とするものであり、例えば
英語においてaやeなどのアルファベットがqやxなど
に比べて出現頻度が多いことに着目して、出現頻度に応
じた検索を行うオプティマル・ミスマッチ法など、任意
の順序で文字比較を行えるようにBM法を改良したSund
ay法である。この方法の文献を次に示す。
【0017】Sunday D.M.: A very fast substring sea
rch algorithm, CACM, Vol.33, No.8,pp.132(1990) 第3の方法は、キーワードの数が複数である場合に有効
なAho-Corasick法(以下AC法と略称する)である。こ
の方法の文献を次に示す。
rch algorithm, CACM, Vol.33, No.8,pp.132(1990) 第3の方法は、キーワードの数が複数である場合に有効
なAho-Corasick法(以下AC法と略称する)である。こ
の方法の文献を次に示す。
【0018】Aho A.V., Corasick M.J.: Efficient Str
ing Matching:An Aid to Bibliographic Search, CACM,
Vol.18, No.6, pp.333(1975) AC法では、検索にあたって複数のキーワードに対応す
る状態遷移図が作られ、この状態遷移図を基にしてテキ
ストの最初から1文字ずつ検索が行われ、キーワードが
出力されるべき状態に達した時点で検索結果が出力され
る。
ing Matching:An Aid to Bibliographic Search, CACM,
Vol.18, No.6, pp.333(1975) AC法では、検索にあたって複数のキーワードに対応す
る状態遷移図が作られ、この状態遷移図を基にしてテキ
ストの最初から1文字ずつ検索が行われ、キーワードが
出力されるべき状態に達した時点で検索結果が出力され
る。
【0019】図16はキーワードが“he”,“sh
e”,“his”、および“hers”の4つである場
合の状態遷移の説明図である。ある1つの状態、ここで
は0が最初の状態であり、hが検出された時点で状態が
1に遷移する。あるいはsが検出された時点で状態は3
に遷移する。この状態遷移図に従って状態遷移が行わ
れ、図16(b) に示すように状態、2,5,7、または
9に達した時点でキーワードの検出結果が出力される。
e”,“his”、および“hers”の4つである場
合の状態遷移の説明図である。ある1つの状態、ここで
は0が最初の状態であり、hが検出された時点で状態が
1に遷移する。あるいはsが検出された時点で状態は3
に遷移する。この状態遷移図に従って状態遷移が行わ
れ、図16(b) に示すように状態、2,5,7、または
9に達した時点でキーワードの検出結果が出力される。
【0020】図16(c) はfailure 関数、すなわち状態
遷移だけが行われる場合の遷移先を示している。例えば
状態1でeまたはiが検出されない場合には、状態は0
に遷移する。状態4でeが検出されない場合には、iが
検出されるか否かをチェックするために状態は1に遷移
する。状態5で“she”が検出された時点で、その次
にrが検出されるか否かをチェックするために状態は2
に遷移する。
遷移だけが行われる場合の遷移先を示している。例えば
状態1でeまたはiが検出されない場合には、状態は0
に遷移する。状態4でeが検出されない場合には、iが
検出されるか否かをチェックするために状態は1に遷移
する。状態5で“she”が検出された時点で、その次
にrが検出されるか否かをチェックするために状態は2
に遷移する。
【0021】第4の方法としてのFAST法は、BM法
におけるキーワードの右端からの照合と、AC法の状態
遷移図を用いた複数キーワードの同時照合とを組み合わ
せたものである。
におけるキーワードの右端からの照合と、AC法の状態
遷移図を用いた複数キーワードの同時照合とを組み合わ
せたものである。
【0022】図17はFAST法におけるキーワード検
索例の説明図である。同図において、3つのキーワード
“state”,“east”および“smart”を
用いてテキスト内のキーワードの検索が行われる。なお
このFAST法での状態遷移図は、図15と異なり、キ
ーワードの左端から右端に向かって状態が遷移するので
はなく、逆にキーワードの右端から左端に向かって状態
が遷移する形式で作成される。
索例の説明図である。同図において、3つのキーワード
“state”,“east”および“smart”を
用いてテキスト内のキーワードの検索が行われる。なお
このFAST法での状態遷移図は、図15と異なり、キ
ーワードの左端から右端に向かって状態が遷移するので
はなく、逆にキーワードの右端から左端に向かって状態
が遷移する形式で作成される。
【0023】このような状態遷移図が作成された後に、
図17で示すように、まずテキストの先頭からキーワー
ドの中で最も短いキーワードの長さの分だけの部分文字
列を対象として、その部分文字列の右端の文字から3つ
のキーワードとの比較が行われる。図16では部分文字
列の右端の文字mは3つのキーワードの右端の文字のい
ずれとも一致せず、またsmartというキーワードの
中にのみ存在するために、3つのキーワードを全て右側
に3文字分動かした後に照合を再開すればよいことが分
かる。なおこのFAST法の文献を以下に示す。
図17で示すように、まずテキストの先頭からキーワー
ドの中で最も短いキーワードの長さの分だけの部分文字
列を対象として、その部分文字列の右端の文字から3つ
のキーワードとの比較が行われる。図16では部分文字
列の右端の文字mは3つのキーワードの右端の文字のい
ずれとも一致せず、またsmartというキーワードの
中にのみ存在するために、3つのキーワードを全て右側
に3文字分動かした後に照合を再開すればよいことが分
かる。なおこのFAST法の文献を以下に示す。
【0024】浦谷則好:高速な複数文字列照合アルゴリ
ズム:FAST、情報処理学会論文誌、Vol.30, No.9,
pp.1119(1989)
ズム:FAST、情報処理学会論文誌、Vol.30, No.9,
pp.1119(1989)
【0025】
【発明が解決しようとする課題】従来においては、以上
で説明したような4つの方法のいずれかが用いられて文
字列検索が行われることが一般的であった。例えばワー
プロなどのようにキーワードを1つだけ用いて文字列検
索を行うことが多いような装置では、例えば前述のBM
法が用いられ、大型データベースのように多数のキーワ
ードに対して一度で検索を行うような場合には、AC法
などが用いられていた。
で説明したような4つの方法のいずれかが用いられて文
字列検索が行われることが一般的であった。例えばワー
プロなどのようにキーワードを1つだけ用いて文字列検
索を行うことが多いような装置では、例えば前述のBM
法が用いられ、大型データベースのように多数のキーワ
ードに対して一度で検索を行うような場合には、AC法
などが用いられていた。
【0026】このようにキーワードの数などの検索条件
がある程度決まっている場合には、1つの文字列検索装
置において特定の検索方法を採用して検索を行うことに
より、比較的良好な検索効率を実現することができる
が、キーワードの数が不定であり、キーワードの長さも
様々であり、また対象テキストが和文、または英文のい
ずれかに限られることがないような場合には、このよう
な検索条件に対応して最適な検索方法を選択することが
できないという問題点があった。
がある程度決まっている場合には、1つの文字列検索装
置において特定の検索方法を採用して検索を行うことに
より、比較的良好な検索効率を実現することができる
が、キーワードの数が不定であり、キーワードの長さも
様々であり、また対象テキストが和文、または英文のい
ずれかに限られることがないような場合には、このよう
な検索条件に対応して最適な検索方法を選択することが
できないという問題点があった。
【0027】本発明は、一般にパターン検索装置におい
て検索条件に対応して複数の検索方法のうちから最も検
索効率のよい検索方法を選択可能とすることであり、特
に文字列検索装置では前述の4つの方法のいずれかのう
ちで最も検索効率のよい検索方法を自動的に選択可能と
することを目的とする。
て検索条件に対応して複数の検索方法のうちから最も検
索効率のよい検索方法を選択可能とすることであり、特
に文字列検索装置では前述の4つの方法のいずれかのう
ちで最も検索効率のよい検索方法を自動的に選択可能と
することを目的とする。
【0028】
【課題を解決するための手段】図1は本発明のパターン
検索装置の原理構成ブロック図である。同図は、検索す
べき検索パターンと検索対象とが与えられた時に、検索
対象内の検索パターンの検出を行うパターン検索装置の
原理構成ブロック図である。
検索装置の原理構成ブロック図である。同図は、検索す
べき検索パターンと検索対象とが与えられた時に、検索
対象内の検索パターンの検出を行うパターン検索装置の
原理構成ブロック図である。
【0029】図1において、検索方法選択手段1は例え
ば文字列検索装置ではパターン照合方法選択装置であ
り、検索パターン、すなわち文字列としてのキーワード
の個数を含む検索条件に対応して、複数の検索方法、例
えば前述の4つの方法のうちから1つの検索方法を選択
するものである。
ば文字列検索装置ではパターン照合方法選択装置であ
り、検索パターン、すなわち文字列としてのキーワード
の個数を含む検索条件に対応して、複数の検索方法、例
えば前述の4つの方法のうちから1つの検索方法を選択
するものである。
【0030】前述のように、文字列検索においてはキー
ワードの数が1個のみであるか複数であるかによって、
選択すべき検索方法が限定される。また詳しくは後述す
るが、検索効率、すなわち検索時間はキーワードの長
さ、キーワードが複数ある場合にはその中で最短のキー
ワードの長さと、キーワードの数によって大きく異なっ
てくる傾向がある。
ワードの数が1個のみであるか複数であるかによって、
選択すべき検索方法が限定される。また詳しくは後述す
るが、検索効率、すなわち検索時間はキーワードの長
さ、キーワードが複数ある場合にはその中で最短のキー
ワードの長さと、キーワードの数によって大きく異なっ
てくる傾向がある。
【0031】このため本発明においては、最短のキーワ
ードの長さが非常に短い場合には、例えばAC法が採用
される。最も短いキーワードの長さが比較的長く、また
キーワードの数が1個のみである場合には、例えば前述
のBM法、またはSunday法が選択される。このうちテキ
ストが和文である場合にはBM法が、また英文である場
合にはSunday法が選択される。
ードの長さが非常に短い場合には、例えばAC法が採用
される。最も短いキーワードの長さが比較的長く、また
キーワードの数が1個のみである場合には、例えば前述
のBM法、またはSunday法が選択される。このうちテキ
ストが和文である場合にはBM法が、また英文である場
合にはSunday法が選択される。
【0032】更に最短のキーワードの長さが比較的長
く、しかもキーワードの数が複数である場合には、例え
ばそのキーワードの数と最短のキーワードの長さとに依
存する判別関数の値が求められ、その値に応じて前述の
AC法、またはFAST法が用いられる。
く、しかもキーワードの数が複数である場合には、例え
ばそのキーワードの数と最短のキーワードの長さとに依
存する判別関数の値が求められ、その値に応じて前述の
AC法、またはFAST法が用いられる。
【0033】以上のように本発明によればキーワードの
数、最短のキーワードの長さなどの検索条件に対応し
て、最適と考えられる検索方法が自動的に選択される。
数、最短のキーワードの長さなどの検索条件に対応し
て、最適と考えられる検索方法が自動的に選択される。
【0034】
【発明の実施の形態】以下の説明では、パターン検索装
置の実施例として、文字列としてのキーワードを検索対
象としてのテキストから検出する文字列検索装置につい
て説明する。
置の実施例として、文字列としてのキーワードを検索対
象としてのテキストから検出する文字列検索装置につい
て説明する。
【0035】図2は文字列検索装置の基本構成を示すブ
ロック図である。同図において文字列検索装置は、検索
対象としてのテキストを格納するテキストバッファ1
0、テキストバッファ10に格納されたテキストの中か
らキーワードの検索を行うテキスト検索装置11、テキ
スト検索装置11によって検索された結果を出力するた
めの出力装置12、および検索文字列、すなわちキーワ
ードの集合と、テキストバッファ10に格納されている
テキストの形式、すなわちテキストが和文であるか英文
であるかに応じて、前述のBM法、Sunday法、AC法、
FAST法のいずれかの文字列検索方法を選択し、その
選択結果をテキスト検索装置11に指示するパターン照
合方法選択装置13から構成されている。
ロック図である。同図において文字列検索装置は、検索
対象としてのテキストを格納するテキストバッファ1
0、テキストバッファ10に格納されたテキストの中か
らキーワードの検索を行うテキスト検索装置11、テキ
スト検索装置11によって検索された結果を出力するた
めの出力装置12、および検索文字列、すなわちキーワ
ードの集合と、テキストバッファ10に格納されている
テキストの形式、すなわちテキストが和文であるか英文
であるかに応じて、前述のBM法、Sunday法、AC法、
FAST法のいずれかの文字列検索方法を選択し、その
選択結果をテキスト検索装置11に指示するパターン照
合方法選択装置13から構成されている。
【0036】図2において、テキストバッファ10に格
納されたテキストの形式、すなわち和文であるか英文で
あるかがパターン照合方法選択装置13に与えられる
と、パターン照合方法選択装置13はキーワードの個数
や、その中で最短のキーワードの長さなどの検索条件に
応じて、前述の4つの方法のうちいずれかの方法を選択
し、その方法はテキスト検索装置11に指示される。テ
キスト検索装置11の内部には、前述の4つの方法を実
現するための4つのエンジン(ソフトウェア)が備えら
れており、指定された文字列検索方法に対応するエンジ
ンが使用されてテキスト内のキーワードが検索され、出
力装置12はその検索結果をユーザの要求に従った形
式、例えばキーワードの他の文字列への置換を行った形
式としてユーザに出力する。
納されたテキストの形式、すなわち和文であるか英文で
あるかがパターン照合方法選択装置13に与えられる
と、パターン照合方法選択装置13はキーワードの個数
や、その中で最短のキーワードの長さなどの検索条件に
応じて、前述の4つの方法のうちいずれかの方法を選択
し、その方法はテキスト検索装置11に指示される。テ
キスト検索装置11の内部には、前述の4つの方法を実
現するための4つのエンジン(ソフトウェア)が備えら
れており、指定された文字列検索方法に対応するエンジ
ンが使用されてテキスト内のキーワードが検索され、出
力装置12はその検索結果をユーザの要求に従った形
式、例えばキーワードの他の文字列への置換を行った形
式としてユーザに出力する。
【0037】ここで前述の4つの方法による文字列検索
の特徴について更に説明する。まず第1にBM法と第2
のSunday法は共に効率のよい検索方法であるが、一度に
1つのキーワードしか検索することができない。第3の
AC法では同時に複数のキーワードの検索ができるが、
テキストを1文字ずつチェックして状態の遷移を追うた
めに、検索に比較的時間がかかる。
の特徴について更に説明する。まず第1にBM法と第2
のSunday法は共に効率のよい検索方法であるが、一度に
1つのキーワードしか検索することができない。第3の
AC法では同時に複数のキーワードの検索ができるが、
テキストを1文字ずつチェックして状態の遷移を追うた
めに、検索に比較的時間がかかる。
【0038】第4の方法、すなわちBM法とAC法のそ
れぞれの長所を組み合わせたFAST法は、キーワード
の数が比較的少数の場合には検索効率がよい。しかしな
がら多数のキーワードを同時に検索する場合には、図1
7で説明したようにキーワードの右端の文字がテキスト
と一致した場合に左側に戻ってチェックするための時間
が長くなり、AC法よりも検索時間が長くなってしま
う。
れぞれの長所を組み合わせたFAST法は、キーワード
の数が比較的少数の場合には検索効率がよい。しかしな
がら多数のキーワードを同時に検索する場合には、図1
7で説明したようにキーワードの右端の文字がテキスト
と一致した場合に左側に戻ってチェックするための時間
が長くなり、AC法よりも検索時間が長くなってしま
う。
【0039】すなわちキーワードの数をk、キーワード
の平均長さを 外1 、テキストの
の平均長さを 外1 、テキストの
【0040】
【外1】
【0041】長さをnとした場合、第1のBM法では1
個のキーワードに対する検索時間は一般に 外2 のオ
ーダーとなり、最悪の場合には 外3 のオーダーで与
えられ
個のキーワードに対する検索時間は一般に 外2 のオ
ーダーとなり、最悪の場合には 外3 のオーダーで与
えられ
【0042】
【外2】
【0043】
【外3】
【0044】る。k個のキーワードに対しては検索時間
は一般に 外4 のオーダーとなる。
は一般に 外4 のオーダーとなる。
【0045】
【外4】
【0046】第2のSunday法では、検索時間はBM法と
同程度であるが、テキストが英文の場合には10〜30
%程度の検索速度の向上が期待できるものとされてい
る。しかしながら出願人の実験によると、テキストが和
文の場合には殆ど速度向上が期待できないことが判明し
た。
同程度であるが、テキストが英文の場合には10〜30
%程度の検索速度の向上が期待できるものとされてい
る。しかしながら出願人の実験によると、テキストが和
文の場合には殆ど速度向上が期待できないことが判明し
た。
【0047】第3のAC法では、検索時間はキーワード
の数やキーワードの長さに一般的には依存せず、O
(n)のオーダーでほぼ一定になる。第4のFAST法
では、キーワードの中で最も短いキーワードの長さをL
として検索時間の最良値はO(n/L)のオーダーとな
り、キーワードの数が少ない場合にはよい値が期待でき
る。しかしながらキーワードの数が多くなると、検索時
間はAC法に対するO(n)よりも長くなる。ここで検
索時間がAC法よりも長くなるキーワードの数は、後述
するように最短のキーワードの長さによってほぼ決定さ
れる。
の数やキーワードの長さに一般的には依存せず、O
(n)のオーダーでほぼ一定になる。第4のFAST法
では、キーワードの中で最も短いキーワードの長さをL
として検索時間の最良値はO(n/L)のオーダーとな
り、キーワードの数が少ない場合にはよい値が期待でき
る。しかしながらキーワードの数が多くなると、検索時
間はAC法に対するO(n)よりも長くなる。ここで検
索時間がAC法よりも長くなるキーワードの数は、後述
するように最短のキーワードの長さによってほぼ決定さ
れる。
【0048】図3は本発明における検索方法選択処理の
フローチャートである。同図の処理は図2のパターン照
合方法選択装置13によって実行される。図3において
検索文字列、すなわちキーワードの集合が与えられる
と、まずステップS1で最短の文字列(キーワード)の
長さが2バイト以上であるか否かが判定される。なお和
文の場合にはリターン文字などのような特殊な記号を除
いては1文字は2バイトで表され、これに対して英文で
はアルファベット1文字は1バイトで表される。このよ
うな1バイトの文字(記号)も当然キーワードとして使
用される。最短のキーワードの長さが2バイト以上でな
い、すなわち1バイトである場合にはキーワードの個数
の判定を行うことなく、ステップS2で直ちにAC法が
選択され、その方法がテキスト検索装置11に指示され
る。
フローチャートである。同図の処理は図2のパターン照
合方法選択装置13によって実行される。図3において
検索文字列、すなわちキーワードの集合が与えられる
と、まずステップS1で最短の文字列(キーワード)の
長さが2バイト以上であるか否かが判定される。なお和
文の場合にはリターン文字などのような特殊な記号を除
いては1文字は2バイトで表され、これに対して英文で
はアルファベット1文字は1バイトで表される。このよ
うな1バイトの文字(記号)も当然キーワードとして使
用される。最短のキーワードの長さが2バイト以上でな
い、すなわち1バイトである場合にはキーワードの個数
の判定を行うことなく、ステップS2で直ちにAC法が
選択され、その方法がテキスト検索装置11に指示され
る。
【0049】なお、ここでキーワードが1バイトのとき
AC法を無条件に選択するのは、FAST法における
“キーワードの右端での比較”が実際には1文字ずつの
比較となり、FAST法の利点(照合回数の減少)を得
られないためである。
AC法を無条件に選択するのは、FAST法における
“キーワードの右端での比較”が実際には1文字ずつの
比較となり、FAST法の利点(照合回数の減少)を得
られないためである。
【0050】ステップS1で最短のキーワードの長さが
2バイト以上である時には、ステップS3で検索文字
列、すなわちキーワードの数が1個のみであるか否かが
判定され、1個のみである場合にはステップS4でテキ
ストが英文であるか否かが判定される。英文である場合
にはステップS5でSunday法が選択され、その方法がテ
キスト検索装置に指示される。英文でない場合にはステ
ップS6でBM法が選択され、テキスト検索装置にその
方法が指示される。
2バイト以上である時には、ステップS3で検索文字
列、すなわちキーワードの数が1個のみであるか否かが
判定され、1個のみである場合にはステップS4でテキ
ストが英文であるか否かが判定される。英文である場合
にはステップS5でSunday法が選択され、その方法がテ
キスト検索装置に指示される。英文でない場合にはステ
ップS6でBM法が選択され、テキスト検索装置にその
方法が指示される。
【0051】ステップS3で検索文字列、すなわちキー
ワードの数が1個のみでないと判定されると、ステップ
S7で判別関数fの値が求められ、その値が1未満であ
るか否かが判定される。この判別関数fについては後述
する。
ワードの数が1個のみでないと判定されると、ステップ
S7で判別関数fの値が求められ、その値が1未満であ
るか否かが判定される。この判別関数fについては後述
する。
【0052】判別関数fの値が1未満である時にはステ
ップS8でFAST法が選択され、また1未満でない時
にはステップS2でAC法が選択され、選択された方法
はそれぞれテキスト検索装置11に指示される。
ップS8でFAST法が選択され、また1未満でない時
にはステップS2でAC法が選択され、選択された方法
はそれぞれテキスト検索装置11に指示される。
【0053】図3における検索方法選択の根拠と、前述
の判別関数fについて実験結果に基づいて詳しく説明す
る。図4は日本語テキストを対象としてBM法、AC
法、およびFAST法をそれぞれ用いた場合の検索時間
を、検索文字列、すなわちキーワードの数に対して示し
たものである。この実験に使用されたキーワードの長さ
は平均4.4バイト、最短2バイトであり、縦軸の検索
時間はキーワードの数が1個のみの時のAC法による検
索時間を1として示した測定値である。
の判別関数fについて実験結果に基づいて詳しく説明す
る。図4は日本語テキストを対象としてBM法、AC
法、およびFAST法をそれぞれ用いた場合の検索時間
を、検索文字列、すなわちキーワードの数に対して示し
たものである。この実験に使用されたキーワードの長さ
は平均4.4バイト、最短2バイトであり、縦軸の検索
時間はキーワードの数が1個のみの時のAC法による検
索時間を1として示した測定値である。
【0054】AC法ではキーワードの数が増えても検索
時間は殆ど増加しないこと、BM法ではキーワードの数
が10個程度以下の場合には検索時間はAC法より短い
が、それ以上のキーワード数に対しては長くなること、
同様にFAST法ではキーワードの数が40以下でAC
法より検索時間が短く、40以上で長くなることが分か
る。
時間は殆ど増加しないこと、BM法ではキーワードの数
が10個程度以下の場合には検索時間はAC法より短い
が、それ以上のキーワード数に対しては長くなること、
同様にFAST法ではキーワードの数が40以下でAC
法より検索時間が短く、40以上で長くなることが分か
る。
【0055】図5はFAST法を用いた場合の検索時間
を、AC法を用いた場合の検索時間を1とし、最短のキ
ーワードの長さをパラメータとして示したものである。
最短のキーワードの長さが短い場合には、AC法より検
索時間が長くなるキーワードの数、すなわち限界検索文
字列数は小さくなることが分かる。
を、AC法を用いた場合の検索時間を1とし、最短のキ
ーワードの長さをパラメータとして示したものである。
最短のキーワードの長さが短い場合には、AC法より検
索時間が長くなるキーワードの数、すなわち限界検索文
字列数は小さくなることが分かる。
【0056】図6は、図5の結果に対して最小自乗法を
適用して、検索時間とキーワードの数との関係を直線化
した結果である。図7は、図6において最短のキーワー
ドの長さをパラメータとするそれぞれの直線がAC法に
よる検索時間、すなわち1となる時のキーワードの数、
すなわち限界検索文字列数を求めたものである。図6に
示されていないキーワード、すなわち検索文字列の最短
のものの長さに対する限界検索文字列数は、図6の結果
に対してラグランジュ補間を適用することによって求め
られたものである。
適用して、検索時間とキーワードの数との関係を直線化
した結果である。図7は、図6において最短のキーワー
ドの長さをパラメータとするそれぞれの直線がAC法に
よる検索時間、すなわち1となる時のキーワードの数、
すなわち限界検索文字列数を求めたものである。図6に
示されていないキーワード、すなわち検索文字列の最短
のものの長さに対する限界検索文字列数は、図6の結果
に対してラグランジュ補間を適用することによって求め
られたものである。
【0057】図8は、図7の結果をステップ的な関数と
して示したものである。横軸は最短検索文字列長であ
り、縦軸は検索文字列、すなわちキーワードの数であ
る。図のステップ関数より下の部分が、FAST法によ
る検索時間がAC法より短い範囲を示している。
して示したものである。横軸は最短検索文字列長であ
り、縦軸は検索文字列、すなわちキーワードの数であ
る。図のステップ関数より下の部分が、FAST法によ
る検索時間がAC法より短い範囲を示している。
【0058】図4〜図8の実験結果は、後述する英文テ
キストに対する実験と同様に、テキスト内に存在するキ
ーワードの数が平均的な場合を対象として得られたもの
である。実験に使用されたテキストは大きさ7.5Mby
tes であり、A4用紙1枚の容量を4〜5Kbytes とす
ると、1500〜2000ページの分量となるのでテキストの内
容はここに示さない。
キストに対する実験と同様に、テキスト内に存在するキ
ーワードの数が平均的な場合を対象として得られたもの
である。実験に使用されたテキストは大きさ7.5Mby
tes であり、A4用紙1枚の容量を4〜5Kbytes とす
ると、1500〜2000ページの分量となるのでテキストの内
容はここに示さない。
【0059】前述のように、AC法では検索時間はキー
ワードの数の増加につれてわずかに増加するのみでほぼ
一定と見なせる。特に最短のキーワードの長さは検索時
間に全く影響しない。FAST法ではキーワード数と最
短キーワード長は検索時間に影響するが、キーワードの
平均の長さは殆ど影響を与えない。
ワードの数の増加につれてわずかに増加するのみでほぼ
一定と見なせる。特に最短のキーワードの長さは検索時
間に全く影響しない。FAST法ではキーワード数と最
短キーワード長は検索時間に影響するが、キーワードの
平均の長さは殆ど影響を与えない。
【0060】そこでテキスト内に存在するキーワード数
が平均的な場合には、例えば図8のステップ関数の形は
具体的なテキストやキーワードの相違によって大きく異
なることはなく、一般的に有効なものとして使用できる
と考えられる。
が平均的な場合には、例えば図8のステップ関数の形は
具体的なテキストやキーワードの相違によって大きく異
なることはなく、一般的に有効なものとして使用できる
と考えられる。
【0061】ここで前述の判別関数fについて説明す
る。最短検索文字列長をL、限界検索文字列数をKと
し、図7、または図8に示される関係を表す関数を K=g(L) と定義する。テキストの中で検索されるべきキーワード
の数をkとすると、判別関数fは次式のように定義され
る。
る。最短検索文字列長をL、限界検索文字列数をKと
し、図7、または図8に示される関係を表す関数を K=g(L) と定義する。テキストの中で検索されるべきキーワード
の数をkとすると、判別関数fは次式のように定義され
る。
【0062】f(k,L)=k/g(L)=k/K キーワードの数kが図8のステップ関数、すなわちKよ
りも小さい時にFAST法による検索時間がAC法によ
るよりも短くなるために、判別関数fが1未満である時
に図3でFAST法が、また1未満でない時にはAC法
が選択される。
りも小さい時にFAST法による検索時間がAC法によ
るよりも短くなるために、判別関数fが1未満である時
に図3でFAST法が、また1未満でない時にはAC法
が選択される。
【0063】日本語テキストを対象とするキーワードの
検索例を図9を用いて説明する。ここでキーワードとし
て“技術協力”、“技術動向”、および“技術交流”の
3つが指定され、日本語テキストとして次のものが与え
られたとする。
検索例を図9を用いて説明する。ここでキーワードとし
て“技術協力”、“技術動向”、および“技術交流”の
3つが指定され、日本語テキストとして次のものが与え
られたとする。
【0064】
【外5】
【0065】まずテキストがテキストバッファ10に与
えられ、テキストバッファ10はテキストが英文である
か和文であるかを判別する。この判別結果とキーワード
の集合に対応して、パターン照合方法選択装置13は最
適なパターン照合方法を選択する。この場合キーワード
の数kは3、最短のキーワードの長さLが日本語4文字
に対応する8バイトであることから、判別関数fの値が
3/83.43 、すなわち1より小さいことが判定され、図
3のステップS8でFAST法が選択される。
えられ、テキストバッファ10はテキストが英文である
か和文であるかを判別する。この判別結果とキーワード
の集合に対応して、パターン照合方法選択装置13は最
適なパターン照合方法を選択する。この場合キーワード
の数kは3、最短のキーワードの長さLが日本語4文字
に対応する8バイトであることから、判別関数fの値が
3/83.43 、すなわち1より小さいことが判定され、図
3のステップS8でFAST法が選択される。
【0066】この検索方法はテキスト検索装置11に送
られ、テキスト内のキーワードの位置の検索が行われ
る。この場合テキストの文頭から53バイト目、215
バイト目、290バイト目、および332バイト目、・
・・の位置が検索され、その検索結果は出力装置12に
送られる。なお上のテキスト内で示されていないリター
ン記号は1バイトの長さに相当する。
られ、テキスト内のキーワードの位置の検索が行われ
る。この場合テキストの文頭から53バイト目、215
バイト目、290バイト目、および332バイト目、・
・・の位置が検索され、その検索結果は出力装置12に
送られる。なお上のテキスト内で示されていないリター
ン記号は1バイトの長さに相当する。
【0067】出力装置12では、ユーザの要求に応じて
検索結果に必要な加工を行い、その加工結果を出力す
る。図9に示されるように技術協力をXXX、技術動向
をYYY、技術交流をZZZに置換する置換ルールがユ
ーザから与えられた場合には、テキスト内の対応するキ
ーワードが指定された置換ルールを用いて置換され、ユ
ーザに対して出力される。
検索結果に必要な加工を行い、その加工結果を出力す
る。図9に示されるように技術協力をXXX、技術動向
をYYY、技術交流をZZZに置換する置換ルールがユ
ーザから与えられた場合には、テキスト内の対応するキ
ーワードが指定された置換ルールを用いて置換され、ユ
ーザに対して出力される。
【0068】次に英文テキストを対象とする検索の実施
例について説明する。前述の判別関数などを用いた検索
処理は和文テキストに対する場合とほぼ同様であるの
で、和文テキストとの相違点を中心に簡単に説明する。
例について説明する。前述の判別関数などを用いた検索
処理は和文テキストに対する場合とほぼ同様であるの
で、和文テキストとの相違点を中心に簡単に説明する。
【0069】図10は英文テキストを対象として図4と
同様の実験結果を示したものである。図4におけると同
様に、キーワードの数が1個のみの場合のAC法の検索
時間を1とした場合の検索時間の値を縦軸に示してい
る。使用されたキーワードの長さは平均6.6バイト、
最短4バイト(キーワードが1個のみの場合も同じ)で
ある。図4と同様の傾向が示されているが、前述のよう
にSunday法を用いることによってBM法よりも検索時間
が短くなることが示されている。
同様の実験結果を示したものである。図4におけると同
様に、キーワードの数が1個のみの場合のAC法の検索
時間を1とした場合の検索時間の値を縦軸に示してい
る。使用されたキーワードの長さは平均6.6バイト、
最短4バイト(キーワードが1個のみの場合も同じ)で
ある。図4と同様の傾向が示されているが、前述のよう
にSunday法を用いることによってBM法よりも検索時間
が短くなることが示されている。
【0070】図11は、図5と同様に英文テキストに対
するFAST法による検索時間をAC法の場合を1とし
て示したものである。図5におけると同様に、最短のキ
ーワードの長さが長くなるにつれて、限界検索文字列数
が大きくなることが示されている。なお図10と異な
り、ここでは最短のキーワードの長さは、キーワード1
個のみの場合を含めて、2バイトである。
するFAST法による検索時間をAC法の場合を1とし
て示したものである。図5におけると同様に、最短のキ
ーワードの長さが長くなるにつれて、限界検索文字列数
が大きくなることが示されている。なお図10と異な
り、ここでは最短のキーワードの長さは、キーワード1
個のみの場合を含めて、2バイトである。
【0071】図12は、図6と同様に、図11の結果を
最小自乗法を用いて線形化した結果を示す。図13は、
図12の結果およびラグランジュ補間を用いることによ
って、図7と同様に英文テキストに対する最短検索文字
列長と限界検索文字列数との関係を示したものである。
最小自乗法を用いて線形化した結果を示す。図13は、
図12の結果およびラグランジュ補間を用いることによ
って、図7と同様に英文テキストに対する最短検索文字
列長と限界検索文字列数との関係を示したものである。
【0072】図14は、図13の結果を、図8と同様に
ステップ関数の形式で表したものであり、このステップ
関数より下の部分がFAST法を用いた検索時間がAC
法による検索時間よりも短くなる範囲である。
ステップ関数の形式で表したものであり、このステップ
関数より下の部分がFAST法を用いた検索時間がAC
法による検索時間よりも短くなる範囲である。
【0073】ここで図14と図8を比較すると、英文と
和文では判別関数の形にかなり相違があることが分か
る。この理由としては、日本語のような2バイト系文章
と比較して、英文のような1バイト系文章では使用され
るコードの種類が明らかに限定されることがあげられ
る。使用されるコードの種類の数はFAST法による検
索時間に対して大きな影響を与えることが知られてお
り、日本語文章および英語文章のそれぞれに対して判別
関数を求めておき、その判別関数を用いて本実施例のよ
うに検索方法の選択を行う必要がある。
和文では判別関数の形にかなり相違があることが分か
る。この理由としては、日本語のような2バイト系文章
と比較して、英文のような1バイト系文章では使用され
るコードの種類が明らかに限定されることがあげられ
る。使用されるコードの種類の数はFAST法による検
索時間に対して大きな影響を与えることが知られてお
り、日本語文章および英語文章のそれぞれに対して判別
関数を求めておき、その判別関数を用いて本実施例のよ
うに検索方法の選択を行う必要がある。
【0074】図15は次の英文テキストを対象とするキ
ーワード検索の例の説明図である。
ーワード検索の例の説明図である。
【0075】
【外6】
【0076】図9に対すると同様の動作が行われるが、
ここではキーワードの数が3個、キーワードの中で最短
のものの長さがアルファベット5文字、すなわち5バイ
トであることから判別関数fの値が3/56.68 となり、
1より小さくなることからFAST法が選択される。
ここではキーワードの数が3個、キーワードの中で最短
のものの長さがアルファベット5文字、すなわち5バイ
トであることから判別関数fの値が3/56.68 となり、
1より小さくなることからFAST法が選択される。
【0077】テキスト検索装置11によって、テキスト
内のキーワードの位置がテキスト文頭から18バイト
目、69バイト目、107バイト目、および149バイ
ト目、・・・であること(なお、1行目の最後の“o
r”の後にリターン記号1バイト分がある)が検索さ
れ、その検索結果に応じてユーザによって指定された置
換ルールを用いてキーワードの置換が行われ、その結果
がユーザに出力される。
内のキーワードの位置がテキスト文頭から18バイト
目、69バイト目、107バイト目、および149バイ
ト目、・・・であること(なお、1行目の最後の“o
r”の後にリターン記号1バイト分がある)が検索さ
れ、その検索結果に応じてユーザによって指定された置
換ルールを用いてキーワードの置換が行われ、その結果
がユーザに出力される。
【0078】
【発明の効果】以上詳細に説明したように、本発明によ
ればテキストの言語、キーワードの数、最短のキーワー
ドの長さなどの検索条件に対応して、最適な検索方法を
自動的に選択することが可能になり、文字列検索効率の
向上に寄与するところが大きい。ワープロなどのように
キーワードの数が1個のみの場合にも、大型データベー
スの場合のように多数のキーワードを一度に検索する場
合にも、キーワードの数に適した検索速度をあげること
ができる。また検索にあたってユーザが一度に検索すべ
きキーワードの数を考慮する必要がなくなり、ユーザの
負担も軽減される。
ればテキストの言語、キーワードの数、最短のキーワー
ドの長さなどの検索条件に対応して、最適な検索方法を
自動的に選択することが可能になり、文字列検索効率の
向上に寄与するところが大きい。ワープロなどのように
キーワードの数が1個のみの場合にも、大型データベー
スの場合のように多数のキーワードを一度に検索する場
合にも、キーワードの数に適した検索速度をあげること
ができる。また検索にあたってユーザが一度に検索すべ
きキーワードの数を考慮する必要がなくなり、ユーザの
負担も軽減される。
【図1】本発明の原理構成ブロック図である。
【図2】文字列検索装置の基本構成を示すブロック図で
ある。
ある。
【図3】文字列検索方法選択処理のフローチャートであ
る。
る。
【図4】各種検索方法による検索時間の比較を示す図
(和文テキスト)である。
(和文テキスト)である。
【図5】FAST法における検索時間とキーワードの数
との関係を示す図(和文テキスト)である。
との関係を示す図(和文テキスト)である。
【図6】図5に対する線形化の結果を示す図である。
【図7】最短検索文字列長と限界検索文字列数との関係
を示す図(和文テキスト)である。
を示す図(和文テキスト)である。
【図8】限界検索文字列数としてのステップ関数を示す
図(和文テキスト)である。
図(和文テキスト)である。
【図9】和文テキストに対するキーワード検索の例を説
明する図である。
明する図である。
【図10】各種検索方法における検索時間の比較を示す
図(英文テキスト)である。
図(英文テキスト)である。
【図11】FAST法における検索時間とキーワードの
数との関係を示す図(英文テキスト)である。
数との関係を示す図(英文テキスト)である。
【図12】図11に対する線形化の結果を示す図であ
る。
る。
【図13】最短検索文字列長と限界検索文字列数との関
係を示す図(英文テキスト)である。
係を示す図(英文テキスト)である。
【図14】限界検索文字列数としてのステップ関数を示
す図(英文テキスト)である。
す図(英文テキスト)である。
【図15】英文テキストに対するキーワード検索の例を
説明する図である。
説明する図である。
【図16】AC法における状態遷移を説明する図であ
る。
る。
【図17】FAST法による複数のキーワードの照合を
説明する図である。
説明する図である。
1 検索方法選択手段 10 テキストバッファ 11 テキスト検索装置 12 出力装置 13 パターン照合方法選択装置
Claims (10)
- 【請求項1】 検索対象と、該検索対象の中から検出す
べき検索パターンとが与えられ、該検索対象内の検索パ
ターンの検出を行うパターン検索装置において、 該検索パターンの個数を含む検索条件に対応して、複数
の検索方法のうちから1つの検索方法を選択する検索方
法選択手段を備え、検索効率の向上をはかることを特徴
とするパターン検索装置。 - 【請求項2】 前記検索対象が文字列としてのテキスト
であり、検索パターンが検索文字列としてのキーワード
であることと、 前記検索条件が前記検索パターンとしてのキーワードの
個数、該キーワードのうちで最短のキーワードの長さ、
テキストが和文か英文かの指定を含むことを特徴とする
請求項1記載のパターン検索装置。 - 【請求項3】 前記検索方法選択手段が、前記検索方法
として、前記キーワードが1つのみである場合を対象と
するBoyer-Moore 法、またはSunday法、キーワードが複
数である場合を対象とするAho-Corasick法、またはFA
ST法のいずれかを選択することを特徴とする請求項2
記載のパターン検索装置。 - 【請求項4】 前記検索条件において、前記キーワード
の数が1個で、該キーワードの長さが2バイト以上であ
り、かつ前記テキストが英文である時、前記検索方法選
択手段が前記Sunday法を選択することを特徴とする請求
項3記載のパターン検索装置。 - 【請求項5】 前記検索条件において、前記キーワード
の数が1個で、該キーワードの長さが2バイト以上であ
り、かつ前記テキストが和文である時、前記検索方法選
択手段が前記Boyer-Moore 法を選択することを特徴とす
る請求項3記載のパターン検索装置。 - 【請求項6】 前記検索条件において、前記キーワード
の数が1個以上であり、該キーワードの中で最短のキー
ワードの長さが1バイトである時、前記検索方法選択手
段が前記Aho-Corasick法を選択することを特徴とする請
求項3記載のパターン検索装置。 - 【請求項7】 前記検索条件において、前記キーワード
の数が複数であり、該キーワードの中で最短のキーワー
ドの長さが2バイト以上である時、前記検索方法選択手
段が判別関数の値を評価し、該評価結果に応じて前記Ah
o-Corasick法、またはFAST法のいずれかを選択する
ことを特徴とする請求項3記載のパターン検索装置。 - 【請求項8】 前記判別関数が、前記検索条件に含まれ
るキーワードの個数kと、該キーワードの中で最短のキ
ーワードの長さLに対応して前記Aho-Corasick法よりも
前記FAST法による検索所要時間が長くなる限界にお
けるキーワード数の一般的な実験値Kとの比をk/Kと
して与えられ、該判別関数の値が1より小さい時に前記
検索方法選択手段がFAST法を、1以上である時Aho-
Corasick法を選択することを特徴とする請求項7記載の
パターン検索装置。 - 【請求項9】 前記パターン検索装置を構成する文字列
検索装置が、前記検索方法選択手段を構成するパターン
照合方法選択装置に加えて、 検索対象としてのテキストを格納するテキストバッファ
と、 該テキストバッファとパターン照合方法選択装置との出
力に応じて検索を実行するテキスト検索装置とを更に備
えることを特徴とする請求項1記載のパターン検索装
置。 - 【請求項10】 前記文字列検索装置において、 前記テキスト検索装置による検索結果に対して、前記キ
ーワードを各キーワードに対応する異なる文字列、また
は記号に置換して出力する出力装置を更に備えることを
特徴とする請求項9記載のパターン検索装置。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8005236A JPH09198398A (ja) | 1996-01-16 | 1996-01-16 | パターン検索装置 |
| US08/773,295 US5963942A (en) | 1996-01-16 | 1996-12-24 | Pattern search apparatus and method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8005236A JPH09198398A (ja) | 1996-01-16 | 1996-01-16 | パターン検索装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH09198398A true JPH09198398A (ja) | 1997-07-31 |
Family
ID=11605570
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8005236A Pending JPH09198398A (ja) | 1996-01-16 | 1996-01-16 | パターン検索装置 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5963942A (ja) |
| JP (1) | JPH09198398A (ja) |
Families Citing this family (53)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6708166B1 (en) * | 1999-05-11 | 2004-03-16 | Norbert Technologies, Llc | Method and apparatus for storing data as objects, constructing customized data retrieval and data processing requests, and performing householding queries |
| US6357002B1 (en) * | 1999-08-11 | 2002-03-12 | Oracle Corporation | Automated extraction of BIOS identification information for a computer system from any of a plurality of vendors |
| US6618724B1 (en) * | 2000-04-17 | 2003-09-09 | Sun Microsystems, Inc. | Human-natural string compare for filesystems |
| US7737134B2 (en) * | 2002-03-13 | 2010-06-15 | The Texas A & M University System | Anticancer agents and use |
| US7200024B2 (en) | 2002-08-02 | 2007-04-03 | Micron Technology, Inc. | System and method for optically interconnecting memory devices |
| US7117316B2 (en) | 2002-08-05 | 2006-10-03 | Micron Technology, Inc. | Memory hub and access method having internal row caching |
| US7149874B2 (en) | 2002-08-16 | 2006-12-12 | Micron Technology, Inc. | Memory hub bypass circuit and method |
| US7836252B2 (en) | 2002-08-29 | 2010-11-16 | Micron Technology, Inc. | System and method for optimizing interconnections of memory devices in a multichip module |
| US7102907B2 (en) | 2002-09-09 | 2006-09-05 | Micron Technology, Inc. | Wavelength division multiplexed memory module, memory system and method |
| US7949732B1 (en) | 2003-05-12 | 2011-05-24 | Sourcefire, Inc. | Systems and methods for determining characteristics of a network and enforcing policy |
| US7617202B2 (en) * | 2003-06-16 | 2009-11-10 | Microsoft Corporation | Systems and methods that employ a distributional analysis on a query log to improve search results |
| US7120727B2 (en) * | 2003-06-19 | 2006-10-10 | Micron Technology, Inc. | Reconfigurable memory module and method |
| US7260685B2 (en) | 2003-06-20 | 2007-08-21 | Micron Technology, Inc. | Memory hub and access method having internal prefetch buffers |
| US7428644B2 (en) | 2003-06-20 | 2008-09-23 | Micron Technology, Inc. | System and method for selective memory module power management |
| US7389364B2 (en) | 2003-07-22 | 2008-06-17 | Micron Technology, Inc. | Apparatus and method for direct memory access in a hub-based memory system |
| US20050050237A1 (en) * | 2003-08-28 | 2005-03-03 | Jeddeloh Joseph M. | Memory module and method having on-board data search capabilities and processor-based system using such memory modules |
| US7194593B2 (en) | 2003-09-18 | 2007-03-20 | Micron Technology, Inc. | Memory hub with integrated non-volatile memory |
| US7120743B2 (en) | 2003-10-20 | 2006-10-10 | Micron Technology, Inc. | Arbitration system and method for memory responses in a hub-based memory system |
| US7634500B1 (en) * | 2003-11-03 | 2009-12-15 | Netlogic Microsystems, Inc. | Multiple string searching using content addressable memory |
| US7539681B2 (en) * | 2004-07-26 | 2009-05-26 | Sourcefire, Inc. | Methods and systems for multi-pattern searching |
| US7496962B2 (en) * | 2004-07-29 | 2009-02-24 | Sourcefire, Inc. | Intrusion detection strategies for hypertext transport protocol |
| JP2006072744A (ja) * | 2004-09-02 | 2006-03-16 | Canon Inc | 文書処理装置、その制御方法、プログラム、及び記憶媒体 |
| US7359895B2 (en) * | 2004-11-18 | 2008-04-15 | Industrial Technology Research Institute | Spiral string matching method |
| US8316060B1 (en) | 2005-01-26 | 2012-11-20 | 21st Century Technologies | Segment matching search system and method |
| US20060184523A1 (en) * | 2005-02-15 | 2006-08-17 | Microsoft Corporation | Search methods and associated systems |
| US7860844B2 (en) | 2005-07-15 | 2010-12-28 | Indxit Systems Inc. | System and methods for data indexing and processing |
| US7353332B2 (en) * | 2005-10-11 | 2008-04-01 | Integrated Device Technology, Inc. | Switching circuit implementing variable string matching |
| US8046833B2 (en) * | 2005-11-14 | 2011-10-25 | Sourcefire, Inc. | Intrusion event correlation with network discovery information |
| US7733803B2 (en) * | 2005-11-14 | 2010-06-08 | Sourcefire, Inc. | Systems and methods for modifying network map attributes |
| CN101346716A (zh) | 2005-12-22 | 2009-01-14 | 国际商业机器公司 | 通过利用查找和替换输入的派生的查找和替换功能来编辑文本的方法和系统 |
| GB2437560A (en) * | 2006-04-28 | 2007-10-31 | Roke Manor Research | Constructing Aho Corasick trees |
| 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 |
| US7783654B1 (en) | 2006-09-19 | 2010-08-24 | Netlogic Microsystems, Inc. | Multiple string searching using content addressable memory |
| US20080196102A1 (en) * | 2006-10-06 | 2008-08-14 | Sourcefire, Inc. | Device, system and method for use of micro-policies in intrusion detection/prevention |
| US7860849B1 (en) | 2007-01-18 | 2010-12-28 | Netlogic Microsystems, Inc. | Optimizing search trees by increasing success size parameter |
| 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 |
| US8315482B2 (en) * | 2007-06-26 | 2012-11-20 | Microsoft Corporation | Integrated platform for user input of digital ink |
| JP5335227B2 (ja) * | 2007-12-10 | 2013-11-06 | 京セラ株式会社 | 情報端末装置 |
| US20110225158A1 (en) * | 2007-12-12 | 2011-09-15 | 21Ct, Inc. | Method and System for Abstracting Information for Use in Link Analysis |
| US20090171936A1 (en) * | 2007-12-28 | 2009-07-02 | Sybase, Inc. | System, Method, and Computer Program Product for Accelerating Like Conditions |
| 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 |
| JP5799706B2 (ja) * | 2011-09-26 | 2015-10-28 | 富士通株式会社 | 検索要求処理装置 |
| US11120004B2 (en) * | 2014-11-25 | 2021-09-14 | Verizon Media Inc. | Method and system for analyzing a user agent string |
| JP6737117B2 (ja) * | 2016-10-07 | 2020-08-05 | 富士通株式会社 | 符号化データ検索プログラム、符号化データ検索方法および符号化データ検索装置 |
| US10528556B1 (en) * | 2017-12-31 | 2020-01-07 | Allscripts Software, Llc | Database methodology for searching encrypted data records |
| US11687534B2 (en) * | 2021-06-17 | 2023-06-27 | Huawei Technologies Co., Ltd. | Method and system for detecting sensitive data |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR940003700B1 (ko) * | 1986-02-14 | 1994-04-27 | 가부시기가이샤 히다찌세이사꾸쇼 | 검색방법 및 그 장치 |
| GB8719572D0 (en) * | 1987-08-19 | 1987-09-23 | Krebs M S | Sigscan text retrieval system |
| JP3270783B2 (ja) * | 1992-09-29 | 2002-04-02 | ゼロックス・コーポレーション | 複数の文書検索方法 |
| US5440482A (en) * | 1993-03-25 | 1995-08-08 | Taligent, Inc. | Forward and reverse Boyer-Moore string searching of multilingual text having a defined collation order |
| JP2758826B2 (ja) * | 1994-03-02 | 1998-05-28 | 株式会社リコー | 文書検索装置 |
| US5675819A (en) * | 1994-06-16 | 1997-10-07 | Xerox Corporation | Document information retrieval using global word co-occurrence patterns |
-
1996
- 1996-01-16 JP JP8005236A patent/JPH09198398A/ja active Pending
- 1996-12-24 US US08/773,295 patent/US5963942A/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| US5963942A (en) | 1999-10-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH09198398A (ja) | パターン検索装置 | |
| JP3689455B2 (ja) | 情報処理方法及び装置 | |
| JP4717049B2 (ja) | 文書のページ番号を検出する方法及びシステム | |
| US7236923B1 (en) | Acronym extraction system and method of identifying acronyms and extracting corresponding expansions from text | |
| US6978419B1 (en) | Method and apparatus for efficient identification of duplicate and near-duplicate documents and text spans using high-discriminability text fragments | |
| JP5037965B2 (ja) | 目次判別目的類似度リンク計算の高速化 | |
| US20020041713A1 (en) | Document search and retrieval apparatus, recording medium and program | |
| US20070244890A1 (en) | Determining a known character string equivalent to a query string | |
| JPH06131398A (ja) | 複数の文書検索方法 | |
| CA2509496A1 (en) | Search-enhanced trie-based syntactic pattern recognition of sequences | |
| CN101128822A (zh) | 权威性文档识别 | |
| JP4114600B2 (ja) | 可変長文字列検索装置及び可変長文字列検索方法並びにプログラム | |
| US20030158725A1 (en) | Method and apparatus for identifying words with common stems | |
| JP2001175661A (ja) | 全文検索装置及び全文検索方法 | |
| WO2009113289A1 (ja) | 新規事例生成装置、新規事例生成方法及び新規事例生成用プログラム | |
| JP3260428B2 (ja) | 情報検索処理装置 | |
| JPH07105237A (ja) | 索引作成方法およびその装置と文書検索装置 | |
| JP3955410B2 (ja) | 類似情報照合装置、類似情報照合方法、及び、類似情報照合プログラムを記録した記録媒体 | |
| US20080177729A1 (en) | Apparatus, method and computer program product for searching document | |
| JP2003242446A (ja) | 文字列予測装置及び方法並びに当該方法を具現化するコンピュータ実行可能なプログラム | |
| JPH06274701A (ja) | 単語照合装置 | |
| JP2684138B2 (ja) | 日本語形態素解析システム及び見出し切り出し方法 | |
| JPH0757059A (ja) | 文字認識装置 | |
| JP3339879B2 (ja) | 文字認識装置 | |
| JP2935533B2 (ja) | 文字処理方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20010327 |