Levenshtein Abstandsformel in CoffeeScript?

8

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

    
joe norton 09.07.2011, 23:49
quelle

1 Antwort

5

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.

    
Trevor Burnham 10.07.2011, 00:47
quelle