Ich versuche, eine CoffeeScript-Implementierung der Levenshtein-Distanzformel zu erstellen oder zu finden, auch bekannt als Distanz bearbeiten. Hier ist, was ich bisher habe, jede Hilfe wäre sehr geschätzt.
%Vor%Übrigens: Ich weiß, dass dieser Code auf vielen Ebenen falsch ist, ich freue mich über jede konstruktive Kritik. Nur um zu verbessern und diese Formel herauszufinden!
CodeEdit1: Die Fehler, auf die Trevor hingewiesen hat, wurden aktualisiert, der aktuelle Code oben enthält diese Änderungen
Update: Die Frage, die ich stelle, ist - wie machen wir Levenshtein in CoffeeScript?
Hier sind die "Schritte" für den Levenshtein-Distanzalgorithmus, damit Sie sehen können, was ich erreichen möchte.
Schritte
1
Setze n auf die Länge von s.
Stelle m auf die Länge von t ein.
Wenn n = 0 ist, m zurückgeben und beenden.
Wenn m = 0 ist, gebe n zurück und beende.
Konstruiere eine Matrix mit 0..m Zeilen und 0..n Spalten.
2
Initialisiere die erste Zeile auf 0..n.
Initialisiere die erste Spalte auf 0..m.
3 Untersuche jedes Zeichen von s (i von 1 bis n).
4 Untersuche jedes Zeichen von t (j von 1 bis m).
5 Wenn s [i] gleich t [j] ist, sind die Kosten 0. Wenn s [i] nicht gleich t [j] ist, sind die Kosten 1.
6 Setze die Zelle d [i, j] der Matrix gleich dem Minimum von: ein. Die Zelle unmittelbar über plus 1: d [i-1, j] + 1. b. Die Zelle unmittelbar links neben 1: d [i, j-1] + 1. c. Die Zelle diagonal über und links plus die Kosten: d [i-1, j-1] + kosten.
7 Nachdem die Iterationsschritte (3, 4, 5, 6) abgeschlossen sind, wird die Entfernung in Zelle d [n, m] gefunden.
Quelle: http: //www.merriampark.com/ld.htm
Diese Seite (verknüpft mit der von Ihnen erwähnten Ressource) bietet eine JavaScript-Implementierung des Levenshtein-Distanzalgorithmus. Basierend auf dieser und dem Code, den du gepostet hast, hier ist meine CoffeeScript-Version:
%Vor%Es scheint zu testen, Licht, aber lassen Sie mich wissen, wenn es irgendwelche Probleme gibt.
Tags und Links coffeescript levenshtein-distance edit-distance