PHP Levenshtein -Funktion

PHP Levenshtein -Funktion
Die Levenshtein -Entfernung wird berechnet, indem die Gesamtzahl der Zeichen gezählt wird, die zum Ändern einer Zeichenfolge erforderlich sind. PHP verfügt. Diese Funktion vergleicht die Stringwerte auf Fallsensitive. PHP verfügt. Die unterschiedlichen Verwendungen der Levenshtein () -Funktion werden in diesem Tutorial gezeigt.

Syntax:
Int Levenshtein (String $ String1, String $ String2, int $ Insertion_Cost = 1, int $ ersatz_cost = 1,
int $ deletion_cost = 1)

Diese Funktion hat fünf Argumente. Die ersten und zweiten Argumente sind obligatorisch und die anderen fünf Argumente sind optional. Die Zwecke dieser fünf Argumente sind im Folgenden beschrieben:

  • $ string1: Es enthält die erste Zeichenfolge, die mit dem zweiten Argument verglichen wird.
  • $ string2: Es enthält die zweite Zeichenfolge, die mit dem ersten Argument verglichen wird.
  • $ Insertion_Cost: Es enthält die Kosten für die Einführung.
  • $ ersatz_cost: Es enthält die Kosten für den Austausch.
  • $ deletion_cost: Es enthält die Kosten für das Löschen.

Diese Funktion gibt den Levenshtein -Abstand zwischen den ersten und zweiten Argumentwerten der Funktion zurück. Wenn die Gesamtzahl der Zeichen der Saiten mehr als 255 beträgt, gibt die Funktion -1 zurück.

Verschiedene Beispiele für Levenshtein () Funktion

Die unterschiedlichen Verwendungen der Levenshtein () -Funktion werden in diesem Teil des Tutorials unter Verwendung mehrerer Beispiele angezeigt.

Beispiel 1: Vergleichen Sie zwei Saiten eines einzelnen Wortes

Erstellen Sie eine PHP. Der Wert der Levenshtein -Entfernung wird später gedruckt.

// die erste Zeichenfolge definieren
$ str1 = 'Fool';
// die zweite Zeichenfolge definieren
$ str2 = 'Feel';
// Berechnen Sie den Levenshtein -Abstand
Echo "

Die Levenshtein -Entfernung ist ".Levenshtein ($ str1, $ str2)."

";
?>

Ausgang:

Die folgende Ausgabe wird nach der Ausführung des vorherigen Skripts angezeigt. Die Levenshtein -Distanz von zwei Wörtern, „Narren“ und „Feeling“, ist 2, die in der Ausgabe gedruckt sind:

Beispiel 2: Vergleichen Sie zwei Zeichenfolgen mehrerer Wörter

Erstellen Sie eine PHP. Der Wert der Levenshtein -Entfernung wird später gedruckt. Hier enthält die erste Zeichenfolge drei Wörter und die zweite Zeichenfolge enthält zwei Wörter. Ein Wort ist in beiden Saiten üblich. Der Levenshtein -Abstand dieser beiden Saiten wird später gedruckt.

// die erste Zeichenfolge definieren
$ str1 = 'PHP -Programmiersprache';
// die zweite Zeichenfolge definieren
$ str2 = 'Java -Programmierung';
// Berechnen Sie den Levenshtein -Abstand
Echo "

Die Levenshtein -Entfernung ist ".Levenshtein ($ str1, $ str2)."

";
?>

Ausgang:

Die folgende Ausgabe wird nach der Ausführung des vorherigen Skripts angezeigt. Hier ist der erste String -Wert "PHP -Programmiersprache"Und die zweite Zeichenfolge ist"Java -Programmierung”. Das Wort "Programmierung”Ist in beiden Saiten üblich. Vier Zeichen müssen geändert werden, um "Java" von "PHP" zu erhalten, und 9 Zeichen (Sprache) müssen aus der ersten Zeichenfolge entfernen, um die zweite Zeichenfolge zu erhalten. Die Levenshtein -Entfernung beträgt also 4+9 = 13.

Beispiel 3: Suchen Sie im Array die genaue oder am nächsten gelegene Übereinstimmung

Erstellen Sie eine PHP -Datei mit dem folgenden Skript, in dem eine bestimmte Zeichenfolge in einem Array durchsucht werden. Ermitteln Sie den Wert aus dem Array, der genau oder teilweise mit dem Wert der Suchzeichenfolge übereinstimmt, indem Sie den Levenshtein -Abstand zwischen der Suchzeichenfolge und jedem Element des Arrays berechnen. Der Suchzeichenfolgewert wird aus dem URL -Parameter entnommen. Wenn kein URL -Parameter angegeben ist, wird der Standard -Zeichenfolgewert für die Suchzeichenfolge verwendet. Der Anfangswert von $ Short_Distance wird auf -1 eingestellt, bevor die Array -Werte iteriert werden, um die genaue oder engste Übereinstimmung zu finden. Der erste für jede Schleife wird verwendet, um die vorhandenen Werte des Arrays zu drucken. Der Zweite für jede Die Schleife wird verwendet, um die Array -Werte zu iterieren und den Levenshtein -Abstand zwischen jedem Arraywert und der Suchzeichenfolge in jeder Iteration zu berechnen. Wenn die Levenshtein -Entfernung in jeder Iteration zu 0 wird, ist die genaue Übereinstimmung der Suchzeichenfolge im Array vorhanden. Andernfalls wird die engste Übereinstimmung der Suchzeichenfolge aus den Array -Werten abgerufen, die auf dem niedrigsten Levenshtein -Entfernungswert basieren.

// Setzen Sie den Suchwert fest
$ search = isset ($ _ get ['src'])? $ _Get ['src']: "Java";
// Standarddistanzwert festlegen
$ Short_distance = -1;
// ein Array deklarieren
$ languages ​​= array ('php', 'perl', 'python', 'bash', 'java', 'c ++', 'c#', 'java');
Echo "Array -Werte sind:
";
foreach ($ lages as $ Lang)
Echo $ Lang."
";
Echo "Suchwort: Suchwort: $ Search";
// Durchsuchen Sie den genauen oder nächsten Wert im Array, der mit dem Suchwert übereinstimmt
foreach ($ languages ​​as $ sprach)
// Berechnen Sie den Levenshtein -Abstand
$ lev_distance = levenshtein ($ such, $ sprach);
// Überprüfen Sie die genaue Übereinstimmung
if ($ lev_distance == 0)
$ Short_distance = 0;
Echo "
Die genaue Übereinstimmung wird gefunden.";
brechen;

// Suchen Sie die engste Übereinstimmung
if ($ lev_distance <= $short_distance || $short_distance < 0)
// Die kurze Strecke zurücksetzen
$ Short_distance = $ lev_distance;
// den nächsten Wert zurücksetzen
$ close_value = $ Sprache;


// Drucken Sie den nächstgelegenen übereinstimmenden Wert
if ($ Short_distance> 0)
Echo "
Der engste Wert des Suchworts ist ".$ close_value;
?>

Ausgang:

Die folgende Ausgabe erscheint nach der Ausführung des vorherigen Skripts, wenn kein URL -Parameter angegeben ist. In diesem Fall ist der Standard -Suchwert “JavaDas im Array existiert. Die Levenshtein -Entfernung wird also bei diesem Suchwert bei der Berechnung der Levenshtein -Entfernung mit dem fünften Element des Arrays, das auch ist, bei der Berechnung der Levenshtein -Entfernung zu 0Java”:

Die folgende Ausgabe erscheint nach der Ausführung des vorherigen Skripts für den Suchwert, der istPythonDas ist im URL -Parameter angegeben. In diesem Fall der Suchwert “Python”Existiert im Array. Die Levenshtein -Entfernung wird also bei diesem Suchwert bei der Berechnung der Levenshtein -Entfernung mit dem dritten Element des Arrays, das auch ist, bei der Berechnung des Levenshtein -Werts zu 0Python”:

Die folgende Ausgabe wird nach der Ausführung des vorherigen Skripts für den Suchwert angezeigt "Python3Das ist im URL -Parameter angegeben. In diesem Fall lautet der Suchwert “Python3"Die teilweise mit einem Element des Arrays übereinstimmt, das ist"Python”. Die Levenshtein -Entfernung wird also für diesen Suchwert bei der Berechnung der Levenshtein -Entfernung mit dem dritten Element des Arrays:

Abschluss

Die unterschiedlichen Verwendungen der Levenshtein () -Funktion, die in diesem Tutorial gezeigt werden.