JPH05505270A - 多重エラースペリング修正のための高速近似ストリングマッチング法 - Google Patents
多重エラースペリング修正のための高速近似ストリングマッチング法Info
- Publication number
- JPH05505270A JPH05505270A JP92504399A JP50439992A JPH05505270A JP H05505270 A JPH05505270 A JP H05505270A JP 92504399 A JP92504399 A JP 92504399A JP 50439992 A JP50439992 A JP 50439992A JP H05505270 A JPH05505270 A JP H05505270A
- Authority
- JP
- Japan
- Prior art keywords
- string
- words
- dictionary
- error
- word
- 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
- 238000000034 method Methods 0.000 title claims description 36
- 238000012937 correction Methods 0.000 title claims description 17
- 238000004364 calculation method Methods 0.000 claims description 26
- 239000011159 matrix material Substances 0.000 claims description 15
- 238000013507 mapping Methods 0.000 claims description 12
- 230000000670 limiting effect Effects 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 8
- 238000005259 measurement Methods 0.000 claims description 5
- 238000005192 partition Methods 0.000 claims description 3
- 230000009466 transformation Effects 0.000 claims description 2
- 238000004422 calculation algorithm Methods 0.000 description 81
- 230000006870 function Effects 0.000 description 48
- 239000013598 vector Substances 0.000 description 42
- 210000002320 radius Anatomy 0.000 description 20
- 230000007246 mechanism Effects 0.000 description 14
- 230000008859 change Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000012360 testing method Methods 0.000 description 10
- 238000003780 insertion Methods 0.000 description 9
- 230000037431 insertion Effects 0.000 description 9
- 238000012217 deletion Methods 0.000 description 7
- 230000037430 deletion Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 238000000576 coating method Methods 0.000 description 6
- 230000009467 reduction Effects 0.000 description 6
- 230000002829 reductive effect Effects 0.000 description 6
- 239000011248 coating agent Substances 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 230000010365 information processing Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 4
- 238000002474 experimental method Methods 0.000 description 4
- 230000006698 induction Effects 0.000 description 4
- 230000002441 reversible effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000003292 glue Substances 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000033764 rhythmic process Effects 0.000 description 2
- 238000010845 search algorithm Methods 0.000 description 2
- 241000282693 Cercopithecidae Species 0.000 description 1
- 241000282994 Cervidae Species 0.000 description 1
- 241000116710 Ferula foetidissima Species 0.000 description 1
- WSFSSNUMVMOOMR-UHFFFAOYSA-N Formaldehyde Chemical compound O=C WSFSSNUMVMOOMR-UHFFFAOYSA-N 0.000 description 1
- 241000270666 Testudines Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000012733 comparative method Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 239000000945 filler Substances 0.000 description 1
- 235000013305 food Nutrition 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004898 kneading Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 235000021419 vinegar Nutrition 0.000 description 1
- 239000000052 vinegar Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/232—Orthographic correction, e.g. spell checking or vowelisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/237—Lexical tools
- G06F40/247—Thesauruses; Synonyms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Machine Translation (AREA)
- General Details Of Gearings (AREA)
- Motor Or Generator Cooling System (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。
Description
【発明の詳細な説明】
多重エラースペリング修正のための
貰′斤以ストリングマツチング去
本発明は、一般的にいうと、データ処理の分野に関しし、特定すると、−組の可
能なワードストリングを含む場合もあり含まない場合もある一組の可能なワード
から、所与の文字ストリングにもっとも近似するワードについて探索が行われる
近似ストリングマツチングの問題に関する。本発明は、プログラムエラー修正、
ワードプロセッシングにおけるテキスト編集、およびデータベースからの情報検
索に利用される。
近似ストリングマツチングの問題および種々の状況においてその解明のために提
案ないし使用されたアルゴリズムが従来周知であり、少なくとも1970年頃に
は早くも文献に論述されている。
近似ストリングマツチング(ASM)の問題は、−組の可能なワード(辞書)か
ら所与の文字ストリングにもっとも「近似する」ワードを探索するものとして定
義できょう。所与のストリングは、辞書にある場合もあるしない場合もある。ワ
ードの近似性は、一般に、はぼ2つのストリング間で定義される距離関数によっ
て測定される。
例λば、一つのストリングを他のストリングに変更するためになされる文字の挿
入、消去、変更や、2つの隣接する文字の交換などを含む最少数の編集操作が、
2つのストリング間の自然の一般に使用される距離基準である、それゆえ、この
問題はまた、−組の可能なワード間において所与の文字ストリングに最も近い近
傍のもの(近傍物)隣接ストリングを見出すことと定義され得る。
プログラムエラー修正において、辞書は、普通、−組の逆転キーワード、および
使用者により定義される一組の変数および機能名より成る。テキスト編集におい
て、辞書は、言語の中の一組の容認されたワードである。情報検索において、辞
書はデータベース内の一組の探索用キーである。この問題に対する優れた概説は
、ACM Camputing 5urvays、 12.4. pp、 31
+1−402.1980年12月発行のP、AJ、 HallおよびG、R,D
owlinHの「^pproximate String Matching」
なる論文に記述されている。
近似ストリングマツチングは、データベース内のエラーはよくあることであるか
ら、たいていの情報処理シス ″テムにきわめて望ましい、観察によると、ある
場合には、データベースのインデックス語句の22%以上が間違って綴られてい
る。したがって、近似ストリングマツチングは、このような部分的に悪化された
データを検索するための唯一の手段となる。
エラーは、情報処理の種々の段階で導入され得る0例えば、航空会社予約システ
ムにおいては、旅行者の名前は非常に容易に綴を間違えられる。この種の情報は
電話の会話により伝搬されることが多く、また国際的な名は、標準的な綴を欠く
ことが多いから、エラーは不可避である。エラーは、探索用のキー(名前)にも
データベースにも存在しえる。近似ストリングマツチング技術は、部分的に間違
った記録を部分的に間違った探索用キーで検索することを可能にする。
近似ストリングマツチング技術は、今日の対話型コンピュータの環境下でマン−
マシンインターフェースの設計を著しく改善し得る。もしも、使用者により挿入
される文字ストリングが正しくなければ、システムはワードを推測し、使用者に
それを確認せしめるのが望ましいであろう0代わりに、システムが数種の可能性
を提示し、使用者に正しいものを選択せしめるのが望ましいであろう、このオプ
ションにより、装置を使用者により親密にすることができる。
Comm、 ACM 7.3. pp、171−176、1964年3月発行の
F、JDamerauのrA Technique for Computer
Detection andCorrection of Spelling
Errors」なる論文、およびC0mm、 ACM 13.2. pp、
90−94.1970年2月、の H,L、 Morganのr Spelli
ng Correction in Systems Programs Jな
る論文に報告されるように、4種の線間違いがもつとも一般的である。すなわち
、挿入、削除、文字の変更、および2つの隣接する文字の交換、はとんどすべて
の従来の手法においては、フォルトモデルは単一のエラーのみを仮定している。
しかしながら、このような仮定は一般に適切でない0例えば、現在のプログラミ
ングの慣行は、プログラムの解読性および維持性を増すためにより長い変数およ
び機能名を奨励している。長い名前は複数のエラーを招来する。
ある応用においては、多重エラーの考慮のみで、誤ったワードから正しいワード
を導くことができる0例えば、綴の誤った”Jeprodise−から正しい綴
の−Jeopardize−を得るには、少なくとも4つの挿入、抹消および変
更の操作を必要とする。スペリングエラーの数は、2つのストリング間の簡単で
自然なエラー距離の定義を与^る。
次の応用を考察する。大きなソフトウェアプロジェクトにおいて、数千のファイ
ルが創成されたと仮定する。
利用者がファイルの探索を希望するが、正しいファイル名を思い出すことができ
ないことはしばしば起こる。 ASM技術を使用すると、システムにより、利用
者に、ファイル名が見つかるまで、部分的に正しい名前をそのすぐ近傍において
展開させることができる。これは、所与の規則的表現を一組の既知のストリング
に整合させる一般に普及しているワイルドカードマツチング法に取って代わるも
のである。ワイルドカード手法はこの状況においては有用性が低い、何故ならば
、エラー距離の概念がその公式かにおいて当然に実施されなかったからである。
他方、2つの長いストリングを比較するに際しては、多重エラーフォルトモデル
が長く使用されてきた。多重エラーは、近似ストリングマツチングにおいては考
慮されることはあまりない、何故ならば、多重エラーは、前掲のHallおよび
Dowlingの論文において論述されるように、取り扱うのが難しいからであ
る。
次の3つの手法は困難性を示している。筆者等は、ここでの論述を、辞書におけ
る所与のストリングとそのもっとも近い近傍のもの間のエラー距離が小さい場合
に限定しよう、これらのケースは実際の応用においてもつともしばしば起こる。
そこで、26文字のアルファベットを仮定し、さらに、近似マツチングのための
所与の文字ストリングが長さmより成り、辞書における平均ワード長がnであり
、そして辞書にpのワードがあると仮定する、また、辞書内のワードがランダム
アクセスメモリ内に記憶されているものと仮定する。
1)辞書における所与のストリングと各ワードとの間の距離を計算し、ついで最
小の距離内にあるこれらのワードを見つけることができる。2つのワード間の距
離計算のための時間は、種々のフォルトモデルにおける2つのストリングの長さ
の積に比例する。それゆえ、もつとも近い近傍のものを見つけるのに、kx p
x m x n時間を要する。ここで、kは定数である。 k = loom
s、p =10’、m = n = 10とおくと、もつとも近い近傍のものを
見つける時間は1000秒である。この手法は、実時間の応用にとっては長時間
を要し過ぎる。
2)正確なマツチングのため辞書に対して索引付は機構を実施することができる
。辞書内のpのワードをアルファベット類に分類し、二進探索を採用する。所与
のストリングのもっとも近い近傍のものを見出すため、所与のストリングの小エ
ラー距離(半径)r内にあるすべてのストリングを生成し、それらの各々が辞書
内にあるか否かをチェックする。もっとも近い近傍のものが辞書内に見つけられ
るまで、半径rは、ゼロで始めて各時に1だけ増す、 K (m、 r)で、所
与のストリングの距離r内にあるストリングの数を指示させる。そのとき、K(
m、1)は、概26x (2xm+1)+m−1に概等しく、K (IO,り=
565である。また、K (m、 rlは、小さいrに対しては概K (m、
I)ゝに等しい、もしももっとも近傍のものが所与のストリングから距離rより
成れば、計算に必要な時間はk X log2(p) X K(+n、rlに等
しい、に=20μsとすると(この場合の演算はケース1の演算よりも簡単であ
る)、p=IO’、そしてm = n = 10である。計算に必要な時間は、
r=2のとき106秒に等しく、r=3のとき998分に等しい。
3)辞書にある全ワードから小距離rの近傍にある全ストリングを予め生成し、
記憶することができる。しかるときは、対数的探索が可能となる。しかしながら
、文字を記憶するのに1バイトを使用すると仮定すると、必要とされるメモリは
、に(m、r)X p X nバイトに等しい。再びp = 10’ とすると
、m = n = 10である。r=2のとき、必要とされるメモリは32X
10”バイトであり、これは巨大であり、予見される将来における1接アクセス
可能コンピュータメモリには適合しない。
前述の3つの手法は、メモリに関しては効率的であるが、もっとも近い近傍のも
のをを見出すのにあまりに長い時間を必要とするか、時間に関して効率的である
が、索引付は機構を実施するのに過大のメモリを必要とする、実際の手法は、2
つの極限間に適合されるべきであり、もっとも近い近傍のものが数秒間で見つけ
ることができるように索引づけ機構を構成するのに十分であるが大きすぎないメ
モリを使用すべきである。
したがって、本発明は、大データベースを記憶するためのシーケンシャルディジ
タル記憶媒体を有するデータプロセッシングシステムにおける多重エラースペリ
ング修正のためのシステムにおいて、ディジタルデータプロセッシングシステム
内に一領域に記憶される1組の許容し得るワードを含む辞書であって、その各ワ
ードが文字ストリングより成り、該文字ストリングの長さにしたがって区分され
た辞書と、ストリング2を受け入れて、該ストリングが前記辞書内にあるか、あ
るいは前記辞書内の間違って綴られたワードであるかを決定する手段と、2のも
っとも近い近傍のものを見つけるため前記ストリング2を前記辞書内のストリン
グと整列させるためのマツチング手段を備λるものであって、
前記ストリング2を前記ワードに変換するために左から右へ操作する最短の逐次
編集シーケンスである、前記ストリング2と前記辞書内の全ワードの間の距離を
計算する手段と、最小の距離をもつワードを記録する手段と、前記計算がなされ
るワード長に上限を決定することによって、エラー距離を計算を制限する手段と
、ストリング長の区分を使用して、前記のエラー距離の計算を制限するための手
段と、カットオフ規準を使用して、前記のエラー距離の計算を制限する手段と、
近傍のニラ−距離よりも大きいエラー距離にあるワードを除去することによって
、探索範囲をさらに制限する手段とより成る多重ニラ−スペリング修正システム
を提供するものである。
[図面の簡単な説明コ
図1は、本発明が実施されたハードウェアおよびオペレーティングシステムを示
すブロック図である。
図2は、本発明の実施例において使用される全テキストデータベース入力を索引
付けするための情報プロセッシングフローチャートである。
図3は、図2の全テキストデータベースからの情報検索のための間合せプロセス
を示す情報プロセッシングフローチャートである。
図4は、所与のレベルにおける記録重み決定を示す本発明の適応ランキングシス
テムの1実施例のフローチャートである。
ス5は、編集シーケンスの長さおよびs−トレースのコストを例示する線図であ
る。
ズ6:よ、3つの辞書におけるワード長の分布を示すグラフである。
j17a、7bおよび7cは、3つの辞書におけるワード、間の距離の分布を示
すグラフである。
図8は、エラー距離マトリックスの計算の順序を例示する線図である。
図9は、もっとも近い近傍のものの限定された1組をを構成するマツピング線図
である。
図10は、試験半径内にある全ストリングに対する誘導ツリーを示す線図である
。
図11は、ハツシュ関数をを見つけるための被覆の問題を例示する線図である。
図12は、有限数のダミー文字に対するハツシュ関数選択を示す線図である。
図13は、偏差ベクトルの被覆を構成する被覆テーブルを示す線図である。
図14は、本発明の弾性的なストリングマツチングアルゴリズムの具体例を示す
フローチャートである。
図15a〜15eは、O〜5の範囲で変わるエラー距離に対する5つのアルゴリ
ズムの性能を測定した実験的結果のプロットである。
図16a〜16eは、図15a〜15bの5つのアルゴリズムの実行時間を測定
した実験的結果のプロットである。
〔実施例の説明]
本発明は、辞書における近似ストリングマツチングのための高速アルゴリズムに
関する0文字ストリング上における挿入、抹消、変更および変換操作の多重スペ
リングエラーは、開示されたフォルトモデルで考察される。
アルゴリズムについて記述する前に、これらのアルゴリズムが実施された情報検
索システムについてあらましを述べる。
図1は、FAIRS (頭辞語)により設計された実験的情報検索システムに対
するハードウェアおよびオペレーティングシステム環境のブロック図である。こ
の情報検索システムは、一部PRC,ASIS Annual Meeting
、 1987年10月、 pp、30−35のS、 C,ChangおよびW、
C,Chenの”And−1essRetrieval:丁oward Pe
rfect Ranking−と題する論文に部分的に、またProc、 RI
AO88,1988年3月、 pp、172−182にも部分的に開示されてい
る。これらの文献には、実験的情報検索システムFAIIIS内においてテキス
トエディタを使用する体系が、一般的に記述されている。 FAIRSは、それ
自身のオペレーティングシステムを各々使用する 一種々のコンピュータシステ
ム上で動作する。全システムの主たる特徴は、参照番号12により指示される大
型のデータ記憶デバイスである。
図2は、FAIRSを使用する大型システムにおいて全テキストデータベースを
入力し、データベースに索引付けるするための情報処理の流れを示すフローチャ
ートである。原テキストファイル21は、利用者がレコードマーカーを任意的に
指定して、そのままメモリ12に読み込まれる。しかして、各ファイルは、名前
を付され、そのファイル名に対する拡張子として、 TXTを有する。利用者:
よまたシステム22にそのファイルを書き入れ、拡張子として、5IISを有す
る彼のファイル、拡張しとして、 GFuを有する彼のファイルの形態、および
拡張子としてNEWを有する追加の新ファイルのリストを提供する。利用者はま
た、索引付けされるべきでないワードのネガティブ辞書23 (、NEC)を提
供する。入力21.22.23は、FAIRSプログラム下で適応情報リーダー
/バルサ−24によって処理される。プロセスの一部として、INDEXビルダ
ー25が、検索に必要なインデックスファイル26を生成する。インデックスフ
ァイルの主たる要素は、反転ファイル、INV27であり、そしてこれはテキス
トファイル21における各ワードの全発生の位置に対するインデックスである。
残りのインデックスファイル(28a。
28b、28c、28d)は、各ワードを有するレコードの位置(、REC)、
そのワードの発生位置(、LOG)、各レコードのアドレス(、ADR)および
ユーティリティファイル(。
CNTlを含む0図3は、間合せによりシステムに入力されるファイルから情報
を検索するための情報処理フローチャートである。利用者の間合せ31は、スペ
リングの変動33および同義語定義34についてそれをチェックすることによっ
て改善される(32)、利用者が問合せを確認した後、間合せ語句を含むレコー
ドを探索する(35)のにインデックスファイル26が使用される。探索におい
て見出されるレコードは、ランク付は規則37に従ってランク付けされる(36
)、Rファイル21は、利用者へのフィードバックのために表示される(38)
、この点にて、利用者は、適合情報39aをフィードバックして、探索を純化し
、あるいは検索されたテキストレコード39bを受け入れ、それをさらに使用の
ため他の媒体に転送することができる。
図4は、関連する特許出画に記述されているが、本発明には直接関係ない2
本発明は、問合せのスペリングチェック、およびこの情報の流れにおけるこれら
の問合せの改善に直接関係する0本発明はまた、他の領域において広い応用を有
するものである。詳述すると、辞書における近似ストリングマツチングのための
高速アルゴリズムに関係する0文字ストリングにおける挿入、消去、変更および
交換操作による多重スペリングエラーは、開示されたフォルトモデルで考察する
。
以下の記述においては、まず本発明のアルゴリズムを公式化する際に使用される
L−トレースフォルトモデルを提示する。ついで、近似ストリングマツチングア
ルゴリズムの効率を改善するための4段階低減手続きについて記述する0手続き
において第4段階を達成する設計が、本発明の主たる貢献である。この段階にお
いては、所与のストリングを大きな距離を有するワードと比較するのを避けるた
めに、ハツシング体系を開発した。かくして、辞書内のワードの数に対して準直
線的なアルゴリズムが得られる。ハツシング機構の動作および設計の詳細につい
て記述する。ついで、探索用アルゴリズムの効率に普通影響を及ぼすような使用
下にある辞書の属性について論述し、代表的応用において遭遇する辞書の属性に
ついて若干の考察をなす、ついで、上述のFAIRSシステムを使用する図書館
情報検索データベースに展開されたアルゴリズムの応用について記述して終結し
、実験結果について論述する。実験結果は、普通の逐次コンピュータにおいて実
時間で大型の辞書に対する近似ストリングマツチングを遂行することが可能であ
ることを示している。
[L−トレースフォルトモデル]
スペリングエラー検出および修正におけるたいていの従来手法は、単一のエラー
のみを仮定している。 WlgnerおよびFisherは、文字ストリング上
における多重挿入、抹消、および変更操作を処理するための最初の正式なストリ
ング編集モデルを提案した。 J、ACM 21.1. pp、168−173
、1973年1月発行のR,A、 WagnerおよびM、J、 Fisher
の’The String−to−5trrng Correction Pr
oblemJなる論文参照、彼らは、距離計算のため問題のダイナミックプログ
ラミングによる公式化を開発した。このモデルは、後でLowranceおよび
Wagnerにより交換操作を含むように拡張された。 J、ACM 22.9
ρ、177−183.1975年4月発行のR,LowanceおよびR,A、
Wagnerの’An Extension of theString−t
o−String Correction Problem」なる論文参照。
Lowrance−Wagnerの拡張モデルに基づいて、本発明者らは、リニ
ヤ−トレース(L−トレース)と名づけるフ才ルトモデルを開発した。L−トレ
ースモデルは、多重の挿入、消去、変更および変換エラーを処理する。このモデ
ルは、共通のエラーを表わすために、可能な編集シーケンス上に自然の制約を課
する0本発明はL−トレースモデルを利用するが、ここに開示される技術は、他
のフォルトモデルにも同様に使用できる。以下の節において、L−トレースにつ
いて定義する。
この記述において、辞書は、文字セットΣから構成された一組の文字ストリング
である。辞書内の文字ストリングは、ワードと称せられる。
以下の表記法および約束が以下のすべての論述において使用される。
X=X[l]、 X[2]、 、、、、 X[ml:Σからの文字ストリンク。
Y=Y[l]、 Y[2]、 、、、、 Y[ml Σからの第2の文字ストリ
ング上
グ[i:jl・Z[il、 Hi◆1]、−、Z[jl : iないしjのイン
デックスをもつアレイ。
H[11・12. j+:j2]: Lないし12およびjlないしJ2のイン
デックスをもつアレイ、 H[i、jlは、X [1: jlおよびY[1:j
l間の距離を表わすのに使用される。HはXおよび7間の距離マトリックスを表
わす距離マトリックスと呼ばれる。
a−b−c−、、、−r一連の要素、シーケンスに1つの要素しかないとき、−
a−と書く。
nj:セットSのサイズ。
h−1(R) :マッピング関数り下における範囲Rの逆像、すなわちh−’
(R)lxlh(x) t R)。
So:文字セットSのクリーネ包閉。
ストリング領域(ユニバース):Σ°に等しい。
Z (Z、 r) 距離(半径)r内におけるストリング2の近傍のもの。
文字ストリング上における下記の編集操作が考察される。
1(i、sl :ストリングの (i−1) (番目)およびi (番目)の文
字間にSを挿入。
D(i)+ i番メモリ位置の文字を抹消。
C(i、s): i番目の文字をSに変更。
T(i): iおよび1+1にある文字を交換。
ここに説明される変更編集操作は、文字をそれ自体に変更してよい、これは、文
字が具なる文字に変更されるべきである従来の変更操作の定義から逸脱している
。この新しい方法で変更動作を定義すると、後の論述は非常に簡単化される。し
かしながら、本発明において得られる結果のすべては、従来の変更操作を本フォ
ルトモデルに適用した場合にもなお当て嵌ることを示すことができる。
[定義1] 挿入、消去、変更および変換の編集操作は、それが実施され得るな
らば適正である0文字ストリング上における編集シーケンスE[l・klは、適
正な編集操作より成るシーケンスである。各編集操作E[jlは、1数E[」]
、すなわちE[jlが作用している場合のストリング上の位置と関連する。イン
デックスE[1・klは、編集シーケンスE[l・klと関連する位置インデッ
クスのシーケンスである。
例えば、編集シーケンスD (3) D (4) I (5,o) C(L s
) ハ、ワードJeopardize」を正しくないスペリング「Jeprod
ise」に変換し、T(2)は’deuce」を’duece)に変換する。前
者の編集シーケンスのインデックスシーケンスは、3−4−5−8であるが、イ
ンデックスT、□、は−2−である。T(5)は、実行できないから、’ de
uce)に関する編集シーケンスではない。
[定義2] 2つのストリングXおよびY開の編集距離は、XをYに変換するた
めの最短の編集シーケンスである。上掲のWagnerおよびFisherおよ
び上掲のLowranceおよびWagnerにより、トレースと称される簡潔
な表記法が開発され、ストリング編集の問題の論述を容易にした。
[定義3コ ストリングXからストリングYへのトレースTは、数の対(i、j
l 、ここでl≦i≦/−X、 l≦j≦/−Y、の2セツト、すなわち一致セ
ットエと変更セットCの合併である。次のように合併される。すなわち、a)も
しも(1,j)が1にあれば、X [il = Y [jl、b)もしも(i、
lがCにあれば、X[il+’Y[jl、C)もしも(it、J+)および(
lz、jz)がTにあれば、もしもj+”Jzならば1.・12゜
T内の各対は、文字Xと文字Yとを接続する線と呼ばれる。T内の2本の線(i
t、j+)、(iz、jz)は、もしも11<1まただしj+>j2.またはi
t<itただしj2>j+ならば、互いに交叉する。もしも(i、 j)がT内
にあればX [ilおよびY[jlは、その線に付随するといわれる。各編集シ
ーケンスはトレースを生じ、そして各トレースが少なくとも1つの編集シーケン
スに対応していることを理解することは容易である9例えば、’testing
」を’string」に変換する編集シーケンスD (2) T (1) C(
3,r)は、一致セットI−((1,2)、 (3,l)、 (5,4)、 (
6,5)、 (7,6))および変更セットC・((4jl)でのトレース((
1,2)、 (3,1)、 (5,4)、 (5,5)、 (7,6))に対応
する。
上述の文献における論述は、ms操作のために重み付けされたコストを使用して
いる。ここで、各編集操作への1の割当てに等しい編集シーケンスの長さの問題
を考察する。トレースのコストは下記のように定義できる。
[定義4コ 2つの文字ストリングXおよび7間のトレースT=I[lCのコス
トは、(/−X+/−Y)−(2X (nj−n−C)+Tにおける線交叉の数
。
[定!a5] XからYへのトレースT・llICは限定されたトレース(R−
トレース)であり、
a)もしも(!+、j+)および(12,jz)がT内にり、i、<i、。
jz<j+ならば、(it、J+)および(jz、jz)は両方ともT内にある
。b)もしも(it、j+]、 (iz、jz)およびls、r3)がT内の3
本のラインで、fl+、J+)が(jz、jz)および(五、。
js)と交叉すれば、lz”ls %モしてja”Js、C)もしも(L、jl
)および(L、 Jz)が交叉するTのラインであり、L<Lならば、整数i
(またはj)はなく、その結果
(1) L<i<isおよびX[L]−X[il、まタハ(2) jl<j<j
aおよびY[izl・Y[jlとなる。
定義5における条件a)は、T内のラインのみが限定トレース内において交叉し
得ることを示す0条件b)は、さらに1以上のラインと交叉するラインはないこ
とを示している0条件C)は、i+(Jz)はX[1,ii (Y[1,j+]
)なイノ際 右端位置にあり、X[i+]−Y[j+] (Y[ja]”X[i
zl テあることを示している。拘束(限定)トレースにおける交叉は、一連の
交換、挿入および抹消操作の湊合と考久−ることができる。
[定If 6] E[l:nlは、もしもそれが編集シーケンスであり、1nd
extが非減少であれば、文字ストリング上における線形編集シーケンスであり
、そしてa)もしも1ndexz++1−indext++−nならば、E [
iiは抹消操作であり、
b)もしもE [ilが変換操作ならば、1ndextu*n>1ndexi【
五++lである・
定義6は、ストリング上で左から右に操作するために線形編集シーケンスを必要
とし、各挿入および変更操作は1つの文字を固定し、各交換操作は2つの連続的
文字を固定する。
例えば、’tasting」を’string」に変換するシーケンスD (2
)T (+) C(3,r)は、編集シーケンスであるが、線形編集シーケンス
ではない、何故ならば、インデックスシーケンス2−1−3は非減少でないから
である。この変換は、非減少インデックスシーケンス1−1−3をもつ線形編集
シーケンスD fl) 、 D (1) 、 I (3,r)により遂行できる
。
線形編集シーケンスにおいて、後の編集操作は、前の操作の結果を消去しない0
例えば、挿入された文字は、後の消去動作で消去されない、かくして、ワードを
綴る際にエラーを生ずるシーケンスとして1からYまでの線形編集シーケンスを
考慮し、スペリングプロセス中に起こったエラーの数として編集シーケンスの長
さを考慮することができる。もちろん、ストリングYから他のストリングYに至
るエラー距離を下記のように定義することもできる。
[定義7コ 文字ストリングXから文字ストリームYに至るエラーの距離、すな
わちスペリングエラーの数は、XをYに変換する線形編集シーケンスの最小長さ
であるR−トレース(定義5)と並列に、各線形編集シーケンスと対応して線形
トレース(Lトレース)が定義された。
[定義8] XからYへのトレースT・IOCが、下記が真ならば線形トレース
(L−トレース)である、すなわちもしも(i+、jl)および(JI Jz)
がT内にあり、!+<+2゜+2〈jIならば、両(jl、jl)はT内にあり
、i、・i、−1,Jz・定義8に従えば、((3,1)、 (4,2)、 (
5,41,(6,5)、 (7,6) )は、’testing」から’str
ing」へのLトレースであり、((1,1)、 (4,4)、 (5,5))
および((+、 +1. (4,4)、 (5,5))([2,3)、(3,2
))は両者とも’deucHから’duece」へのL−ル−スである。
[L−トレースフォルトモデルの性質]この節は、Lトレースフォルトモデルの
ある種の基本的性質を誘導する。前述の定義から下記が成り立つ、すなわち、
[定理1] 2つのストリングXおよび7間のTトレースの最小のコストは、X
および7間のエラー距離に等しい。これは、XからYまでのスペリングエラーの
数である。 1例として、線形編集シーケンスの長さと対応するし一トレース間
の関係を示す、第5図において、Lトレースの線形編集シーケンス次のごとくで
ある。すなわち、
C[1申)[1+4)D (4)I (4,*)T (5,ネ) S (6)
D (8) D (8) I (8,傘)ここで、傘はある文字を表す、シーケ
ンスの長さ、9−/−X+/−Y−2X n−1−n−C+ トレース内のライ
ンの交叉数= 9+8−2x4−1+1lLLトレースのコストである。
定理1により、Xおよび7間のエラー距離を見つけるために、Xおよび7間の最
小のコストのL−トレースしか必要としない。
Hは、2つの文字ストリングXおよび7間のエラー距離マトリクスを表すもとす
る。すなわち、H[;、jlは、X[1、iiおよびY[l:jl間のエラー距
離である。下記の理論によりエラー距離マトリクスHが計算される。
[定理2コ 2つのストリングX [1:m]およびY[l:nlが与えられる
。限界□max(m、n)とする、 H[−1+m、−1:nlの限界値を次の
ように定義する。 H[i、−1]−1≦i≦mに対する限界値、)1[−1,
jl=−1≦j≦に対する限界値、)l[i、o]−Q≦i≦に対する1、そし
てH[0,j]J≦j≦nに対するjのごとく定義、Xおよび7間の距離マトリ
クスH[1−m、 i・nlのエントリH[i、jlは、下記のように反復的に
計算され得る。
H[i+1. jl1]・H[i、 jl、もしもX[i◆11・Y[jl 式
IH[i+l、 j+lトm1n(H[i、 jl、 H[i+1. jl、
H(i、 jl1]、 H[i−1,j−1])+1
もしもX[1l=Y[i+1]おヨヒX[++1]冨Y[il ナラif、H[
i+1. j+l]*m1n(H[i、 jl、 H[i+1. jl、 H(
i、 jl1])+1、全ケースにおいて。
値H[i+l、 j+l]を得るために式1には5つの代替的ケースがある。各
々、括弧内の文字により指示される、5つの編集操作の1つに対応する。
a)無変化、すなわちX[i+1]=Y[jl1]; (H[i、jl)b )
X[i+11をY[j+l]ニ変更; 01 [i+1. jl+1)C)
Y[j+llを挿入; (H[i+1. jl ;11d ) X[i+l]を
抹消 (l([i、j÷11◆1)e)交換 (H[i−1,j−1]◆])[
定理3] 式1により定義されるマトリクスH[O・m、Onlは、下記の式を
満足する。
a ) H[i、 jl−1≦H[i+1.j]≦H[i、jl+1゜全0≦i
<m、 O≦j≦nに対して
b ) H[i、jl−1≦H[i、 j+l]≦H[i、jl◆l。
全0≦i<m、 O≦j≦nに対して
a ) H[i、j]≦H[i+l、 j+1]≦)l[i、jl+1゜全0≦
i<m、 0≦」≦nに対して
[推論l] かくして、定理2での式1は次のように簡単化される。
H[i+1.j+11・H−H,jl、もしもX[i◆1]−Y[j÷11 な
らば6式2%式%])
[
1、jl、 H(i、 j+ll)”]、全全一−において。
〔定義9 ] X、<X、およびyl<y2とする。もしも、i。
」1・y+、 ly・yz、 j、・y2そして0≦(i、。ビi、)≦1およ
び0≦(」、ビJ、)≦1であるが、(11,ビ1.)または(J5゜+ −j
−)のいずれかがl≦sirに対して○より大きければ、
シメンジョン[0:m、 o:nlのマトリクス上におけるシーケンス(i+、
J+)−(iz、ja)−(jr、jr)は、(x+、y+)から(Xz、Vx
)に至る派生経路である。
[定理4] H[O:m、 Own]を、定理2により定義されるX[l:m]
およびY[1:n1間のエラー距離マトリクスとする。
m≧nであると仮定し、dm−nとする。そのとき、派生経路は(1,1)−(
2,11−、、、−(d+1.1)−(d+2.2)−、、、−(m−n)は、
Hに関して非減少であるにれは単一の派生経路であり、カットオフ規準を提供す
ることが分かる。
[推論2] dを2つの文字ストリング間のエラー距離であるとする。そのとき
、d≦max(/−X、 /c2Y1.これは、2つのストリング間のエラー距
離の単純な上部限界である。
[推論3] dを2つの文字ストリングXおよびY間のエラー距離であるとする
。そのとき、/−X−d≦/−Y≦/−X+d推論2は、2つのストリング間の
エラー距離に関する単純な上部限界を与久る。推論3は、従来技術において、文
字ストリングのもっとも近い近傍のものの探索における計算を節約するのに普通
使用されるストリング長区分規準である。
アルゴリズムをさらに進める前に、辞書のある性質について考察する。
1)辞書内のワード長は、第6図に示されるように一般に小さい、それゆλ、複
雑なアルゴリズムに変人で簡単なアルゴリズムが距離計算において使用されるべ
きである。技巧を凝らした距離計算アルゴリズムは、一般に、大きな時間定数を
有し、長いストリングに対してのみ良好である。
2)本発明者らが研究した3つの辞書におけるワード長の分布の形状は、ベル型
である。すなわち、中間のワード長を有するワードに比べ短いまたは長いワード
長を有する単語:=ずつと少ない、これは、短または長ワード長を有するワード
は、ASM (近似ストリングマツチング)の平均性能に非常に影響を及ぼすこ
となく、あるいは最悪のケースの性能に影響を及ぼすことなく別個に処理できる
。長いワードは、上述のように巨大な近傍物を有するから、これを別個に処理す
ることは特に有用である。
3)辞書内のワードはランダムでないが、第7a、7bおよび7cは、それらが
密生もしないことを示している、この現象は、使用下にあるアルファベット長さ
が辞書内の平均ワードの長さよりも一般にずっと大きいという事実に一部起因し
よう1図7a、7bおよび7Cから、近い近傍にあるワードは非常に少なく、は
とんどすべてのワードは、各ワードの遠い距離にあるという意味において、ワー
ドは実際に非群生化されていることが分かる、これにより、もっとも近い近傍物
の探索をなすのに効率的な索引付は機構を設計することができる7文字ストリン
グ2および辞書が与えられると、辞書内における2と各ワード間の距離を計算す
ることによって、2のもっとも近い近傍物を見つけることができ、最小の距離を
もつワードを記録することができる。下記の論述においては、辞書のワードがそ
の長さにしたがって区分されていると仮定する。推論2に論述される単純上部限
界は、 2x maximum(/−j、辞書におけるワードの最小長)、普通
こねは2X/jに等しい、より長い長さを有するワードを考慮する必要がないこ
とを示している。かくして、推論2により定義されるこの上部限界は、比較され
るべきワードの数を減するのに直ちに使用できる。
この数は、推論3において論述したストリング長区分によりさらに低減できる。
なぜならば、数d、現在見つけられている最小距離、を動的に記録することによ
って、/j−dよつ小さいまたは/−Z+dより大きいワードを比較することは
不必要であるからである、この性質を使用するための最良の戟略は、近傍物が見
つかるまで、それらのワード長および/j間の距離が0.1等に等しいワード群
を探索することである。
もっとも近い近傍物の探索をもっとも効率的になす上述の理論4に従う他の単純
なルールは、距離計算のためのカットオフ規准である。この規準は、計算中、距
離が予め特定された量より大きいかどうかを告知できるからである。この性質は
、辞書内の所与のストリングとその近傍物量のエラー距離が小さいとき(これは
普通そうである)、辞書内の所与のストリングとワード間のエラー距離マトリク
スのエントリのほとんどの計算を避けることができるから有用である。
[効率的なASMアルゴリズムを構成するための4段階低減手続き]
カットオフ規準を使用するために、エラー距離マトリクス上のエントリが、図8
に示されるように特定の順で計算されねばならぬ、ここで、/−X≧/−Yであ
ると仮定する。定理の派生経路(カットオフ経路)に沿ってエントリを屡ごとに
調べる。ある屡の計算の終了時に、カットオフ経路上のH値が得られ、現在の近
傍のエラー距離rと比較される。もしもH値がrより小さければ、他の屡を計算
する6層が最後のものであり、もっとも近い近傍のものが見出されれば、ワード
を記録し、現在距離rに等しい距離を有する全ワードを見つけ続ける。H値がか
っとオフ経路上のrより大きければ、現在ワードの計算を中止し、次のワードに
行く、距離r内にワードが見いだせなければ、rをr÷1に緩め、探索を継続す
る。つねに、辞書のワードの最大長の距離内に最も近い近傍物を見つけることが
でき、そして、普通、もっとも近い近傍物は、このような大きな距離に達する前
に見いだされるということを注意されたい。
推論2の上部限界、推論3のストリング長区分規準および定理4のカットオフ規
準を使用する3つの手法は、基本的な徹底比較の手法からの3つの改良を表わす
ものである。各ステップは、以下のアルゴリズム0,1.2、および3に示され
るように、当然に次の段階に合体できる。これらのアルゴリズムは、徹底比較法
、上部限界、ストリング長規準、およびカットオフ規準をそれぞれ実施する。す
べてのアルゴリズムにおいて、発明者等は、辞書内のワードをその長さに従って
群分けする。記述において、maX−DICTを辞書内における最大ワード長と
し、 m1n−DICTを最小ワード長とし、n−word−DIにT[ilを
長さ1のワードの数とする。エラー距離(X、Z)は、式2を使用することによ
りXおよび2間のエラー距離を計算するサブルーチンである。
[アルゴリズム0(徹底的比較法)コ
0、ストリング2賦与。
1 、 minimum−found 寡9999とする/傘最小距離を大きな
数に設定*/
S−φを設定
2 、(X in Dictionary)に対して、distmerror−
distance (X、Zl;if (dist≦minimum−foun
d)if (dist < minimum−found)minimumjo
und * dist;Sを(X)にリセット
他に
5=SII(Xl:
3 終了、 /ISは、見出されたもつとも近い近傍物のセ・ソトである零/
[アルゴリズム1 (距離の上部限界により低減・推論2)]
0 ストリング2賦与。
1 、 minimum−found ! 9999とする/*最小距離を大き
な数に設定*/
S=φを設定
upper−bound= 2X maximum(minDIcT、/−Z)
2 、(X in Dictionary and /−X≦upper−bo
undlに対してdist−error−distance (X、Z);if
(djst≦minimum−found)if (dist < mini
mumjoundlminimuffl−found s dist;Sを(X
)にリセット
他に
5=SLI(X);
3 終了、ハSは、見出されたもつとも近い近傍物のセセットである*/
[アルゴリズム2(距離の現在の上部限界により低減。
推論3)コ
Oストリング2賦与
1 、 S+tp 、radius*−1を設定;2、(S・φ)の間ステップ
3および4をなす。
3、radius*radius+l;4、(11−/jl≦radiusl
に対して/*lはループ制御変数$/
(X in DTCTIONARY and /−X−1)に対してdistm
error−distance (X、Z);if (dist *radiu
s)
S = SU (X):
5 終了、ハSは見出されたもっとも近い近傍物のセットである*/
アルゴリズム3はアルゴリズム2を変更する。これは、サブルーチンerror
−dist (X、Y、r)を呼び、これにより、もしも距離がrより大きいも
のがなければ、2つの文字ストリングXおよびY間のエラー距離を見出す、もし
も計算中距離がrより大きいことが分かると、errorjistは中止され、
−tに戻り(ここでtは計算された層の数である)、定理4のカットオフ規準を
適用する。
[アルゴリズム3(カットオフ規準により低減、定理4)]
Oストリング2賦与
1 、S :6. radius*−1を設定:2 (S・φ)の間ステップ3
および4をなす。
3、radius=radius+1;4、(11−/jl≦radius)に
対して7本1はループ制御変数本/
(X in DICTIONARY and /−X=ll)に対してdist
=error−distance (X、Z、 radius):if (di
st x radius)s −su (x)。
5 終了、 /ISは見出されたもっとも近い近傍物のセットであるネ/
[定1i110 ] V、1.(Z)を、2のもっとも近い近傍物の探索におい
てアルゴリズムa1gにより調べられたエラー距離マトリクス(H[i、jl)
のセットであると定義する。また、Ealg(Z)を2のもっとも近い近傍物の
探索においてアルゴリズムa1gにより計算されるエラー距離マトリクス()l
[i、jl)エントリの総回数であると定義する。
次の式が成立する。
ここで、v(w、)は、辞書内の所与のストリングZおよびフードW、を比較す
るときアルゴリズムa1gにより調べられたH[i、jlエントリのセットであ
る。
また、次の式が成立する。
E、Ij(z) ” U e (w、)ここで、ト工ないしρ、モしてe(w、
)は、辞書内のワードW1に対してアルゴリズム algにより計算されるH
[i、 jllシントリ回数である。アルゴリズムa1gの計算時間は、概略的
にE、1.に比例することは明らかである。以下に論述される試験の実験におい
て、Eallは、ここに記述されるアルゴリズムの効率の測定基準として使用さ
れる。
また、上述のアルゴリズム1.2および3は、各々、その先行のものにより調べ
られるH [i、 j]エントリの数を逐次低減していることを示すことも容易
である。H[i、 jlエントリのこの数は、アルゴリズムが加速され得るよう
にさらに低減し得る。
E alj6r 1th11−2”V11116ritfill−2+を観察す
ることもできる。しかしながら、アルボl)ズム3は、辞書内のワードの計算を
中止する度に中間計算結果を記憶しないから、距離マトリクス上のエントリー値
は、数置計算されよう。
それゆえ、E a+gor+thm−sは、V s+xar+thm−sより大
きくなろう。しかしながら、所与のワード2が辞書内のあるワードの近傍の距離
にあると、E aliarlths−3はV a+gar+thmそれゆ久、ア
ルゴリズムの効率は、うまく改善された。
そこで、アルゴリズムはさらに加速することができるかを質問する。答はイエス
である。
筆者等は、小距離の近傍において探索しているとき、大きな距離にあるワードを
比較する機構を提供することができると解釈した。詳述すると、近傍N (Z、
r)を画定するワードZおよび小距firを付与して、下式で、R(Z、 r
)、すなわち辞書の小サブ領域を計算する機構を見つけた。すなわち、
(\IXt DICTIONARYI/−x−−zl≦r)−N(Z、r) n
DICTIONARYZから距離r内にある辞書内のワードを見つけるために、
2をR(Z、 r)内にあるワードとのみ比較することが必要であることは明ら
かである。下記のテキストにおいて、アルゴリズム4に到達するために、アルゴ
リズム3を変更する。R(Z、 r)を計算する機構の設計については後で説明
する。
[アルゴリズム4(定理4のカットオフ基準および探索領域を制限することによ
り低減)コ
○、ストリング2賦与
1、S−φ、 radius*−1を設定:2 (S−φ)の間ステップ3およ
び(4)をなす、 (3「δd rusmrad jug◆l;4 、(X i
n R(Z、 radius)に対してdist!error−distanc
e (X、Z、 radiusl;if (dist s radius)S
−SO(X):
5、終了、/*Sは見出されたもっとも近い近傍物のセット*/。
そこで、この節を下記のステーとメントにより結論する[定理5] 任意のスト
リングZに対して、下記の関係が存在する。すなわち、
〔ダミーXを有するストリング、偏差ベクトルおよび近傍被覆〕
R(2,rlを構成するために開発した機構は、図9のマツピング図により記述
することができる。ストリング領域Uに任意の2を、そして小さな整数rを与え
、近傍をN(Z、r)=IIN+とする、ここで、N1゛は必ずしも素のストリ
ングセットではないとする。各N1に対応して、Uから有限(整数)範囲H1に
マツプされるマツピング関数り、を有すると仮定する。このマツピングの目的の
ために設計された関数は、hl(ハツシュ)関数と称される。
下記のステーメントが明らかに成立する。すなわち、もしもストリングXが任意
のり、(N、)の反転像になければ、XはN (1,r)でない、それゆλ、距
離rのもっとも近い近傍物が存在するかどうかを見いだすために、2をり。
(N、)の反転像にある辞書内のワードと比較しさえすればよい、上述の観察は
、下記の定理により正式に記述することができる。
[定理6] DICTをストリング領域Uから抽出された一組のワードとし、h
iをUから整数領域H+、 l≦i≦Sにマツプする。所与のストリング2およ
び整数に対して、もり、 モN(Z、rl”lJN+なう+f、N(Z、 r)
Chト’ (hl (N1Jl、そしてDICT内のワードXは、XがR(Z
、r)言DICT n(Oh、−’(hl(N、)))にあるときのみ、すなわ
ち等価的にR(Z、r)” n (DICT U b+−Mhl(Nl)))
(2)にあるときのみ、N (Z、 r)にある。
そのとき、下記の表現が成り立つ。
[推論4〕 上述のように
R(Z、r)= n (DICT U h、−’(hl(Nl)))とする。z
に対するエラー距離がrに等しくてR(Z、 r)内にXが存在するように、r
が最小整数ならば、Xは2のもっとも近い近傍物である。
これから、アルゴリズム4は上記のステーメント(2)および(3)を実施する
ことが明らかである。
問題の下記の2つの側面が論述されるべきである。
m h、関数が構成されたと仮定して、所与のストリング2および所与のエラー
距離から如何にしてR(Z、 rlを生成するか。
(2)辞書が与えられて、R(Z、 r)を生成するのに使用できる一組のり、
関数を如何に構成するかを考察する。これらの関数は、すべての可能な2ストリ
ングに対して小さい一組のh1関数のみが提供されるように十分に一般的でなけ
ればならない、hlおよびその反転とも、時間およびメモリスペースに関して効
率的に実施できなければならな直感的に、最適長の2および小さいrに対してさ
へ、近ff1N(Z、r)は巨大であるが、特定のストリングの近い近傍にある
すべてのストリングは相互に類似であるはずであるから、上述の2つの問題に対
する十分の解決がなお存在しよう、以下の節においては、このR(Z、 r1機
構、ならびにそれがいかに働くかについて説明する。まず、N(Z、 r)にあ
るストリングの表示法から始める。
表記N(Z、r)それ自体は、エラー距離rをもっZの近傍の単純な表示である
が、余りに抽象的過ぎてここでは有用でない0文字を選ぶための多数の可能性を
もたらす2つの操作、すなわち、挿入および変更により、N (2,r)の巨大
化が実際に引き起こされるということを観察したことによって、近傍表示が、下
記の定義により定義されるように、ダミー符号Xを有するストリングの導入によ
って単純化される得ることを見出した。
[定義11] 符号Xそれ自体はΣ内にないと仮定する、(ダミー)符号Xをも
つストリングは(Σ U Xlないの任意のストリングである。ダミー符号Xを
有するストリングを、ストリング内のXをΣ内の任意の文字で置き代えることに
より発生される一組のストリングであると考えることができる。ダミーXを有す
るストリングが近傍を表す際にどのように働くかを見るために、図10に示され
るように、ストリング’test」の半径内にあるすべてのストリングに対する
誘導ツリーを構成する。誘導ツリーは、’testJに関するすべての可能なシ
ーケンスの列挙であり、編集操作は、ストリングの左から右へと遂行される0図
面において、各ノードは、5つの出口ブランチを有し得る、すなわち5つの編集
操作、挿入、抹消、変更、交換および確認に対応する5つの出口ブランチェ、D
、C,T、iを有し得ることに注目されたい、i出口ブランチは、根からノード
に至るエラーの数が1を越えるときのみ存在する。tR線は、編集操作が適用で
きないことを支持するのに使用される。下記のように書くことができる。
N(test−,IlgXtest U est U Xe5t U ests
U tXestll tst U tXst Utset U teXst
U tet II taXt U tetsLl tesXt II tes
tl tesX U testX。
1より大きいrに対するN (Z、 rlに対する誘導ツリーは、ツリーの根か
ら任意の端末ノードに至るエラーの数を正確にPに等しくすることによって同様
に構成される。
変更編集操作は、rより小さいエラー距離を持つ如何なるストリングをも列挙内
に包含させないことに留意されたい、かくして、如何なるN (Z、 r)も、
誘導ツリー上の端末ノートにより表すことができる。誘導ツリー上におけるこれ
らのノードの数は、近傍のサイズN (Z、 r)よりずストリングが長く、r
が1より大きい場合、誘導ツリー上における端末ノードの数はなお非常に大きい
かもしれない、誘導ツリーの端末ノード上のダミーXを有するストリングが、な
お非常に「類似Jしており、定理6において必要とされるN1に関する拘束が、
N (Z、 r) cON、ということのみであるということを認めることによ
って、性能を改善し得る。進行するために下記の定理を必要とする。
[定義12] Σからの21に関して、トZ1.Z2.。
z/−zとする。ベクトル”[Vl+■l−、、、v/−v] は、ある1≦1
≦/IZに対して、もしもV J RlまたはXであればダミーX(Zの)をも
つ偏差ベクトルであるといわれる。
■J11xであれば、SJ ” VjまたはXで、対応するストリングS”31
.Sz、、、、、Sz−vは、■から誘導されたダミーX(Zの)をもつストリ
ングであるといわれる。
例として、5xXestは、偏差ベクトル[X、 2. 、3.4]で、2=t
estから誘導できる。Sは他の偏差ベクトル[X、 2.3.11からも誘導
できることを認められたい。
E足ml 3] ダミーXを有する一組の偏差ベク)・ル(V、)は、もしもN
内の各ストリングがvIから誘導されるダミーXをもつストリングの少なくとも
1つのストリングのメンバであれば、−組のストリングNの被覆系である。また
、(vi)がNの被覆系であれば、Nを被覆するとも言う。
近傍誘導ツリーの端末ノード上におけるダミーXを有する各ストリングは、近傍
における一組のストリングを表す、ダミーXを有する数個のかかるストリングは
、偏差ベクトルから誘導されるダミーXをもつ(より多きな)ストリングにより
カバーすることができる0例久ば、[X、 X、 3.4]Xから誘導されるX
X5tは、N (”test−1)のXe5t。
etetおよびtXstを被覆する。それφえ、ストリング2の偏差ベクトルは
、2に近傍におけるストリングの超被覆と考λることができる。どのような近傍
も、−組の偏差ベクトルまたは超被覆により被覆できる0例えば、N(“tes
t−、I)は、下記の一組の偏差ベクトルにより被覆できる。
+[+、2.X1. [+、3.X1. [2,3,Xl、[+、2.X、X]
、[1,3,X、XI。
[2,1,X、Xl、[l、X、3.Xl、[X、2.3.Xl、[1,X、X
、X、4]。
(X、1.2.X、X、]、II X、2.3.X、Xl)、これはダミーをも
つ下記の一組のストリングを誘導する。すなわち、
X : (esX、tsX、 teX、 texx、 tsXX、 etXX、
tXsX、 Xe5X、 XteXX。
tXXXt、 Xe5XX)
偏差ベクトルは、ストリング2から文字を抽出すべき位置、したがって(暗黙的
に)これらの文字を入れるベクトル内の位置のみをを特定するというよい特徴を
有する。換言すると、−組の偏差ベクトルが近傍N (Z、 r)の被覆系であ
れば、それは、/j’が/−Zに等しい限り、他の如何なるN(Z’、r)をも
被覆する。これにより、偏差ベクトルに基づいてR(Z、 r)を構成すること
ができる。
N (Z、 r)を−組の偏差ベクトル(V、)によりカバーされるものとし、
各vlはSいすなわちダミーXをもつストIノングを誘導するものとする。しか
るとき、N(Z、r) CLl(S、)、+hゆ、t、(S+)ハ、定理6ない
の条件をN (Z−r) CIIN lに緩和した場合、定理6における被覆(
N1)と同様に十分いまや、本発明者等が提案するR (Z、 r)体系につい
て記述し得る。これは2つの構造、すなわち、近傍をカバーするための複数組の
偏差ベクトルと、マツピングおよび逆マツピングを計算するための一組のh+関
数より成る。
偏差ベクトルに対して次のh1関数を選ぶ、偏差ベクトルなV” IVI 、
Vz、 、 1. 、 Vy−v)であるとし、ストリングをS=[sl、N2
.、、、、Sz−V]であるとし、そして左から右にCi、、、、、C4が、■
における非−X v、に対応するSの文字コードであるとすると、tl++m+
−c+(mod lΣl)+ct (mad 1 Σ1)×1Σ1+、、、+
にj(a+odlΣ1)×1ΣN−1となる。このり、関数は、辞書内の長さ/
−Vの一組のワードを 1ΣIJのブロックに区分する。しかしてこれらのブロ
ックのあるものはおそらく空である。 h+関数のこの選択で、辞書上のhlに
対して逆ファイルが構成されていれば、h+(s)およびDTCT口hi−’
(h+ (S))の両者を計算することは容易である。
hlは、ダミーXを有するすストリングのすべてのストリングを単一の値にマツ
プする。下記の例は、所与のストリング2および小距離rに対して如何にR(Z
、 r)を計算するかを例示するものである。この計算手続きは、先に提示され
た問題2を解くことができる。
R(Z、 r)の計算に対する例を記述する。
関係のある辞書はDICT=(test、 the、 best、 mess、
example)であるとし、そして我々は辞書にないストリング「resJ
のもっとも近い近傍物を見つけたいと仮定する。
まず、0の距離をもつ近傍を試験する。N(“rest”、0)・じrest”
)および”rest−は辞書にない、そこで、次の最小の近傍N (”rest
−、l)を試験する。 N (−test−、l)を覆うのに使用された偏差ベ
クトルの同じ一組が、Nじrest”、 りを覆うのに使用できる。これは、(
[+、2.X]、 [+、3.X]、 [2,3゜X]、[1,2,X、X]、
[1,3,X、X]、[2,1,X、X]、[1,X、3.X]。
[X、2.3.X]、[1,X、X、X、4]、[X、1.2.X、X、]、[
X、2.3.X、X、])であり、これが、ダミーXを有するストリングの下記
の一組を発生する。
S* (esX、 rsX、 「eX、 reXX、 rsXX、 erXX、
XsX、 、 Xe5X、 XteXX、 rXXX、Xe5XX)。
Σが下の場合の一組の文字であり、これらの文字を表すのにASCCIIが使用
されると仮定する− (XesX)のみをり。
によりマツプし、ついでh−1を辞書内のワードにマツプできることを理解する
のは容易である。計算は下記のように実施される。すなわち、
hl(XesX191(mod261+105(mo105(X26亀39R(
”rest、 1)=DICTn b+−’ (39111<−test“、
−best”、 −mess−)。
’test」、 ’best」、 ’mess」および所与のストリング’re
stj間のエラー距離は、それぞれ1、lおよび2である。したがって、’re
st」のもっとも近い近傍物は、’test」および’best」である。
「hl関数の選択」
本R(Z、 r)機構において、辞書上の各り、関数の逆ファイルが、予め構成
されねばならない、ストリング内の位置のすべての可能な組合せに対して逆ファ
イルを構成し、莫大な数のh+関数を創成することは確かに望むところではない
、この節においては、R(Z、 r)を計算するために、十分な数のh+関数の
みを如何に選択するかについて示す論述を簡単にするために、ストリング2の長
さが5に等しく、エラー距離rが2に等しい場合に限定する。また、h、関数の
選択を、関数値を計算するために2内に2つの別個の位置のみを使用するものに
制限する。これらの結果は容易に一般化され得る。
ここでの目的は、任意のストリング2に対してN (2,2)をカバーする一組
の偏差ベクトルから誘導されて、ダミ。
−Xを有する任意のストリングに対する値を計算できる少数のハツシュ関数を見
つけることである。 N(Z、2)における任意のストリングのエラー距離は多
くて2であるから、下記の簡単でしかも有用な観察をなした。 N(Z、2)は
、多くても2つのX符号を各々含む偏差ベクトルによつ、 てカバーできる。
もしも、S内の各ストリングSに対して、H内にSに対する値を計算できる少な
くとも1つの関数があれば、−mのハツシュ関数Hが、ダミーXを有する一組の
ストリングSをカバーするということにする。
論述をより簡単にする他の観察は、−組のハツシュ関数が正確に2つのダミーX
符号を有する一組のストリングをカバーすれば、この関数はまた、2つ以下のダ
ミー符号をもつ一組のストリングをもカバーするということである。
それゆえ、問題は下記に還元できる。正確に2つのダミー符号を有する偏差ベク
トルから誘導して、ダミーXを有する一組のストリングに対する値を計算できる
最少数のh1関数を見つけることである0図11は、5に等しい偏差ベクトル長
での被覆の問題としてこの問題を解釈する。この図は被覆テーブルを描くもので
、各行は、ストリングマツピングにおける2つの位置を選択する候補h1関数を
表わし、各列は、正確に2つのX符号を有する偏差ベクトルから誘導されるダミ
ーXをもつ可能なストリングを表わす0行は、その行により選択される位置が列
の非X位置であれば、列をカバーする。被覆の関係は、行および列の交叉点にあ
るX符号により指示される。
ここで、下記の従来の被覆の問題に遭遇する。すなわち、テーブル内のすべての
列をカバーする最少数の行を見つけるという問題である。
一般の被覆の問題は、NP−完成の問題である。これは、問題はテーブルのサイ
ズが大きいとき解くことが困難であることを意味する。しかしながら、図11に
示されるように、テーブルのサイズが小さいときには、従来の方法により最小の
解を得ることができる0図11におけるテーブルに対するこのような最小の被覆
は、([1,2]、 [1,3] 、 [2,3]、 [4,5])である。
バーするための被覆テーブルにおける列の数は、rに等しい0mが大きく、rが
1より大きいと、被覆テーブルは非常に大きくなり、最小被覆は見つけるのが困
難である。実際のおうようにおいては、最小でないかもしれないテーブルの十分
の被覆で本願発明の目的に十分である、以下においては、一般的に大きなサイズ
のテーブルに対して十分の被覆を得る有用なヒユーリスチックな方法を示すため
に一つの例を示す。
ここでは、多くとも3つのダミー符号を有する長さ7の全偏差ベクトルに対する
値を計算するために各々2つのストリング文字を使用する多数のh1関数を見つ
けたいものと仮定する。7つのバーテックスきを描き、各々2つのバーテックス
きを包囲する閉鎖曲線を描き、3つのバーテックスきの任意の選択に対して、3
つのバーテックスきのいずれの1つをも包囲しない少なくとも1つの曲線がある
ようにする。解は、思考錯誤により容易に見つけることができる。ヒユーリステ
ィックなルールは、包囲されていないバーテックスきを先ず包囲する、すなわち
包囲されているセットをできるだけ素にすることである。7つのバーテックスき
を(1,2,3,4,5,6,7)とする、次の選択([1,2]、 [3,4
]、 [5,6]、 [6,7]、 [5,7])が有効な解を構成することを
容易に見出すことができる0図12は、よい被覆選択のより沢山の例を示してい
る。
一般の被覆の問題は、NP−完成の問題であるが、上述の被覆の問題は、NP−
完成の問題でなくてよい、その理由は、本ケースにおいては被覆テーブルは任意
的でないからである。簡単で効率的な手続きをこの特別の被覆の問題に対する最
小の解を見つけるため発見することができると推測される。
hi関数を設計するに際しての他の考察は、関数値計算のためストリングから如
何に多くの文字を選択すべきかである0本発明者等は、この問題に答える理論的
もしくは実験的結果を得ていない。次のジレンマを考えることは困難ではない、
h+関数を計算するために選ばれる文字が多くなればなるほど、逆のサブ領域
は小さくなるだろう、かくして、各り、関数に対する誤灯の数は低減されるであ
ろうが、この場合、より多くの組の偏差ベクトルが近傍を被覆するために使用さ
れる必要がある。また、h+関数を計算するために選ばれる文字が多くなればな
るほど、より多くのり、関数が全マツピング機構に提供される必要がある。これ
は、代表的な時間とスペースとの取引を要する問題である。実際の設計において
は、ある調整が必要とされよう。
[偏差ベクトルの被覆の構成]
十分な組のh1関数を選択したと仮定する。ここで、近傍を被覆すための複数組
のベクトルを見つけることに進む、やはり、問題の本質を示すために簡単な例を
示すことにする。
Z=”1234”およびr=1とすル、ツイテ、N (Z、 rl lIX]2
3411234 tlX234tJ213411 lX23411134LI
lX34U 1324012X3411124U12X4U l 243[11
23X411]23u123Xtl1234X。
本方式におけるh+関数は、ストリング長に従って定義されるから、N (2,
r)内のダミーXをもつストリングを長さにより群別することが必要である。長
さ5のストリングに対するマツピング計算のため、h+関数([1,2]、 [
1,3]、 [2,3]、 [4,5] )が選択されたと仮定する。そこで、
N(”1234−、 l) (7) (X1234.1x234. +2X34
. +23X4. +234X)をカバーする一組の偏差ベクトルを如何に構成
するかを示す、やはり、図13に示されるように被覆テーブルを使用できる0図
において、ストリング内の第1番目および第j番目が非Xであれば、行[i、
j]はダミーXをもつストリングの列をカバーする。偏差ベクトルは、行および
それをカバーする列から容易に得ることができる。例えば、[l、31は、lX
234をカバーし、それゆえ、偏差ベクトル[1、X、2.X、X] を1X2
34をカバーするために使用することができる。
ここでの目的は、テーブル内の全列をカバーする多数の数を見つけることであり
、それにより最小数の偏差ベクトルを創成することができる。目的の関数は、被
覆における行の数の直接の計数値でないから、この問題は一般の被覆の問題より
さらに難しいように思われる。筆者等は、前列をカバーする最小数の行を見つけ
ることで満足する。何故ならば、経験によれば、最小数のカバーは偏差ベクトル
の小さな一組のカバーをもたらすことが多いからである0図13のテーブルに対
する最小の被覆は、 ([1,2]、[4,5])である、これは、−組の偏差
ベクトルf[1,2,X、X、X]、 [X、X、X、3.4]1 を生ずる。
長いストリングおよび1より大きいrの場合、偏差ベクトルの被覆を構成する被
覆テーブルは巨大となる。下記の簡単な例は、本目的に対する十分な被覆である
と事実上前^ることができることが分かった。
これは欲深なアルゴリズムと称される。何故ならば、列が現在選択されつつある
列により未だカバーされていなければ、列をカバーする任意の行が構成プロセス
中に被覆に追加されるからである。
「偏差ベクトルの被覆を構成するための欲深なアルゴリ距!rを与久る6本/
/ISをN (Z、 r)をカバーするためにダミーXを有する一組のストリン
グとする。*1
0■=ψを設定。
1、(Sが排出されるまで)ステップ2ないし5をなせ2Sの新しい要素Sを生
成:
3 もしも(SがVにより カバーされないならば)4sをカバーするhiを児
っける:
5 、 V□VU ((H+、slの偏差ベクトル)。
゛ )
6、終了、/*VはN (Z、 r)に対する偏差ベクトルの被覆である。ネ/
hl関数の選択および偏差ベクトルの被覆の構成は、相俟って上述の問題1に対
する解答を与える。
[共通の応用における辞書の性質]
辞書におけるワードの分布は、一般に、ワード探索のアルゴリズムの効率に大き
く影響を及ぼす、アルゴリズムを設計するに先立ち、アルゴリズムが作用してい
るデータベースの性質を検討するのが良い。この研究の目的のため、式1を使用
することにより、辞書にあるワードの各対間の距離を徹底的に計算するプログラ
ムを書く。
異なる応用領域をもつ下記の3種の辞書をこのプログラムにより試験した。
1 ) DIC’jpgm:長いプロローグプログラムの一組の変数および機能
名。
2 ) DICT−Unix+Llnixシステムにより提供される辞書におけ
る一組の英語ワード。
3 ) DICT−IR:マサチューセッツ州所在のGTE Laborato
riesの図書館の情報検索システムで使用される一組のインデックスワード、
これは本、雑誌および技術レポートの著者名、タイトル、および要約の混合体で
、25167の別個のワードを含んでおり、平均ワード長は8.320である3
つの辞書のワード長の標準化分布は図6に示されている。
辞書内のワードの各対が同じ発生確率を有すると仮定すると、辞書DICjpg
m、DICT−11nixおよびDICT−IRにおける1対のワードの最大長
に関して、ワード間距離の条件付き確率分布を得る。これらは、図7a、7b
および7Cに図示されている。
本発明者等は、本明細書に記述されるアルゴリズムを実施し、それを辞書DIC
TjRに応用した。アルゴリズム4に対して、2ないし15のワード長をもつワ
ードに対する逆ファイルを構成した。 hr関数はすべて、長さ2のワードの場
合を除いて、値を計算するためにストリング内に正確に2つの位置を選択する。
長さ2のワードの場合には、一つの位置しか逆ファイルを構成するのに使用され
ない、スピードアップ機構が提供される中で生成されたり、関数の数およびエラ
ーの最大数(異なるワード長に対する)は、表1に掲載されている。近傍N (
Z、 r)をカバーするために使用される偏差ベクトルの数は、表2に掲載され
ている0表2内の一つのエントリを例として取る。/−Zが9に等しいN (Z
、 2)に対する被覆内に4串の偏差ベクトルがある。これらの中に、それぞれ
長さ7.9、l○および11の6.9.12.11、および10の偏差ベクトル
がある。これらの数に対して、R(Z、 r)マツピング機構において逆ファイ
ルを提供する効率を示すため、R[Z、 r)のサイズを概略的に計算できる。
辞書内に、ワード長フないし11の各群に4000のワードが存在すると仮定す
る。また、各h+関数は、各ブロックを10ワードとして、4000のワードを
400のブロックに区分する。
そのとき、R(Z、 r)のサイズは、IOx (6+9+12+t1+10)
=480に等しいかまたはそれ以下である。それゆえ、文字ストリングのもっ
とも近い近傍物の探索における計算を節約するために最初に使用されたストリン
グ長区分(推理3)により与λられた20000ワードでなく、所与の2を48
0ワードのみと比較しさえすればよい。
アルゴリズム4の実際のプログラムの実施は、下記の方法で変更された。すなわ
ち、プログラムの実行中、近。
傍N (Z、 r)の特定の部分に対してR(Z、 r)機構が提供されていな
ければ、プログラムは、その部分を処理するためにアルゴリズム3に切り替わる
。
5つのASMプログラムの効率を比較するために実験を行った。各ワード長/(
2ないし28)および各距離r〜 (工ないし4)に対して、各々が長さ/のワ
ードから距離rのもっとも近い近傍物であるという性質を用いて、概略的に10
0の文字ストリングを生成する。各/およびr、に対する100のトリングに関
するアルゴリズムの平均性能を記録する。
本実験においては、2種類の性能測定を使用した。第1のものは、アルゴリズム
により調べられるH [i、 j]エントリの数である(定l1il O) 、
この測定は、システムおよび実施法に依存しない、アルゴリズム3およびあるご
4においては計算オーバーヘッドは無視し得ないから、それらの全効率を比較す
るために、実施される全アルゴリズムにより使用される実時間も測定した。
5つの全アルゴリズムは、C言語で実施した。実験は、 Co!1lPAQ D
ESKPRO386パーソナルコンピユータで行った。辞書データおよびアルゴ
リズム4で使用されるり、関数の逆ファイルをを含む大テーブルを、コンピュー
タの拡張メモリに記憶した。システムのオーバーヘッドのため、コンピュータの
拡張メモリは、直接アクセスメモリよりの数倍緩速であるのが有効である。
実験結果は、図15a〜15eおよび図16a〜16eに掲載されている。
実験結果から下記のことが観察された。
1)アルゴリズム0.1.2および3はすべて実施容易である。アルゴリズムは
、すべて少しの過剰メモリしか使用しない8所与の文字ストリングの長さが小さ
いときのみ、アルゴリズム1はアルゴリズム0より高速である。フルボ1ノズム
2およびアルゴリズム3は、アルゴリズムOおよびアルゴリズム1よつずっと高
速である。
2)小さいrに対して、εg+@6r+ths−s(Z)は、Ealzarlt
+、−2(2) よりずっと小さい。しかし、アルゴリズム2は簡単なループ構
造を有するから、アルゴリズム3に対して実施されたプログラムは、アルゴリズ
ム2に対するブロムよりはるかに高速ではない、ずっと少量の)i[i、j]二
シントリ調べるという利点を活用するようにアルゴリズム3を実施するためには
、より技巧を凝らしたより低レベルのプログラム技術を使用すべきである。
3)アルゴリズム4は、5つの間でもつとも高速のアルゴリズムである0図16
a〜16eは、異なる/およびFでの5つのアルゴリズムの相対速度を示してい
る。結果をもっと綿密に試験するために、TI (/、 r)を、本実験におけ
るストリング長/およびエラー距i1rに対応してアルゴリズム1により消費さ
れた時間とする− TI (28,4)は、それぞれ0.1,2.3および4に
対する1に対して、253.253. O,i5.0.15.0.07および0
.08に等しい、T1(9,1)は、それぞれ0,1.2.3および4に等しい
1に対して、12+、 121.34.23および0.33秒に等しい、すべて
の実験的ケースにおいて、アルゴリズム4は、数秒内にもっとも近い近傍物を見
つけた。これらの結果は、本フォルトモデル下で、普通の逐次コンピュータ上に
おいて実時間で大きな辞書について近似ストリングマツチングを遂行することが
可能であることを示している。
4)アルゴリズム4における逆ファイルを記憶するに必要なメモリスペースは大
きいが、現在のハードウェア技術でこれを与久ることかできる。ここに例示され
る実施例において、辞書データは172 Kバイトを占め、逆ファイルは389
にバイトを占めた。
要約すると、本発明によると、近似ストリングマツチングのためのアルゴリズム
を設計する方法が提供される、上述の5つのアルゴリズムのうち、アルゴリズム
0゜1.2および3は、簡単で、スペースに関して効率的である。アルゴリズム
2およびアルゴリズム3は比較的高速である。アルゴリズム4は、非常に高速で
あるが相当のメモリを必要とする。応用辞書のサイズが小さい場合、アルゴリズ
ム2およびアルゴリズム3はよい選択である。辞書が多数のワードを有する場合
、アルゴリズム4は、実時間の性能をよくするためにはこれに限る。
FIG、2
FIG、3
FIG、4
FIG、 5
+ 3 5 7 9 11 13 15 17 1921 232527290
246810121416旧2022242628FIG、 6
FIG、 7c
×
日08
FIG、 9
egf
34567B9
+223 334
FIG、13
log2(EG’9)
”q2 (Ealg)
log2t(s)
要 約 書
辞書23における近似ストリングマツチング用高速アルゴリズムを使用するデー
タ処理システムを提供する。
文字ストリング上における挿入、抹消、変更および変換操作の多重スペリングエ
ラーが、開示されるフォルトモデルで考察される。アルゴリズムの公式化におい
てSトレース、フォルトモデルが使用され4段階低減手続きで近似ストリングマ
ツチングアルゴリズムの効率を改善する。上部限界、ストリング長区分基準およ
びカットオフを使用するスペリング修正のための本手法は、従来の基本的な徹底
的比較法から3つの改善をもたらす、各段階は自然に次の段階に合体される。第
4段階においては、−ハツシング方式で、所与のストリングを大距離のワードと
比較することを避け、小距離の近傍において探索を行う、かくして、辞書23内
のワード数に準直線的なアルゴリズムが得られる。アルゴリズムの図書館情報シ
ステムへの適用に当たっては、ディスク12に使用される原テキストファイル2
1、情報記述ファイル22、およびネガティブ辞書23を使用する。
国際調査報告
Claims (8)
- (1)大データベースを記憶するためのシーケンシャルディジタル記憶媒体を有 するデータプロセッシングシステムにおける多重エラースペリング修正システム であってデータプロセッシングシステムに記憶される−領域の一組の容認され得 るワードを含み、その各ワードが文字のストリングより成り、文字のストリング の長さにしたがって区分されている辞書と、 ストリングZを受け入れて、前記辞書内のストリングZが前記辞書内の誤綴りワ ードか否かを決定する手段と前記ストリングZを前記辞書内のストリングと整列 させ、Zのもっとも近い近傍のものを見つけるためのマッチング手段と を備え、該マッチング手段が、 左から右に操作してZを前記ワードに変換する最短の逐次編集シーケンスである 、辞書内におけるストリングZとすべてのワード間のエラー距離を計算する手段 と、最小距離を有するワードを記録する手段と、前記計算がなされたワードの長 さに上部限界を決定することによってエラー距離の計算を制限する手段と、スト リング長区分を使用して前記のエラー距離の計算を制限する手段と、 カットオフ規準を使用して、前記のエラー距離の計算を制限する手段と、 近傍におけるエラー距離より大きいエラー距離にあるワードを除去することによ って探索領域をさらに制限する手段と を備えることを特徴とする多重エラースペリング修正システム。
- (2)各ワードXに対して前記辞書内のZと全ワード間のエラー距離を計算する 前記手段が、 挿入、抹消、変更および交換操作より成る編集操作シーケンスからストリングZ をストリングXに変換する手段と、 前記編集操作をストリングZの各文字位置に逐次適用する手段と、 前記変換を行うために前記編集操作の最短のシーケンスを選択する手段と を含み、エラー距離が、前記最短シーケンスにおける前記編集操作の数である請 求の範囲第1項記載の多重エラースペリング修正システム。
- (3)前記の上部限界を決定することによりエラー距離の計算を制限する手段が 、前記辞書内における、ストリングZと、最大長のZの2倍のワード、すなわち 最小長のワード間のエラー距離の計算を除去する手段を備える請求の範囲第1項 記載の多重エラースペリング修正システム。
- (4)前記ストリング長区分手段が、 探索において現在見出されている最小エラー距離を表わす数dを動的に記録し、 Z−dの長さより小さい、またはZ+dより大きい長さを有するワードに対して エラー距離の計算を除去する手段を備える請求の範囲第1項記載の多重エラース ペリング修正システム。
- (5)前記の探索範囲をさらに制限する手段が、前記辞書内の全ワードのエラー 距離マトリックスを構成する手段と、 Zの所与のエラー距離r内の全ワードを含む前記辞書内におけるZの近傍を構成 する手段と、前記近傍内におけるZと任意のワード間のストリング長の絶対差が いずれも前記エラー距離rに等しいかそれ以下であるように前記近傍の領域を構 成する手段を備える請求の範囲第1項記載の多重エラースペリング修正システム 。
- (6)前記の近傍のものの前記領域を構成する手段が、ハッシュ関数を使用して 前記エラー距離マトリックスの反転像を構成する手段を備える請求の範囲第5項 記載の多重エラースペリング修正システム。
- (7)各ワードが文字の直線的結合である−領域のワードで辞書を形成する一組 の可能なワード間から文字ストリングのもっとも近い近傍のものを見つける方法 において(i)一組のワードを記憶する記憶領域を形成し、かつ該領域を零値に イニシャライズし、 (ii)エラー距離測定変数の初値を画定し、(iii)前記ストリングから所 定距離内にある全ワードを含む全ストリングの近傍を計算し、 (iv)前記ストリングの前記近傍および前記辞書におけるワードを含む前記辞 書のサブ領域を計算し、(v)該サブ領域の各ワードに対して、エラー距離測定 値を計算し、前記変数に等しいエラー距離測定値を有するワードのみを前記記憶 領域に記憶し、 (vi)前記変数をインクリメントし、前記記憶領域がもっとも近い近傍のもの を表わす少なくとも1つのワードを含む迄ステップ(iii),(iv)および (v)を操り返す諸段階を含むことを特徴とするもっとも近い近傍のものを見つ ける方法。
- (8)前記のサブ領域を計算する段階が、前記近傍を、個々の細分近傍の一群を 連合体として画定し、 各細分近傍領域にあるワードをそれぞれの整数領域にマップするマッピング関数 を各細分近傍に割り当て、それぞれの逆像近傍を創成するため、各整数領域を前 記−領域に逆マップし、 前記逆像近傍にある全ワードを含む連合セットを形成し、そして 該連合セットと前記辞書間の共通ワードで前記サブ領域を形成する 請求の範囲第7項記載のもっとも近い近傍のものを見出す方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63664090A | 1990-12-31 | 1990-12-31 | |
US636,640 | 1990-12-31 | ||
PCT/US1991/009756 WO1992012493A1 (en) | 1990-12-31 | 1991-12-30 | Very fast approximate string matching algorithms for multiple errors spelling correction |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05505270A true JPH05505270A (ja) | 1993-08-05 |
Family
ID=24552735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP92504399A Pending JPH05505270A (ja) | 1990-12-31 | 1991-12-30 | 多重エラースペリング修正のための高速近似ストリングマッチング法 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP0519062A4 (ja) |
JP (1) | JPH05505270A (ja) |
CA (1) | CA2076526A1 (ja) |
WO (1) | WO1992012493A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6898185B1 (en) | 1999-10-20 | 2005-05-24 | Broadcom Corporation | Diagnostics of cable and link performance for a high-speed communication system |
WO2010114478A1 (en) * | 2009-03-31 | 2010-10-07 | Azimuth Intellectual Products Pte Ltd | Apparatus and methods for analysing goods cartons |
EP2284653A1 (en) * | 2009-08-14 | 2011-02-16 | Research In Motion Limited | Electronic device with touch-sensitive display and method of facilitating input at the electronic device |
CN116522164B (zh) * | 2023-06-26 | 2023-09-05 | 北京百特迈科技有限公司 | 一种基于用户采集信息的用户匹配方法、装置及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4771385A (en) * | 1984-11-21 | 1988-09-13 | Nec Corporation | Word recognition processing time reduction system using word length and hash technique involving head letters |
US4783758A (en) * | 1985-02-05 | 1988-11-08 | Houghton Mifflin Company | Automated word substitution using numerical rankings of structural disparity between misspelled words & candidate substitution words |
JPS63198154A (ja) * | 1987-02-05 | 1988-08-16 | インタ−ナショナル・ビジネス・マシ−ンズ・コ−ポレ−ション | つづり誤り訂正装置 |
JPH0782544B2 (ja) * | 1989-03-24 | 1995-09-06 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチテンプレートを用いるdpマツチング方法及び装置 |
-
1991
- 1991-12-30 CA CA002076526A patent/CA2076526A1/en not_active Abandoned
- 1991-12-30 WO PCT/US1991/009756 patent/WO1992012493A1/en not_active Application Discontinuation
- 1991-12-30 EP EP19920904493 patent/EP0519062A4/en not_active Withdrawn
- 1991-12-30 JP JP92504399A patent/JPH05505270A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP0519062A1 (en) | 1992-12-23 |
CA2076526A1 (en) | 1992-07-01 |
WO1992012493A1 (en) | 1992-07-23 |
EP0519062A4 (en) | 1993-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6470347B1 (en) | Method, system, program, and data structure for a dense array storing character strings | |
US11899641B2 (en) | Trie-based indices for databases | |
Blumer et al. | Complete inverted files for efficient text retrieval and analysis | |
US4833610A (en) | Morphological/phonetic method for ranking word similarities | |
Nestorov et al. | Representative objects: Concise representations of semistructured, hierarchical data | |
US6308149B1 (en) | Grouping words with equivalent substrings by automatic clustering based on suffix relationships | |
US5649023A (en) | Method and apparatus for indexing a plurality of handwritten objects | |
US5572423A (en) | Method for correcting spelling using error frequencies | |
US6065003A (en) | System and method for finding the closest match of a data entry | |
KR100318762B1 (ko) | 외래어 음차표기의 음성적 거리 계산방법 | |
CN101441623B (zh) | 翻译装置及信息处理方法 | |
US20170242855A1 (en) | Fast, scalable dictionary construction and maintenance | |
CN102063508B (zh) | 基于广义后缀树的中文搜索引擎模糊自动补全方法 | |
US20090193005A1 (en) | Processor for Fast Contextual Matching | |
US7831626B1 (en) | Integrated search engine devices having a plurality of multi-way trees of search keys therein that share a common root node | |
US7603346B1 (en) | Integrated search engine devices having pipelined search and b-tree maintenance sub-engines therein | |
JPWO2009063925A1 (ja) | 文書管理・検索システムおよび文書の管理・検索方法 | |
US7653619B1 (en) | Integrated search engine devices having pipelined search and tree maintenance sub-engines therein that support variable tree height | |
US20090234852A1 (en) | Sub-linear approximate string match | |
JPS62191946A (ja) | 階層構造情報を符号化する方法 | |
JPH05505270A (ja) | 多重エラースペリング修正のための高速近似ストリングマッチング法 | |
US8204887B2 (en) | System and method for subsequence matching | |
Wu | Bracketing and aligning words and constituents in parallel text using Stochastic Inversion Transduction Grammars | |
JP3531222B2 (ja) | 類似文字列検索装置 | |
Chytil et al. | Caterpillars and context-free languages |