Técnicas de normalización para NLP

Contenido del Bootcamp Dirigido por: | Última modificación: 22 de julio de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿Sabes cómo funcionan las técnicas de normalización para NLP? En este post te contaremos algunas de ellas para que las apliques en el procesado y modelado de datos en machine learning.

Normalización para NLP

Ahora que hemos aprendido cómo coger las frases de un texto y separarlas en tokens (en palabras), vamos a hacer una normalización para NLP de estas palabras.

Entonces, tenemos una frase entera. El módulo de string de Python tiene para este tipo de oraciones diferentes funciones, entre las que se encuentran:

Convertir a mayúsculas y minúsculas

Una buena práctica es convertir siempre el texto a minúsculas, a no ser que estemos haciendo etiquetado de palabras, ya que puede tratarse de una ciudad, un nombre de persona o cualquier nombre propio.

Este proceso de normalización para NLP se lleva a cabo por medio de la función lower.

Imagina que tenemos la siguiente frase:

print (sentence)

Esta vez no voy a usar una película como pretexto para exponer mis ideas o pensamientos más dementes/racionales/insensatos. Esta vez, y lo juro ante el sagrado Necronomicón de Lovecraft, pienso hablar de la película en sí…

Si convertimos todo a minúsculas, quedaría así:

sentence.lower ()

esta vez no voy a usar una película como pretexto para exponer mis ideas o pensamientos más dementes/racionales/insensatos. esta vez, y lo juro ante el sagrado necronomicón de lovecraft, pienso hablar de la película en sí…

También existe otra opción con la que podemos pasar todo a mayúsculas. Se trata de upper:

sentence.upper ()

ESTA VEZ NO VOY A USAR UNA PELÍCULA COMO PRETEXTO PARA EXPONER MIS IDEAS O PENSAMIENTOS MÁS DEMENTES/RACIONALES/INSENSATOS. ESTA VEZ, Y LO JURO ANTE EL SAGRADO NECRONOMICÓN DE LOVECRAFT, PIENSO HABLAR DE LA PELÍCULA EN SÍ…

normalización para NLP

Eliminar espacios al principio y al final

sentence.strip ()

Esta vez no voy a usar una película como pretexto para exponer mis ideas o pensamientos más dementes/racionales/insensatos. Esta vez, y lo juro ante el sagrado Necronomicón de Lovecraft, pienso hablar de la película en sí (por primera vez y esperando que no sirva de precedente), aunque creo que es evidente que prefiero que una película me haga reflexionar sobre cualquier aspecto que en ella se dé cita

Filtrado

Ahora, en nuestra normalización para NLP, vamos a subirle un poco más la complejidad a los procesos. Vamos a usar el módulo re en Python. Este módulo lo que permite es aplicar regex a string.

Regex

Los regex son reglas que se aplican a strings. Para entender mejor este concepto, veamos un ejemplo de una regla que le aplicaremos a un string:

#normalización para NLP
#Solo minúsculas y números
import re
re.sub (r' [^a-z0-9] + ' ,  '  ', sentence)

Con esta regla le estamos diciendo que lo que haya dentro de los corchetes lo vamos a trazar. En el caso anterior, lo que hay dentro de los corchetes son los números del 0 al 9 y las letras de la a a la z, pero solo en minúsculas. El signo + fuera de los corchetes indica que esto aplica para todos los números y letras que se repitan una o más veces.

Veamos el resultado:

 sta vez no voy a usar una pel cula como pretexto para exponer mis ideas o pensamientos m s dementes racionales insensatos  sta vez  y lo juro ante el sagrado  ecronomic n de Lovecraft  pienso hablar de la pel cula en s   por primera vez y esperando que no sirva de precedente   aunque creo que es evidente que prefiero que una pel cula me haga reflexionar sobre cualquier aspecto que en ella se d  cita

Hemos señalado con rojo los espacios en los que se ha hecho alguna modificación de la palabra, ya fuera porque contenía una tilde o porque había algún otro carácter especial, como comas, puntos o paréntesis, antes o después de esta.

Si hiciéramos el proceso contrario, es decir, dejar solo las mayúsculas, quedaría del siguiente modo:

#normalización para NLP
#Solo minúsculas y números
import re
re.sub (r' [^A-Z0-9] + ' ,  '  ', sentence)

‘ E N L ‘

Como solo tenemos tres mayúsculas y ningún número, ese sería el resultado.

#normalización para NLP
#Solo números
#Quedarse solo con números
import re
re.sub ( ' [^0-9] + ' ,  '  ', sentence)

‘ ‘

Para poder acceder a las opciones laborales del Big Data, una de las áreas en el mundo de la industria tech mejor pagadas, tenemos para ti el Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp. Con esta formación intensiva e íntegra de gran calidad adquirirás los conocimientos teóricos y prácticos necesarios para conseguir el trabajo de tus sueños en pocos meses. ¡No esperes más para impulsar tu carrera y pide información ahora!

Posts más leídos

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

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