1

Bon, j'ai besoin d'une fonction qui calcule la ressemblance de deux chaines de caractères et qui me retourne un pourcentage (ou qui a une borne supérieure limite), et que l'algo soit adapté aux noms propres français (donc qui prenne en compte les traits d'union, les apostrophes, les diacritiques...).
L'objectif est de déterminer si deux individus stockés dans deux bases différentes sont les mêmes, aux erreurs et approximations de saisie près, et de pouvoir définir une marge de tolérance (où j'estime, par exemple, qu'à partir de 95%, ce sont les mêmes personnes, qu'entre 80 et 95% il y a un avertissement à l'opérateur pour qu'il lie manuellement les deux individus, et qu'en dessous on considère qu'il s'agit de deux personnes totalement différentes).
A l'heure actuelle, je travaille avec un script maison bien bâtard (suppression des diacritiques, suppression des apostrophes, suppression des tirets, passage en majuscule, comparaison sur les 5 premiers caractères de la première partie du prénom et/ou de la seconde partie en cas de prénom composé et sur les 5 du nom (j'estime arbitrairement que 5 caractères sont assez significatifs dans un couple {nom;prénom}), mais ça ne me permet pas de faire d'affiner l'opération en fonction de la distance (et sur 700 individus, j'ai 2 faux positifs - entre deux sud-américains qui ont des noms composés à rallonge, et entre deux malgaches qui ont des noms qui commencent par "RAKOTO[...]").

J'ai un peu regardé les fonctions similar_text et levenshtein de PHP, mais je ne suis pas certain que ça soit ce dont j'ai besoin (j'aimerais que ça puisse donner un pourcentage bien plus élevée pour Mathieu/Matthieu que pour Martin/Maurtin, par exemple).
Comme c'est vraiment pas critique aujourd'hui - je peux continuer à utiliser mon bricolage - je n'ai pas envie de passer des heures à faire moi-même un tel algo (même si ça pourrait être "rigolo"), et j'imagine que d'autres l'ont fait, mais je ne sais pas trop vers où chercher sur Google...
avatar

2

L'algo de référence c'est anéfé levenshtein, peut être c'est recodable en version adaptée?

3

Ouais, je pense que Nil recherche un hybride entre levenshtein et soundex, mais après il faut voir les détails... Ça m'a l'air intéressant à coder mais il y a peut être déjà des algorithmes correspondants qui existent. (Ptêt phonex, d'après Google)
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

4

C'est effectivement bien résumé, GC cheeky
Bon, j'ai trouvé des versions de soundex francisées. Je pense les coupler avec un levenshtein (si mon levenshtein <= 1 ou 2 && si j'ai un soundex identique, me semble un bon début, j'affinerai par la suite).
J'espère juste que ça ne va pas être trop gourmand sur de grosses requêtes.
avatar