Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Procesamiento de texto con Python, Unidad 9 — Procesamiento de texto estructurado, 9.1 — CSV, JSON y XML con texto ·

Preservar estructura

Preservar estructura: Procesamiento de texto en CSV, JSON y XML

Introducción

Cuando se trabaja con datos estructurados como CSV (Comma-Separated Values), JSON (JavaScript Object Notation) o XML (Extensible Markup Language), es crucial preservar la estructura original del dato. Estos formatos son comunes en aplicaciones empresariales, análisis de big data y procesamiento de información en general. La estructura puede contener información valiosa que podría perderse durante el proceso de limpieza o transformación del texto.

Explicación principal

Preservar la estructura implica mantener los campos y sus relaciones intactos mientras se limpia o analiza el contenido textual dentro de ellos. Aquí te presentamos cómo manejar CSV, JSON y XML con texto en Python, y algunos ejemplos para ilustrar cada caso.

Ejemplo 1: Procesamiento de un archivo CSV

Un archivo CSV típico contiene datos separados por comas y puede contener encabezados. Vamos a ver cómo leerlo, extraer el texto y preservar la estructura.

import csv

def procesa_csv(ruta_archivo):
    with open(ruta_archivo, 'r', encoding='utf-8') as file:
        reader = csv.DictReader(file)
        for row in reader:
            print(f"ID: {row['id']}, Texto: {row['texto']}")

# Ejemplo de uso
procesa_csv('datos.csv')

Ejemplo 2: Procesamiento de JSON

JSON es una forma versátil y ampliamente utilizada para almacenar datos estructurados. La siguiente función muestra cómo extraer texto desde un campo específico en un archivo JSON.

import json

def procesa_json(ruta_archivo):
    with open(ruta_archivo, 'r', encoding='utf-8') as file:
        data = json.load(file)
        for item in data['registros']:
            print(f"ID: {item['id']}, Texto: {item['texto']}")

# Ejemplo de uso
procesa_json('datos.json')

Ejemplo 3: Procesamiento de XML

XML es otro formato de datos estructurados común. Usaremos la biblioteca xml.etree.ElementTree para analizar un archivo XML.

import xml.etree.ElementTree as ET

def procesa_xml(ruta_archivo):
    tree = ET.parse(ruta_archivo)
    root = tree.getroot()
    for registro in root.findall('registro'):
        id_ = registro.find('id').text
        texto = registro.find('texto').text
        print(f"ID: {id_}, Texto: {texto}")

# Ejemplo de uso
procesa_xml('datos.xml')

Errores típicos / trampas

  1. No validar la codificación: Algunos archivos CSV o JSON pueden estar en diferentes codificaciones, lo que puede causar errores de decodificación.
  2. Omitir comprobaciones de tipos: En algunos casos, el texto se encuentra dentro de campos no textuales (como enteros o booleanos), lo cual podría desequilibrar la estructura del archivo.
  3. No manejar excepciones adecuadamente: Ignorar las excepciones puede ocasionar que el proceso termine abruptamente sin procesar todo el contenido.

Checklist accionable

  1. Verifica siempre la codificación del archivo al inicio para evitar problemas de decodificación.
  2. Asegúrate de leer y validar los tipos de cada campo antes de extraer texto.
  3. Maneja excepciones para que tu proceso no se caiga si ocurre algún error inesperado.
  4. Mantiene una copia segura del archivo original mientras trabajas en él.
  5. Documenta claramente el flujo y las decisiones tomadas durante el procesamiento.

Siguientes pasos

  • Profundiza en la representación vectorial: Una vez que hayas limpiado y transformado tu texto, podrías considerar convertirlo a vectores utilizando métodos como TF-IDF o word2vec.
  • Avanza al análisis avanzado de NLP: Estos datos estructurados pueden ser utilizados en modelos de machine learning para tareas más complejas.
  • Explora la integración con APIs y servicios web: Si tus datos están disponibles en formato JSON, puedes aprovechar las APIs disponibles para extraer más información o procesarlos de manera más eficiente.

Preservar la estructura del texto es una práctica crítica que puede marcar la diferencia entre un análisis exitoso y uno fallido. Siguiendo estos pasos y considerando estos aspectos, podrás trabajar con confianza en tus proyectos de procesamiento de texto en archivos CSV, JSON y XML.

Contacto

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