Estoy escribiendo una interfaz de usuario de escritorio (.Net WinForms) para ayudar a un fotógrafo a limpiar sus metadatos de imagen. Hay una lista de 66k + frases. ¿Alguien puede sugerir un buen componente open source/free .NET que pueda usar y que emplee algún tipo de algoritmo para identificar posibles candidatos para la consolidación? Por ejemplo, puede haber dos o más entradas que en realidad son la misma palabra o frase que solo difieren por el espacio en blanco o la puntuación, o incluso por un ligero error ortográfico. En última instancia, la aplicación dependerá del usuario para actuar en la consolidación de frases, pero contar con una forma efectiva de encontrar automáticamente candidatos potenciales será invaluable.Coincidencia de texto difuso C#
Respuesta
Déjame presentarte la fórmula de distancia de Levenshtein. Es increíble:
http://en.wikipedia.org/wiki/Levenshtein_distance
En teoría de la información y la informática, la distancia Levenshtein es una cadena métrica para medir la cantidad de diferencia entre dos secuencias. El término distancia de edición a menudo se usa para referirse específicamente a la distancia de Levenshtein.
Personalmente utilicé esto en un entorno de atención médica, donde los nombres de los proveedores se comprobaron en busca de duplicados. Usando el proceso de Levenshtein, les dimos una calificación de confianza y les permitimos determinar si era un verdadero duplicado o algo único.
Aquí hay una implementación en C#: http://blogs.msdn.com /b/toub/archive/2006/05/05/590814.aspx –
Iba a sugerir el uso de soundex ([http://www.techrepublic.com/blog/programming-and-development/how-do-i- implement-the-soundex-function-in-c/656] (http://www.techrepublic.com/blog/programming-and-development/how-do-i-implement-the-soundex-function-in-c/656)). Después de aplicar soundex, puede ordenar las cadenas por los códigos soundex que producen y marcar códigos equivalentes para que el usuario los revise. Creo que el resultado final puede ser similar al uso de distancia levenshtein? – hmqcnoesy
Una cosa con soundex es que es inútil cuando se buscan cadenas que contienen solo dígitos. – jamiebarrow
- 1. Texto difuso (oraciones/títulos) coincidente en C#
- 2. Clang para el análisis difuso C++
- 3. jQuery coincidencia de texto
- 4. Árbol difuso con una fuga de espacio
- 5. Texto SQL antes de la enésima coincidencia?
- 6. Coincidencia difusa en C#
- 7. C# coincidencia de cadena múltiple
- 8. Coincidencia de símbolos cirílicos en C#
- 9. Problema de coincidencia de patrón en C#
- 10. coincidencia de patrones de estilo en C++?
- 11. Porcentaje de coincidencia de coincidencia con Levenshtein Coincidencia de distancia
- 12. coincidencia aproximada con filtro umbral de C#
- 13. Coincidencia de histograma - procesamiento de imágenes - c/C++
- 14. Coincidencia de texto entre delimitadores: ¿expresión regular codiciosa o floja?
- 15. Encuentre una coincidencia exacta utilizando la búsqueda de texto completo
- 16. HTTPS y C++: ¿una coincidencia fácil?
- 17. Patrón coincidencia de desigualdad
- 18. Algoritmo de coincidencia de Dominios
- 19. La implementación de coincidencia de patrones en C#
- 20. Coincidencia de patrón con más de una coincidencia
- 21. Coincidencia de plurales usando expresiones regulares en C#
- 22. ¿Cómo hacer una búsqueda Regex de "coincidencia mínima" en C#?
- 23. Captura de la primera coincidencia con expresiones regulares (C#)
- 24. C# más cercano equivalente a la expresión de coincidencia F #?
- 25. C# Regexp: cómo extraer $ 1, $ 2 variables de la coincidencia
- 26. Coincidencia circular. PHP/MySql
- 27. algoritmo de coincidencia de árbol?
- 28. coincidencia de patrones - implementación
- 29. Coincidencia de cadena imperfecta
- 30. Coincidencia de patrón dinámico
Consulte aquí para obtener más información sobre la coincidencia de texto difuso: http://stackoverflow.com/questions/5859561/getting-the-closest-string-match – jordanhill123