Estoy trabajando en un programa de encuestas en el que las personas recibirán consideraciones promocionales la primera vez que llenen una encuesta. En muchos escenarios, la única forma en que podemos evitar que la gente engañe al sistema y obtener un ascenso que no se merece es verificar las cadenas de direcciones entre sí.algoritmo para verificar las direcciones de las coincidencias?
Estaba buscando usar distancia levenshtein para darme un número para medir la similitud, y considerar aquellos que están por debajo de un cierto umbral un duplicado.
Sin embargo, si alguien estuviera buscando jugar con el sistema, podrían escribir fácilmente "S 5th St" en lugar de "South Fifth Street", y levenshtein consideraría esas cadenas como muy diferentes. Así que estaba pensando en convertir todas las cadenas en una 'forma de dirección estándar', es decir, 'Sur' se convierte en 's', 'Quinto' se convierte en '5', etc.
Entonces pensé que esto era inútil, y demasiado esfuerzo para que funcione de manera robusta. ¿Lo es?
Estoy trabajando con PHP/MySql, así que tengo las limitaciones inherentes a ese sistema.
¿Qué pasa si en lugar de "S. 5th St." alguien entra a "S. 4th St."? Esto no se podría usar para jugar con el sistema (suponiendo que esté enviando por correo las cosas promocionales), pero podría descalificar a las personas por vivir a una cuadra. Solo una caja de borde para probar. –
@Bill ese escenario no es un problema porque entonces no recibirían su consideración promocional. A menos que estén confabulados con las personas que residen en la dirección de esa casa en la calle 4, pero solo hay muchos hogares con los que pueden conspirar. Es autolimitante, creo :) – user151841
@ user15841: No, me refiero a si esas dos personas legítimamente se registran independientemente una de la otra? Su algoritmo debe ser lo suficientemente inteligente como para ver la diferencia entre esas dos direcciones, pero también lo suficientemente inteligente como para ver los ejemplos originales que dio como iguales. –