Foren
Neue Beiträge
Foren durchsuchen
Was ist neu?
Neue Beiträge
Profilnachrichten
Online
Anmelden
Registrieren
Aktuelles
Suche
Suche
Nur Titel durchsuchen
Von:
Neue Beiträge
Foren durchsuchen
Menü
Anmelden
Registrieren
App installieren
Installieren
Programmierung
PHP
levenshtein
JavaScript ist deaktiviert. Für eine bessere Darstellung aktiviere bitte JavaScript in deinem Browser, bevor du fortfährst.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen
alternativen Browser
verwenden.
Auf Thema antworten
Beitrag
[QUOTE="PHP, post: 6059, member: 8"] [b]Berechnet die Levenshtein-Distanz zwischen zwei Strings[/b] Die Levenshtein-Distanz bezeichnet die minimale Anzahl von Zeichen, die Sie ersetzen, einfügen oder löschen müssen, um [I]str1[/I]in [I]str2[/I]umzuwandeln. Die Komplexität des Algorithmus ist [I]0(m*n)[/I], wobei [I]n[/I] und[I]m[/I] die Länge von [I]str1[/I]und[I]str2[/I]darstellen (deutlich besser, wenn man mit similar_text() vergleicht, was mit 0(max(n,m)**3) daherkommt, aber trotzdem immer noch teuer). [B]Beispiel:[/B] [PHP] // eingegebenes falsch geschriebenes Wort $input = 'carrrot'; // Wörterarray als Vergleichsquelle $words = array('apple','pineapple','banana','orange', 'radish','carrot','pea','bean','potato'); // noch keine kürzeste Distanz gefunden $shortest = -1; // durch die Wortliste gehen, um das ähnlichste Wort zu finden foreach ($words as $word) { // berechne die Distanz zwischen Inputwort und aktuellem Wort $lev = levenshtein($input, $word); // auf einen exakten Treffer prüfen if ($lev == 0) { // das nächste Wort ist das Wort selbst (exakter Treffer) $closest = $word; $shortest = 0; // Schleife beenden, da wir einen exakten Treffer gefunden haben break; } // Wenn die Distanz kleiner ist als die nächste gefundene kleinste Distanz // ODER wenn ein nächstkleineres Wort noch nicht gefunden wurde if ($lev[/PHP] [/QUOTE]
Zitate
Authentifizierung
Antworten
Programmierung
PHP
levenshtein
Oben
Unten