Voy a mantener esta discusión básica. Hay tres pasos para un corrector ortográfico.
– Detectando la palabra incorrecta
– Generando sugerencias de candidatos
– Puntuación y clasificación de los reemplazos candidatos
Detectar una palabra incorrecta es relativamente más fácil. Si la palabra no existe en nuestro diccionario, podemos marcarla como incorrecta. (Tenga en cuenta que esto no resuelve los errores sensibles al contexto, como usar ‘pieza’ en lugar de ‘paz’, etc.)
Necesitamos encontrar palabras similares a la palabra incorrecta. Puede haber muchas formas de hacerlo. Mencionaré algunos que he probado.
– Genere todas las palabras que están a una distancia de Levenshtein de 2 o 3 de las palabras incorrectas y conserve solo las que están presentes en el diccionario. Marcarlos como reemplazos candidatos. (Por ejemplo, la palabra incorrecta ‘rong’ tendrá candidatos ‘incorrectos’, ‘canción’, etc.)
– Otro método es usar n-gramos. (Ejemplo: los trigramas de una palabra, ‘belleza’ son ‘bea’, ‘eau’, ‘aut’ y ‘uty’). Preprocese el diccionario y almacene los trigramas de cada palabra. Divide la palabra incorrecta en trigramas. Marque todas las palabras en el diccionario como candidatos que comparten al menos un trigrama con la palabra incorrecta. Esto se puede hacer de manera eficiente utilizando un índice invertido.
- ¿Vale la pena tomar el curso de Algoritmos de Udacity?
- ¿Cuáles son algunas optimizaciones comunes que los clientes de GPS como Google Maps usan además de los algoritmos elementales de ruta más corta como la búsqueda A *?
- ¿Cuánto AlphaGo es IA real frente a algoritmos de procesamiento informático muy potentes?
- ¿Debo aprender primero "el lenguaje de programación que elegí" o "algoritmo y estructura de datos"?
- ¿Cómo puede un algoritmo RLS utilizar el filtro Wiener como bloque FIR (M-tap)?
A los candidatos se les puede dar una puntuación basada en muchos factores.
¿Qué posibilidades hay de escribir la palabra incorrecta en lugar de la palabra candidata? (Las frecuencias de errores que se cometen más comúnmente se requieren para este paso. Como ‘m’ y ‘n’ se intercambian comúnmente)
¿Qué tan similares suenan la palabra incorrecta y la palabra candidata? (Un algoritmo fonético puede ayudar en este frente)
Si desea más detalles, consulte Cómo escribir un corrector ortográfico.
Arriba da una descripción de solo un corrector ortográfico básico. Obviamente, hay más en un corrector ortográfico industrial.
Es difícil detectar cuándo una palabra en particular (escrita correctamente) se usa incorrectamente en una oración. Los correctores ortográficos modernos hacen eso la mayoría de las veces.