La sugerencia de ortografía es una característica de muchas aplicaciones de software de computadora que se utilizan para sugerir reemplazos plausibles de palabras que probablemente se hayan escrito mal.
Las funciones de sugerencia ortográfica se incluyen comúnmente en los motores de búsqueda de Internet , procesadores de texto , correctores ortográficos , transcripción médica , reformulación automática de consultas e informes de estadísticas de registro de frecuencia.
Algoritmos
Cualquier corrector ortográfico debe tener algunos datos sobre las palabras en el idioma de destino, ya sea de uso general o con conocimientos especializados (como vocabulario médico). Esto puede provenir de:
- Un diccionario de todas las palabras conocidas.
- Un corpus de texto que incluye texto típico, que se sabe que está escrito correctamente.
- Una lista de palabras frecuentemente mal escritas, mapeando errores a correcciones.
- Registros de entrada de texto humano, como los de un motor de búsqueda popular . Este es esencialmente un corpus de colaboración colectiva, pero se supone que habrá algunos errores ortográficos. Se pueden incluir datos sobre cuándo las personas hacen clic en una sugerencia ortográfica o hacen una segunda consulta muy similar; esto crea un mapeo colaborativo de palabras mal escritas para correcciones confiables. [1]
Una lista de palabras frecuentemente mal escritas, posiblemente incluyendo frases de varias palabras, se puede simplemente consultar para ver si alguna de las palabras o frases ingresadas aparece en la lista.
Para utilizar un diccionario sin un mapeo preexistente de errores ortográficos a correcciones, la técnica típica es calcular la distancia de edición entre una palabra de entrada y cualquier palabra dada en el diccionario. La métrica de distancia de Levenshtein considera que una "edición" es la inserción, eliminación o sustitución (con otra letra) de una letra. La distancia Damerau-Levenshtein agrega transposiciones (el intercambio de letras vecinas). Las palabras del diccionario que están a una distancia de edición de 1 de la palabra de entrada se consideran altamente probables como correcciones, la distancia de edición 2 es menos probable y la distancia de edición 3 a veces se incluye en las sugerencias y a veces se ignora.
Un corpus de texto se puede resumir como un diccionario de palabras conocidas, con una frecuencia de aparición para cada palabra. Esto se puede utilizar para ordenar las sugerencias ortográficas. Por ejemplo, si hay varias sugerencias de la distancia de edición 1, es más probable que las palabras que aparecen con más frecuencia en el corpus sean la corrección deseada.
Debido a que un diccionario de palabras conocidas es muy grande, calcular la distancia de edición entre una palabra de entrada y cada palabra en el diccionario es computacionalmente intensivo y, por lo tanto, relativamente lento. [2] Se pueden utilizar varias estructuras de datos para acelerar las búsquedas de almacenamiento, como los árboles BK . [3] Un enfoque más rápido adoptado por Peter Norvig [4] genera todas las permutaciones de una palabra de entrada de todas las ediciones posibles. Para una palabra de longitud n y un alfabeto de tamaño a , para la distancia de edición 1 hay como máximo n eliminaciones, n-1 transposiciones, a * n alteraciones y a * (n + 1) inserciones. [5] Usando solo las 26 letras del alfabeto inglés , esto produciría solo 54 * n + 25 búsquedas en el diccionario, menos cualquier duplicado (que depende de las letras específicas de la palabra). Esto es relativamente pequeño en comparación con un diccionario de cientos de miles de palabras. Sin embargo, es posible que se requieran decenas o cientos de miles de búsquedas para la distancia de edición 2 y superior. Otra innovación adoptada por Wolf Garbe, conocida como SymSpell [5] ("sym" como en "simetría") acelera el cálculo del tiempo de entrada al utilizar el hecho de que solo las permutaciones que implican eliminaciones deben generarse para las palabras de entrada si la misma eliminación las permutaciones se calculan por defecto en el diccionario.
Los algoritmos descritos hasta ahora no tratan bien las palabras correctas que no están en el diccionario. Las fuentes comunes de palabras desconocidas en inglés son palabras compuestas e inflexiones , como -s y -ing . [4] Estos se pueden acomodar algorítmicamente, especialmente si el diccionario contiene la parte gramatical .
Estos algoritmos también han asumido que todos los errores de una distancia dada son igualmente probables, lo que no es cierto. Los errores que involucran la ortografía fonéticamente donde la ortografía inglesa no es fonética son comunes, al igual que los errores que repiten la misma letra o confunden las letras vecinas en un teclado QWERTY . Si se dispone de un gran conjunto de correcciones y errores ortográficos conocidos, estos datos se pueden utilizar para generar tablas de frecuencia para pares de letras y tipos de edición; estos se pueden utilizar para clasificar las sugerencias con mayor precisión. [4] También es más común que la casualidad que una palabra se deletree en el dialecto incorrecto en comparación con el resto del texto, por ejemplo, debido a las diferencias ortográficas del inglés americano y británico . [4]
Las sugerencias ortográficas también se pueden hacer más precisas si se tienen en cuenta más de una palabra a la vez. [4] Las secuencias de varias palabras se conocen como n-gramas (donde n es el número de palabras en la secuencia). Google dispone de una base de datos muy grande de n-gramas de hasta 5 palabras de longitud para este y otros fines. [6]
Otros han experimentado con el uso de grandes cantidades de datos y técnicas de aprendizaje profundo (una forma de aprendizaje automático para entrenar redes neuronales para realizar la corrección ortográfica. [7] [8]
Referencias
- ^ Búsqueda 101 - VP de ingeniería y CIO de Google Douglas Merrill
- ^ Editar distancia
- ^ Malditos algoritmos geniales, parte 1: BK-Trees
- ^ a b c d e Cómo escribir un corrector ortográfico
- ^ a b Algoritmo de corrección ortográfica 1000x más rápido (2012)
- ^ Alex Franz; Thorsten Brants (3 de agosto de 2006). "Todos nuestros N-gram te pertenecen" .
- ^ Ortografía profunda
- ^ Algoritmos y técnicas de corrección ortográfica