Lors du développement de nombreux systèmes logiciels, nous devons souvent faire face à des problèmes tels que la correspondance de texte, la recherche de chaînes et la distance d'édition de mots. Parmi eux, la distance d'édition du texte fait référence à l'opérande minimum nécessaire pour convertir un texte en un autre via une série d'opérations de caractère (telles que l'insertion, la suppression, le remplacement). Plus la distance d'édition est petite, plus la similitude du texte est élevée. L'algorithme Levenshtein est l'un des algorithmes classiques pour calculer les distances d'édition de chaîne.
Dans PHP, la fonction Levenshtein () est utilisée pour calculer la distance d'édition entre deux chaînes, c'est-à-dire qu'elle peut renvoyer le nombre minimum d'opérations de modification requises pour convertir une chaîne en une autre.
int Levenshtein (String $ str1, string $ str2, int $ cost_ins, int $ cost_rep, int $ cost_del)
Nom du paramètre | Type de paramètre | illustrer |
---|---|---|
str1 | chaîne | La première chaîne |
str2 | chaîne | La deuxième chaîne |
Cost_ins | int | Le coût de l'opération d'insertion (par défaut est 1) |
cost_rep | int | Coût du fonctionnement de remplacement (par défaut est 1) |
cost_del | int | Le coût de l'opération de suppression (par défaut est 1) |
Cette fonction renvoie la distance de modification minimale entre deux chaînes, c'est-à-dire le nombre minimum d'opérations nécessaires pour terminer l'édition.
$ str1 = "kitten"; $ str2 = "assis"; $ Distance = Levenshtein ($ str1, $ str2); Echo "La distance entre $ STR1 et $ STR2 est une distance $";
Sortir:
<span class="fun">La distance entre le chaton et la séance est 3</span>
Remarque: du "chaton" à "assis" prend trois opérations à terminer.
$ str1 = "kitten"; $ str2 = "assis"; $ Distance = Levenshtein ($ str1, $ str2, 2, 3, 4); Echo "La distance entre $ STR1 et $ STR2 est une distance $";
Sortir:
<span class="fun">La distance entre le chaton et la séance est de 15</span>
Remarque: du "chaton" à "réglage" nécessite des opérations d'insertion, de remplacement et de suppression, et un total de 15 opérations doivent terminer.
$ str1 = "bonjour"; $ str2 = "au revoir"; $ Distance = Levenshtein ($ str1, $ str2); Echo "La distance entre $ STR1 et $ STR2 est une distance $";
Sortir:
<span class="fun">La distance entre bonjour et au revoir est 4</span>
Remarque: De "Hello" à "Goodbye", vous devez insérer une lettre, remplacer deux lettres et supprimer une lettre. Il faut 4 opérations au total pour terminer.
L'algorithme Levenshtein est un algorithme classique pour calculer les distances d'édition et est largement utilisé dans les tâches de traitement des chaînes. La fonction Levenshtein () de PHP fournit une implémentation pratique de cet algorithme, nous aidant à calculer rapidement la similitude entre les chaînes. Que ce soit dans le traitement de texte, la vérification des orthographiques ou le traitement du langage naturel, la fonction Levenshtein () peut fournir un fort soutien aux développeurs.