6. Preparación y limpieza de texto

6.1 Introducción

En el tema anterior vimos que el texto debe transformarse en una representación computable para que un algoritmo pueda procesarlo. Sin embargo, antes de construir esa representación, suele ser necesario realizar un paso previo muy importante: preparar y limpiar el texto.

En aplicaciones reales, los datos textuales rara vez llegan en estado ideal. Pueden contener mayúsculas inconsistentes, URLs, signos extraños, etiquetas HTML, errores ortográficos, espacios repetidos, emojis, abreviaturas o formatos mezclados. Si trabajamos directamente con ese material sin criterio, la representación resultante puede volverse ruidosa y poco útil.

La limpieza de texto busca reducir ese ruido y dejar el contenido en una forma más adecuada para el análisis o el modelado. Pero es importante entender desde el principio que limpiar no significa borrar todo indiscriminadamente. La preparación correcta depende de la tarea.

6.2 ¿Qué significa preparar texto?

Preparar texto significa realizar transformaciones previas para que el contenido sea más fácil de representar, comparar y procesar. En muchos casos se habla también de preprocesamiento.

Estas transformaciones pueden incluir:

  • Uniformar mayúsculas y minúsculas.
  • Eliminar o normalizar caracteres no deseados.
  • Corregir formatos inconsistentes.
  • Tratar URLs, números o etiquetas especiales.
  • Reducir ruido textual.
  • Dejar el texto listo para tokenizar.

El objetivo no es embellecer el texto, sino hacerlo más útil para la tarea de NLP que queremos resolver.

6.3 ¿Por qué la limpieza es importante?

La calidad del preprocesamiento puede afectar mucho el rendimiento de un sistema. Si dos textos equivalentes se representan de forma distinta solo por detalles superficiales, el modelo puede tratarlos como si fueran casos diferentes.

Por ejemplo, estas variantes:

  • Excelente producto
  • excelente producto
  • EXCELENTE producto!!!

expresan prácticamente lo mismo, pero sin una limpieza adecuada podrían generar representaciones diferentes e innecesariamente dispersas.

La limpieza de texto busca reducir variaciones superficiales que no aportan significado útil para la tarea.

6.4 No existe una limpieza universal

Uno de los errores más comunes al empezar en NLP es pensar que hay una lista fija de pasos que siempre conviene aplicar. No es así. La limpieza correcta depende del problema, del dominio y del tipo de modelo.

Por ejemplo:

  • En análisis de sentimiento, los signos de exclamación pueden ser relevantes.
  • En reconocimiento de entidades, las mayúsculas pueden aportar información.
  • En clasificación temática, quizá interese eliminar ruido como URLs.
  • En modelos Transformer modernos, a veces conviene limpiar menos de lo que se hacía en NLP clásico.

Por eso, toda decisión de limpieza debe justificarse en función de la tarea.

6.5 Texto crudo versus texto procesado

Podemos distinguir dos estados generales del dato textual:

  • Texto crudo: llega tal como fue escrito o capturado.
  • Texto procesado: ya fue transformado para facilitar análisis.

Trabajar con texto crudo tiene la ventaja de conservar toda la información original. Trabajar con texto procesado tiene la ventaja de reducir ruido. El equilibrio adecuado depende del caso.

6.6 Conversión a minúsculas

Una de las operaciones más comunes es convertir todo el texto a minúsculas. Esto reduce variaciones como:

  • Python
  • PYTHON
  • python

Si la tarea no necesita distinguir entre estas formas, pasarlas a minúsculas ayuda a unificar el vocabulario y reducir dispersión.

Sin embargo, esta decisión también puede eliminar información útil. En reconocimiento de entidades, por ejemplo, las mayúsculas iniciales pueden ser una pista importante.

6.7 Eliminación de espacios innecesarios

En muchos textos aparecen espacios repetidos, saltos de línea redundantes o combinaciones desordenadas de tabulaciones y blancos. Esto puede ocurrir al copiar texto desde formularios, páginas web, OCR o documentos mal formateados.

Un paso habitual de limpieza es normalizar esos espacios para dejar el texto con una estructura más uniforme. Esto no suele cambiar el significado, pero mejora consistencia y facilita etapas posteriores.

6.8 Signos de puntuación

La puntuación puede verse como ruido o como información valiosa, según el caso. En algunos problemas se elimina porque introduce variantes superficiales. En otros se conserva porque aporta estructura, emoción o intención.

Ejemplos:

  • En clasificación temática simple, quitar puntuación puede simplificar el texto.
  • En análisis de sentimiento, signos como ! o ? pueden ser informativos.
  • En tareas de lenguaje generativo, la puntuación es claramente relevante.

Esto muestra otra vez que limpiar no consiste en eliminar siempre, sino en decidir qué conservar.

6.9 Números

Los números también requieren criterio. A veces conviene eliminarlos, a veces conservarlos y a veces reemplazarlos por una marca especial.

Por ejemplo:

  • En clasificación de noticias, quizá el número exacto no importe.
  • En textos financieros o médicos, los números pueden ser fundamentales.
  • En algunos pipelines se reemplazan por un token genérico como <NUM>.

La decisión depende de cuánto valor semántico tiene la información numérica en la tarea.

6.10 URLs, correos y menciones

En redes sociales, formularios y textos web suelen aparecer URLs, direcciones de correo, menciones de usuarios o hashtags. Estas piezas pueden tratarse de varias formas:

  • Eliminarse si se consideran ruido.
  • Conservarse si aportan información útil.
  • Reemplazarse por marcadores especiales como <URL> o <EMAIL>.

Muchas veces reemplazarlas es una estrategia equilibrada: se conserva el tipo de información sin depender del contenido exacto.

6.11 Etiquetas HTML y marcas de formato

Cuando el texto proviene de páginas web o documentos enriquecidos, puede incluir etiquetas HTML o marcas de formato que no forman parte del contenido lingüístico principal.

Ejemplos como <p>, <br> o <div> suelen eliminarse o transformarse para dejar solo el contenido textual relevante. Si no se hace, el modelo puede aprender patrones que no pertenecen realmente al lenguaje que queremos analizar.

6.12 Tildes, acentos y caracteres especiales

En español y otros idiomas, las tildes forman parte normal de la escritura. A veces se eliminan para unificar variantes, pero esto debe hacerse con cuidado.

Por ejemplo:

  • si y no significan lo mismo.
  • te y tampoco.

Eliminar tildes puede simplificar, pero también puede introducir ambigüedad. En muchos proyectos modernos se prefiere conservarlas, salvo que exista una razón fuerte para normalizarlas.

6.13 Emojis y emoticonos

En texto informal, chats y redes sociales, los emojis pueden aportar información muy valiosa sobre tono, emoción e intención. Eliminarlos automáticamente puede hacer perder señales importantes.

Por ejemplo, estos mensajes no son exactamente equivalentes:

  • Buenísimo
  • Buenísimo :)
  • Buenísimo...

Dependiendo de la tarea, puede convenir conservar emojis, transformarlos en descripciones o eliminarlos. Otra vez, el contexto manda.

6.14 Palabras repetidas y alargamientos

En texto informal es común encontrar repeticiones o alargamientos expresivos como:

  • buenooo
  • nooooo
  • genial genial genial

Esto puede tratarse de distintas maneras:

  • Dejarlo tal como está.
  • Reducirlo a una forma normalizada.
  • Conservar parte de la expresividad mediante reglas.

En análisis de sentimiento, por ejemplo, estos alargamientos a veces reflejan intensidad emocional y no deberían descartarse sin pensar.

6.15 Corrección ortográfica

En algunos pipelines se intenta corregir errores de ortografía antes del modelado. Esto puede mejorar consistencia, pero también introduce riesgos.

Ventajas potenciales:

  • Reduce variantes artificiales de una misma palabra.
  • Facilita coincidencias con vocabulario conocido.
  • Mejora calidad del texto en dominios muy ruidosos.

Riesgos potenciales:

  • Corregir mal palabras válidas.
  • Alterar nombres propios o jerga específica.
  • Introducir errores nuevos.

Por eso, no siempre conviene aplicar corrección automática de manera agresiva.

6.16 Normalización

La normalización consiste en convertir distintas variantes superficiales en una forma más uniforme. Es un concepto amplio que puede incluir:

  • Pasar a minúsculas.
  • Quitar espacios extra.
  • Homogeneizar signos.
  • Reemplazar números o URLs por etiquetas.
  • Reducir variantes ortográficas previsibles.

El objetivo de la normalización es que textos equivalentes o muy parecidos no se representen de formas innecesariamente distintas.

Normalizar no significa empobrecer el texto sin criterio. Significa hacerlo más consistente para la tarea que queremos resolver.

6.17 Limpieza para NLP clásico y para NLP moderno

En NLP clásico era muy habitual limpiar de manera agresiva: quitar mayúsculas, puntuación, números, stopwords y muchas variantes superficiales. Esto tenía sentido porque las representaciones tradicionales eran muy sensibles al ruido.

En NLP moderno, especialmente con modelos preentrenados y tokenizadores más sofisticados, a menudo conviene limpiar menos. Estos modelos pueden aprovechar parte de la estructura original del texto y perderían información si simplificamos demasiado.

Por eso, la intensidad de la limpieza suele ser distinta según usemos:

  • Bag of Words o TF-IDF.
  • Clasificadores clásicos.
  • Embeddings modernos.
  • Transformers preentrenados.

6.18 Orden típico de un pipeline de limpieza

Aunque no exista una receta universal, un pipeline de limpieza suele seguir una lógica parecida:

  1. Leer correctamente el texto y su codificación.
  2. Eliminar ruido estructural evidente, como HTML.
  3. Normalizar espacios y formatos básicos.
  4. Decidir qué hacer con mayúsculas, puntuación y números.
  5. Tratar elementos especiales como URLs, correos o emojis.
  6. Dejar el texto listo para tokenización y etapas posteriores.

Este orden puede variar, pero ilustra que la limpieza es un proceso de decisiones encadenadas.

6.19 Ejemplo conceptual

Supongamos que recibimos este texto:

Hola!!! Quiero saber si mi pedido #1234 llegó... https://tienda.com/seguimiento

Dependiendo del objetivo, podríamos hacer cosas como:

  • Pasar a minúsculas.
  • Reducir signos de exclamación repetidos.
  • Reemplazar la URL por <URL>.
  • Conservar el número del pedido o sustituirlo por una etiqueta.

El resultado final no sería igual en un chatbot de soporte que en un modelo de análisis de sentimiento. Esa diferencia ilustra por qué la limpieza depende del uso previsto.

6.20 Riesgos de limpiar demasiado

Limpiar demasiado puede ser tan perjudicial como limpiar poco. Si eliminamos información valiosa, el sistema pierde señales importantes.

Por ejemplo, una limpieza excesiva podría:

  • Borrar indicios emocionales.
  • Eliminar información numérica relevante.
  • Destruir diferencias entre nombres propios y palabras comunes.
  • Quitar estructura útil para interpretación.

Esto es especialmente importante en tareas donde los matices importan mucho, como análisis de sentimiento, detección de entidades o generación de texto.

6.21 Resumen de decisiones frecuentes

Elemento Posible tratamiento Comentario
Mayúsculas Convertir a minúsculas o conservar. Depende de si la capitalización aporta información.
Puntuación Eliminar, reducir o conservar. Puede ser ruido o señal.
Números Eliminar, conservar o reemplazar. En algunos dominios son fundamentales.
URLs y correos Eliminar o sustituir por etiquetas. Suele convenir preservar el tipo sin el contenido exacto.
Emojis Conservar, convertir o eliminar. Pueden aportar tono emocional.
Espacios y formato Normalizar. Casi siempre conviene.

6.22 Qué debes recordar de este tema

  • La limpieza de texto busca reducir ruido y mejorar consistencia antes del modelado.
  • No existe una receta universal de limpieza válida para todas las tareas.
  • Decisiones como quitar puntuación, tildes o emojis dependen del problema concreto.
  • La normalización ayuda a unificar variantes superficiales del texto.
  • Limpiar demasiado también puede ser un error porque puede eliminar información valiosa.

6.23 Conclusión

La preparación y limpieza de texto es una etapa clave en NLP porque influye directamente en la calidad de las representaciones y, por lo tanto, en el rendimiento de los modelos. No se trata de aplicar reglas mecánicas, sino de decidir qué información debe conservarse y qué ruido conviene reducir.

Un buen preprocesamiento no es el que elimina más cosas, sino el que deja el texto en la forma más adecuada para la tarea que queremos resolver.

En el próximo tema estudiaremos la tokenización de texto, que es el paso siguiente: cómo segmentar el contenido en unidades utilizables por los algoritmos de NLP.