Buena pregunta @cesarisaacgonzalez por acá una respuesta que encontré acá:
Correcciones ortográficas
Para realizar estas correcciones entran en juego la similitud entre palabras o “string metrics”, son métricas que miden la distancia entre dos palabras, esta distancia es el número de cambios que hay que realizar en una palabra para llegar a la palabra objetivo, la distancia de Levenshtein o distancia de edición (edit distance) es una de las más conocidas y utilizada ampliamente en teoría de la información y ciencias de la computación.
Este proceso es de gran utilidad por ejemplo en las observaciones de las inspecciones de las hojas Excel, ya que los operarios las rellenan en el momento y de manera rápida, cometiendo numerosas faltas de ortografía.
A continuación, se explican los dos métodos que se han implementado, usándose finalmente el propuesto por Levenshtein.
Damerau- Levenshtein
La distancia de Damerau-Levenshtein, una mejora de la distancia de Levenshthein. El algoritmo calcula el número mínimo de operaciones requeridas para transformar una cadena de caracteres en otra. Las operaciones contempladas son:
• Inserción
• Eliminación
• Sustitución
• Transposición
Ejemplo: distancia entre “contadro” y “contador
Dist(contadro, contador) = pos(m)(n) = 1
La operación es de transposición entre “r” y “o”
Peter Norving
Peter Norving es un científico informático estadounidense y el director de investigación de Google Inc. Especialista en inteligencia artificial, procesamiento de lenguaje natural y recuperación de información. Propuso un algoritmo sencillo para explicarlo y que ocupara menos de una hoja.
• Entrena un modelo leyendo un fichero que contiene libros de dominio público con alrededor de
un millón de palabras. A cada palabra le asigna el número de veces que ha aparecido en el fichero.
• Para corregir la palabra que requiramos genera todas las posibles combinaciones de letras,
combinando las separaciones, eliminaciones, transposiciones, reemplazos e inserciones.
• Vuelve a hacer el paso anterior con todas las palabras nuevas generadas.
• De todas las palabras generadas, se queda con las que conocemos, es decir, las que el fichero
contiene.
Ejemplo con la palabra “ola”:
• Eliminaciones: la, oa, ol
• Transposiciones: loa, oal
• Reemplazos: ala, bla, cla, dla, ela, fla, gla, hla, ila, jla, kla, lla, mla, nla, ñla, ola, pla, qla, rla, sla, tla,
ula, vla, wla, xla, yla, zla, oaa, oba, oca, oda, oea, ofa, oga, oha, oia, oja, oka, ola, oma, ona, oña,
ooa, opa, oqa, ora, osa, ota, oua, ova, owa, oxa, oya, oza, ola, olb, olc, old, ole, olf, olg, olh, oli, olj,
olk, oll, olm, oln, olñ, olo, olp, olq, olr, ols, olt, olu, olv, olw, olx, oly, olz
• Inserciones: aola, bola, cola, dola, eola, fola, gola, hola, iola, jola, kola, lola, mola, nola, ñola, oola,
pola, qola, rola, sola, tola, uola, vola, wola, xola, yola, zola, oala, obla, ocla, odla, oela, ofla, ogla,
ohla, oila, ojla, okla, olla, omla, onla, oñla, oola, opla, oqla, orla, osla, otla, oula, ovla, owla, oxla,
oyla, ozla, olaa, olba, olca, olda, olea, olfa, olga, olha, olia, olja, olka, olla, olma, olna, olña, oloa,
olpa, olqa, olra, olsa, olta, olua, olva, olwa, olxa, olya, olza, olaa, olab, olac, olad, olae, olaf, olag,