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.
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:
El objetivo no es embellecer el texto, sino hacerlo más útil para la tarea de NLP que queremos resolver.
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 productoexcelente productoEXCELENTE producto!!!expresan prácticamente lo mismo, pero sin una limpieza adecuada podrían generar representaciones diferentes e innecesariamente dispersas.
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:
Por eso, toda decisión de limpieza debe justificarse en función de la tarea.
Podemos distinguir dos estados generales del dato textual:
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.
Una de las operaciones más comunes es convertir todo el texto a minúsculas. Esto reduce variaciones como:
PythonPYTHONpythonSi 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.
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.
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:
! o ? pueden ser informativos.Esto muestra otra vez que limpiar no consiste en eliminar siempre, sino en decidir qué conservar.
Los números también requieren criterio. A veces conviene eliminarlos, a veces conservarlos y a veces reemplazarlos por una marca especial.
Por ejemplo:
<NUM>.La decisión depende de cuánto valor semántico tiene la información numérica en la tarea.
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:
<URL> o <EMAIL>.Muchas veces reemplazarlas es una estrategia equilibrada: se conserva el tipo de información sin depender del contenido exacto.
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.
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 sí no significan lo mismo.te y té 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.
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ísimoBuenísimo :)Buenísimo...Dependiendo de la tarea, puede convenir conservar emojis, transformarlos en descripciones o eliminarlos. Otra vez, el contexto manda.
En texto informal es común encontrar repeticiones o alargamientos expresivos como:
buenooonooooogenial genial genialEsto puede tratarse de distintas maneras:
En análisis de sentimiento, por ejemplo, estos alargamientos a veces reflejan intensidad emocional y no deberían descartarse sin pensar.
En algunos pipelines se intenta corregir errores de ortografía antes del modelado. Esto puede mejorar consistencia, pero también introduce riesgos.
Ventajas potenciales:
Riesgos potenciales:
Por eso, no siempre conviene aplicar corrección automática de manera agresiva.
La normalización consiste en convertir distintas variantes superficiales en una forma más uniforme. Es un concepto amplio que puede incluir:
El objetivo de la normalización es que textos equivalentes o muy parecidos no se representen de formas innecesariamente distintas.
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:
Aunque no exista una receta universal, un pipeline de limpieza suele seguir una lógica parecida:
Este orden puede variar, pero ilustra que la limpieza es un proceso de decisiones encadenadas.
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:
<URL>.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.
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:
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.
| 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. |
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.