Así que sí, leí acerca de cómo se puede usar la distancia de edición entre cadenas para decidir cómo "cerrar" dos cadenas entre sí. Este algoritmo, implementado como un problema dinámico toma O (mn) el tiempo, donde myn son las longitudes del texto y el patrón, respectivamente. Entonces, si tengo que unir una cuerda con otras 5000 cuerdas, tomará MUCHO tiempo, lo cual en mi aplicación simplemente no es aceptable. ¿Hay una solución más rápida que pueda implementarse? No me importa cambiar el espacio de almacenamiento por tiempo.Búsqueda aproximada contra una lista de cadenas
He visto una aplicación llamada "Swype" en Android, que hace algo similar. Busca su consulta en su propia base de datos y sugiere resultados. ¿Cómo funciona eso tan rápido?
Nota: No sugiera marcos como Lucene, porque no puedo ejecutarlos en J2ME.
¿Esto es para tipear las correcciones? ¿Estás seguro de que necesitas algo más rápido que la distancia de Levenshtein? 5000 no suena tan mal si son palabras cortas del diccionario. –
Esto es básicamente para buscar un nombre de artículo (consulta de usuario) en una lista de artículos que se rellenan previamente. Ahora, dado que el usuario puede ingresar consultas incorrectas, la búsqueda debe sugerir la coincidencia más cercana o una "no coincidencia" si no se encuentra ninguna. – Gooner