7

Tengo una lista de nombres de aeropuertos y mis usuarios tienen la posibilidad de ingresar un nombre de aeropuerto para seleccionarlo para un procesamiento posterior.Detección de palabras mal escritas

¿Cómo manejarías los nombres mal escritos y presentarías una lista de sugerencias?

+0

http://en.wikipedia.org/wiki/Fuzzy_string_searching –

Respuesta

7

Busque Levenshtein distances para hacer coincidir un nombre correcto con una entrada de usuario determinada.

+3

Las distancias de Levenshtein son bastante caras de calcular, O (n^2), el cálculo de las distancias de Levenshtein a cada palabra en un diccionario no es inicial. – Wedge

+3

El diccionario en este caso es solo la lista de aeropuertos. en todo el mundo solo hay unos cientos de aeropuertos notables. – SingleNegationElimination

+0

@Wedge Hashing el diccionario no necesariamente reduciría la complejidad del tiempo, pero podría ayudar considerablemente. – Ryan

0

Puede ser mejor dejar que el usuario seleccione de la lista de nombres de aeropuertos en lugar de dejar que escriban los suyos propios. No se pueden cometer errores de esa manera.

0

Aunque no servirá de nada de inmediato, puede realizar un seguimiento de los errores tipográficos y ver qué nombre ingresa finalmente cuando se ingresa un nombre correcto. De esta forma puede hacer un seguimiento de los errores tipográficos más comunes y ofrecer las mejores opciones.

1

Emplea el corrector ortográfico en tu código. La lista de palabras debe contener solo la ortografía correcta de los aeropuertos.

Esta no es una gran manera de hacerlo. Debe optar por un control que proporcione una opción de autocompletar o un menú desplegable como sugirió otra persona.

Utilice AJAX si su tecnología es compatible.

0

Añadiendo a la sugerencia de Kevin, podría ser lo mejor de ambos mundos si utiliza un cuadro de entrada con autocompletar de JavaScript. como jquery autocomplete

edición: danés golpearme :(

+0

¿una razón para el downvote? – Jayrox

+0

Intenté eliminar downvote pero el sistema lo prohíbe. La razón principal fue: por el amor de Dios, no todos escriben en jquery/JavaScript/HTML. Personas agnósticas, agnósticas del lenguaje ... –

+0

Algunas personas quieren una solución simple para una tarea simple. Proporcioné una solución simple para una tarea simple. Cada problema tiene múltiples rutas disponibles para resolverlo. – Jayrox

0

Puede haber una biblioteca de corrección ortográfica existente, puede utilizar el código para hacer este tipo de cosas así no es trivial Si desea.. escribir esto por sí mismo, es posible que desee ver en dictionary trie's.

un método que puede funcionar es simplemente generar una enorme lista de palabras posibles de error y sus correcciones (aquí hay un implementation in Python), que se podía almacenar en caché para un mejor desempeño.

1

Sé que no es lo que ha preguntado, pero si esta es una aplicación donde es importante obtener el aeropuerto correcto (p. reserva de entradas), entonces es posible que desee tener una etapa de confirmación para asegurarse de que tiene la correcta. Ha habido casos de personas que obtienen boletos para el wrong Sydney, por ejemplo.

Cuestiones relacionadas