9. Normalización del texto

9.1 Introducción

En los temas anteriores vimos que antes de modelar texto suele ser necesario limpiarlo, tokenizarlo y decidir si ciertas palabras frecuentes deben eliminarse o no. Dentro de ese conjunto de decisiones aparece un concepto central: la normalización del texto.

Normalizar significa convertir distintas variantes superficiales de una misma expresión en una forma más uniforme. El objetivo es que diferencias irrelevantes no multipliquen artificialmente el vocabulario ni compliquen la representación computacional.

Sin embargo, como ocurre con casi todo el preprocesamiento en NLP, normalizar no es un proceso automático que siempre deba llevarse al máximo. La clave está en distinguir qué variaciones conviene unificar y cuáles contienen información importante que no debería perderse.

9.2 ¿Qué significa normalizar un texto?

Normalizar un texto significa transformar formas distintas pero relacionadas en una representación más consistente. En otras palabras, buscamos reducir variaciones superficiales que no deberían producir diferencias innecesarias en el análisis.

Por ejemplo, puede interesarnos tratar de forma equivalente estas variantes:

  • Python
  • python
  • PYTHON

Si la tarea no necesita distinguirlas, normalizarlas ayuda a que todas se representen como una misma unidad.

9.3 ¿Por qué es importante?

La normalización es importante porque en textos reales hay muchísimas variantes que aumentan artificialmente la diversidad de formas sin aportar nuevo significado útil para la tarea. Si no reducimos parte de esa variación, el sistema puede terminar aprendiendo diferencias accidentales en lugar de patrones relevantes.

Normalizar puede ayudar a:

  • Reducir tamaño del vocabulario.
  • Mejorar consistencia entre documentos.
  • Facilitar comparación entre textos.
  • Disminuir ruido en representaciones clásicas.
  • Hacer más robusto el pipeline frente a formatos heterogéneos.
La normalización busca que diferencias superficiales no se conviertan en diferencias semánticas ficticias para el modelo.

9.4 Normalización no es lo mismo que limpieza general

Aunque ambos conceptos están relacionados, conviene distinguirlos. La limpieza de texto es un proceso amplio que puede incluir eliminación de ruido, HTML, URLs, espacios extra y otras decisiones. La normalización, en cambio, se centra más específicamente en uniformar variantes.

Por ejemplo:

  • Eliminar una etiqueta HTML es una operación de limpieza.
  • Convertir todo a minúsculas es una operación de normalización.
  • Reemplazar diferentes formatos numéricos por una forma común también es normalización.

9.5 Conversión a minúsculas como forma de normalización

Una de las estrategias más habituales de normalización es pasar todo el texto a minúsculas. Esto permite tratar como equivalentes formas que solo difieren en capitalización.

Por ejemplo:

  • Argentina
  • argentina
  • ARGENTINA

pueden quedar representadas de la misma manera si la tarea no necesita distinguir entre ellas.

Sin embargo, esta decisión también puede borrar pistas útiles, por ejemplo en reconocimiento de entidades. Por eso no siempre conviene aplicarla ciegamente.

9.6 Normalización de espacios

Otra forma muy común de normalización consiste en unificar espacios, saltos de línea y tabulaciones. Dos textos con el mismo contenido pueden verse distintos si uno tiene espacios dobles, saltos innecesarios o separaciones irregulares.

Reducir ese tipo de variación no suele afectar el significado, pero mejora mucho la consistencia del dato textual.

9.7 Normalización de signos y puntuación

En ciertos casos conviene simplificar o unificar signos. Por ejemplo, pueden aparecer comillas distintas, guiones largos y cortos, repeticiones exageradas de signos o puntuación inconsistente.

Ejemplos:

  • hola!!!
  • hola!!
  • hola!

Dependiendo del problema, podríamos querer conservar esa diferencia expresiva o normalizarla a una forma común. Esto vuelve a mostrar que normalizar siempre implica una decisión sobre qué matices consideramos relevantes.

9.8 Tildes y diacríticos

Una decisión delicada en español es qué hacer con las tildes. A veces se eliminan para unificar formas, pero esto puede introducir ambigüedad.

Por ejemplo:

  • si y
  • te y
  • mas y más

No representan exactamente lo mismo. Por eso, eliminar tildes puede simplificar el texto, pero también puede borrar diferencias semánticas reales.

En muchos sistemas actuales se prefiere conservarlas, salvo que el dominio tenga mucho texto sin acentos y se busque robustez frente a esa variación.

9.9 Normalización de caracteres Unicode

En textos digitales también puede haber diferencias invisibles o poco obvias relacionadas con Unicode. Dos cadenas visualmente iguales pueden estar representadas internamente de maneras distintas.

La normalización Unicode busca resolver estos casos, unificando representaciones equivalentes de caracteres acentuados, símbolos y combinaciones especiales.

Esto suele ser importante cuando el texto proviene de fuentes muy heterogéneas o cuando hay que comparar cadenas con precisión.

9.10 Números y formatos numéricos

Los números pueden aparecer en formatos diferentes sin cambiar demasiado el papel que cumplen en el texto. A veces conviene conservarlos tal cual; otras, reemplazarlos por una forma común.

Por ejemplo, estas variantes:

  • 15
  • 15.0
  • 015

pueden o no considerarse equivalentes según la tarea. En algunos pipelines se sustituyen por un marcador como <NUM> para preservar el hecho de que había un número, pero no su valor exacto.

9.11 URLs, correos y entidades repetitivas

Otra forma frecuente de normalización es reemplazar ciertos patrones específicos por etiquetas más generales.

Por ejemplo:

  • Una URL puede reemplazarse por <URL>.
  • Un correo puede reemplazarse por <EMAIL>.
  • Un número telefónico puede reemplazarse por una etiqueta común.

Esto ayuda a reducir variación superficial sin perder completamente la información de tipo.

9.12 Alargamientos y repeticiones expresivas

En lenguaje informal aparecen formas como:

  • buenoooo
  • siiiii
  • jajajajaja

Podemos decidir conservarlas tal como están o normalizarlas a formas más estables. Esta decisión depende de si queremos preservar expresividad emocional o reducir variación para un modelo más clásico.

En análisis de sentimiento, por ejemplo, estos alargamientos pueden contener información valiosa sobre intensidad.

9.13 Abreviaturas y variantes informales

En chats, redes y lenguaje cotidiano aparecen abreviaturas como:

  • xq
  • pq
  • tmb
  • q

Una posible forma de normalización es expandirlas a sus equivalentes más estándar, si la tarea lo justifica. Pero esto también puede ser riesgoso, porque algunas abreviaturas son ambiguas y la expansión automática no siempre es correcta.

9.14 Normalización y pérdida de información

Normalizar siempre implica un compromiso. Al hacer más uniforme el texto, reducimos variabilidad, pero también podemos perder matices.

Por ejemplo, si convertimos todo a minúsculas y eliminamos tildes, reducimos dispersión, pero podemos borrar señales útiles sobre nombres propios o diferencias léxicas importantes.

Por eso, la pregunta correcta no es "¿cómo normalizo al máximo?", sino "¿qué variaciones quiero reducir sin perder información clave para mi tarea?".

Toda normalización es una decisión de compromiso entre consistencia y riqueza informativa.

9.15 Relación con tokenización y vocabulario

La normalización impacta directamente sobre la tokenización y sobre el tamaño del vocabulario. Si normalizamos antes, muchas variantes superficiales se agrupan bajo una misma forma y el vocabulario final puede reducirse.

Por ejemplo, sin normalización podríamos tener tokens distintos para:

  • Casa
  • casa
  • CASA

Con una normalización adecuada, las tres podrían mapear a una sola forma.

9.16 Normalización en NLP clásico

En NLP clásico, la normalización solía ser bastante agresiva. Esto tenía sentido porque representaciones como Bag of Words y TF-IDF eran muy sensibles a pequeñas variaciones superficiales.

Por eso era común:

  • Pasar todo a minúsculas.
  • Quitar parte de la puntuación.
  • Normalizar espacios.
  • Unificar ciertas variantes ortográficas.

Estas decisiones podían mejorar mucho la consistencia del análisis.

9.17 Normalización en modelos modernos

En NLP moderno, especialmente con tokenizadores avanzados y modelos preentrenados, la necesidad de normalizar agresivamente puede ser menor. Muchos modelos están preparados para manejar una parte de la variación superficial del lenguaje.

Además, si normalizamos demasiado, podemos alejarnos del tipo de texto con el que el modelo fue entrenado. Por eso, en muchos casos modernos se prefiere una normalización más moderada y cuidadosa.

9.18 Ejemplo conceptual

Supongamos que recibimos estos tres mensajes:

  • QUIERO saber el precio
  • quiero saber el precio
  • Quiero saber el precio!!!

Dependiendo de la tarea, podríamos decidir que los tres deben quedar muy cerca de una misma forma normalizada. Pero también podríamos querer conservar el énfasis o la expresividad del último mensaje.

La normalización correcta depende, entonces, de qué información consideramos relevante.

9.19 Resumen de estrategias frecuentes

Estrategia Objetivo Riesgo potencial
Pasar a minúsculas Reducir variantes por capitalización. Perder información sobre nombres propios o énfasis.
Normalizar espacios Mejorar consistencia formal. Generalmente bajo.
Eliminar tildes Unificar variantes ortográficas. Introducir ambigüedad semántica.
Reemplazar URLs y correos Reducir variación preservando el tipo. Perder contenido exacto si era relevante.
Reducir repeticiones Unificar lenguaje informal. Perder intensidad expresiva.

9.20 Qué debes recordar de este tema

  • Normalizar significa volver más uniforme el texto reduciendo variantes superficiales.
  • La normalización ayuda a mejorar consistencia y a reducir dispersión en la representación.
  • No toda variación debe eliminarse; algunas diferencias contienen información útil.
  • Minúsculas, espacios, tildes, URLs y abreviaturas son decisiones típicas de normalización.
  • La estrategia correcta depende de la tarea, del dominio y del modelo.
  • Normalizar demasiado también puede ser perjudicial.

9.21 Conclusión

La normalización del texto es una herramienta clave para reducir variaciones innecesarias y hacer más consistente la representación del lenguaje. Bien aplicada, ayuda a que el sistema se concentre en las diferencias importantes y no en detalles accidentales de formato.

Pero normalizar no significa simplificar a ciegas. Como en todo el preprocesamiento de NLP, la calidad de la decisión depende de entender qué información conviene conservar y qué variación puede reducirse sin afectar la tarea.

En el próximo tema estudiaremos stemming y lematización, dos técnicas relacionadas con la reducción de variantes de palabras, pero ya no a nivel superficial de formato, sino a nivel morfológico.