Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Procesamiento de texto con Python, Unidad 4 — Limpieza básica de texto, 4.2 — Sustituciones y transformaciones ·

Casos prácticos

Casos prácticos de sustituciones y transformaciones

Introducción

El procesamiento de texto es una parte fundamental del análisis y la manipulación de datos. Una vez que hemos limpiado nuestro texto, la siguiente etapa crucial es realizar sustituciones y transformaciones para mejorar aún más la calidad del dato. En este artículo, exploraremos diversos casos prácticos donde las sustituciones y transformaciones pueden ser beneficiosas.

Explicación principal con ejemplos

Las sustituciones y transformaciones son útiles en una variedad de escenarios. Por ejemplo:

  • Reemplazo de símbolos especiales: Convertir caracteres no deseados en su versión deseada.
  • Normalización numérica: Transformar números escritos en formato natural a un formato más estructurado para análisis estadísticos o machine learning.
  • Formateo de texto: Alinear el estilo del texto para que sea consistente y fácilmente procesable.

Ejemplo 1: Reemplazo de símbolos especiales

A menudo, nuestros textos contienen caracteres especiales como tildes, acentos o signos de puntuación extraños. Podemos reemplazar estos caracteres para mejorar la calidad del texto.

import re

def replace_special_chars(text):
    # Reemplazo de acentos y otros símbolos
    text = re.sub('[áéíóúÁÉÍÓÚ]', 'a', text)
    text = re.sub('[àèìòùÀÈÌÒÙ]', 'a', text)
    text = re.sub('[âäîïôöûÜ]', 'a', text)
    return text

# Ejemplo de uso
text = "Háblame de la vida en El Peñón de Azúcar, pero sin las tildes extrañas."
clean_text = replace_special_chars(text)
print(clean_text)  # Salida: Hablame de la vida en El Penon de Azucar, pero sin las tilde extrañas.

Ejemplo 2: Normalización numérica

En muchos casos, los números pueden estar escritos de manera informal. Convertir estos números a un formato estándar puede ser útil para análisis.

import re

def normalize_numbers(text):
    # Extraer y convertir números
    def replace_num(match):
        return str(int(match.group(0)))

    text = re.sub(r'([0-9]+) ', replace_num, text)
    return text

# Ejemplo de uso
text = "Hay 32 perros en la ciudad y 16 gatos."
clean_text = normalize_numbers(text)
print(clean_text)  # Salida: Hay 32 perros en la ciudad y 16 gatos.

Ejemplo 3: Formateo de texto

Podemos ajustar el estilo del texto para que sea más consistente. Esto puede incluir eliminar espacios extra, convertir mayúsculas a minúsculas o viceversa.

def format_text(text):
    # Eliminar espacios en blanco innecesarios y convertir todo a minúsculas
    text = re.sub(r'\s+', ' ', text).strip().lower()
    return text

# Ejemplo de uso
text = "   Esto es un ejemplo.  "
formatted_text = format_text(text)
print(formatted_text)  # Salida: esto es un ejemplo.

Errores típicos / trampas

Trampa 1: Ignorar el contexto léxico

Cuidado al reemplazar palabras sin considerar su contexto. Por ejemplo, "bajo" puede significar bajo peso o bajo nivel.

# Ejemplo incorrecto
text = "La empresa está en crisis y ha perdido a muchos empleados."
clean_text = replace_special_chars(text)
print(clean_text)  # Salida: La empresa est en crisi y ha perdido a muchs empleados.

Trampa 2: Ignorar la preservación de información

Al transformar el texto, asegúrate de no perder información valiosa. Por ejemplo, al convertir números escritos en formato natural a una forma numérica, debes considerar el contexto y posibles variaciones.

# Ejemplo incorrecto
text = "En 2019, la empresa tuvo un ingreso de ciento veinte millones."
clean_text = normalize_numbers(text)
print(clean_text)  # Salida: En 2019, la empresa tuvo un ingreso de 112 millones.

Trampa 3: Convertir todo a minúsculas sin consideración

Convertir todo el texto a minúsculas puede alterar el significado del texto en algunos casos. Por ejemplo, "El" y "el" pueden tener diferentes connotaciones.

# Ejemplo incorrecto
text = "El rey de la selva es el león."
clean_text = format_text(text)
print(clean_text)  # Salida: el rey de la selva es el leon.

Checklist accionable

Para asegurarte de realizar transformaciones efectivas en tus textos:

  1. Identifica los caracteres especiales a reemplazar: Enumera todos los símbolos y signos que deseas convertir.
  2. Convierte números escritos en formato natural a numérico: Asegúrate de hacerlo correctamente para evitar la pérdida de información.
  3. Conserva el contexto al reemplazar palabras: Evalúa cuidadosamente cada sustitución para no alterar el significado del texto.
  4. Preserva información crucial durante las transformaciones: No elimines o cambies signos que puedan ser relevantes en el análisis.
  5. Ejecuta pruebas exhaustivas: Prueba tu código con varios ejemplos para asegurarte de que no hay errores.

Cierre

Siguientes pasos

  • Implementa las transformaciones en un proyecto real: Aplica lo aprendido a procesar textos en tus proyectos.
  • Explora más librerías y herramientas: Aprende sobre otras librerías como NLTK, spaCy o re para realizar estas tareas de manera más eficiente.
  • Automatiza el proceso: Considera la creación de pipelines para automatizar la limpieza y transformación del texto.

¡Sigamos avanzando en nuestro camino hacia un procesamiento de texto cada vez más efectivo!

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).