JPH04308B2 - - Google Patents

Info

Publication number
JPH04308B2
JPH04308B2 JP56196500A JP19650081A JPH04308B2 JP H04308 B2 JPH04308 B2 JP H04308B2 JP 56196500 A JP56196500 A JP 56196500A JP 19650081 A JP19650081 A JP 19650081A JP H04308 B2 JPH04308 B2 JP H04308B2
Authority
JP
Japan
Prior art keywords
character
pattern
string
mark bit
text
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP56196500A
Other languages
English (en)
Other versions
JPS5897743A (ja
Inventor
Akihiko Konagaya
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
Nippon Electric Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP56196500A priority Critical patent/JPS5897743A/ja
Publication of JPS5897743A publication Critical patent/JPS5897743A/ja
Publication of JPH04308B2 publication Critical patent/JPH04308B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing 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)

Description

【発明の詳細な説明】 本発明は、複数個のテキスト文字列の集合か
ら、ワイルドキヤラクタ,任意長ワイルドキヤラ
クタを含むパターン文字列あるいはパターン文字
列の連続した部分列と一致するテキスト文字列を
高速に検出するマツチング方法に関するものであ
る。
従来のキーワード方式の情報検索システムの特
徴を説明すると次のようである。すなわち、入力
されたキーワードと一致するキーワードを探し、
対応する情報を提供する。この検索方式は入力さ
れたキーワードをパターン文字列とし、検索対象
となる情報に含まれているキーワードをテキスト
文字列として、複数のシステム文字列からパター
ン文字列と一致するテキスト文字列を見つける文
字列マツチングと見なすことができる。
このような文字列マツチングは、パターン文字
列にワイルドキヤラクタ(任意の文字と一致する
記号),任意長ワイルドキヤラクタ(空列を含む
任意長の文字列と一致する記号)といつた特殊な
記号を含めることによつていくつかの段階を考え
ることができる。
例えば、キーワード方式の情報検索システムに
おいて、入力キーワードとして“DATABASE”
と指定したとする。この場合には、
“DATABASE”をキーワードとして登録されて
いる情報しか検索することはできない。もう少し
高級な検索方法にしようとするときは、入力キー
ワードにワイルドキヤラクタを使用する方法が考
えられる。すなわち、例えば入力キーワードとし
て“DATABA*E”(*はワイルドキヤラクタ
を表わす)とする方法であり、*の場所はどの文
字とも一致するから“DATABASE”の他に
“DATABACE”や“DATABAZE”のように誤
つて登録された情報も検索することができる。
この検索方法をさらに人間の認識に近づけるた
めには任意長ワイルドキヤラクタの導入が必要と
なる。例えばキーワード“DATABASE”は
“DATA△BASE”あるいは“DATA−BASE”
と登録されているかもしれない。これらを1つの
入力キーワードで全て検索するためには
“DATA?BASE”(?は任意長ワイルドキヤラ
クタを表わす)とすればよいという考え方であ
る。
このようにパターン文字列にワイルドキヤラク
タや任意長ワイルドキヤラクタを含めることによ
つてより人間の認識に近い文字列マツチングを行
うことができる。しかしながら、任意長ワイルド
キヤラクタをパターン文字列に含めるとテキスト
文字列との文字の比較回数が非常に多くなり、通
常の計算機で逐次的に処理したのではオーバーヘ
ツドが大きくなり過ぎるので、結果として専用の
ハードウエア装置が望まれることになる。
一方、べたづめされた日本語文章から単語を抜
き出して分かち書きするシステムも考えられる。
しかし、この場合は、べたづめされた日本語文章
の連続した部分列と一致する単語があるかどうか
を検出しなくてはならないことになる。このよう
な単語の抜き出しは、日本語文章をパターン文字
列とし、単語をテキスト文字列として、パターン
文字列の連続した部分列と一致するテキスト文字
列を検出する文字列マツチングと見なすことがで
きる。
例えばパターン文字列“これはぶんです”に対
し、テキスト文字列“これは”,“ぶん”,“です”
が用意されていれば、パターン文字列の連続した
部分列“こ”,“れ”,“は”,…,“これ”,“れは
”,
“はぶ”,…,“れはぶんです”,“これはぶんです”
と比較することによつて、パターン文字列中に、
テキスト文字列“これは”,“ぶん”,“です”が含
まれているか否かを検出できるわけである。こう
した分から書きへの変換はどの語が含まれている
かわかれば容易に行うことができるので、不可能
ではない。
同様な手法は、連続する2文字あるいは3文字
の出現頻度から単語の誤まりチエツクを行う英単
語誤まり検出システムや音声認識においても用い
ることができる。
しかしながら、パターン文字列の連続した部分
列との比較は文字の比較回数が非常に多く、通常
の計算機で逐次的に処理したのではオーバーヘツ
ドが大きく、やはり専用のハードウエア装置を必
要とすることになるので好ましくはない。
さらに、音声認識においては入力パターン文字
列として正しい文字列が得られる訳ではなく、不
確定な文字もある。このように不確定な文字はワ
イルドキヤラクタや任意長ワイルドキヤラクタに
対応させることができる。この場合には、ワイル
ドキヤラクタや任意長ワイルドキヤラクタを含む
パターン文字列の連続した部分列と一致するパタ
ーンを見つけなくてはならないので、やはり大変
なことである。
本発明はこのような背景のもとにこれらの従来
技術の欠点を除去したものであり、複数のテキス
ト文字列からワイルドキヤラクタ、任意長ワイル
ドキヤラクタを含むパターン文字列、あるいはパ
ターン文字列の連続した部分列と一致するテキス
ト文字列を高速に検出するマツチング方法を提供
するものである。
1979年3月に発行された雑誌「コンピユータ」
の第12巻第3号(Computer,Vol.12,No.3)に
掲載されたエル・エー・ホラー(L.A.Hollaar)
氏の“テキスト・リトリーバル・コンピユータ
ズ”(Text Retrieval Computers)と題する論
文には文字列マツチングを高速に処理する方法が
いくつか述べられており、(1)連想メモリを利用す
る方法、(2)セルラーロジツクを利用する方法、(3)
有限状態オートマトンを利用する方法、の3つに
大別することができる。
もし本発明をこれら3つの分類にあてはめると
すれば、(2)のセルラーロジツクを利用する方法に
属するものと云つてよい。
セルラーロジツクを利用した従来技術としては
以下のものが知られている。
まず1962年に発刊されたプロシーデイング・オ
ブ・エフジエーシーシー(Proceeding of
FJCC)の第130−136頁に掲載されているシー・
ワイ・リー(C.Y.Lee)氏による“インターコミ
ユニケイテイング・セルズ,ベイシス・フオア・
ア・デイストリビユーテイド・ロジツク・コンピ
ユータ”(Intercommunicating Cells,Basis
for a Distributed Logic Computer)がその
1つであり、テキスト文字列を1文字ずつセルに
格納し、セル毎にマークビツトを設け、パターン
文字列を1文字ずつ各セルに転送し、セル単位に
並列にマツチングを行う方法が述べられている。
このリー氏のマツチング方法によれば、全ての
セルにおいて転送されたパターンの文字とテキス
トの各文字との比較が同時に行われるため、テキ
スト文字列の長さとは無関係にパターン文字列の
長さに比例した時間でマツチングを行うことがで
きる。しかしながら、ワイルドキヤラクタや任意
長ワイルドキヤラクタおよびパターン文字列の連
続した部分列とのマツチング方法については述べ
られていない。さらに、リー氏のマツチング方法
をそのまま実現するには一文字毎に比較器などの
ハードウエアを用意する必要があり、当時として
は不合理なマツチング方法と考えられていた。
これらの欠点を解消し必要なハードウエア量を
減らすために、1つのセルに複数のテキスト文字
列を格納し、かつワイルドキヤラクタ、任意長ワ
イルドキヤラクタを含むパターン文字列のマツチ
ングを実現するマツチング方法が、1972年に発刊
されたプロシーデイングス・オブ・エフジエーシ
ーシー(Proceedings of FJCC)の第691〜701
頁に掲載されたエル・デー・ハリー(L.D.
Healy)氏による報告“ザ・アーキテクチヤ・オ
ブ・ア・コンテキスト・アドレスト・セグメン
ト・シークエンシヤル・ストレージ”(The
Architectuve of a Context Addressed
Segment−Sequential Storage)に述べられてい
る。
このハリー氏のマツチング方法は、各セル毎に
デイスクのトラツクを対応させ、トラツク内にテ
キスト文字列を複数個格納し、、テキスト文字列
の各文字毎にマークビツトを設けるものであつ
た。このため1文字当たりのハードウエア量は減
らせるが、転送されてきたパターン1文字とのマ
ツチングに少なくともデイスクを1回転するだけ
の時間が必要になるという欠点があつた。
これに対し、1978年に発刊された第4回ノン・
ニユーメリツク・ワークシヨツプのプロシーデイ
ング(Proceeding of 4th Non Numeric
Workshop)の第8〜17頁に掲載されたジー・ピ
ー・コープランド(G.P.Copeland)氏による報
告“ストリング・ストレージ・アンド・サーチン
グ・フオア・データ・ベース・アプリケーシヨ
ン:インプリメンテーシヨン・オン・ザ・インデ
イ・バツクエンド・カーネル(String Strage
and Searching for Data Base Applications:
Implementation on the INDY Backend
Kernel)には、各セルにパターン文字列を格納
し、パターン文字列の各文字毎にマークビツトを
用意することにより、デイスク1回転でパターン
文字列全体とのマツチングを行う方法が述べられ
ている。
デイスクメモリを考えている限り、パターン文
字列の各文字単位にマツチングを行うよりは同じ
1回転でパターン文字列全体とマツチングできる
方が早いので、以降セルラーロジツクによるマツ
チング方法としては、パターン文字列にマークビ
ツトを用意し、パターン文字列にテキストの各文
字を転送するマツチング方法が主流となつてい
る。
また最近になり、パターン文字列とテキスト文
字列とを同時に動かしてマツチングを行う方法
が、1980年1月に発行されたコンピユータ
(Computer)誌第26〜40頁に掲載されたエム・
ジエー・フオスター及びエツチ・テー・クング
(M.J.Foster,H.T.Kung)両氏の“ザ・デザイ
ン・オブ・スペシヤル・パーパス・・ブイエルエ
スアイ・チツプ”(The Design of Special−
Purpose VLSI Chip)と題する論文によつて提
案されている。しかしながらこの方法では任意長
ワイルドキヤラクタを含むパターンを扱うことは
できない。
セルラーロジツク型のマツチング方法に関する
限り、テキスト文字列をデイスクメモリに格納す
る方法が主流となつている。しかしながら現在の
デイスクでは各トラツク毎に数千から数万バイト
が格納可能であり、例えばテキスト文字列がキー
ワードのように16バイトずつに区切られていた
ら、そのほとんどが逐次的に処理されることにな
る。各キーワードにおいて何時にマツチングを行
うためには、各セルに少なくともキーワード単位
に割りつけることが必要である。また、半導体技
術の進歩により小量データ毎に比較回路などのハ
ードウエアを用意した集積回路を作ることはもは
や不自然な方法ではない。本発明はこのような背
景のもとにテキスト文字列をセルに格納し、パタ
ーン文字列を1文字ずつセルに転送するリー氏,
ハリー氏らのマツチング方法の欠点を改良したマ
ツチング方法を提供するものである。
次に本発明の理解を助けるために、若干詳しく
リー氏のマツチング方法について述べる。この場
合、テキスト文字列の各文字は、第1図に示した
ようにセル11のテキスト格納メモリ12に1文
字ずつ格納される。セル11毎にマークビツトレ
ジスタ13が用意されており、初期値を0とす
る。マツチングは、セル接続バス10を通してパ
ターン文字を1文字ずつ全てのセル11に同時に
転送することにより行われる。始めにテキストの
区切りを表わす特殊な記号βを転送しβを格納し
ているセルの右隣りのセルのマークビツトを1と
する。次にパターン文字を1文字各セル11に転
送し、テキスト格納メモリ12に格納されている
文字と転送された文字が一致しかつマークビツト
が1のセルがあれば、そのセルのマークビツトを
0とし、右隣りのセルのマークビツトを1とす
る。以上の動作をパターン文字列の文字数だけ繰
り返すと、マークビツトが1のセルはパターン文
字列と一致したテキスト文字列の次のセルを表わ
している。このリー氏の方法によれば、パターン
文字は全てのセル11に同時に転送されるため、
テキスト文字列の長さとは無関係にパターン文字
列の長さに比例した時間でマツチングが処理でき
る。しかしながら、このリー氏のマツチング方法
は以下の4点に代表される欠点を持つ。
任意長ワイルドキヤラクタを含むパターン文
字列が扱えない。
パターン文字列の連続した分列とのマツチン
グが扱えない。
各セルに1文字しか格納できないため、1文
字当たりのハードウエア量が多い。
テキスト文字列を区切るための特殊な区切り
記号を必要とする。
次にハリー氏のマツチング方法についても若干
詳しく述べる。この場合、テキスト文字列は、第
2図に示したようにセル21毎に用意されたデイ
スクメモリ22に格納される。テキストの各文字
毎にスタートビツト領域23とマークビツト領域
24とが用意されており、区分されたテキスト文
字列の最初の文字のスタートビツトとマークビツ
トとには1をセツトし、その他の文字のスタート
ビツトとマークビツトとには0をセツトする。
マツチングは、デイスクメモリ22の始まりを
表わすオリジン25から逐次的に行われる。マツ
チングの方法にはストリングサーチ(string
search)とオーダーサーチ(order search)との
2種類が適用でき、前者はリー氏のマツチング方
法と同様な手法で、ワイルドキヤラクタあるいは
普通のパターン文字列の文字とテキスト文字列と
のマツチングを行う。オーダーサーチは、パター
ン文字列の任意長ワイルドキヤラクタの次の文字
に対して行い、任意長ワイルドキヤラクタの効果
を実現する。
オーダーサーチは次のようにして行われる。
例として、テキスト文字列(MISHISSIPPI”
とパターン文字列“M*S?I”とのマツチング
を考える。パターン文字列“M*S”とのマツチ
ングが終了した状態でテキスト文字列のマークビ
ツトは次のようになつている。
テキスト文字列 MISHISSIPPI マークビツト 00100000000 パターン文字列の残りは“?I”なので“I”
に関してオーダサーチが行われる。オーダサーチ
では、テキスト文字列の各“I”において、テキ
ストの最初の文字までにマークビツトが“1”の
文字があれば“1”を、なければ“0”を“I”
のマークビツトの値とする。その結果、マークビ
ツトは次のようになる。
テキスト文字列 MISHISSIPPI マークビツト 00001001001 また、テキスト文字列に任意長のパターン文字
列と一致する記号$を含めることにより、パター
ンの連続した部分列とのマツチングも可能であ
る。しかしながら、こうしたハリー氏のマツチン
グ方法は以下のような欠点を持つ。
パターン1文字とのマツチングに少なくとも
デイスク1回転の時間がかかる。
1つのテキスト文字列が複数のセルにまたが
るときは、マツチング時にセル間の通信が必要
となる。
1つのセルに複数のテキスト文字列が格納さ
れるときは、各テキスト文字列とのマツチング
は逐次的に処理される。
各テキスト文字列を区分するためのスタート
ビツトが必要である。
本発明は以上の欠点を排除し、高速かつ高度な
文字列マツチング方法を提供するものである。具
体的には、複数の文字より構成されるテキスト文
字列を格納するテキストバツフアと,前記テキス
ト文字列の各文字対応に設けられたマークビツト
と、前記マークビツトからマツチングにより生成
された結果を一時的に格納する新マークビツト
と,マツチングをアンカーモードで行うときは
“0”をアンアンカーモードで行うときは“1”
を値とするモード信号と,を具備するセルにテキ
スト文字列M0M1…Mo-1を格納し、 前記テキスト文字列M0M1…Mo-1の各文字対
応に設けられたマークビツトb0b1…bo-1のうちマ
ークビツトb0には初期値として“1”をセツト
し、マークビツトb1からbo-1には初期値として
“0”をセツトし、 前記テキスト文字列M0M1…Mo-1とのマツチ
ングの対象となるパターン文字列を構成するパタ
ーン文字を1文字ずつ前記セルに転送し、 前記パターン文字が任意長ワイルドキヤラクタ
(すなわち任意長の文字列と一致する記号)のと
きはテキスト文字列M0M1…Mo-1の各文字Mj
対応させてマークビツトbpからbjまでの値の論理
和を新マークビツトcjの値としてセツトし、次に
新マークビツトcjの値をマークビツトbjの値とし
てセツトし、 前記パターン文字がワイルドキヤラクタ(すな
わち任意の文字と一致する記号)のときはテキス
ト文字列M0M1…Mo-1の各文字Mjに対応させて
マークビツトbjの値を新マークビツトcjにセツト
し、次にマークビツトbjには新マークビツトcj-1
の値をセツトするがマークビツトb0には前記モー
ド信号の値をセツトし、 前記パターン文字が前記任意長ワイルドキヤラ
クタでも前記ワイルドキヤラクタでもないときは
テキスト文字列M0M1…Mo-1の各文字Mjに対応
させてマークビツトbjの値が“1”でかつ前記文
字Mjと前記パターン文字とが一致したときに限
り新マークビツトcjを“1”にセツトし、そうで
ないときは新マークビツトcjを“0”にセツト
し、次にマークビツトbjには新マークビツトcj-1
の値をセツトするがマークビツトb0には前記モー
ド信号の値をセツトし、 以上の動作を前記パターン文字列を構成してい
る全てのパターン文字について繰り返し、 新マークビツトco-1の値が“1”となつたとき
に前記セルに格納されたテキスト文字列が前記パ
ターン文字列全体(マツチングがアンカーモード
で行われているとき)あるいは前記パターン文字
列の連続した部分列(マツチングがアンアンカー
モードで行われているとき)と一致したことを検
出する、ようにしたことを特徴とする高速文字列
マツチング方法である。
本発明のマツチング方法においては、ワイルド
キヤラクタ、任意長ワイルドキヤラクタを含むパ
ターン文字列が扱え、さらにパターン文字列の連
続した部分列とのマツチングも可能である。各セ
ルには複数文字が格納されるため1文字当たりの
ハードウエア量もそれほど多くならない。1つの
テキスト文字列は1つのセルに格納するため、テ
キスト文字列を区切るための特殊な区切り記号や
スタートビツトを必要としない。1つのテキスト
文字列が複数のセルにまたがることがないので、
マツチング時にセル間の通信は不要である。逆に
複数のテキスト文字列が1つのセルに格納される
こともないので、各テキスト文字列は並列にマツ
チングを行うことができる。さらに各セルは規模
が小さくかつ同一構成のため集積化が容易であ
り、多数セルを1チツプ化することが可能であ
る。
また、マツチングのモード信号を変更すること
で、同じテキスト文字列に対してパターン文字列
全体と一致させるアンカーモードとパターン文字
列の連続した部分列と一致させるアンアンカーモ
ードとを切り換えて選択することも可能となる。
次に本発明に伴うマツチング方法の原理を簡単
に説明する。
例として、テキスト文字列“DATABASE”
とパターン文字列“D?A*E”とのアンカーモ
ードでのマツチングを考える。
テキスト文字列“DATABASE”のマークビ
ツトの初期値は第3図1のように与えられる。
始めにパターン文字“D”が転送されると、
“D”は普通の文字なのでマークビツトが“1”
でかつテキスト文字が“D”の文字に対応する新
マークビツトだけが“1”となる(第3図2新マ
ークビツト)。つぎに新マークビツトが1ビツト
ずつシフトされてマークビツトにセツトされ、さ
らにマークビツトb0にはモード信号(この場合は
アンカーモードなので“0”)がセツトされる
(第3図2マークビツト)。
次にパターン文字“?”が転送されると、“?”
は任意長ワイルドキヤラクタなので、マークビツ
トのbpからbjまでの論理和が新マークビツトcj
セツトされ、新マークビツトがそのままマークビ
ツトにセツトされる(第3図3)。すなわち、一
度マークビツトが“1”となつたら以降のマーク
ビツトは全て“1”となる。
次に、パターン文字“A”が転送されると、
“A”は普通の文字なので、パターン文字“D”
のときと同様にしてマツチングが行われる(第3
図4)。
次に、パターン文字“*”が転送されると、
“*”はワイルドキヤラクタなので、マークビツ
トがそのまま新マークビツトとなり、1ビツトシ
フトされてマークビツトにセツトされる(第3図
5)。
次に、パターン文字“E”が転送されると、
“E”は普通の文字なので、パターン文字“D”
のときと同様にしてマツチングが行われる(第3
図5)。このとき、新マークビツトにおいてc7
“1”となるので、テキスト文字列
“DATABASE”とパターン文字列“D?A*
E”と一致したことが検出される。
アンアンカーモードにおけるマツチングは、パ
ターン文字が普通の文字あるいはワイルドキヤラ
クタのときにマークビツトb0にセツトされるモー
ド信号の値が“1”となるだけで、マツチング方
法としては以上説明したアンカーモードの場合と
本質的な差はない。
次に本発明のマツチング方法を実現するセル構
成についてその具体的な一実施例を挙げて説明す
る。
第4図はセルの全体構成を示す。テキスト文字
列の集合は、テキスト文字列単位にセル31に格
納される。テキスト文字列のセルへの転送は、テ
キスト文字列転送バス32を通して行われる。マ
ツチングの対象となるパターン文字は、パターン
文字転送バスを通して全てのセル31へ同時に転
送され、各セル31においてマツチングが並列に
行われる。マツチングをアンカーモードで行うか
アンアンカーモードで行うかを決めるモード信号
や、各セル31へのデータ転送に必要な制御信号
は、制御バス34を用いて各セル31へ転送され
る。各セル31において格納しているテキスト文
字列がパターン文字列あるいはパターン文字列の
連続した部分列と一致したことが検出されると、
マツチング成功を示す信号が制御バス34を通し
て図示されていない外部の制御ユニツトに伝達さ
れる。
第5図は、本実施例で使用したセル構成を示す
ブロツク図である。図中において、40はテキス
ト文字列M0M1…Mo-1を第0番地から格納する
テキストバツフアを表わし、41はテキスト文字
列の最後の文字を“1”で示す最終文字ビツトを
表わす。
50はマークビツトb0b1…bo-1を第0番地から
格納する1ビツト読出しが可能なマークビツトバ
ツフアを表わし、60は新マークビツトc0c1
co-1を第0番地から格納する1ビツト書き込みな
らびに1ビツトシフトが可能な新マークビツトバ
ツフアを表わす。
70はセル31に転送されてきたパターン文字
を格納するためのパターンバツフアを表わし、 80は制御回路を表わす。
次にテキスト文字列“DATABASE”とパタ
ーン文字列“D?A*E”とのアンカーモードで
のマツチングを例にして、セル31の具体的動作
について述べる。
始めに、テキスト文字列M0M1…Moの格納に
ついて述べる。
制御バス34からテキスト文字列転送の信号が
信号線86を通して制御回路80に与えられると
テキスト転送バス32からテキスト文字列
“DATABASE”がテキストバツフア40の第0
番地から第7番地に格納される。このとき、最終
文字ビツト41においてはテキスト文字“E”に
対応する第7番地のビツトが“1”にセツトされ
る。
次に、マークビツトb0b1…bo-1の初期化につい
て述べる。制御バス34よりマツチング開始の信
号が制御回路80に与えられると、信号線81を
用いてマークビツトバツフア50の第0番地に
“1”が、第1番地以降には“0”がセツトされ
る。
次に、パターン文字の転送とマツチングについ
て述べる。パターン文字列“D?A*E”の各パ
ターン文字は、パターン文字転送バス33を通し
てセル31のパターンバツフア70に転送され
る。このとき制御バス34を通して制御回路80
にパターン文字転送の信号が送られてマツチング
が開始される。
パターンバツフア70に“D”が与えられる
と、制御回路80はパターンバツフア70をデコ
ードし、普通の文字とわかると信号線82,84
の値を“0”とする。次にアドレスレジスタ90
に信号線83を通してクリア信号を転送し、マツ
チングを開始する。アドレス線91によりアドレ
ス値0,1,…,n,…が生成され、テキストバ
ツフア40、最終文字検出ビツト41、マークビ
ツトバツフア50から対応するアドレスの値が読
み出され、対応する新マークビツトの値が新マー
クビツトバツフア60に書き込まれる。
マツチングは次の要領で行われる。データ線4
2にはテキスト文字D,A,T,A,B,A,
S,E,…読み出され、比較回路110において
パターン文字“D”との比較が行われる。この結
果、比較回路110からの出力線111には1,
0,0,0,0,0,0,0、…が出力される。
信号線82の値は“0”なのでOR回路120で
は信号線82の値がそのまま信号線121に出力
され、AND回路130に入力される。一方、信
号線51からはマークビツトバツフア50から読
み出された値1,0,0,0,0,0,0,0,
…がAND回路に入力され、結局、1,0,0,
0,0,0,0,0,…が信号線131を通して
フイードバツク回路140に入力される。フイー
ドバツク回路では信号線84が“0”なので、入
力値がそのまま出力され、新マークビツトとして
1,0,0,0,0,0,0,0,…が新マーク
ビツトバツフア60に書き込まれる。
次に、新マークビツトバツフア60において、
信号線84の値が“0”なので新マークビツトの
値を1ビツトシフトし、制御バス34から信号線
62を通して転送されたモード信号“0”を第0
番地に書き込み、データ線61を通してマークビ
ツトバツフア50にセツトする。マークビツトバ
ツフア50の値は0,1,0,0,0,0,0,
0,…となり、普通の文字とのマツチングが完了
する。
次に、パターン文字“?”に対するマツチング
は次の要領で行われる。パターンバツフア70に
“?”が与えられると、制御回路80はこれをデ
コードし、任意長ワイルドキヤラクタとわかると
信号線82,84の値を“1”とする。次にアド
レスレジスタ90にクリア信号を転送し、マツチ
ングを開始する。パターン文字“D”のときと同
様にしてデータ線42にはテキスト文字が読み出
され、比較回路110でパターン文字“?”との
比較が行われるが、信号線82の値が“1”なの
で、OR回路120において比較回路110の出
力は全て“1”となり、マークビツトバツフア5
0から読み出された値0,1,0,0,0,0,
0,0,…がそのままフイードバツク回路140
に入力される。フイードバツク回路140では信
号線84が“1”なので前の出力信号との論理和
が出力される。すなわち、フイードバツク回路の
出力は一度入力が“1”となると、以降の出力は
信号線84が“0”となるまで“1”となる。よ
つて、新マークビツトバツフア60の値は0,
1,1,1,1,1,1,1,…となり、信号線
84の値が“1”なので新マークビツトバツフア
60の値がそのままマークビツトバツフア50に
移され、任意長ワイルドキヤラクタとのマツチン
グが完了する。
このとき、c7の値が“1”となるので、テキス
ト文字列“DATABASE”かパターン文字列
“D?”と一致したことが検出されるが、これは
次のようにして実現される。今、フイードバツク
回路140からの出力信号線141には 0,1,1,1,1,1,1,1,…が出力さ
れている。一方、信号線43には最終文字検出ビ
ツトの値 0,0,0,0,0,0,0,1,0,…が読
み出され、AND回路160において出力信号線
141と信号線43の論理和がとられる。この結
果、テキスト文字列の最終の文字に対応する新マ
ークビツト(この場合c7)が“1”になると信号
線161が“1”となり、制御回路80に知らさ
れ、さらに、信号線86と制御バス34を通して
外部ユニツトにテキスト文字列がパターン文字列
と一致したことが知らされる。
次に、パターン文字“A”に対しては普通の文
字“D”と同様にマツチングが行われ、マークビ
ツトレジスタ50の値は 0,0,1,0,1,0,1,0,0,…とな
る。
次に、パターン文字“*”とのマツチングは次
の要領で行われる。パターンバツフア70に
“*”が与えられると、信号線71を介して伝達
され、制御回路80はこれをデコードし、ワイル
ドキヤラクタとわかると信号線82の値を“1”
に信号線84の値を“0”とする。次にアドレス
レジスタ90にクリア信号を転送し、マツチング
を開始する。信号線82が“1”なので、任意長
ワイルドキヤラクタのときと同様にして、OR回
路120においてテキスト文字列との比較は無視
され、マークビツトバツフア50から読み出され
た値がそのままフイードバツク回路140に入力
される。以降は信号線84の値が“0”であるか
ら、普通の文字“D”のときと同様にしてフイー
ドバツク回路140への入力がそのまま新マーク
ビツトバツフア60に書き込まれ、1ビツトシフ
トして第0番地にモード信号がセツトされてマー
クビツトレジスタ50に 0,0,0,1,0,1,0,1,…がセツト
される。
次に、パターン文字“E”に対しては、普通の
文字“D”と同様にマツチングが行われ、マーク
ビツトレジスタ50の値は 0,0,0,0,0,0,0,0,… となる。しかしながら、この前にフイードバツク
回路140の出力は 0,0,0,0,0,0,0,1,… となり、任意長ワイルドキヤラクタのときと同様
にしてAND回路160においてテキスト文字列
“DATABASE”とパターン文字列“D?A*
E”と一致したことが検出される。
本実施例ではテキスト文字列とパターン文字列
とのマツチングが各セル単位に並列に行われるの
で、パターン文字列に比例した時間でパターン文
字列と一致するテキスト文字列を検出することが
できる。
また、各セルは少ないハードウエア量で構成で
き、かつ同一構成となるため現在の集積技術であ
れば多数のセルを1チツプ上に構成できる。
さらに、各セルは共有バス上に並列に接続させ
るだけでなく、階層的に接続することにより、接
続バスのデータ通信ネツクを減少させることがで
きる。
【図面の簡単な説明】
第1図は従来技術の一つであるリー氏のマツチ
ング方法を説明するための図であり、第2図はや
はり従来方法の一つであるハリー氏のマツチング
方法を説明するための図である。第3図は本発明
のマツチング方法のマークビツトおよび新マーク
ビツトの遷移を例示したものであり、第4図は本
実施例のシステム構成を説明するための図であ
り、また第5図はセル構成を説明するためのブロ
ツク図である。 図において、参照数字10,20はセル接続バ
スを、11,21はセルを、12,22はテキス
ト格納メモリを、13,23はマークビツトを、
31はセルを、32はテキスト文字転送バスを、
33はパターン文字転送バスを、34は制御バス
を、40はテキストバツフアを、50はマークビ
ツトバツフアを、60は新マークビツトバツフア
を、70はパターンバツフアを、80は制御回路
を表わす。

Claims (1)

  1. 【特許請求の範囲】 1 複数の文字で構成されるテキスト文字列を格
    納するテキストバツフアと,前記テキスト文字列
    に対して各文字対応で設けたマークビツトと,前
    記マークビツトからマツチングにより生成された
    結果を一時的に格納するために発生させる新マー
    クビツトと,マツチングをアンカーモードで行う
    ときは“0”をアンアンカーモードで行うときは
    “1”を値とするモード信号と,を具備するセル
    にテキスト文字列M0,M1…Mo-1を格納し、前
    記テキスト文字列M0M1…Mo-1の各文字対応に
    設けられたマークビツトb0b1…bo-1のうちマーク
    ビツトb0には初期値として“1”をセツトし、マ
    ークビツトb1からbo-1には初期値として“0”を
    セツトし、 前記テキスト文字列M0M1…Mo-1とのマツチ
    ングの対象となるパターン文字列を構成するパタ
    ーン文字を1文字ずつ前記セルに転送し、 前記パターン文字が任意長ワイルドキヤラクタ
    (すなわち任意長の文字列と一致する記号)のと
    きはテキスト文字列M0M1…Mo-1の各文字Mj
    対応させてマークビツトb0からbjまでの論理和を
    新マークビツトcjの値としてセツトし、次に新マ
    ークビツトcjの値をマークビツトbjの値としてセ
    ツトし、 前記パターン文字がワイルドキヤラクタ(すな
    わち任意の文字と一致する記号)のときはテキス
    ト文字列M0M1…Mo-1の各文字Mjに対応させて
    マークビツトbjの値を新マークビツトcjにセツト
    し、次にマークビツトbjには新マークビツトcj-1
    の値をセツトするがマークビツトb0には前記モー
    ド信号の値をセツトし、 前記パターン文字が前記任意長ワイルドキヤラ
    クタでも前記ワイルドキヤラクタでもないときは
    テキスト文字列M0M1…Mo-1の各文字Mjに対応
    させてマークビツトbjの値が“1”でかつ前記文
    字Mjと前記パターン文字とが一致したときに限
    り新マークビツトcjを“1”にセツトし、そうで
    ないときは新マークビツトcjを“0”にセツト
    し、次にマークビツトbjには新マークビツトcj-1
    の値をセツトするがマークビツトb0には前記モー
    ド信号の値をセツトし、 以上の動作を前記パターン文字列を構成してい
    る全てのパターン文字について繰り返し、 新マークビツトco-1の値が“1”となつたとき
    に前記セルに格納されたテキスト文字列が前記パ
    ターン文字列全体(マツチングがアンカーモード
    で行われているとき)あるいは前記パターン文字
    列の連続した部分列(マツチングがアンアンカー
    モードで行われているとき)と一致したことを検
    出する、ようにしたことを特徴とする高速文字列
    マツチング方法。
JP56196500A 1981-12-07 1981-12-07 高速文字列マツチング方法 Granted JPS5897743A (ja)

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 JPS5897743A (ja) 1983-06-10
JPH04308B2 true 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)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2182789B (en) * 1985-11-08 1989-03-08 Texas Instruments Ltd A content addressable memory
JPH0752449B2 (ja) * 1986-06-09 1995-06-05 富士通株式会社 手書き入力辞書検索装置
FR2609570B1 (fr) * 1987-01-14 1992-12-04 Univ Lille Flandres Artois Procede de commande d'une memoire electronique, moyens pour la mise en oeuvre de ce procede et installations equipees de ces moyens
JPH0833896B2 (ja) * 1987-02-23 1996-03-29 株式会社日立製作所 文字列検索装置の障害検出方式
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
JPS5897743A (ja) 1983-06-10

Similar Documents

Publication Publication Date Title
KR880000299B1 (ko) 캐쉬장치
US5452451A (en) System for plural-string search with a parallel collation of a first partition of each string followed by finite automata matching of second partitions
US5293616A (en) Method and apparatus for representing and interrogating an index in a digital memory
US5758148A (en) System and method for searching a data base using a content-searchable memory
JPS635839B2 (ja)
JP2511434B2 (ja) パタ−ンをアドレス可能なメモリ
JPH02115973A (ja) 記号列照合装置とその制御方法
US6470334B1 (en) Document retrieval apparatus
JP3213244B2 (ja) データ圧縮方法およびデータ処理システム
JPH04308B2 (ja)
US4979101A (en) Apparatus for retrieving character strings
JPH1027183A (ja) データ登録方法および装置
JP2880199B2 (ja) 記号列検索方法および検索装置
JP2880192B2 (ja) 文字列検索方法及び装置
JP2825009B2 (ja) 記号列検索方法および装置
Yamada et al. A character string search processor
Motomura et al. A 1.2-million transistor, 33 MHz, 20-bit dictionary search processor with a 160 kb CAM
JPH0550078B2 (ja)
RU2065207C1 (ru) Ассоциативная запоминающая матрица
JPH03118661A (ja) 単語検索装置
JPH043251A (ja) 文書検索方法および文書検索処理装置
JPH04205561A (ja) 用語辞書による文書検索システム
JPS62254234A (ja) 記号列識別装置とその制御方式
JPH09180469A (ja) 連想記憶装置
JPS59207477A (ja) 半導体記憶装置