Estoy haciendo una herramienta de importación de CSV para el proyecto en el que estoy trabajando. El cliente debe poder ingresar los datos en Excel, exportarlos como CSV y cargarlos a la base de datos. Por ejemplo, tengo este disco CSV:Algoritmo de comparación de palabras
1, John Doe, ACME Comapny (the typo is on purpose)
Por supuesto, las empresas se mantienen en una tabla independiente y vinculada con una clave externa, por lo que necesitan para descubrir la correcta identificación de la compañía antes de insertar. Planeo hacer esto comparando los nombres de las compañías en la base de datos con los nombres de las compañías en el CSV. la comparación debería devolver 0 si las cadenas son exactamente iguales, y devolver algún valor que se agrande a medida que las cadenas se vuelven más diferentes, pero strcmp no lo corta aquí porque:
"Acme Company" y "Acme Comapny" "debería tener un índice de diferencia muy pequeño, pero " Acme Company "y" Cmea Mpnyaco "deberían tener un índice de diferencia muy grande o" Acme Company "y" Acme Comp ". también debería tener un índice de diferencia pequeño, aunque el recuento de caracteres sea diferente. Además, "Acme Company" y "Company Acme" deberían devolver 0.
De modo que si el cliente hace un tipo al ingresar datos, podría solicitarle que elija el nombre que más deseaba insertar.
¿Existe un algoritmo conocido para hacer esto, o tal vez podemos inventar uno :) ?
para bibliotecas: http://stackoverflow.com/questions/83777/are-there-any-fuzzy-search-or-string-similarity-functions-libraries-written-for – nawfal