Contexte :
Les utilisateurs saisissent les noms d'entreprise comme fait partie d'une grande chaîne et votre système doit automatiser le processus de correspondance avec une base de données existante de noms de sociétés. Bien que la correspondance simple des chaînes puisse être lente, il est crucial de trouver la solution optimale pour maintenir la précision et les performances.
Indexation Soundex :
SOUNDEX() est une fonction MySQL qui génère une représentation phonétique d'une chaîne basée sur ses premiers caractères. Cela peut aider à accélérer les recherches de noms d’entreprises à consonance similaire. Cependant, il se heurte à certaines limitations :
Levenshtein Distance :
La distance de Levenshtein est une mesure plus avancée de la similarité des chaînes qui prend en compte les insertions, les suppressions et les substitutions dans les chaînes. Cette approche offre une plus grande flexibilité mais nécessite plus de calculs.
Implémentation :
Pour implémenter la correspondance floue avec la distance de Levenshtein dans MySQL, vous pouvez utiliser une fonction stockée comme celle disponible sur codejanitor.com. Cette fonction prend deux chaînes en entrée et renvoie leur distance de Levenshtein.
Exemple de correspondance :
// Calculate the Levenshtein distance between two names $distance = levenshtein_distance('Microsoft', 'Microssift'); // Define a threshold for acceptable matches $max_distance = 2; if ($distance <= $max_distance) { // Suggest the closest match from your database $fuzzy_match = get_fuzzy_match('Microssift'); } else { // No close match found, suggest no matches $fuzzy_match = array(); }
Considérations supplémentaires :
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!