Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Procesamiento de texto con Python, Unidad 5 — Expresiones regulares (regex), 5.2 — Regex aplicado a texto real ·

Extracción de datos

Extracción de datos con expresiones regulares (regex) en Python

Introducción

La extracción de datos es una técnica fundamental en el procesamiento de texto y análisis de datos. Las expresiones regulares (regex, por sus siglas en inglés) son herramientas poderosas que nos permiten buscar patrones en textos, lo que resulta esencial para extraer información relevante de grandes volúmenes de datos. En este artículo, exploraremos cómo usar regex en Python para extracción de datos de manera efectiva.

Explicación principal con ejemplos

Python ofrece una biblioteca incorporada re para trabajar con regex. Vamos a ver algunos ejemplos prácticos.

Ejemplo 1: Extracción de URL desde texto

Supongamos que tenemos un texto con varias URLs dispersas y queremos extraerlas todas:

import re

texto = "Visitenos en www.example.com, o visite nuestro blog en https://blog.com. También encontrará más información en http://www.anotherpage.com."

# Usando regex para encontrar URLs
urls = re.findall(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', texto)
print(urls)  # ['http://www.example.com', 'https://blog.com', 'http://www.anotherpage.com']

Ejemplo 2: Extracción de números y fechas

En otro ejemplo, extraigamos todos los números y fechas de un texto:

import re

texto = "El año pasado hubo un evento el 15/03/2024. Hay datos importantes en las páginas 9876 y 101."

# Extracción de números
numeros = re.findall(r'\d+', texto)
print(numeros)  # ['15', '03', '2024', '9876', '101']

# Extracción de fechas
fechas = re.findall(r'(\d{1,2})/(\d{1,2})/\d{4}', texto)
print(fechas)  # [('15', '03', '2024')]

Ejemplo 3: Extracción de palabras clave

Extraigamos todas las palabras que contienen la cadena "data" en un texto:

import re

texto = "La data es fundamental para el análisis, especialmente cuando se usa big data."

# Extracción de palabras con 'data'
palabras_data = re.findall(r'\b\w*data\w*\b', texto)
print(palabras_data)  # ['data', 'big']

Errores típicos / trampas

  1. Incorrección en el patrón: Si el patrón regex no coincide con la estructura del texto, no extraerá los datos esperados.
  2. Estructuras complejas de regex: Los patrones demasiado complejos pueden dar errores y rendimiento ineficiente.
  3. Ignorar las diferencias entre mayúsculas y minúsculas: Si el texto contiene mayúsculas y no se normaliza, puede que algunos datos se pierdan.

Checklist accionable

  1. Normalice los textos antes de aplicar regex para asegurar consistencia.
  2. Utilice grupos y capturas solo cuando sea necesario, para evitar sobrecarga.
  3. Pruebe el patrón en un editor online o con herramientas como re.search antes de implementarlo.
  4. Verifique la eficiencia del código y ajuste si es necesario.
  5. Documente los patrones utilizados para facilitar su mantenimiento.

Cierre

La extracción de datos utilizando regex es una técnica vital en el procesamiento de texto. Al utilizar Python, podemos aprovechar sus capacidades para manejar grandes volúmenes de texto y extraer la información necesaria de manera eficiente. Sin embargo, es importante tener cuidado con los errores comunes para asegurar resultados precisos.

Siguientes pasos

  • Representación vectorial del texto: Aprenda cómo representar textos en vectores utilizando técnicas como TF-IDF o Word2Vec.
  • NLP con Machine Learning: Explora modelos de clasificación y regresión aplicados al análisis de texto.
  • NLP con Deep Learning: Conozca los avances en aprendizaje profundo para procesamiento de lenguaje natural, incluyendo modelos pre-entrenados como BERT.

¡Esperamos que este artículo le haya sido útil para mejorar sus habilidades en la extracción de datos utilizando regex en Python!

Contacto

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