Funkcja PHP Levenshtein

Funkcja PHP Levenshtein
Odległość Levenshtein jest obliczana przez zliczenie całkowitej liczby znaków wymaganych do modyfikacji ciągu poprzez wkładanie, aktualizację lub usuwanie jednego lub więcej znaków, aby uzyskać inny ciąg. PHP ma wbudowaną funkcję o nazwie Levenshtein () w celu obliczenia odległości levenshteina między dwoma ciągami poprzez porównanie ciągów. Ta funkcja porównuje wartości ciągów w sposób wrażliwy. PHP ma inną funkcję o nazwie podobne_text () do wykonania tego samego zadania, ale funkcja levenshtein () zwraca dokładniejsze wyniki i działa szybciej. Różne zastosowania funkcji levenshtein () pokazano w tym samouczku.

Składnia:
int levenshtein (string $ string1, string $ string2, int $ insertion_cost = 1, int $ zamiennik_cost = 1,
int $ delecit_cost = 1)

Ta funkcja ma pięć argumentów. Pierwsze i drugie argumenty są obowiązkowe, a pozostałe pięć argumentów jest opcjonalne. Cele tych pięciu argumentów opisano następująco:

  • $ string1: Zawiera pierwszy ciąg, który jest porównywany z drugim argumentem.
  • $ string2: Zawiera drugi ciąg, który jest porównywany z pierwszym argumentem.
  • $ insertion_cost: Zawiera koszt wstawienia.
  • $ zamiennik_cost: Zawiera koszt wymiany.
  • $ delecit_cost: zawiera koszt usunięcia.

Ta funkcja zwraca odległość levenshteina między pierwszymi i drugim wartościami argumentów funkcji. Jeśli całkowita liczba znaków ciągów jest większa niż 255, funkcja zwraca -1.

Różne przykłady funkcji levenshtein ()

Różne zastosowania funkcji levenshtein () pokazano w tej części samouczka za pomocą wielu przykładów.

Przykład 1: Porównaj dwa ciągi jednego słowa

Utwórz plik PHP z następującym skryptem, który oblicza odległość Levenshtein między dwoma pojedynczymi słowami za pomocą funkcji levenshtein (). Wartość odległości Levenshtein jest wydrukowana później.

// Zdefiniuj pierwszy ciąg
$ str1 = „głupiec”;
// Zdefiniuj drugi ciąg
$ str2 = „czuć”;
// Oblicz odległość Levenshtein
Echo "

Odległość Levenshtein wynosi ".Levenshtein ($ str1, $ str2)."

";
?>

Wyjście:

Pojawi się następujące dane wyjściowe po wykonaniu poprzedniego skryptu. Odległość Levenshtein dwóch słów, „głupca” i „samego”, wynosi 2, które są wydrukowane na wyjściu:

Przykład 2: Porównaj dwa ciągi wielu słów

Utwórz plik PHP z następującym skryptem, który oklutuje odległość Levenshtein między dwoma ciągami wielu słów za pomocą funkcji levenshtein (). Wartość odległości Levenshtein jest wydrukowana później. Tutaj pierwszy ciąg zawiera trzy słowa, a drugi ciąg zawiera dwa słowa. Jedno słowo jest powszechne w obu strunach. Odległość Levenshtein tych dwóch strun jest wydrukowana później.

// Zdefiniuj pierwszy ciąg
$ str1 = 'PHP Programming Language';
// Zdefiniuj drugi ciąg
$ str2 = „programowanie Java”;
// Oblicz odległość Levenshtein
Echo "

Odległość Levenshtein wynosi ".Levenshtein ($ str1, $ str2)."

";
?>

Wyjście:

Pojawi się następujące dane wyjściowe po wykonaniu poprzedniego skryptu. Tutaj pierwsza wartość ciągu to „Język programowania PHP”A drugi ciąg jest„Programowanie Java". Słowo "Programowanie”Jest powszechny w obu strunach. Do zmiany „php” wymagane są cztery znaki, aby uzyskać „Java” z „php” i 9 znaków (język) z pierwszego ciągu, aby uzyskać drugi ciąg. Tak więc odległość Levenshtein wynosi 4+9 = 13.

Przykład 3: Wyszukaj dokładny lub najbliższy dopasowanie w tablicy

Utwórz plik PHP z następującym skryptem, który przeszukuje określony ciąg w tablicy. Dowiedz się o wartości z tablicy, która dokładnie lub częściowo odpowiada wartości ciągu wyszukiwania, obliczając odległość Levenshtein między ciągiem wyszukiwania a każdym elementem tablicy. Wartość ciągu wyszukiwania pochodzi z parametru URL. Jeśli nie podano parametru URL, domyślna wartość ciągu jest używana dla ciągu wyszukiwania. Wartość początkowa $ Short_Distance jest ustawiona na -1 przed iterowaniem wartości tablicy, aby znaleźć dokładne lub najbliższe dopasowanie. Pierwszy dla każdego pętla służy do drukowania istniejących wartości tablicy. Drugi dla każdego Pętla służy do iteracji wartości tablicy i obliczenia odległości levenshtein między każdą wartością tablicy a ciągiem wyszukiwania w każdej iteracji. Jeśli odległość Levenshtein staje się 0 w dowolnej iteracji, dokładne dopasowanie ciągu wyszukiwania istnieje w tablicy. W przeciwnym razie najbliższy dopasowanie ciągu wyszukiwania jest pobierane z wartości tablicy na podstawie najniższej wartości odległości Levenshtein.

// Ustaw wartość wyszukiwania
$ search = isset ($ _ get ['src'])? $ _Get ['src']: „java”;
// Ustaw domyślną wartość odległości
$ short_distance = -1;
// zadeklaruj tablicę
$ języki = array („php”, „perl”, „python”, „bash”, „java”, „c ++”, „c#”, „java”);
Echo „Wartości tablicy to:
";
Foreach ($ języki jako $ lang)
Echo $ lang."
";
echo „Wyszukaj słowo: $ wyszukiwanie";
// przeszukaj dokładną lub najbliższą wartość w tablicy, która pasuje do wartości wyszukiwania
foreach ($ języki jako $ język)
// Oblicz odległość Levenshtein
$ lev_distance = levenshtein ($ Search, $ Language);
// sprawdzanie dokładnego dopasowania
if ($ lev_distance == 0)
$ short_distance = 0;
Echo "
Dokładny dopasowanie jest znalezione.";
przerwa;

// przeszukaj najbliższy mecz
if ($ lev_distance <= $short_distance || $short_distance < 0)
// Zresetuj krótki odległość
$ short_distance = $ lev_distance;
// Zresetuj najbliższą wartość
$ close_value = $ język;


// Wydrukuj najbliższą dopasowaną wartość
if ($ short_distance> 0)
Echo "
Najbliższa wartość słowa wyszukiwania to ".$ close_value;
?>

Wyjście:

Pojawi się następujące dane wyjściowe po wykonaniu poprzedniego skryptu, jeśli nie podano parametru URL. W takim przypadku domyślna wartość wyszukiwania to „Jawa”, Która istnieje w tablicy. Tak więc odległość Levenshtein staje się 0 dla tej wartości wyszukiwania podczas obliczania odległości levenshteina z piątym elementem tablicy, który jest również „”Jawa”:

Następujące dane wyjściowe pojawia się po wykonaniu poprzedniego skryptu dla wartości wyszukiwania, która wynosi „Pyton”To jest podane w parametrze URL. W takim przypadku wartość wyszukiwania „Pyton„Istnieje w tablicy. Tak więc odległość Levenshtein staje się 0 dla tej wartości wyszukiwania podczas obliczania odległości levenshteina z trzecim elementem tablicy, który jest również „”Pyton”:

Pojawi się następujące dane wyjściowe po wykonaniu poprzedniego skryptu dla wartości wyszukiwania „Python3”To isen podane w parametrze URL. W takim przypadku wartość wyszukiwania wynosi „Python3„Który częściowo pasuje do jednego elementu tablicy, który jest„Pyton". Tak więc odległość Levenshtein staje się 1 dla tej wartości wyszukiwania podczas obliczania odległości levenshteina z trzecim elementem tablicy:

Wniosek

Różne zastosowania funkcji levenshtein (), które są pokazane w tym samouczku, pomogą nowym użytkownikom Python poznać cel używania tej funkcji i będzie w stanie prawidłowo używać jej w skrypcie.