Dans les systèmes de gestion de bases de données comme MySQL, comparer la similarité des chaînes de texte est une exigence courante. Cet article explore une approche polyvalente pour calculer le pourcentage de similarité entre deux chaînes à l'aide des fonctions MySQL.
La distance de Levenshtein est une métrique qui mesure le nombre de modifications (insertions , suppressions ou substitutions) nécessaires pour transformer une chaîne en une autre. Des scores de similarité plus élevés indiquent une ressemblance plus étroite entre les chaînes.
Dans MySQL, la fonction LEVENSHTEIN() calcule la distance de Levenshtein entre deux chaînes. Pour obtenir le pourcentage de similarité, nous pouvons utiliser la formule suivante :
Similarity Percentage = (1 - (Levenshtein Distance / Length of Longest String)) * 100
Pour implémenter cette approche dans MySQL, créez les deux fonctions suivantes :
LEVENSHTEIN() Fonction :
CREATE FUNCTION `LEVENSHTEIN`(s1 TEXT, s2 TEXT) RETURNS INT(11) DETERMINISTIC BEGIN # ... Function implementation ... END;
LEVENSHTEIN_RATIO() Fonction :
CREATE FUNCTION `LEVENSHTEIN_RATIO`(s1 TEXT, s2 TEXT) RETURNS INT(11) DETERMINISTIC BEGIN # ... Function implementation ... END;
Considérant l'exemple fourni dans la question :
SET @a = "Welcome to Stack Overflow"; SET @b = "Hello to stack overflow";
La requête pour calculer le pourcentage de similarité entre @a et @b serait be :
SELECT LEVENSHTEIN_RATIO(@a, @b) AS SimilarityPercentage;
Cette requête renverrait une valeur de 60, indiquant une similarité de 60 % entre les deux chaînes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!