stringtranslate.com

Sugerencia de ortografía

La sugerencia ortográfica es una función de muchas aplicaciones de software informático que se utiliza para sugerir reemplazos plausibles para palabras que probablemente estén mal escritas.

Las funciones de sugerencia ortográfica se incluyen comúnmente en motores de búsqueda de Internet , procesadores de texto , correctores ortográficos , transcripciones médicas , 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 de conocimiento especializado (como el vocabulario médico). Esto puede provenir de:

Se puede consultar simplemente una lista de palabras frecuentemente mal escritas, que posiblemente incluya frases de varias palabras, para ver si alguna de las palabras o frases ingresadas está incluida.

Para utilizar un diccionario sin una asignación 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 con una distancia de edición de 1, las palabras que aparecen con mayor frecuencia en el corpus tienen más probabilidades de ser 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 una 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 de diccionario, menos cualquier duplicado (que depende de las letras específicas en la palabra). Esto es relativamente pequeño en comparación con un diccionario de cientos de miles de palabras. Sin embargo, podrían requerirse decenas o cientos de miles de búsquedas para una distancia de edición 2 y mayor. 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 es necesario generar permutaciones que involucran eliminaciones para las palabras de entrada si las mismas permutaciones de eliminación están precalculadas en el diccionario.

Los algoritmos descritos hasta ahora no funcionan bien con palabras correctas que no están en el diccionario. Las fuentes comunes de palabras desconocidas en inglés son las palabras compuestas y las flexiones , como -s y -ing . [4] Estas pueden acomodarse algorítmicamente, especialmente si el diccionario contiene la parte de la oración .

Estos algoritmos también han asumido que todos los errores de una distancia dada son igualmente probables, lo cual no es cierto. Los errores que involucran la ortografía fonética donde la ortografía inglesa no es fonética son comunes, al igual que los errores que repiten la misma letra o confunden letras vecinas en un teclado QWERTY . Si se dispone de un gran conjunto de errores ortográficos conocidos y correcciones, estos datos se pueden utilizar para generar tablas de frecuencia para pares de letras y tipos de edición; estas 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 escriba 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 pueden hacerse 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 de 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 correcciones ortográficas. [7] [8]

Referencias

  1. ^ Búsqueda 101 - Vicepresidente de Ingeniería y CIO de Google Douglas Merrill
  2. ^ Editar distancia
  3. ^ Algoritmos geniales, parte 1: árboles BK
  4. ^ abcde Cómo escribir un corrector ortográfico
  5. ^ Algoritmo de corrección ortográfica 1000 veces más rápido (2012)
  6. ^ Alex Franz; Thorsten Brants (3 de agosto de 2006). "Todos nuestros N-gramas te pertenecen".
  7. ^ Ortografía profunda
  8. ^ Algoritmos y técnicas para la corrección ortográfica