In der Computerlinguistik und in der Informatik edit distance ist eine Methode zum Quantifizieren, wie unähnlich zwei Zeichenfolgen (z. B. Wörter) sind, indem die Mindestanzahl von Operationen gezählt wird, die erforderlich sind, um eine Zeichenfolge in eine Zeichenfolge umzuwandeln andere. Bearbeiten Sie Entfernungen, um Anwendungen in der Verarbeitung natürlicher Sprache zu finden, bei denen die automatische Rechtschreibkorrektur Kandidatenkorrekturen für ein falsch geschriebenes Wort ermitteln kann, indem Sie Wörter aus einem Wörterbuch auswählen, die einen geringen Abstand zum betreffenden Wort haben. In der Bioinformatik kann damit die Ähnlichkeit von DNA-Sequenzen quantifiziert werden, die als Zeichenfolgen der Buchstaben A, C, G und T betrachtet werden können.
Unterschiedliche Definitionen einer Bearbeitungsentfernung verwenden unterschiedliche Mengen von Zeichenkettenoperationen. Die Levenshtein-Distanzoperationen sind das Entfernen, Einfügen oder Ersetzen eines Zeichens in der Zeichenfolge. Die Levenshtein-Distanz ist die am häufigsten verwendete Metrik und wird in der Regel unter "Distanz bearbeiten" verstanden. [1]
Formale Definition und Eigenschaften [ edit
[19]; und b über ein Alphabet [1945 (z. B. die Menge der ASCII-Zeichen, die Menge der Bytes [0..255] usw.), die Editierentfernung d [ ] a b ) ist die Reihe von Bearbeitungsvorgängen mit minimalem Gewicht, die a in b umwandelt. Eine der einfachsten Sätze von Editieroperationen ist die von Levenshtein im Jahre 1966 definierte: [2]
- Einfügen eines einzelnen Symbols. Wenn a = u v dann wird durch Einfügen des Symbols x u x v erzeugt. Dies kann auch mit ε → x bezeichnet werden, wobei mit ε die leere Zeichenfolge bezeichnet wird.
- Deletion eines einzelnen Symbolwechsels u x v u v ( x → ε).
- Substitution eines einzelnen Symbols x y für ein Symbol y y. [1945 x Änderungen u x v bis u y v [ x → y ).
In der ursprünglichen Definition von Levenshtein hat jeder dieser Vorgänge Stückkosten (außer dass die Substitution eines Zeichens an sich Null kostet), so dass der Abstand zwischen Levenshtein und dem Minimum gleich ist ] Anzahl der zur Umwandlung erforderlichen Operationen a bis b . Eine allgemeinere Definition bezieht nichtnegative Gewichtsfunktionen ein w ins ( x ), w del Zusätzliche primitive Operationen haben wurde vorgeschlagen. Ein häufiger Fehler beim Eingeben von Text ist Transposition von zwei benachbarten Zeichen, die formal durch eine Operation gekennzeichnet sind, die u x y v in ändert y x v . [3][4] Zur Korrektur der OCR-Ausgabe wurden die Vorgänge merge und aufgeteilt, die einen einzigen Vorgang ersetzen Zeichen in ein Paar von ihnen oder umgekehrt. [4] Andere Varianten der Editierentfernung werden durch Einschränkung der Operationsmenge erhalten. Die längste gemeinsame Teilsequenz (LCS) ist die Editierentfernung mit Einfügung und Löschung als die beiden einzigen Editiervorgänge, beide zu Stückkosten. [1]: 37 Ebenso, indem nur Substitutionen (wiederum zu Stückkosten) zugelassen werden. Hamming-Distanz wird erhalten; Dies muss auf Saiten gleicher Länge beschränkt sein. [1] Jaro-Winkler-Entfernung kann aus einer Bearbeitungsentfernung erhalten werden, in der nur Transpositionen zulässig sind. Der Levenshtein-Abstand zwischen "Kätzchen" und "Sitzen" beträgt 3. Ein minimales Bearbeitungsskript, das den ersten in letzteren verwandelt, ist: LCS-Abstand (nur Einfügungen und Löschungen) gibt eine andere Entfernung an und minimales Bearbeitungsskript: für Gesamtkosten / Entfernung von 5 Operationen. Das Bearbeiten der Entfernung mit nicht negativen Kosten erfüllt die Axiome einer Metrik, was zu einem metrischen Raum für Strings führt, wenn die folgenden Bedingungen erfüllt sind: [19659051]: 37 Mit diesen Eigenschaften werden die metrischen Axiome wie folgt erfüllt: Levenshtein-Abstand und LCS-Abstand mit Stückkosten erfüllen die oben genannten Bedingungen und damit die metrischen Axiome. Varianten der Editierentfernung, die keine richtigen Metriken sind, wurden ebenfalls in der Literatur berücksichtigt. [1] Weitere nützliche Eigenschaften von Stückentfernungsentfernungsentfernungen umfassen: Unabhängig von Kosten / Gewichten gilt die folgende Eigenschaft aller Editierabstände: Der erste Algorithmus zur Berechnung des minimalen Editierabstands zwischen einem Paar von Strings wurde von Damerau veröffentlicht 1964. [6] Bei Verwendung der ursprünglichen Operationen von Levenshtein betrug der Editierabstand zwischen und ist gegeben durch definiert durch die Wiederholung [2] Die einfache, rekursive Methode zur Bewertung dieser Rekursion erfordert exponentielle Zeit. Daher wird es normalerweise unter Verwendung eines dynamischen Programmieralgorithmus berechnet, der üblicherweise Wagner und Fischer [7] zugeschrieben wird, obwohl er mehrere Erfindungen hatte. [2][3] Nach Abschluss des Wagner-Fischer-Algorithmus eine minimale Sequenz von Editieroperationen kann als Rückverfolgung der Operationen abgerufen werden, die während des dynamischen Programmieralgorithmus verwendet werden, beginnend bei ]. Dieser Algorithmus hat eine zeitliche Komplexität von Θ ( m n ). Wenn der volle dynamische Programmiertisch aufgebaut ist, ist seine Platzkomplexität ebenfalls [( m n ) ; dies kann verbessert werden auf min (min ( m n )) durch Beobachtung, dass der Algorithmus zu jedem Zeitpunkt nur zwei Zeilen (oder zwei Spalten) benötigt in Erinnerung. Diese Optimierung macht es jedoch unmöglich, die minimale Reihe von Editieroperationen abzulesen. [3] Eine lineare Lösung dieses Problems bietet der Hirschberg-Algorithmus. [8]: 634 Ukkonen beschreibt den oben beschriebenen Wagner-Fisher-Algorithmus und beschreibt mehrere Varianten, [9] von denen eine zwei Saiten und eine maximale Editierentfernung und nimmt kehrt zurück min ( s d ) . Dies wird dadurch erreicht, dass nur ein Teil der dynamischen Programmiertabelle um die Diagonale herum berechnet und gespeichert wird. Dieser Algorithmus braucht Zeit O ( s × min ( m n )) wobei m und n sind die Längen der Saiten. Die Komplexität des Raums ist O ( s ²) oder O ( s ) je nachdem, ob die Bearbeitungsreihenfolge abgelesen werden muss. [3] Weitere Verbesserungen von Landau ,. Myers und Schmidt geben einen O ( s ^ 2 + max ( m n )) Zeitalgorithmus. Edit distance findet Anwendungen in der Computerbiologie und Verarbeitung natürlicher Sprache, z. die Korrektur von Rechtschreibfehlern oder OCR-Fehlern und die Annäherung der Zeichenfolgen, wobei das Ziel darin besteht, in vielen längeren Texten Übereinstimmungen für kurze Zeichenfolgen zu finden, wenn eine geringe Anzahl von Unterschieden zu erwarten ist. Es gibt verschiedene Algorithmen, die neben der Berechnung des Abstands zwischen einem Saitenpaar Probleme lösen, um verwandte Arten von Problemen zu lösen. Eine Verallgemeinerung der Editierentfernung zwischen Zeichenfolgen ist die Sprachentfernungsentfernung zwischen einer Zeichenfolge und einer Sprache, normalerweise eine formale Sprache. Anstatt die Editierentfernung zwischen einer Zeichenfolge und einer anderen zu berücksichtigen, ist die Sprachentfernungsentfernung die minimale Editierentfernung, die zwischen einer festen Zeichenfolge und einer beliebigen -Saite aus einem Satz von Zeichenfolgen erreicht werden kann. Formell, für jede Sprache L und Zeichenfolge x über einem Alphabet [1945die Sprache Edit Entfernung d [ L x ) gegeben durch [11]wobei [19659291] d Die Editierdistanz für Sprachen hat viele verschiedene Anwendungen gefunden, wie beispielsweise RNA-Faltung, Fehlerkorrektur und Lösungen für die Optimum-Stack-Generation Problem. [11][14] Beispiel [ edit ]
Eigenschaften [ edit ]
Computation [ edit ]
Allgemeiner Algorithmus [ edit ]
Verbesserte Algorithmen [ edit ]
Anwendungen [ edit ]
Language Distanz bearbeiten [ edit ]
Siehe auch [ edit ]
Referenzen [ edit
No comments:
Post a Comment