Tengo muchos proveedores en la base de datos, todos difieren en algún aspecto de sus datos. Me gustaría hacer una regla de validación de datos que se base en datos previos.¿Cómo crear automáticamente un patrón basado en datos reales?
Ejemplo:
A: XZ-4, XZ-23, XZ-217
B: 1276, 1899, 22711
C: 12-4, 12-75, 12
Objetivo: determinar si las entradas de usuario cadena 'XZ-217' para el proveedor B, el algoritmo debe comparar los datos anteriores y decir: esta cadena no es similar al proveedor de datos anteriores B.
¿Hay alguna buena forma/herramienta para lograr tal comparación? La respuesta podría ser algún algoritmo genérico o módulo de Perl.
Editar: La "similitud" es difícil de definir, estoy de acuerdo. Pero me gustaría encontrar un algoritmo que pueda analizar muestras de ca 100 anteriores y luego comparar el resultado del análisis con nuevos datos. La similitud puede basarse en la longitud, en el uso de caracteres/números, patrones de creación de cadenas, inicio/fin/medio similares, con algunos separadores.
Creo que no es tarea fácil, pero por otro lado, creo que tiene uso muy amplio. Así que esperaba, ya hay algunas pistas.
Esto es realmente vago.Intenta definir algunas cosas como "similar". La computadora no puede decir "Eh, eso se ve lo suficientemente cerca" a menos que les dé reglas precisas. Por ejemplo, puede querer "tiene más de X caracteres en común" o "comienza con los mismos caracteres Y" o "tiene el mismo símbolo (por ejemplo, guión) en el medio". – FakeRainBrigand
Esto va a ser bastante difícil a menos que pueda imponer algunas restricciones adicionales. Considere: ¿cómo evitar que su algoritmo de aprendizaje de patrones decida usar 'qr /.*/'? –