Je travaille sur un programme de sondage où les gens recevront des considérations promotionnelles la première fois qu'ils remplissent un sondage. Dans de nombreux scénarios, la seule façon d'empêcher les gens de tromper le système et d'obtenir une promotion qu'ils ne méritent pas est de vérifier les chaînes d'adresses. Je cherchais à utiliser la distance levenshtein pour me donner un nombre pour mesurer la similarité, et considérer ceux en dessous d'un certain seuil un doublon. Cependant, si quelqu'un cherchait à jouer le système, ils pourraient facilement écrire "S 5th St" au lieu de "South Fifth Street", et levenshtein considérerait ces chaînes comme très différentes. Alors je pensais convertir toutes les chaînes en une forme d'adresse standard, c'est-à-dire que 'Sud' devient 's', 'Cinquième' devient '5ème', etc.algorithme de vérification des adresses pour les correspondances?
Puis je pensais que c'était sans espoir, et trop effort pour le faire fonctionner de manière robuste. Est-ce?
Je travaille avec PHP/MySql, donc j'ai les limitations inhérentes à ce système.
Et si à la place de "S. 5th St." quelqu'un entre "S. 4th St."? Cela ne pourrait pas être utilisé pour jouer le système (en supposant que vous envoyez les choses promotionnelles), mais cela pourrait disqualifier les gens pour vivre un bloc plus. Juste un cas de bord à tester. –
@Bill ce scénario n'est pas un problème car alors ils ne recevraient pas leur considération promotionnelle. À moins qu'ils ne soient de mèche avec les gens qui habitent à l'adresse de cette maison sur la 4e rue, mais il y a seulement tellement de foyers avec lesquels ils peuvent conspirer. C'est auto-limitant, je pense :) – user151841
@ user15841: Non, je veux dire que si ces deux personnes s'inscrivent légitimement indépendamment les uns des autres? Votre algorithme doit être assez intelligent pour voir la différence entre ces deux adresses, mais aussi assez intelligent pour que les exemples originaux que vous avez donnés soient les mêmes. –