Levenshtein distance: podobieństwo tekstów
Założenie: Nauczymy się korzystać z funkcji `levenshtein()` w PHP do obliczania odległości Levenshteina między dwoma tekstami i zastosujemy ją w prostym systemie podpowiedzi.
Krok po kroku:
- Obliczanie odległości Levenshteina: Funkcja `levenshtein()` przyjmuje dwa argumenty – dwa stringi – i zwraca liczbę edycji (dodania, usunięcia, zamiany) potrzebnych do przekształcenia jednego stringa w drugi. Im mniejsza wartość, tym większe podobieństwo między stringami.
- Przykład z różnymi stringami:
- Prosty system podpowiedzi: Załóżmy, że mamy tablicę słów i chcemy znaleźć słowa podobne do wprowadzonego przez użytkownika.
$string1 = "kot";
$string2 = "kot";
$distance = levenshtein($string1, $string2);
echo "Odległość Levenshteina: " . $distance; // Wynik: 0
$string1 = "pies";
$string2 = "pis";
$distance = levenshtein($string1, $string2);
echo "Odległość Levenshteina: " . $distance; // Wynik: 1
$slowa = ["kot", "pies", "mysz", "slon"];
$szukaneSlowo = "kos";
$najlepszaPodpowiedz = "";
$minDistance = PHP_INT_MAX;
foreach ($slowa as $slowo) {
$distance = levenshtein($szukaneSlowo, $slowo);
if ($distance < $minDistance) {
$minDistance = $distance;
$najlepszaPodpowiedz = $slowo;
}
}
echo "Najlepsza podpowiedź dla '" . $szukaneSlowo . "': " . $najlepszaPodpowiedz; // Wynik: kot
Ten przykład pokazuje podstawowe zastosowanie funkcji `levenshtein()`. Można ją wykorzystać w wielu aplikacjach, takich jak korektory ortograficzne, wyszukiwarki czy systemy rekomendacji.
Zachęcamy do dalszego zgłębiania tematu i eksperymentowania z funkcją `levenshtein()`!