Friday, October 5, 2018

Textual description of firstImageUrl

Entfernung bearbeiten - Wikipedia


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

( x ) ) und w sub ( x y ) mit den Operationen. [2]

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.

Beispiel [ edit ]

Der Levenshtein-Abstand zwischen "Kätzchen" und "Sitzen" beträgt 3. Ein minimales Bearbeitungsskript, das den ersten in letzteren verwandelt, ist:

  1. k itten → s itten (Substitution von "s" für "k")
  2. sitt und n → sitt i n (Substitution von "i" durch "e")
  3. Sittin → Sittin g (Einfügen von "g" am Ende).

LCS-Abstand (nur Einfügungen und Löschungen) gibt eine andere Entfernung an und minimales Bearbeitungsskript:

  1. löschen k bei 0
  2. einfügen s bei 0
  3. löschen und bei 4
  4. einfügen i bei 4
  5. einfügen g bei 6

für Gesamtkosten / Entfernung von 5 Operationen.

Eigenschaften [ edit ]

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

  • Jede Bearbeitungsoperation hat positive Kosten,
  • für jede Operation gibt es eine inverse Operation mit gleichen Kosten.

Mit diesen Eigenschaften werden die metrischen Axiome wie folgt erfüllt:

d ( a b ) = 0 wenn und nur wenn a = b, da jede Saite mit Hilfe von Null-Operationen trivial in sich selbst umgewandelt werden kann. [19659056] d ( a b )> 0, wenn a [1945 b b da dies mindestens eine Operation erfordern würde Nicht-Null-Kosten
d ( a b ) = d ( b a ) durch die Gleichheit der Kosten jeder Operation und ihrer Inversen.
Ungleichung des Dreiecks: d ( a c ) ≤ d ( a b ) + d ( b c ).
). [5]

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:

  • Die LCS-Distanz ist oben durch die Summe der Längen eines Saitenpaares begrenzt. [1]: 37
  • Die LCS-Distanz ist eine obere Grenze der Levenshtein-Distanz.
  • Für Saiten der gleichen Länge, Hamming-Abstand ist eine Obergrenze für den Abstand von Levenshtein. [1]

Unabhängig von Kosten / Gewichten gilt die folgende Eigenschaft aller Editierabstände:

  • Wenn a und b ein gemeinsames Präfix haben, hat dieses Präfix keine Auswirkung auf die Entfernung. Formal, wenn a = uv und b = uw dann d ] b ) = d ( v w ). [4] Dies ermöglicht die Beschleunigung vieler Berechnungen, die die Editierentfernung und das Editieren betreffen Skripte, da gängige Präfixe und Suffixe in linearer Zeit übersprungen werden können.

Computation [ edit ]

Der erste Algorithmus zur Berechnung des minimalen Editierabstands zwischen einem Paar von Strings wurde von Damerau veröffentlicht 1964. [6]

Allgemeiner Algorithmus [ edit ]

Bei Verwendung der ursprünglichen Operationen von Levenshtein betrug der Editierabstand zwischen