Fast approximate matching of words against a dictionary

A new algorithm for string edit distance computation is given. The algorithm assumes that one of the two strings to be compared is a dictionary entry that is known a priori. This dictionary word is converted in an off-line phase into a deterministic finite state automaton. Given an input string and the automaton derived from the dictionary word, the computation of the edit distance between the two strings corresponds to a traversal of the states of the automaton. This procedure needs time which is only linear in the length of the input string. It is independent of the length of the dictionary word. Given not only one butN different dictionary words, their corresponding automata can be combined into a single deterministic finite state automaton. Thus the computation of the edit distance between the input word and each dictionary entry, and the determination of the nearest neighbor in the dictionary need time that is only linear in the length of the input string. However, the number os states of the automation is exponential.ZusammenfassungEs wird ein neuer Algorithmus für die Berechnung der Editierdistanz von Zeichenketten angegeben. Der Algorithmus beruht auf der Annahme, dass eine der beiden zu vergleichenden Zeichenketten ein a priori bekannter Eintrag in einen Wörterbuch ist. Dieser Wörterbucheintrag wird in einer off-line Phase in einen deterministischen endlichen Automaten konvertiert. Für einen gegebenen Automaten und ein Eingabewort entspricht die Berechnung der Editiordistanz einer Traversierung verschiedener Zustände dieses Automaten. Diese Prozedur benötigt Zeit, die lediglich linear von der Länge des Eingabeworts abhängt. Die Zeit ist unabhängig von der Länge des Wörterbucheintrags. Die endlichen Automaten, welche zuN verschiedenen Wörterbucheinträgen gehören, können zu einem einzigen Automaten zusammengefasst werden. Auf diese Weise benötigen die Berechnung der Editierdistanz zwischen dem Eingabewort und jedem Wörterbucheintrag sowie die Bestimmung des nächsten Nachbarn im Wörterbuch lediglich lineare Zeit hinsichtlich der Länge des Eingabeworts. Die Anzahl der Zustände des Automaten ist jedoch von exponentieller Grössenordnung.

[1]  Robert A. Wagner,et al.  An Extension of the String-to-String Correction Problem , 1975, JACM.

[2]  Raffaele Giancarlo,et al.  Data structures and algorithms for approximate string matching , 1988, J. Complex..

[3]  David Sankoff,et al.  Time Warps, String Edits, and Macromolecules: The Theory and Practice of Sequence Comparison , 1983 .

[4]  Horst Bunke,et al.  Advances In Structural And Syntactic Pattern Recognition , 1993 .

[5]  Graham A Stephen,et al.  Approximate String Matching , 1994, Encyclopedia of Algorithms.

[6]  Dave Elliman,et al.  A review of segmentation and contextual analysis techniques for text recognition , 1990, Pattern Recognit..

[7]  Vladimir I. Levenshtein,et al.  Binary codes capable of correcting deletions, insertions, and reversals , 1965 .

[8]  Horst Bunke Recent Advances in String Matching , 1993 .

[9]  Jeffrey D. Ullman,et al.  Introduction to Automata Theory, Languages and Computation , 1979 .

[11]  Esko Ukkonen,et al.  Finding Approximate Patterns in Strings , 1985, J. Algorithms.

[12]  E. Tanaka A string correction method based on the context-dependent similarity , 1988 .

[13]  Esko Ukkonen,et al.  Algorithms for Approximate String Matching , 1985, Inf. Control..

[14]  M. W. Du,et al.  A model and a fast algorithm for multiple errors spelling correction , 1992, Acta Informatica.

[15]  Mike Paterson,et al.  A Faster Algorithm Computing String Edit Distances , 1980, J. Comput. Syst. Sci..

[16]  Alfred V. Aho,et al.  Algorithms for Finding Patterns in Strings , 1991, Handbook of Theoretical Computer Science, Volume A: Algorithms and Complexity.

[17]  Thomas G. Szymanski,et al.  A fast algorithm for computing longest common subsequences , 1977, CACM.

[18]  Zvi Galil,et al.  An Improved Algorithm for Approximate String Matching , 1989, SIAM J. Comput..

[19]  Udi Manber,et al.  Fast text searching: allowing errors , 1992, CACM.

[20]  Michael J. Fischer,et al.  The String-to-String Correction Problem , 1974, JACM.

[21]  Sargur N. Srihari,et al.  Computer Text Recognition and Error Correction , 1985 .

[22]  守屋 悦朗,et al.  J.E.Hopcroft, J.D. Ullman 著, "Introduction to Automata Theory, Languages, and Computation", Addison-Wesley, A5変形版, X+418, \6,670, 1979 , 1980 .

[23]  Gad M. Landau,et al.  Fast Parallel and Serial Approximate String Matching , 1989, J. Algorithms.