Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

SQL para ciencia de datos, Unidad 6 — Funciones avanzadas para análisis, 6.1 — Funciones de texto ·

Normalización de texto

Normalización de texto

Introducción

La normalización de texto es un paso fundamental en la preparación y análisis de datos. En ciencia de datos, los datos de texto pueden estar llenos de variaciones que dificultan su procesamiento y análisis. Es común encontrar diferentes formas de escritura, acentuaciones, mayúsculas y minúsculas, espacios adicionales o faltantes, entre otros problemas. La normalización de texto ayuda a uniformar estos datos para facilitar la manipulación y el análisis posterior.

Explicación principal con ejemplos

En SQL, puedes utilizar varias funciones para normalizar el texto. Aquí te presentamos algunas de las más comunes:

1. LOWER() o UPPER()

Estas funciones convierten todos los caracteres a minúsculas o mayúsculas, respectivamente.

SELECT LOWER('Texto MIXTO') AS Lower_Case, UPPER('Texto MIXTO') AS Upper_Case;
-- Resultado:
-- Lower_Case: texto mixto
-- Upper_Case: TEXTO MIXTO

2. TRIM()

Utiliza esta función para eliminar espacios en blanco al inicio y al final de una cadena.

SELECT TRIM('   Espacio inicial y final     ') AS Trimmed;
-- Resultado:
-- Trimmed: Espacio inicial y final

3. REPLACE()

Reemplaza ocurrencias específicas dentro de una cadena.

SELECT REPLACE('Texto con SIGNO:', 'SIGNO:', '') AS Replaced;
-- Resultado:
-- Replaced: Texto con :

4. REGEXP_REPLACE() (si la base de datos soporta expresiones regulares)

Permite reemplazar partes de una cadena que coinciden con un patrón.

SELECT REGEXP_REPLACE('Texto con #hashtag', '^[^#]+#', '') AS Cleaned;
-- Resultado:
-- Cleaned: hashtag

5. CONCAT() y REVERSE()

Puedes combinar funciones para realizar operaciones más complejas.

SELECT CONCAT(REVERSE('abc'), '_') AS Reversed_and_Concatenated;
-- Resultado:
-- Reversed_and_Concatenated: cba_

Ejemplo completo

A continuación, te mostramos un ejemplo de una consulta que utiliza varias funciones para normalizar texto en una columna:

SELECT 
    TRIM(LOWER(Nombre)) AS Nombre_Normalizado,
    REPLACE(Direccion, ' calle ', ' CARRERA ') AS Direccion_Correcta,
    REGEXP_REPLACE(Cedula, '[^0-9]', '') AS Cedula_Numérica
FROM clientes;

Errores típicos / trampas

  1. Ignorar acentos y diacríticos: Puedes caer en el error de no considerar las diferencias entre palabras con acentos (ej: café vs cAFÉ).
  1. No eliminar todos los espacios: Asegúrate de usar TRIM() adecuadamente para evitar dejar espacios adicionales.
  1. Confundir mayúsculas y minúsculas: Recuerda que las mayúsculas pueden ser significativas en ciertos contextos (ej: USA vs usa).
  1. No considerar multilingüismo: Las bases de datos pueden tener textos en diferentes idiomas, lo cual puede requerir funciones específicas para cada lenguaje.

Checklist accionable

  1. Convierte todas las cadenas a minúsculas o mayúsculas según sea necesario.
  2. Usa TRIM() para eliminar espacios innecesarios.
  3. Reemplaza signos y símbolos irrelevantes con REPLACE().
  4. Utiliza REGEXP_REPLACE() para eliminar caracteres no numéricos en campos de cédula o identificación.
  5. Verifica que todas las cadenas estén en el mismo formato.
  6. Realiza pruebas con datos representativos antes y después del proceso.

Siguientes pasos

  1. Aprende más sobre expresiones regulares: Si tu base de datos soporta REGEXP_REPLACE(), haz una investigación adicional para entender mejor cómo utilizarla.
  2. Utiliza herramientas de limpieza de texto: Considera integrar bibliotecas como Snowball o NLTK en Python para más avanzados procesos de normalización de texto.

La normalización de texto es un paso crítico en la preparación de datos, y al dominar estas técnicas, puedes mejorar significativamente la calidad y la utilidad de tus análisis.

Contacto

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