Fonction PHP Levenshtein

Fonction PHP Levenshtein
La distance de Levenshtein est calculée en comptant le nombre total de caractères qui sont nécessaires pour modifier une chaîne en insérant, mise à jour ou supprimer un ou plusieurs caractères pour obtenir une autre chaîne. PHP a une fonction intégrée nommée Levenshtein () pour calculer la distance de Levenshtein entre deux cordes en comparant les cordes. Cette fonction compare les valeurs de chaîne d'une manière sensible au cas. PHP a une autre fonction nommée similaire_text () pour faire la même tâche, mais la fonction levenshtein () renvoie des résultats plus précis et fonctionne plus rapidement. Les différentes utilisations de la fonction levenshtein () sont présentées dans ce tutoriel.

Syntaxe:
int Levenshtein (String $ string1, string $ string2, int $ insertion_cost = 1, int $ remplacement_cost = 1,
int $ deletion_cost = 1)

Cette fonction a cinq arguments. Les premier et deuxième arguments sont obligatoires et les cinq autres arguments sont facultatifs. Les objectifs de ces cinq arguments sont décrits dans ce qui suit:

  • $ String1: il contient la première chaîne comparée au deuxième argument.
  • $ String2: il contient la deuxième chaîne comparée au premier argument.
  • $ insertion_cost: il contient le coût de l'insertion.
  • $ remplacement_cost: il contient le coût de remplacement.
  • $ deletion_cost: il contient le coût de suppression.

Cette fonction renvoie la distance de levenshtein entre les premières et deuxième valeurs d'argument de la fonction. Si le nombre total de caractères des cordes est supérieur à 255, la fonction renvoie -1.

Différents exemples de fonction levenshtein ()

Les différentes utilisations de la fonction levenshtein () sont présentées dans cette partie du tutoriel à l'aide de plusieurs exemples.

Exemple 1: Comparez deux chaînes d'un seul mot

Créez un fichier PHP avec le script suivant qui calcule la distance de Levenshtein entre deux mots uniques à l'aide de la fonction levenshtein (). La valeur de la distance de Levenshtein est imprimée plus tard.

// définir la première chaîne
$ str1 = 'idiot';
// définir la deuxième chaîne
$ str2 = 'se sentir';
// Calculez la distance de levenshtein
écho "

La distance de Levenshtein est ".Levenshtein ($ str1, $ str2)."

"
?>

Sortir:

La sortie suivante apparaît après avoir exécuté le script précédent. La distance de Levenshtein de deux mots, «Fool» et «Feel», est 2 qui est imprimée dans la sortie:

Exemple 2: Comparez deux chaînes de plusieurs mots

Créez un fichier PHP avec le script suivant qui claque la distance de levenshtein entre deux chaînes de plusieurs mots à l'aide de la fonction levenshtein (). La valeur de la distance de Levenshtein est imprimée plus tard. Ici, la première chaîne contient trois mots et la deuxième chaîne contient deux mots. Un mot est commun dans les deux cordes. La distance de Levenshtein de ces deux cordes est imprimée plus tard.

// définir la première chaîne
$ str1 = 'Langue de programmation PHP';
// définir la deuxième chaîne
$ str2 = 'Java Programming';
// Calculez la distance de levenshtein
écho "

La distance de Levenshtein est ".Levenshtein ($ str1, $ str2)."

"
?>

Sortir:

La sortie suivante apparaît après avoir exécuté le script précédent. Ici, la première valeur de chaîne est «Langage de programmation PHP"Et la deuxième chaîne est"Programmation Java". Le mot "La programmation"Est courant dans les deux cordes. Quatre caractères sont tenus de modifier pour obtenir "Java" de "PHP" et 9 caractères (langue) doivent supprimer de la première chaîne pour obtenir la deuxième chaîne. Ainsi, la distance de Levenshtein est de 4 + 9 = 13.

Exemple 3: Recherchez la correspondance exacte ou la plus proche du tableau

Créez un fichier PHP avec le script suivant qui recherche une chaîne particulière dans un tableau. Découvrez la valeur du tableau qui correspond exactement ou partiellement à la valeur de la chaîne de recherche en calculant la distance de levenshtein entre la chaîne de recherche et chaque élément du tableau. La valeur de la chaîne de recherche est tirée du paramètre URL. Si aucun paramètre URL n'est donné, la valeur de chaîne par défaut est utilisée pour la chaîne de recherche. La valeur initiale de $ short_distance est définie sur -1 avant d'itérer les valeurs du tableau pour trouver la correspondance exacte ou la plus proche. La première pour chaque la boucle est utilisée pour imprimer les valeurs existantes du tableau. La deuxième pour chaque La boucle est utilisée pour itérer les valeurs du tableau et calculer la distance de levenshtein entre chaque valeur de tableau et la chaîne de recherche dans chaque itération. Si la distance de Levenshtein devient 0 dans toute itération, la correspondance exacte de la chaîne de recherche existe dans le tableau. Sinon, la correspondance la plus proche de la chaîne de recherche est récupérée à partir des valeurs de tableau en fonction de la valeur de distance la plus basse Levenshtein.

// définir la valeur de recherche
$ search = isset ($ _ get ['src'])? $ _Get ['src']: "java";
// Définir la valeur de distance par défaut
$ short_distance = -1;
// Déclarer un tableau
$ Langues = Array ('PHP', 'Perl', 'Python', 'Bash', 'Java', 'C ++', 'C #', 'Java');
Echo "Les valeurs du tableau sont:
"
foreach ($ langues comme $ lang)
Echo $ lang."
"
Echo "Mot de recherche: $ recherche"
// recherche la valeur exacte ou la plus proche du tableau qui correspond à la valeur de recherche
ForEach ($ Languages ​​As $ Language)
// Calculez la distance de levenshtein
$ lev_distance = Levenshtein ($ search, $ language);
// Vérification de la correspondance exacte
if ($ lev_distance == 0)
$ short_distance = 0;
écho "
La correspondance exacte est trouvée."
casser;

// recherche le match le plus proche
if ($ lev_distance <= $short_distance || $short_distance < 0)
// réinitialiser la courte distance
$ short_distance = $ lev_distance;
// réinitialiser la valeur la plus proche
$ close_value = $ langage;


// imprime la valeur la plus proche correspondante
if ($ short_distance> 0)
écho "
La valeur la plus proche du mot de recherche est ".$ close_value;
?>

Sortir:

La sortie suivante apparaît après l'exécution du script précédent si aucun paramètre URL n'est donné. Dans ce cas, la valeur de recherche par défaut est «Java«Qui existe dans le tableau. Ainsi, la distance de Levenshtein devient 0 pour cette valeur de recherche lors du calcul de la distance de Levenshtein avec le cinquième élément du tableau qui est également «Java»:

La sortie suivante apparaît après l'exécution du script précédent pour la valeur de recherche qui est «Python«Cela est donné dans le paramètre URL. Dans ce cas, la valeur de recherche «Python"Existe dans le tableau. Ainsi, la distance de Levenshtein devient 0 pour cette valeur de recherche lors du calcul de la distance de Levenshtein avec le troisième élément du tableau qui est également «Python»:

La sortie suivante apparaît après l'exécution du script précédent pour la valeur de recherche "Python3"C'est donné dans le paramètre URL. Dans ce cas, la valeur de recherche est «Python3«Ce qui correspond partiellement à un élément du tableau qui est«Python". Ainsi, la distance de Levenshtein devient 1 pour cette valeur de recherche lors du calcul de la distance de Levenshtein avec le troisième élément du tableau:

Conclusion

Les différentes utilisations de la fonction Levenshtein () qui sont présentées dans ce tutoriel aideront les nouveaux utilisateurs de Python à connaître le but de l'utilisation de cette fonction et de pouvoir l'utiliser correctement dans leur script.