levenshtein

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

levenshteinBerechnet die Levenshtein-Distanz zwischen zwei Strings

Beschreibung

levenshtein(
    string $string1,
    string $string2,
    int $insertion_cost = 1,
    int $replacement_cost = 1,
    int $deletion_cost = 1
): int

Die Levenshtein-Distanz bezeichnet die minimale Anzahl von Zeichen, die Sie ersetzen, einfügen oder löschen müssen, um string1 in string2 umzuwandeln. Die Komplexität des Algorithmus ist O(m*n), wobei n und m die Länge von string1 und string2 darstellen (recht gut, im Vergleich zu similar_text(), das O(max(n,m)**3) ist, aber trotzdem immer noch aufwendig).

Wenn insertion_cost, replacement_cost und/oder deletion_cost ungleich 1 sind, passt sich der Algorithmus an, um die günstigsten Transformationen zu wählen. Wenn z.B. $insertion_cost + $deletion_cost < $replacement_cost, werden keine Ersetzungen durchgeführt, sondern stattdessen Einfügungen und Löschungen.

Parameter-Liste

string1

Eine der Zeichenketten, für die die Levenshtein-Distanz zu berechnen ist.

string2

Eine der Zeichenketten, für die die Levenshtein-Distanz zu berechnen ist.

insertion_cost

Definiert die Kosten des Einfügens.

replacement_cost

Definiert die Kosten des Ersetzens.

deletion_cost

Definiert die Kosten des Löschens.

Rückgabewerte

Die Funktion gibt die Levenshtein-Distanz zwischen den beiden Argument-Strings oder -1 zurück, sofern eines der Argumente länger als 255 Zeichen ist.

Changelog

Version Beschreibung
8.0.0 Vor dieser Version musste levenshtein() entweder mit zwei oder fünf Argumenten aufgerufen werden.

Beispiele

Beispiel #1 levenshtein()-Beispiel

<?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 <= $shortest || $shortest 0) {
        
// setze den nächstliegenden Treffer und die kürzestes Distanz
        
$closest  $word;
        
$shortest $lev;
    }
}

echo 
"Eingegebenes Wort: $input\n";
if (
$shortest == 0) {
    echo 
"Exakter Treffer gefunden: $closest\n";
} else {
    echo 
"Meinten Sie: $closest?\n";
}

?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Eingegebenes Word: carrrot
Meinten Sie: carrot?

Siehe auch

  • soundex() - Berechnet die Laut-Ähnlichkeit eines Strings
  • similar_text() - Berechnet die Ähnlichkeit zweier Zeichenketten
  • metaphone() - Berechnet den Metaphone-Schlüssel eines Strings

Hier Kannst Du einen Kommentar verfassen


Bitte gib mindestens 10 Zeichen ein.
Wird geladen... Bitte warte.
* Pflichtangabe
Es sind noch keine Kommentare vorhanden.

Midjourney Tutorial - Anleitung für Anfänger

Über Midjourney, dem Tool zur Erstellung digitaler Bilder mithilfe von künstlicher Intelligenz, gibt es ein informatives Video mit dem Titel "Midjourney Tutorial auf Deutsch - Anleitung für Anfänger" ...

Mike94

Autor : Mike94
Kategorie: KI Tutorials

Grundlagen von Views in MySQL

Views in einer MySQL-Datenbank bieten die Möglichkeit, eine virtuelle Tabelle basierend auf dem Ergebnis einer SQL-Abfrage zu erstellen. ...

admin

Autor : admin
Kategorie: mySQL-Tutorials

Definition von Stored Procedures - eine Einführung

Stored Procedures sind vordefinierte SQL-Codeblöcke, die in einer Datenbank gespeichert sind und bei Bedarf aufgerufen werden können. ...

Bernie

Autor : ebiz-consult GmbH & Co. KG
Kategorie: mySQL-Tutorials

Tutorial veröffentlichen

Tutorial veröffentlichen

Teile Dein Wissen mit anderen Entwicklern weltweit

Du bist Profi in deinem Bereich und möchtest dein Wissen teilen, dann melde dich jetzt an und teile es mit unserer PHP-Community

mehr erfahren

Tutorial veröffentlichen

emails bei neuen Jobs

Hallo zusammen, ich möchte das Team von akadhilfe24 für ghostwriting bachelorarbeit (https://akadhilfe24.de/bachelorarbeit-schreiben-lassen/) em ...

Geschrieben von VittoCheri am 25.04.2024 22:51:10
Forum: Fragen/Vorschläge zum Forum
Berechnungen durchführen

Hallo liebe Forenmitglieder, meine erste frage ist zum Aufbau meiner kleinen Berechnungswebseite, nichts kommerzielles, soll nur eine Anwendung f ...

Geschrieben von matze511 am 21.04.2024 21:42:37
Forum: PHP Developer Forum
Professioneller Webentwickler & Webdesigner

Of course, here is the translation: Hello, Thank you for your interest in the long-term project. Your extensive skills and experience in web dev ...

Geschrieben von Athelstan am 15.04.2024 09:25:39
Forum: Jobgesuche
Wir stellen unsere SEO-Agentur vor

Hallo In der heutigen digitalen Welt war es für Unternehmen noch nie so einfach, ihre Reichweite weltweit zu vergrößern. Wenn Sie außerhalb I ...

Geschrieben von thomasmuller am 14.04.2024 07:18:33
Forum: User stellen sich vor