Spelling corrector en NLP

| Última modificación: 21 de agosto de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿Sabes qué es y cómo funciona un spelling corrector en NLP?

En el campo del NLP existen multitud de causas por las cuales pueden aparecer errores en campos de texto. Algunas muy comunes son:

  • Gazapos al escribir.
  • Errores de reconocimiento de un ASR.
  • Errores al transcribir imágenes a texto (OCR).

Aunque hoy en día existen modelos complejos basados en deep learning (como, por ejemplo, los seq2seq), existen otros muchos menos complejos que están basados en determinar la similitud (o diferencia) entre strings en cuanto al número de cambios léxico-gráficos necesarios para transformar un string en otro.

¿Qué encontrarás en este post?

Spelling corrector en NLP

Algunos de los problemas que podemos tener cuando estamos haciendo un análisis de texto es que los propios usuarios metan ruido, no en forma del contexto en el que se mueven, sino que se equivoquen a la hora de escribir.

Entonces, por ejemplo, se pueden incluir faltas ortográficas o existir equivocaciones en las que, en vez de poner una letra, ponen otra distinta; incluso si estamos haciendo una transcripción de voz a texto, ese mismo paso puede tener ya errores propios que deriven en una transcripción errónea.

Obviamente estas situaciones son normales por la propia naturaleza del modelo. Así pues, por ser un modelo de deep learning el que se utiliza, no es un modelo completamente fiable y puede tender a fallos.

Si estamos haciendo OCR, que es el paso que consiste en transcribir de imágenes a texto, como se hace con redes convolucionales, esto también tiene sus fallos y puede ocasionar errores.

Entonces, lo que veremos aquí es qué métodos se pueden aplicar a ese texto que hemos recibido y que, probablemente, tenga fallos ortográficos, para corregirlos y encontrar la palabra que sea más probable que haya querido decir la persona. Esto se hace con ayuda de un spelling corrector en NLP.

Distancia de edición

Para entender de qué va eso del spelling corrector en NLP, tenemos que entender, primero, qué es la distancia de edición.

La distancia de edición es un método para calcular la similitud entre cadenas de caracteres. Aquí usaremos la distancia de edición para presentar un algoritmo de corrección ortográfica o spelling corrector en NLP.

Dicha distancia tiene en cuenta el número mínimo de operaciones requeridas para transformar una cadena de caracteres en otra. También se utiliza en bioinformática para cuantificar la similitud entre cadenas de ADN.

Estos métodos guardan cierto parecido con los métodos de similitud que hemos visto con otro tipo de modelos y procesos. Cuando hemos utilizado los métodos de similitud con spaCy, uno de los que se empleó por debajo fue el de distancia de edición. Dependiendo del tipo de distancia que elijamos para trabajar con el spelling corrector en NLP, se aplicará un tipo de edición u otra.

En función de las operaciones que se permitan, existen diferentes tipos de distancias de edición, como son:

DistanciaInserciónEliminaciónSustituciónTransposición
LevenshteinYYY
Subsecuencia común
más larca o LCS
YY
Hamming*Y
Damerau – Levenshtein**YYY
JaroY
Spelling corrector en NLP: distancia de edición

* Solo sirve para strings de igual longitud.

** Transposición de dos caracteres adyacentes.

spelling corrector en NLP

Al final lo que se busca con esto es calcular la distancia entre dos cadenas de caracteres.

Además del número de operaciones, también debe definirse la penalización por cada operación. Una posibilidad es la de que cada operación suponga suma +1 de la distancia entre dos strings:

d (‘cena’, ‘coma’) = 2

Si se define un coste positivo, se cumple lo siguiente:

  • d (a, b) = 0, solo si a = b
  • d (a, b) = 0, solo si a ≠ b
  • d (a, b) = d (b, a)

Hay que tener en cuenta que una edición no tiene por qué resultar en una palabra real, al igual que pasa con la lematización.

Ahora que hemos visto cómo funciona un spelling corrector en NLP con la distancia de edición, podemos seguir aprendiendo. Para acceder a las numerosas opciones laborales del Big Data, una de las áreas con mejores salarios y mayor demanda, tenemos para ti el Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp. Con esta formación intensiva adquirirás los conocimientos teóricos y prácticos imprescindibles para abrirte paso en el mundillo en pocos meses. ¡Da el paso definitivo para impulsar tu futuro y entra ahora mismo para pedir más información!

Sandra Navarro

Business Intelligence & Big Data Advisor & Coordinadora del Bootcamp en Data Science, Big Data & Machine Learning.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado