JPS5897743A - 高速文字列マツチング方法 - Google Patents
高速文字列マツチング方法Info
- Publication number
- JPS5897743A JPS5897743A JP56196500A JP19650081A JPS5897743A JP S5897743 A JPS5897743 A JP S5897743A JP 56196500 A JP56196500 A JP 56196500A JP 19650081 A JP19650081 A JP 19650081A JP S5897743 A JPS5897743 A JP S5897743A
- Authority
- JP
- Japan
- Prior art keywords
- character
- string
- pattern
- value
- mark
- 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/02—Comparing digital values
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
本発明は、wl数個のテキスト文字列の集合から、ワイ
ルドキャラクタ、任意長ワイルドキャラクタを含むパタ
ーン文字列あるいはパターン文字列の連続した部分列と
一致するテキスト文字列を高速に検出するマツチング方
法に関するものである。
ルドキャラクタ、任意長ワイルドキャラクタを含むパタ
ーン文字列あるいはパターン文字列の連続した部分列と
一致するテキスト文字列を高速に検出するマツチング方
法に関するものである。
従来の中−ワード方式の情報検索システム・の特徴を説
明すると次のようである。すなわち、入力されたキーワ
ードと一致するキーワードを探し、対応する情報を提供
する。この検索方式は入力されたキーワードをパターン
文字列とし、検索対象となる情報に含まれているキーワ
ードをテキスト文字列として、複数のテキスト文字列か
らパターン文字列と一致するテキスト文字列を見つげる
文字列マツチングと見なすことができる。
明すると次のようである。すなわち、入力されたキーワ
ードと一致するキーワードを探し、対応する情報を提供
する。この検索方式は入力されたキーワードをパターン
文字列とし、検索対象となる情報に含まれているキーワ
ードをテキスト文字列として、複数のテキスト文字列か
らパターン文字列と一致するテキスト文字列を見つげる
文字列マツチングと見なすことができる。
このような文字列マツチングは、パターン文字列にワイ
ルドキャラクタ(任意の文字と一致する記号)、任意長
ワイルドキャラクタ(空列を含む任意長の文字列と一致
する記号)といっ九特殊な記号を含めることによってい
くつかの段階を考えることができる。
ルドキャラクタ(任意の文字と一致する記号)、任意長
ワイルドキャラクタ(空列を含む任意長の文字列と一致
する記号)といっ九特殊な記号を含めることによってい
くつかの段階を考えることができる。
例えば、キーワード方式の情報検索システムにおいて、
入力キーワードとして”DATABA8j!’と指定し
たとする。この場合には、@DATABA19g”をキ
ーワードとして登碌されている情報しか検索することは
できない。もう少し高級な検索方法にしよ5とするとき
は、入力キーワードにワイルドキャラクタを使用する方
法が考えられる。すなわち、例えば入力中−ワードとし
て@DArABA*E″(本はワイルドキャラクタを表
わす)とする方法であり、本の場所はどの文字とも一致
するから”DATABASlit’の他に1DATAi
lACj!”やMDATABAZg’のように誤って登
碌された情報も検索することができる。
入力キーワードとして”DATABA8j!’と指定し
たとする。この場合には、@DATABA19g”をキ
ーワードとして登碌されている情報しか検索することは
できない。もう少し高級な検索方法にしよ5とするとき
は、入力キーワードにワイルドキャラクタを使用する方
法が考えられる。すなわち、例えば入力中−ワードとし
て@DArABA*E″(本はワイルドキャラクタを表
わす)とする方法であり、本の場所はどの文字とも一致
するから”DATABASlit’の他に1DATAi
lACj!”やMDATABAZg’のように誤って登
碌された情報も検索することができる。
この検索方法をさらに人間の認識に近づけるためにンよ
任意長ワイルドキャラクタの導入が必要と、y7る。例
えば中−ワード@DATABA8 M”は@1)ATA
ΔBA8Jl!i″あるい、ま@DATA−BA8j3
’ と登録されているかもしノLない。これらt−1
つの人力キーワードで全て検索するためには” DAT
ムt BAJi j!”(?は任意長ワイルドキャラク
タを表わす)とすればよいとい5jj見方である。
任意長ワイルドキャラクタの導入が必要と、y7る。例
えば中−ワード@DATABA8 M”は@1)ATA
ΔBA8Jl!i″あるい、ま@DATA−BA8j3
’ と登録されているかもしノLない。これらt−1
つの人力キーワードで全て検索するためには” DAT
ムt BAJi j!”(?は任意長ワイルドキャラク
タを表わす)とすればよいとい5jj見方である。
このよう虻こパターン文字列にワイルドキャラクタや任
意長ワイルドキャラクタを含めることによりでより人間
の認識に近い文字列マ、チンダを行うことができる。し
かしながら、任意長ワイルドキャラクタをバター/文字
列に含めるとテキスト文字列との文字の比較回数が非常
に多くなり、通常の計算機で逐次的に処理したのではオ
ーバーへ、ドが大きくなり過ぎるので、結果として専用
のハードウェア装置が望まれることになる。
意長ワイルドキャラクタを含めることによりでより人間
の認識に近い文字列マ、チンダを行うことができる。し
かしながら、任意長ワイルドキャラクタをバター/文字
列に含めるとテキスト文字列との文字の比較回数が非常
に多くなり、通常の計算機で逐次的に処理したのではオ
ーバーへ、ドが大きくなり過ぎるので、結果として専用
のハードウェア装置が望まれることになる。
一方、べたづめされた日本一文章から単一を抜き出して
分かちJaiするシステムも考えられる。
分かちJaiするシステムも考えられる。
しかし、この場合は、べたづめされた日本一文章の連続
した部分列と一致する単一があるかどうかを検出しなく
てはならないことになろ、このような単語の抜き出しは
、日本一文章をパターン文字列とし、単語をテキスト文
字列として、パターン文字列の連続しり部分列と一致す
るテキスト文字列を検出する文字列マツチングと見なす
ことができる。
した部分列と一致する単一があるかどうかを検出しなく
てはならないことになろ、このような単語の抜き出しは
、日本一文章をパターン文字列とし、単語をテキスト文
字列として、パターン文字列の連続しり部分列と一致す
るテキスト文字列を検出する文字列マツチングと見なす
ことができる。
例えばパターン文字列1これはふんです”に対し、テキ
スト文字列1これは”、@ぶん”、1です”が用意され
ていれば、パターン文字列の連続した部分列“こ”、′
れ”、′は”、−1′これ1゜1れは”、′はぶ” +
+、1れはふんです”。
スト文字列1これは”、@ぶん”、1です”が用意され
ていれば、パターン文字列の連続した部分列“こ”、′
れ”、′は”、−1′これ1゜1れは”、′はぶ” +
+、1れはふんです”。
1これはぶんです”と比較することによって、パターン
文字列中に、テキスト文字列1これは”。
文字列中に、テキスト文字列1これは”。
1ぷん”、1です”が含まれているか否かを検出できる
わけである。こ5した分から脩きへの変換はどの−が含
まれでいるかわかれば容易に信5ことができるので、不
可能ではない。
わけである。こ5した分から脩きへの変換はどの−が含
まれでいるかわかれば容易に信5ことができるので、不
可能ではない。
同様な手法は、連続する2文字あるいは3文字の出現頻
度から単語の誤まりチェ、り【行う英単紬誤まり検出シ
ステムやd声認識にJいても用いることができる。
度から単語の誤まりチェ、り【行う英単紬誤まり検出シ
ステムやd声認識にJいても用いることができる。
しh)Lながら、パターン文字列の連続した部分列との
比較は文字の比較量回数が丼9度に多(1通常の計算機
で逐次的に4J!したのではオーバーへ。
比較は文字の比較量回数が丼9度に多(1通常の計算機
で逐次的に4J!したのではオーバーへ。
ドが大さく、やはり専用のハードフェア装fILt−必
要とすることになるので好ましくはない。
要とすることになるので好ましくはない。
さらンζ、is認識においては人カバターン文字列とし
C正しい文字列がイ普られる訳ではな(、不 。
C正しい文字列がイ普られる訳ではな(、不 。
イルドキャラクタや任意長ワイルドキャラクタに対応さ
せることができる。この場合には、ワイルドキャラクタ
や任意長ワイルドキャラクタt−言むパターン文字列の
遁、mt、た部分列と一敢するパターンを見つげなくて
はならないので、やはり大変なことである。
せることができる。この場合には、ワイルドキャラクタ
や任意長ワイルドキャラクタt−言むパターン文字列の
遁、mt、た部分列と一敢するパターンを見つげなくて
はならないので、やはり大変なことである。
本発明はこのような背景のらとにこれらの従来技術の欠
点を除去したものであり、複数のテキスト文字列からワ
イルド中ヤラクタ、任意長ワイルドキャラクタを含Uバ
ター〕文字列、あるいはパターン文字列O逓続しyc4
分列と一攻fるテキスト文字列を高速lこ検出するマツ
チ/ダ方法を提供するものであり・ 1979年3月に発行さ4tたfi繍「コノピユータ」
の第1241第3号(Computer 、 Vol、
12,743)K掲載されたエル・ニー・ホラ−(L
、人、Hshllaat)氏の1テキスト・リトリ゛−
パルφコンビ、−タズ1CTaxt Retrieva
l Computers)と題する論文には文字列マツ
チングを高速に4壇する方法がいくつか述べられており
、(1)連想メモリを利用する方法、(2)セルラー−
ジ、りを初用する方法、F3J Ir @状態オートマ
トンを利用する方法、の3つに大別することができる。
点を除去したものであり、複数のテキスト文字列からワ
イルド中ヤラクタ、任意長ワイルドキャラクタを含Uバ
ター〕文字列、あるいはパターン文字列O逓続しyc4
分列と一攻fるテキスト文字列を高速lこ検出するマツ
チ/ダ方法を提供するものであり・ 1979年3月に発行さ4tたfi繍「コノピユータ」
の第1241第3号(Computer 、 Vol、
12,743)K掲載されたエル・ニー・ホラ−(L
、人、Hshllaat)氏の1テキスト・リトリ゛−
パルφコンビ、−タズ1CTaxt Retrieva
l Computers)と題する論文には文字列マツ
チングを高速に4壇する方法がいくつか述べられており
、(1)連想メモリを利用する方法、(2)セルラー−
ジ、りを初用する方法、F3J Ir @状態オートマ
トンを利用する方法、の3つに大別することができる。
もし本発明をこルら3つの分類にあてはめるとすれば、
(2)のセルラーT:1:)、り全外用する方法に属す
るものと云うてよい。
(2)のセルラーT:1:)、り全外用する方法に属す
るものと云うてよい。
セルラーロジックt−利用した一モ来技術としては以丁
のものが刈られている。
のものが刈られている。
まず1962年しで発刊されiヒズpシーディ/グ・オ
プ・エツジニーシーシー(Proceadムng of
FJCC)の第130−1364に掲俄さA ’Cいb
シー。
プ・エツジニーシーシー(Proceadムng of
FJCC)の第130−1364に掲俄さA ’Cいb
シー。
ヮイ・リー(C,Y、L6e)氏(Cよる1インターコ
ミエニケイテイング・セルズ、ベイ/ス・7オ7117
・グイストリビューティド・ロジ、り・コンビエータ’
(Intercommunicating Ce1l
s、Ba5isfor a 1)istribuled
Logic Computer)がその1つであり、
テ中スト文字列忙1文字ずつセルに格納し、セル毎にマ
ークビットを設け、パターン文字列を1文字ずつ各セル
Vζ転送し、セル単μに並列にマツチングを行う方法が
述べられている。
ミエニケイテイング・セルズ、ベイ/ス・7オ7117
・グイストリビューティド・ロジ、り・コンビエータ’
(Intercommunicating Ce1l
s、Ba5isfor a 1)istribuled
Logic Computer)がその1つであり、
テ中スト文字列忙1文字ずつセルに格納し、セル毎にマ
ークビットを設け、パターン文字列を1文字ずつ各セル
Vζ転送し、セル単μに並列にマツチングを行う方法が
述べられている。
このリー氏のマツチング方法(よれば、全てのセルにお
いで伝送されたバターノリ)文字とテキストの各文字と
の比較が同時に行われるため、テキスト文字列の長さと
は無関係にパターン文字列の長さに比例した時間でマツ
チングを行うことができる。しかしながら、ワイルドキ
ャラクタや任意純ワイルドキャラクタおよびパターン文
字列の連続した部分列とのマツチング方法については述
べられていない、さらIlこ、リー氏のマツチング方法
をそのまま実現する九は一文字毎に比V−などのハード
クエ7を用意°する必要があり、当時としてVよ不倉域
なiツチング方法と考えられていた。
いで伝送されたバターノリ)文字とテキストの各文字と
の比較が同時に行われるため、テキスト文字列の長さと
は無関係にパターン文字列の長さに比例した時間でマツ
チングを行うことができる。しかしながら、ワイルドキ
ャラクタや任意純ワイルドキャラクタおよびパターン文
字列の連続した部分列とのマツチング方法については述
べられていない、さらIlこ、リー氏のマツチング方法
をそのまま実現する九は一文字毎に比V−などのハード
クエ7を用意°する必要があり、当時としてVよ不倉域
なiツチング方法と考えられていた。
これらの欠点を解消し必要なハードクエ7jiit減ら
すために、1つのセルに複数のテキスト文字列を格納し
、かつワイルドキャラクタ、仕意艮プイルド中ヤラクタ
itむパターン文字列のマ、チ/グ倉実塊す、6マ、チ
ング方法が、1972年に発刊されたプロシーデインダ
ス・オグ・工7ジェーシークー(Proceeding
s of FJCC)の4691〜701員に掲載され
たエル°デー°ハy−(L、D・H*aly)氏による
報告1ザ・アーキテクチャ・オグ・7・コンテキスト・
アドレスト・セグメント・シークエノシャル・ストレー
ジ”(TheArchitectuve of a C
ontext Addressed8egment−8
equential Storage)に述べられてい
る。
すために、1つのセルに複数のテキスト文字列を格納し
、かつワイルドキャラクタ、仕意艮プイルド中ヤラクタ
itむパターン文字列のマ、チ/グ倉実塊す、6マ、チ
ング方法が、1972年に発刊されたプロシーデインダ
ス・オグ・工7ジェーシークー(Proceeding
s of FJCC)の4691〜701員に掲載され
たエル°デー°ハy−(L、D・H*aly)氏による
報告1ザ・アーキテクチャ・オグ・7・コンテキスト・
アドレスト・セグメント・シークエノシャル・ストレー
ジ”(TheArchitectuve of a C
ontext Addressed8egment−8
equential Storage)に述べられてい
る。
このバリー氏のマツチング方法は、各セル毎にディスク
のトラ、りを対応させ、トラ、り内にテキスト文字列を
複数個格納し、テキスト文字列の各文字毎にマークビッ
トを設けるものでめりた。
のトラ、りを対応させ、トラ、り内にテキスト文字列を
複数個格納し、テキスト文字列の各文字毎にマークビッ
トを設けるものでめりた。
このため1文字当7tりのハードウェアIkは減らせる
が、転送されてきたパターン1文字とのマツチン、グに
少な(ともディスク11転するだけの時間が必要になる
という欠点があった。
が、転送されてきたパターン1文字とのマツチン、グに
少な(ともディスク11転するだけの時間が必要になる
という欠点があった。
こルに対し、1978年に発刊された第4回ノン・ニュ
ーメリ、り嗜ワークショ、プのグロシーディング(Pr
oceeding、of 4th Non Numar
icWorksho9)の第8〜17真にm lia
G Jtたジー・ヒー・コープランド(G、P、 Co
paland)氏による報告1ストリング・ストレージ
・アンド・サーチング・7オアーデータ・ベース・アプ
リケージ。
ーメリ、り嗜ワークショ、プのグロシーディング(Pr
oceeding、of 4th Non Numar
icWorksho9)の第8〜17真にm lia
G Jtたジー・ヒー・コープランド(G、P、 Co
paland)氏による報告1ストリング・ストレージ
・アンド・サーチング・7オアーデータ・ベース・アプ
リケージ。
ナ゛
ン:インブリメ/テーシ、/・オン・)−インデ4”バ
ックエンド参カーネル(8tring 8trag*a
nd 8earching for Data
Ba5e Applications:Implem
entation on 1m* INDY
BackandK@、、・1)Kは、各セルにパターン
文字列を格納し、パターン文字列の各文字毎にマークビ
ットを用意することにより、ディスク11転でパターン
文字列全体とのマ、チ/グを行う方法が述べられている
。
ックエンド参カーネル(8tring 8trag*a
nd 8earching for Data
Ba5e Applications:Implem
entation on 1m* INDY
BackandK@、、・1)Kは、各セルにパターン
文字列を格納し、パターン文字列の各文字毎にマークビ
ットを用意することにより、ディスク11転でパターン
文字列全体とのマ、チ/グを行う方法が述べられている
。
ディスクメモリを考えている限り、パターン文字列の各
文字単位にマツチングを行5よりは同じl&g1転でパ
ターン文字列全体とマ、チノグできる方が早いので、以
降セルラー−ジ、りによるマ。
文字単位にマツチングを行5よりは同じl&g1転でパ
ターン文字列全体とマ、チノグできる方が早いので、以
降セルラー−ジ、りによるマ。
チング方法としては、バター7文字列にマークビ、トを
用意し、パターン文字列にテキス)O各文字を転送する
マツチング方法が主流となっている。
用意し、パターン文字列にテキス)O各文字を転送する
マツチング方法が主流となっている。
また最近になり、バター7文字列とテキスト文字列とを
同時に動かしてマツチングを行う方法が、1980年1
月に@行されたコンピュータ(Computer)誌第
26〜403(K掲載された二ム・ジェー・7才スター
反び工、チ・デー・クング(M、J、Foster。
同時に動かしてマツチングを行う方法が、1980年1
月に@行されたコンピュータ(Computer)誌第
26〜403(K掲載された二ム・ジェー・7才スター
反び工、チ・デー・クング(M、J、Foster。
1−1.T、Kun、)両氏の”ザ・デザイン・オプ・
スペシャル・パーパス・グイエルニスアイ・チ、ブ(’
rh@Design of 8p@cial Purp
os@VL8IChip)と題する論文によって提案さ
れている。しかしながらこの方法では任意長ワイルド、
キャラクタを含むパターン1文字うことはできない。
スペシャル・パーパス・グイエルニスアイ・チ、ブ(’
rh@Design of 8p@cial Purp
os@VL8IChip)と題する論文によって提案さ
れている。しかしながらこの方法では任意長ワイルド、
キャラクタを含むパターン1文字うことはできない。
セルラーI:I:)、り臘のマツチング方法に関する限
り、テキスト文字列をディスクメモリに格納する方法が
主流となっている。しかしながら現在のディスクでは各
トラック毎に数千から致方バイトが46納可能であり、
例えばテキスト文字列がキーワードのように16バイト
ずつに区切らnていたら、そのはとんとか逐次的に処理
されることになる。各キーワードにおいて同時にマツチ
ングを行うためには、各セルに少なくともキーワード単
位に割りつけることが必要である。また、半導体技術の
進歩により小量データ毎に比較−路などのI・−ドウエ
アを用意した集積回路を作ることはもはや不自然な方法
ではない。本発明はこのような背景のらとにテキスト文
字列をセルに格納し、パターン文字列i1文字ずつセル
に転送するり一氏。
り、テキスト文字列をディスクメモリに格納する方法が
主流となっている。しかしながら現在のディスクでは各
トラック毎に数千から致方バイトが46納可能であり、
例えばテキスト文字列がキーワードのように16バイト
ずつに区切らnていたら、そのはとんとか逐次的に処理
されることになる。各キーワードにおいて同時にマツチ
ングを行うためには、各セルに少なくともキーワード単
位に割りつけることが必要である。また、半導体技術の
進歩により小量データ毎に比較−路などのI・−ドウエ
アを用意した集積回路を作ることはもはや不自然な方法
ではない。本発明はこのような背景のらとにテキスト文
字列をセルに格納し、パターン文字列i1文字ずつセル
に転送するり一氏。
バリー氏らのマツチング方法の欠点を改良したマ、チン
グ方法を提供するものである。
グ方法を提供するものである。
次に本発明の4解を助けるために、若干詳しくリー氏の
マツチング方法について述べる。この場合、テキスト文
字列の各文字は、第1図にボしたようにセル11のテキ
スト格納メモリ12に1文字ずつ格納される。セル11
%にマークビットレジスタ13が用意されて8す、aJ
i8値を0とする。
マツチング方法について述べる。この場合、テキスト文
字列の各文字は、第1図にボしたようにセル11のテキ
スト格納メモリ12に1文字ずつ格納される。セル11
%にマークビットレジスタ13が用意されて8す、aJ
i8値を0とする。
マ、チ/グは、セル接続バスlOを通してパターン文字
を1文字ずつ全てのセルIIK同時に転送るセルの右隣
りのセルのマークビットを1とする。
を1文字ずつ全てのセルIIK同時に転送るセルの右隣
りのセルのマークビットを1とする。
次にパターン文字t−1文字各七ル11に転送し、テキ
スト格納メモリ12に格納さ晶ている文字と転送された
文字が一款しかつマークビットがlのセルがあれば、そ
のセルのマークビ、)tOとL、右隣りのセルのマーク
ビ、 )t−1とする。に1.上の動作をパターン文字
列の文字数だけ繰り返すと、マークピットが1のセルは
パターン文字列と一致じたテキスト文字列の次のセルを
表わしている。
スト格納メモリ12に格納さ晶ている文字と転送された
文字が一款しかつマークビットがlのセルがあれば、そ
のセルのマークビ、)tOとL、右隣りのセルのマーク
ビ、 )t−1とする。に1.上の動作をパターン文字
列の文字数だけ繰り返すと、マークピットが1のセルは
パターン文字列と一致じたテキスト文字列の次のセルを
表わしている。
このリー氏の方法によれば、パターン文字は全てのセル
11cc同時に転送さルるため、テキスト文字列の長さ
とは無関係にパターン文字列の長さに比例した時間でマ
、チ/グが処理できる。しかしながら、このリー氏のマ
ツチング方法は以Fの4点tζ代表される欠点を持つ。
11cc同時に転送さルるため、テキスト文字列の長さ
とは無関係にパターン文字列の長さに比例した時間でマ
、チ/グが処理できる。しかしながら、このリー氏のマ
ツチング方法は以Fの4点tζ代表される欠点を持つ。
■ 任意長ワイルドキャラクタを含むバター7文字列が
仮えない。
仮えない。
■ バター7文字列の連続した部分列とのマツチングが
孜えない。
孜えない。
■ 各セルに1文字しか格納できないため、1文字当た
りのハードウェア量が多い。
りのハードウェア量が多い。
■ テキスト文字列を区切るための特殊な区切り記号を
必要とする。
必要とする。
次にバリー氏のマツチング方法についても若干詳しく述
べる。この場合、テキスト文字列は、第2図に示したよ
うにセル21毎に用意されたディスクメモリ22に格納
さルる。テキストの各文字毎にスタートビット領域23
とマークピット領域24とが用怠されており、区分され
たテキスト文字列の最初の文字のスタートビ、トとマー
クビ。
べる。この場合、テキスト文字列は、第2図に示したよ
うにセル21毎に用意されたディスクメモリ22に格納
さルる。テキストの各文字毎にスタートビット領域23
とマークピット領域24とが用怠されており、区分され
たテキスト文字列の最初の文字のスタートビ、トとマー
クビ。
トとにはlをセットし、その他の文字のスタートビット
とマークピットとには0をセットする。
とマークピットとには0をセットする。
マツチングは、ディスクメモリ22の始まりを表わすオ
リジン25から逐次的に行われる。マ。
リジン25から逐次的に行われる。マ。
チングの方法にはストリングサーチ(string@・
arch)とオーダーサーチ(order s@arc
h)との2種類が適用でき、前者はり一氏のマツチング
方法と同様な手法で、ワイルドキャラクタあるいは普遍
のパターン文字列の文字とテキスト文字列とのマツチン
グを行う、オーダーサーチは、バター7文字列の任意長
ワイルドキャラクタの次の文字に対して行い、任意長ワ
イルド中ヤラクタの効果を実現する。
arch)とオーダーサーチ(order s@arc
h)との2種類が適用でき、前者はり一氏のマツチング
方法と同様な手法で、ワイルドキャラクタあるいは普遍
のパターン文字列の文字とテキスト文字列とのマツチン
グを行う、オーダーサーチは、バター7文字列の任意長
ワイルドキャラクタの次の文字に対して行い、任意長ワ
イルド中ヤラクタの効果を実現する。
オーダサーチは次のようにしで行われる。
例として、テキスト文字列“MI8HI881PPX“
とパターン文字列@M*8fI”とのマ、チ/グを考
える。バター7文字列′″M*S” とのマ、チ/グ
が終Tした状態でテキスト文字列のマークピットは次の
ようになっている。
とパターン文字列@M*8fI”とのマ、チ/グを考
える。バター7文字列′″M*S” とのマ、チ/グ
が終Tした状態でテキスト文字列のマークピットは次の
ようになっている。
テキスト文字列 MISI(IS8IPPIマークビ
、) 00100000000パタ一ン文字列の
残りはtl”なので1工”に関してオーダサーチが行わ
ルる。オーダサーチでは、テキスト文字列の各11”に
おいて、テキストの最初の文字までにマークピットが@
l″の文字があれば“l′を、なげれば10”を1工”
のマークピットの値とする。その結果、マークピットは
次のようになる。
、) 00100000000パタ一ン文字列の
残りはtl”なので1工”に関してオーダサーチが行わ
ルる。オーダサーチでは、テキスト文字列の各11”に
おいて、テキストの最初の文字までにマークピットが@
l″の文字があれば“l′を、なげれば10”を1工”
のマークピットの値とする。その結果、マークピットは
次のようになる。
テキスト文字列 MISHI88IPPIマークビy
) 00001001001また、テキスト文字
列に任意長のパターン文字列と一致する記号$を含める
ことにより、パターンの連続した部分列とのマ、千ング
も可能である。
) 00001001001また、テキスト文字
列に任意長のパターン文字列と一致する記号$を含める
ことにより、パターンの連続した部分列とのマ、千ング
も可能である。
しかじながら、こうしたバリー氏のマツチング方法は以
下のような欠点を持つ。
下のような欠点を持つ。
■ パターン1文字とのマツチングに少なくともディス
ク1回転の時間がかかる。
ク1回転の時間がかかる。
@ 1つのテキスト文字列が複数のセルにまたがるとき
は、マツチング時にセル間の通信が必要となる。
は、マツチング時にセル間の通信が必要となる。
■ 1つのセルに複数のテキスト文字列が格納されると
きは、各テキスト文字列とのマツチングは逐次的Kfi
通される。
きは、各テキスト文字列とのマツチングは逐次的Kfi
通される。
■ 各テキスト文字列を区分するためのスタートビ、ト
が必要である。
が必要である。
本発明は以上の欠点を排除し、高速かつ高度な文字列マ
ツチング方f&を提供するものである。A体内には、複
数の文字より構成されるテキスト文字列を格納するデキ
ストパ、ファと、前記テキスト文字列の各文字対応に設
げられたマークピットと、前記マークピットからマ、チ
/グにより生成された結果を一時的に格納する新マータ
ビ、トと。
ツチング方f&を提供するものである。A体内には、複
数の文字より構成されるテキスト文字列を格納するデキ
ストパ、ファと、前記テキスト文字列の各文字対応に設
げられたマークピットと、前記マークピットからマ、チ
/グにより生成された結果を一時的に格納する新マータ
ビ、トと。
マツチングをアンカーモードで行うときは@0”を7ン
7ンカーモードで行5ときは1″を値とするモード信号
と、を具備するセルにテキスト文字列M・Ml−・・M
n、を格納し、 前記テキスト文字列M、M、−,,Mn−IC)各文字
対応に設けられたマークビy )baJ・=bn1
のうちマークピットbeには初期値として11”をセ。
7ンカーモードで行5ときは1″を値とするモード信号
と、を具備するセルにテキスト文字列M・Ml−・・M
n、を格納し、 前記テキスト文字列M、M、−,,Mn−IC)各文字
対応に設けられたマークビy )baJ・=bn1
のうちマークピットbeには初期値として11”をセ。
トし、マークピットb1からbfi−□には初期値とし
て”0”をセットシ、 前記テキスト文字列M、M、−Mn、とのマツチングの
対象となるパターン文字列を構成するパターン文字を1
文字ずつ前記セルに転送し、前記パターン文字が任意長
ワイルドキャラクタ(すなわち任意長の文字列と一致す
る記号)のときはテキスト文字列M、M、・−Mll、
の各文字Mjに対応させてマークピットb。からす、ま
での値の論虐相を新マークピットCj O値としてセッ
トし、次に新マークビ、トC3の値をマークピットbj
の値としてセットシ、 前記パターン文字がワイルドキャラクタ(すなわち任意
の文字と一致する記号)のときはテキスト文字列MoM
1.−M、 、の各文字Mjに対応させてマークピット
b・の値を新マークビy ) c jKセットシ、次に
マータビ9トbj#Cは新マークビy ) Cjlの値
をセットするがマークピットb0には前記モード信号の
値をセットシ、 前記パターン文字が前記任意長ワイルドキャラクタでも
前記ワイルドキャラクタでもないときはテキスト文字列
M6MM・−bifl、の各文字M、に対応させてマー
クビy ) JO値が@l”でかつ前記文字Mj と
前記パターン文字とが一致したときく限り新マークビy
) cjt″@1”にセットし、そうでないときは新
マークビy ) Cjt−0”にセットし、次にマーク
ビ、)bjには新マークビ、トe j−1の値をセット
するがマークピットb、には前記モード信号の値をセッ
トシ、 以上の動作を前記パターン文字列を構成している全ての
パターン文字について繰り返し、新マークビy ) c
fi−1の値が@l” となうたときに前記セルに格
納されたテキスト文字列が前記バター7文字列全体(マ
、チ/グが7ンカーモードで行われCいるとき)あるい
は前記パターン文字列の連続した部分列(マツチングが
アンアンカーモードで行われているとき)と−款したこ
とを検出する、ようにしたことを特徴とする高速文字列
マツチング方法である。
て”0”をセットシ、 前記テキスト文字列M、M、−Mn、とのマツチングの
対象となるパターン文字列を構成するパターン文字を1
文字ずつ前記セルに転送し、前記パターン文字が任意長
ワイルドキャラクタ(すなわち任意長の文字列と一致す
る記号)のときはテキスト文字列M、M、・−Mll、
の各文字Mjに対応させてマークピットb。からす、ま
での値の論虐相を新マークピットCj O値としてセッ
トし、次に新マークビ、トC3の値をマークピットbj
の値としてセットシ、 前記パターン文字がワイルドキャラクタ(すなわち任意
の文字と一致する記号)のときはテキスト文字列MoM
1.−M、 、の各文字Mjに対応させてマークピット
b・の値を新マークビy ) c jKセットシ、次に
マータビ9トbj#Cは新マークビy ) Cjlの値
をセットするがマークピットb0には前記モード信号の
値をセットシ、 前記パターン文字が前記任意長ワイルドキャラクタでも
前記ワイルドキャラクタでもないときはテキスト文字列
M6MM・−bifl、の各文字M、に対応させてマー
クビy ) JO値が@l”でかつ前記文字Mj と
前記パターン文字とが一致したときく限り新マークビy
) cjt″@1”にセットし、そうでないときは新
マークビy ) Cjt−0”にセットし、次にマーク
ビ、)bjには新マークビ、トe j−1の値をセット
するがマークピットb、には前記モード信号の値をセッ
トシ、 以上の動作を前記パターン文字列を構成している全ての
パターン文字について繰り返し、新マークビy ) c
fi−1の値が@l” となうたときに前記セルに格
納されたテキスト文字列が前記バター7文字列全体(マ
、チ/グが7ンカーモードで行われCいるとき)あるい
は前記パターン文字列の連続した部分列(マツチングが
アンアンカーモードで行われているとき)と−款したこ
とを検出する、ようにしたことを特徴とする高速文字列
マツチング方法である。
本発明のマ、チ/グ方法においては、ワイルドキャラク
タ、任意長ワイルドキャラクタを含む/<ターン文字列
が数え、さらにパターン文字列の連続した部分列と□の
マツチングも可能である。各セルには複数文字が格納石
れるため1文字当たりのハードウェア量もそれほど多(
ならない。1つのテキスト文字列は1つのセルに格納す
るため、テキスト文字列を区切るための特殊な区切り記
号やスタートビ、トを必要としない。1つのテキスト文
字列が複数のセルにまたがることがlよいので、マツチ
ング時にセル間の通信は不要である。逆に複数のテキス
ト文字列が1つのセルに格納されることもないので、各
テキスト文字列は並列にマ。
タ、任意長ワイルドキャラクタを含む/<ターン文字列
が数え、さらにパターン文字列の連続した部分列と□の
マツチングも可能である。各セルには複数文字が格納石
れるため1文字当たりのハードウェア量もそれほど多(
ならない。1つのテキスト文字列は1つのセルに格納す
るため、テキスト文字列を区切るための特殊な区切り記
号やスタートビ、トを必要としない。1つのテキスト文
字列が複数のセルにまたがることがlよいので、マツチ
ング時にセル間の通信は不要である。逆に複数のテキス
ト文字列が1つのセルに格納されることもないので、各
テキスト文字列は並列にマ。
チ/グを行うことができる。さらに各セルは規模が小さ
くかつ同一構成のため集積1ヒが容易であり、多数セル
tlチ、プ化することがgJflである。
くかつ同一構成のため集積1ヒが容易であり、多数セル
tlチ、プ化することがgJflである。
また、マ、千ングのモード信号を変更することで、同じ
テキスト文字列に対してパターン文字列全体と一致させ
る7ンカーモードとパターン文字列の連続した部分列と
一致させるアンアンカーモにa@する。
テキスト文字列に対してパターン文字列全体と一致させ
る7ンカーモードとパターン文字列の連続した部分列と
一致させるアンアンカーモにa@する。
例として、テキスト文字列” DATABAS M”と
、<ターン文字列”D?ム本EI′とのアンカーモード
でのマツチングを考えろ。
、<ターン文字列”D?ム本EI′とのアンカーモード
でのマツチングを考えろ。
テキスト文字列″DATABA8j!”のマークピット
の初期値は第31Afl)のよ5iC与えられる。
の初期値は第31Afl)のよ5iC与えられる。
始めにパターン文字@D”が転送さnると、1D”は普
通の文字なのでマークピットが71 mでかつテキスト
文字が@D”の文字に対応する新マークビ、トだげが@
1′となる(第3図(2)新マークビ、ト)。つぎに新
マークピットが1ビツトずつシフトされてマークピット
にセットされ、さらにマークピットb・にはモード信号
(こO場合qエアンカーモードなので10”)がセット
される(縞3図(2)マークビット)。
通の文字なのでマークピットが71 mでかつテキスト
文字が@D”の文字に対応する新マークビ、トだげが@
1′となる(第3図(2)新マークビ、ト)。つぎに新
マークピットが1ビツトずつシフトされてマークピット
にセットされ、さらにマークピットb・にはモード信号
(こO場合qエアンカーモードなので10”)がセット
される(縞3図(2)マークビット)。
次にパターン文字1!”が転送されると Ill ?
#は任意長ワイルドキャラクタなので、マークビ。
#は任意長ワイルドキャラクタなので、マークビ。
トのboからbj までの論塩和が新マークビ、トC
j にセットされ、新マークビ、トがそのままマークビ
ットにセットされる(第3図+3))、すなわち、一度
マークビ、トが11′″となったら暇降のマークビット
は全て611111となる。
j にセットされ、新マークビ、トがそのままマークビ
ットにセットされる(第3図+3))、すなわち、一度
マークビ、トが11′″となったら暇降のマークビット
は全て611111となる。
次に、パターン文字1A′が転送されると、1人”は普
通の文字なので、パターン文字”D′″のときと同様に
してマツチングが行われる(第3図(4))。
通の文字なので、パターン文字”D′″のときと同様に
してマツチングが行われる(第3図(4))。
次に、パターン文字1本”が転送されると、“*”はワ
イルドキャラクタなので、マークビ。
イルドキャラクタなので、マークビ。
トがそのまま新マークビ、トとなり、lビ、トシフトさ
れてマークビットlこセットされる(第3図15) )
。
れてマークビットlこセットされる(第3図15) )
。
次に、パターン文字1E”が転送されると、1B1は普
通の文字なので、パターン文字@D”のときと同様にし
てi、チングが行われる(第3図(5))。このとき、
新マークビ、トにおいてC管が@11となるので、テキ
スト文字列@I)ATABA8B”とパターン文字列”
Dv人本E″と一致したことが検出される。
通の文字なので、パターン文字@D”のときと同様にし
てi、チングが行われる(第3図(5))。このとき、
新マークビ、トにおいてC管が@11となるので、テキ
スト文字列@I)ATABA8B”とパターン文字列”
Dv人本E″と一致したことが検出される。
アンアンカーモードにおけるマツチングは、パターン文
字が普通の文字あるいはワイルドキャラクタのときにマ
ークビットb、にセットされるモード信号の値が@1”
となるだけで、マツチング方法としては以上説明したア
ンカーモードの場合と本質的な差はない。
字が普通の文字あるいはワイルドキャラクタのときにマ
ークビットb、にセットされるモード信号の値が@1”
となるだけで、マツチング方法としては以上説明したア
ンカーモードの場合と本質的な差はない。
次に本発明のマツチング方法t−笑現するセル構成につ
いてその具体内な一実施例を挙げて説明する。
いてその具体内な一実施例を挙げて説明する。
菖4図にセルの全体構成を示す、テキスト文字列の集合
は、テキスト文字列単位にセル31に格納される。テキ
スト文字列のセルへの転送は、テキスト文字列転送バス
32を通して行われる。マ、チ/ダの対象となるバター
7文字は、パターン文字転送バスを通して全てのセル3
1へ同時に転送すれ、各セル31においてマ、チ/ダが
並列に行わルる。マツチングを7ンカーモードで行うか
777/カーモードで行うかを決めクモード信号や、各
セル31へのデータ転送に必要な制御直号は、制御バス
34を用いて各セル31へ転送される。各セル31に3
いて格納しているテキスト文字列がパターン文字列ある
いはパターン文字列の連続した部分列と一致したことが
検出さnると、マ、チ/グ成功を示す信号が制御バス3
4を通して図示されていない外部の制御二二、トに伝達
される。
は、テキスト文字列単位にセル31に格納される。テキ
スト文字列のセルへの転送は、テキスト文字列転送バス
32を通して行われる。マ、チ/ダの対象となるバター
7文字は、パターン文字転送バスを通して全てのセル3
1へ同時に転送すれ、各セル31においてマ、チ/ダが
並列に行わルる。マツチングを7ンカーモードで行うか
777/カーモードで行うかを決めクモード信号や、各
セル31へのデータ転送に必要な制御直号は、制御バス
34を用いて各セル31へ転送される。各セル31に3
いて格納しているテキスト文字列がパターン文字列ある
いはパターン文字列の連続した部分列と一致したことが
検出さnると、マ、チ/グ成功を示す信号が制御バス3
4を通して図示されていない外部の制御二二、トに伝達
される。
第5−は、本実施例で使用したセル構成を示すグGAy
り図である。図中において、40はテキスト文字列M、
M、 =、Mn、を第0番地から格納するテキストバッ
ファを表わし、41はテキスト文字列の最後の文字を@
l”で示す最終文字ビットを表−わす。
り図である。図中において、40はテキスト文字列M、
M、 =、Mn、を第0番地から格納するテキストバッ
ファを表わし、41はテキスト文字列の最後の文字を@
l”で示す最終文字ビットを表−わす。
50はマークビットbob□・・・bQ 、を第0番地
から格納するlビ、ト絖出しが可能なマークビ。
から格納するlビ、ト絖出しが可能なマークビ。
トパッファを表わし、60は新マークビ、ト13 @
C1−”” Cn−1をgos地から格納するlビ、ト
書き込みならびに1ビ、トシ7トが可成な新マークビ、
ドパ、7アを表わす。
C1−”” Cn−1をgos地から格納するlビ、ト
書き込みならびに1ビ、トシ7トが可成な新マークビ、
ドパ、7アを表わす。
70はセル31に転送されてきたパターン文字を格納す
るためのパターンバy7yt表わし、80は制御回路を
表わす。
るためのパターンバy7yt表わし、80は制御回路を
表わす。
次にテキスト文字列”DATABム8B”とパターン文
字列”DtA本g’との7ンカーモードでのマツチング
を例にして、セル31のへ体内励作について述べる。
字列”DtA本g’との7ンカーモードでのマツチング
を例にして、セル31のへ体内励作について述べる。
始めに、テキスト文字列M・Ml−・・M、0格@につ
いて述べる。
いて述べる。
制御バス34からテ中スト文字列転送Ogi号が信号線
86を通して制御回路80に与えらルるとテキスト転送
バス32からテキスト文字列@I)ATAHAf9M’
ボテ−1ス)バ、7,400$11101地から第7
番地に格納される。このとき、最終文字ビ、)41Kg
いてはチャスト文字@l!”に対応する菖7喬地のビッ
トが11”にセットされる。
86を通して制御回路80に与えらルるとテキスト転送
バス32からテキスト文字列@I)ATAHAf9M’
ボテ−1ス)バ、7,400$11101地から第7
番地に格納される。このとき、最終文字ビ、)41Kg
いてはチャスト文字@l!”に対応する菖7喬地のビッ
トが11”にセットされる。
次に、マークビットb@J −bfi−、の切期化につ
いて述べる。制御バス34よりi、チンダi!lI麹の
11t号が制御回路80に与えられると、1s号−81
t−用いてマークビ、ドパy7y500第0喬地に11
′が、第111地以降には@o′がセットされる。
いて述べる。制御バス34よりi、チンダi!lI麹の
11t号が制御回路80に与えられると、1s号−81
t−用いてマークビ、ドパy7y500第0喬地に11
′が、第111地以降には@o′がセットされる。
次に、パターン文字の転送とマツチングについて述べる
。パターン文字列@D?A*l”の各バター7文字は、
パターン文字転送バス33を通してセル31 O/<
l −ンハ、 7ア70に転送される。このとき制御バ
ス34を通して制御回路80にパターン文字転送の信号
が送られてマツチングが開始される。
。パターン文字列@D?A*l”の各バター7文字は、
パターン文字転送バス33を通してセル31 O/<
l −ンハ、 7ア70に転送される。このとき制御バ
ス34を通して制御回路80にパターン文字転送の信号
が送られてマツチングが開始される。
パターン文字転送70に1D”が与えられると、制御回
路80はパターンパ、7ア70tデコードし、普通の文
字とわかると信号線82.84の値を@0”とする0次
にアドレスレジスタ90vCM号線83を通しCクリア
1を号を転送し、マツチングを開始する。アドレス、l
191によりアドレス鍼O1” I −# ” #−一
が生成され、テヤストバ、7ア40、最終文字検出ビ、
)41.マークビットバッファ50から対嘉6するアド
レスの値が疏み出され、対応する新マークビ、トの鑞が
新i−タビ。
路80はパターンパ、7ア70tデコードし、普通の文
字とわかると信号線82.84の値を@0”とする0次
にアドレスレジスタ90vCM号線83を通しCクリア
1を号を転送し、マツチングを開始する。アドレス、l
191によりアドレス鍼O1” I −# ” #−一
が生成され、テヤストバ、7ア40、最終文字検出ビ、
)41.マークビットバッファ50から対嘉6するアド
レスの値が疏み出され、対応する新マークビ、トの鑞が
新i−タビ。
ドパ、7ア60に書き込まれる。
マツチングは次の要領で行われる。データ線42にはテ
キスト文字り、A、T、ムe B を人。
キスト文字り、A、T、ムe B を人。
s 、 g 、 、、、絖み出され、比較1絡110K
Jい(パターン文字@D′との比較が行われる。この−
来、比較回路11Gからの出力111111には1,0
,0゜o、o、o、o、o、−が出力される。4I4J
IIII182の値線@O”なのでOB回路12Gでは
信号−82の値がそのまま信号l1121に出力され、
AND回路130に人力される。一方、信号1s51か
らはマークビy ) /% y 7ア50η1ら挽み出
された練1.0,0,0,0,0,0,0.−がMD
l7Pil路に入力され、結局、t、o、o、o、o、
o、o。
Jい(パターン文字@D′との比較が行われる。この−
来、比較回路11Gからの出力111111には1,0
,0゜o、o、o、o、o、−が出力される。4I4J
IIII182の値線@O”なのでOB回路12Gでは
信号−82の値がそのまま信号l1121に出力され、
AND回路130に人力される。一方、信号1s51か
らはマークビy ) /% y 7ア50η1ら挽み出
された練1.0,0,0,0,0,0,0.−がMD
l7Pil路に入力され、結局、t、o、o、o、o、
o、o。
0、−が信号#1131を通してフィードパ、り回路1
4Gに入力される。フィードパ、り回路では信号線84
が”O″なので、人力−がそのまま出力され、新マーク
ピットとしてl、0,0,6,0,0゜o、o、−一が
新マークビ、ドパ、7760にIlき込まれる。
4Gに入力される。フィードパ、り回路では信号線84
が”O″なので、人力−がそのまま出力され、新マーク
ピットとしてl、0,0,6,0,0゜o、o、−一が
新マークビ、ドパ、7760にIlき込まれる。
次に、新マークビ、ドパ、ファ60において、信号@8
4の値がl011なので新マークビ、トの値を1ビツト
シフトし、制御バス34から信号線62を通して転送さ
れたモード信号″O1″を第0番地に書き込み、データ
1ii61を通してマークビ。
4の値がl011なので新マークビ、トの値を1ビツト
シフトし、制御バス34から信号線62を通して転送さ
れたモード信号″O1″を第0番地に書き込み、データ
1ii61を通してマークビ。
ドパ、フ)”50にセットする。マークビアドパ。
7ア50の値は0,1,0,0,0,0,0,0゜・−
となり、普通の文字とのマ、チ/グが完了する。
となり、普通の文字とのマ、チ/グが完了する。
次に、パターン文字1?”に対する1、チングは次の要
領で行われる。パターンバ、7.70に11”が与えら
れると、制御回路80 、iこれをデコードし、任意長
ワイルドキャラクタとわかるとjH号IIA ’ 2−
84 O11[t @1 ’ トt ルe IxK 7
ドレスレジスタ90にクリア信号を転送し、マ、チ/グ
を開始する。パターン文字@D”のときと同様にしてデ
ータ線42にはテキスト文字が挽み出され、比較回路1
1Gでパターン文字1!”との比較が行われるが、信号
−82の値が@1′なOで、AND回路12Gにおいて
比較−路110の出力は全て@1”となり、マークビア
ドパ、7ア50から枕み出された1(0,1,0,0,
0,0,0,0,、=がそのままフィー1バツク回路1
40に人力される。
領で行われる。パターンバ、7.70に11”が与えら
れると、制御回路80 、iこれをデコードし、任意長
ワイルドキャラクタとわかるとjH号IIA ’ 2−
84 O11[t @1 ’ トt ルe IxK 7
ドレスレジスタ90にクリア信号を転送し、マ、チ/グ
を開始する。パターン文字@D”のときと同様にしてデ
ータ線42にはテキスト文字が挽み出され、比較回路1
1Gでパターン文字1!”との比較が行われるが、信号
−82の値が@1′なOで、AND回路12Gにおいて
比較−路110の出力は全て@1”となり、マークビア
ドパ、7ア50から枕み出された1(0,1,0,0,
0,0,0,0,、=がそのままフィー1バツク回路1
40に人力される。
フィードパ、り回路140では信号線84が11@なの
で前の出力信号との論塩相が出力される。すなわち、フ
ィードパ、夕回路の出力は一度人力が@1″となると、
以降の出力は信号1M184が@0”となるまで@l”
となる。よりて、新マークビ、ドパ、 7 、60 v
)憾は0,1,1,1 、l、l、l。
で前の出力信号との論塩相が出力される。すなわち、フ
ィードパ、夕回路の出力は一度人力が@1″となると、
以降の出力は信号1M184が@0”となるまで@l”
となる。よりて、新マークビ、ドパ、 7 、60 v
)憾は0,1,1,1 、l、l、l。
1、−となり、信号#I84の値が11”なので新マラ
クタとのマツチングが完了する。
クタとのマツチングが完了する。
このときS’?の値が@1″となるので、テキスト文字
列@j)ATABA8g”がパターン文字列”Dt”と
−政したことが検出されるが、これは次のようにして矢
魂される。す、フィードパ、り回路144)からの出力
信号411141には 0 、1 、 l 、 l 、 1 、1 、 l 、
1 、−一が出力されている。一方%信号麿43には
最終文字検出ビットの値 0.0,0,0,0,0,0,1,0.・−が読み出さ
れ、AND回路160において出力信号線141と信号
線43の論理和がとられる。この結果、テキスト文字列
の最後の文字に対応する新マークビ、ト(この場合dマ
)が11”になると信号線161が111となり、制御
回路8QvC刈らされ、さらに、信号−86と1iIQ
御バス34を通して外部二二、トにテキスト文字列がパ
ターン文字列と一致しlこことが刈らされる。
列@j)ATABA8g”がパターン文字列”Dt”と
−政したことが検出されるが、これは次のようにして矢
魂される。す、フィードパ、り回路144)からの出力
信号411141には 0 、1 、 l 、 l 、 1 、1 、 l 、
1 、−一が出力されている。一方%信号麿43には
最終文字検出ビットの値 0.0,0,0,0,0,0,1,0.・−が読み出さ
れ、AND回路160において出力信号線141と信号
線43の論理和がとられる。この結果、テキスト文字列
の最後の文字に対応する新マークビ、ト(この場合dマ
)が11”になると信号線161が111となり、制御
回路8QvC刈らされ、さらに、信号−86と1iIQ
御バス34を通して外部二二、トにテキスト文字列がパ
ターン文字列と一致しlこことが刈らされる。
次に、パターン文字1人”に対しては普通の文字@D”
と同様にマ、チ/グが行われ、マークビ、トレジスタ5
00鑞は 0.0,1.tJ、1,0,1.O,O,−となる。
と同様にマ、チ/グが行われ、マークビ、トレジスタ5
00鑞は 0.0,1.tJ、1,0,1.O,O,−となる。
次に、パターン文字°*”とのマツチングは次の要領で
行われる。パターンバッファ70 (C@*”が与えら
れると、信号線71を介しC伝達され、制御回路80t
よごれをグコードし、ワイルド中ヤラクタとわかると信
号−82の値を11”に(Jl−4t線84の値を@O
″とする0次Vζアドレスレジスタ90にクリア信号を
転送し、マツチングを開始する。
行われる。パターンバッファ70 (C@*”が与えら
れると、信号線71を介しC伝達され、制御回路80t
よごれをグコードし、ワイルド中ヤラクタとわかると信
号−82の値を11”に(Jl−4t線84の値を@O
″とする0次Vζアドレスレジスタ90にクリア信号を
転送し、マツチングを開始する。
信号線82がJllなので、任意長ワイルドキャラクタ
のときと同様にして、OB回路120 K gいてテキ
スト文字列との比較線無視され、マークビ。
のときと同様にして、OB回路120 K gいてテキ
スト文字列との比較線無視され、マークビ。
トパッファ50から疏み出された値がそのままフィード
パ、り回路140に入力される。以降は信号線84の値
が10”であるから、普通の文字1D”のときと同様に
してフィードパ、クー路ム40への入力がそのまま新マ
ークビ、ドパ、ファ60に書き込まれ、1ビ、トシフト
して第OJI鳩にモード信号がセットされマークビット
レジスタ50に0.0,0,1,0,1,0,1.−。
パ、り回路140に入力される。以降は信号線84の値
が10”であるから、普通の文字1D”のときと同様に
してフィードパ、クー路ム40への入力がそのまま新マ
ークビ、ドパ、ファ60に書き込まれ、1ビ、トシフト
して第OJI鳩にモード信号がセットされマークビット
レジスタ50に0.0,0,1,0,1,0,1.−。
がセットされる。
次に、バター/文字”i”に対しては、普遍の文字@D
”と同様にマツチングが行われ、マークビットレジスタ
50のm伏 o、o、o、o、o、o、o、o、− となる、シ2J)シながら、この藺にフィードバック回
路14Gの出力L O,0,0,0,0,0,0,1,− となり、111:、1長ワイルドキヤラクタのときと同
様にしてAND Ig回路160 においてテキスト文
字列@DATABA、9Fi”とバター7文字列@Dt
A*j!i”と一致したことが検出される。
”と同様にマツチングが行われ、マークビットレジスタ
50のm伏 o、o、o、o、o、o、o、o、− となる、シ2J)シながら、この藺にフィードバック回
路14Gの出力L O,0,0,0,0,0,0,1,− となり、111:、1長ワイルドキヤラクタのときと同
様にしてAND Ig回路160 においてテキスト文
字列@DATABA、9Fi”とバター7文字列@Dt
A*j!i”と一致したことが検出される。
本実施例でヅよチャスト文字列とパターン文字列とのマ
ツチングが各セル単位Kt列に行われるので、パターン
文字列に比例した#間でパターン文字列と一歌するテキ
スト文字列を検出することができる。
ツチングが各セル単位Kt列に行われるので、パターン
文字列に比例した#間でパターン文字列と一歌するテキ
スト文字列を検出することができる。
また、各セルは少ないハードウェア量で構成でき、かつ
同一構成となるため現在の集積技術であれば多数のセル
t−1チ、プ上に構成できる。
同一構成となるため現在の集積技術であれば多数のセル
t−1チ、プ上に構成できる。
さらに、各セルは共有バス上に並列に接穂させるだけで
なく、酸ノー的K 、d続することにより、鍛練ハスの
データ通信ネックを減少させることができる。
なく、酸ノー的K 、d続することにより、鍛練ハスの
データ通信ネックを減少させることができる。
第1図は従来技術の一つであるリー氏のマツチング方法
を説明するための図であり、42図tユやはり従来方法
の一つであるバリー氏のマツチング方法を説明するため
の図である。#!3図は本発明のマツチング方法のマー
クビット葛よび新マークビ、トO遷移を例示したもので
あり、第4sは本実施例のシスデム構成を説明するため
の図であり、また菖5図はセル構成を説明するためのグ
ー、り図である。
を説明するための図であり、42図tユやはり従来方法
の一つであるバリー氏のマツチング方法を説明するため
の図である。#!3図は本発明のマツチング方法のマー
クビット葛よび新マークビ、トO遷移を例示したもので
あり、第4sは本実施例のシスデム構成を説明するため
の図であり、また菖5図はセル構成を説明するためのグ
ー、り図である。
Claims (1)
- 【特許請求の範囲】 複数の文字で構成されるテキスト文字列を格納するテキ
ストバッファと、前記テキスト文字列に対して各文字対
応で設けたマークピットと、前記マークピットからマツ
チングにより生成された精巣を一時的に格納するために
発生させる新マークピットと、マツチングをアンカーモ
ードで行うときは@O”を7ン7ンカーモードで行うと
きはelmを値とするモード信号と、t−具備するセル
にテキスト文字列MO,M1・・・Mn−8を格納し、
前記テキスト文字列M、M1−Mn−、の各文字対応に
設けられたマークピットb・bt・−bn−t のうち
マークピットbOには初期値として1”をセットシ、マ
ークピットb Hghらbn−1には初期値として”O
#をセットシ、 前記テキスト文字列M。Ml・・・Mn 、 とのマ
ツチングの対象となるバター/文字列を構成するパター
ン文字を1文字ずつ前記セルに転送し、前記パターン文
字が任意長ワイルドキャラクタ(すなわち任意長の文字
列と一致する記号)のと赤はテキスト文字列M、M、−
Mn、の各文学科に対応させてマークピットb、からb
jまでの論理和を新マークビットCの値として七、トシ
、次に新マークビy ) ciの値をマークピットbj
の値としてセットシ、 前記パターン文字がワイルド中ヤラクタ(すなわち任意
の文字と一致する記号)のときはデキスト文字列M、M
、−Mゎ−、の各文字Mjに対応させテマークヒ、トb
jの値を新マークビy ) ciにセ、トシ、次にマー
クビy トbj Kは新マークビ。 )c」 Hの値をセットするがマークピットb0には前
記モード信号の値をセットシ、 前記パターン文字が前記任意長ワイルドキャラクタでも
前記ワイルドキャラクタでもないときはテキスト文字列
M、 MビーMfi 、の各文字MjK対応させてマー
クピットbj の値が′″11でかつ前記文字内 と前
記パターン文字とが一致したときく限り新マークビy
) cj を”1″にセットシ、そうでないときは新
マークビy)cjlj:”0”にセットし、次にマーク
ビ、)bjには新マークビ、トCj 1の値を七、卜
するが1−クビ、トb、には前記モード信号の値をセッ
トシ、 以上の動作を前記パター/文字列を構成している全ての
パターン文゛字について繰り返し、新マークビy)cf
ilの値が”1” となったときに前記セ/&に格納さ
れたテキスト文字列が前記パターン文字列全体(マ、チ
/グが77カーモード°で行われているとき)あるいは
前記パターン文字列の連続した4分列(マツチングが7
ン7ンカーモードで行われているとき)と−蚊したこと
を検出する、よ5Wこしたことを特徴とする高速文字列
マツチング方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP56196500A JPS5897743A (ja) | 1981-12-07 | 1981-12-07 | 高速文字列マツチング方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP56196500A JPS5897743A (ja) | 1981-12-07 | 1981-12-07 | 高速文字列マツチング方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS5897743A true JPS5897743A (ja) | 1983-06-10 |
JPH04308B2 JPH04308B2 (ja) | 1992-01-07 |
Family
ID=16358784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP56196500A Granted JPS5897743A (ja) | 1981-12-07 | 1981-12-07 | 高速文字列マツチング方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS5897743A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62264498A (ja) * | 1985-11-08 | 1987-11-17 | テキサス インスツルメンツ インコ−ポレイテツド | 内容アドレス式メモリ |
JPS62288933A (ja) * | 1986-06-09 | 1987-12-15 | Fujitsu Ltd | 手書き入力辞書検索装置 |
JPS63206829A (ja) * | 1987-02-23 | 1988-08-26 | Hitachi Ltd | 文字列検索装置の障害検出方式 |
JPS63276789A (ja) * | 1987-01-14 | 1988-11-15 | ウニファシテ ドゥ シオンス エ テクニク ドゥ リュウ フランドル アートワ | 電子メモリの制御方法、その方法に使用するための手段およびその手段を備えた装置 |
JPS63298893A (ja) * | 1987-05-29 | 1988-12-06 | Nippon Telegr & Teleph Corp <Ntt> | 連想メモリ装置 |
JPH05189485A (ja) * | 1992-01-09 | 1993-07-30 | Pfu Ltd | キーワード検索方式 |
-
1981
- 1981-12-07 JP JP56196500A patent/JPS5897743A/ja active Granted
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62264498A (ja) * | 1985-11-08 | 1987-11-17 | テキサス インスツルメンツ インコ−ポレイテツド | 内容アドレス式メモリ |
JPS62288933A (ja) * | 1986-06-09 | 1987-12-15 | Fujitsu Ltd | 手書き入力辞書検索装置 |
JPS63276789A (ja) * | 1987-01-14 | 1988-11-15 | ウニファシテ ドゥ シオンス エ テクニク ドゥ リュウ フランドル アートワ | 電子メモリの制御方法、その方法に使用するための手段およびその手段を備えた装置 |
JPS63206829A (ja) * | 1987-02-23 | 1988-08-26 | Hitachi Ltd | 文字列検索装置の障害検出方式 |
JPS63298893A (ja) * | 1987-05-29 | 1988-12-06 | Nippon Telegr & Teleph Corp <Ntt> | 連想メモリ装置 |
JPH05189485A (ja) * | 1992-01-09 | 1993-07-30 | Pfu Ltd | キーワード検索方式 |
Also Published As
Publication number | Publication date |
---|---|
JPH04308B2 (ja) | 1992-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6760821B2 (en) | Memory engine for the inspection and manipulation of data | |
CN102725790A (zh) | 识别词典制作装置及声音识别装置 | |
JP2715465B2 (ja) | 記号列照合装置 | |
JPS5897743A (ja) | 高速文字列マツチング方法 | |
US20070168779A1 (en) | Testing of a CAM | |
JP2880199B2 (ja) | 記号列検索方法および検索装置 | |
JP2825009B2 (ja) | 記号列検索方法および装置 | |
JPH0312896A (ja) | 半導体記憶装置 | |
WO2023210643A1 (ja) | 全文検索プロセッサ | |
RU2580803C1 (ru) | Устройство поиска информации | |
JPH0752450B2 (ja) | 辞書デ−タ検索装置 | |
Yamada et al. | A character string search processor | |
JPS6282466A (ja) | 辞書検索装置 | |
JPS62214468A (ja) | かな漢字変換装置 | |
JPS603017A (ja) | カナ漢字変換処理装置 | |
JPH03100997A (ja) | 選択的連想記憶装置及びその制御方式 | |
JPS61145798A (ja) | 記号列連想メモリ装置とその動作制御方式 | |
JPS63103393A (ja) | 単語認識装置 | |
JPS59125424A (ja) | 文字処理装置 | |
JPH01205226A (ja) | 単語辞書検索装置 | |
JPH01205267A (ja) | 単語辞書検索装置 | |
JPS59167737A (ja) | かな漢字変換装置 | |
JPH0550078B2 (ja) | ||
JPS6324458A (ja) | 自然言語処理装置 | |
JPH0670788B2 (ja) | 巣語辞書検索装置 |