Curso de Ingeniería de Datos con Python

Enriquecimiento de los datos

Curso de Ingeniería de Datos con Python

Contenido del curso

Web scraping

Pandas

Enriquecimiento de los datos

Resumen

Acelera tu análisis de texto con un enfoque claro y práctico: usa nltk para tokenizar, filtrar stop words y contar palabras significativas en el título y el body. Este método añade variables numéricas útiles a tu data frame y mejora tus insights sin complicaciones.

¿Qué haremos con nltk para enriquecer el análisis?

El objetivo es tokenizar el título y el body para obtener el número de palabras realmente informativas. Con nltk podrás separar palabras, filtrar lo que no aporta (como las stop words) y contar tokens válidos. El resultado se guarda en nuevas columnas como N Token Title y su equivalente para body.

  • Añadir métricas numéricas para análisis posterior.
  • Separar palabras con word tokenize.
  • Usar stop words en español según el contexto del idioma.
  • Filtrar caracteres no alfanuméricos y normalizar a lowercase.
  • Calcular la longitud de la lista final de palabras válidas.

¿Cómo se tokeniza y limpia texto paso a paso?

El flujo propuesto prioriza la limpieza y la reproducibilidad. Empieza por instalar y cargar recursos de nltk, define el idioma de las stop words, y aplica transformaciones encadenadas con lambda, map y filter.

¿Por qué importar y descargar recursos?

  • Instalar la librería si no está en el ambiente: "conda install nltk".
  • Importar lo necesario: "import nltk" y desde el corpus de nltk las stop words.
  • Si es la primera vez, descargar recursos con "nltk download": se utilizan "punct" para tokenizar y "stopwatch" para las listas de palabras vacías de significado. Solo una vez.
  • Recordatorio importante: nltk es extenso y puede solicitar archivos adicionales la primera vez que corre.

¿Cómo definir stop words y el idioma?

  • Crear un conjunto con las stop words: convertirlo a set para búsquedas rápidas.
  • Elegir el idioma correcto: español si el análisis es en español; inglés si fuera en inglés.
  • El contexto del idioma es clave para que el filtrado sea consistente.

¿Cómo transformar los tokens?

  • Eliminar NAs antes de procesar: evita fallos de nltk.

  • Tokenizar con word tokenize sobre la columna indicada, trabajando por filas con axis 1.

  • Filtrar lo no alfanumérico con funciones de string y convertir el iterador a lista.

  • Normalizar a lowercase para comparar correctamente con las stop words.

  • Filtrar palabras presentes en stop words con filter y una función lambda.

  • Construir la lista final de palabras válidas, llamada valid word list.

  • Obtener la métrica que importa: la longitud de esa lista de tokens válidos.

  • Ideas clave que aprenderás.

    • Definir una función auxiliar reusable: "tokenized column" para título y body.
    • Encadenar transformaciones con lambda, map y filter.
    • Tratar datos faltantes antes de procesar texto.
    • Guardar el resultado como nuevas columnas numéricas.

¿Cómo aplicarlo en el Jupyter Notebook y qué reto se propone?

La forma más eficiente es crear una función auxiliar que reciba el data frame y el nombre de la columna, y devuelva la transformación. Así se usa primero con el título y luego con el body para añadir columnas como N Token Title.

  • Agregar columna con el conteo de tokens del título.
  • Repetir el proceso para el body y renombrar la columna.
  • Interpretar resultados: un título puede tener muchas palabras, pero pocas realmente significativas tras filtrar. En el ejemplo, solo “Hamilton”, “Paul” y “Legado” aportan valor.
  • Dato ilustrativo: el body del ejemplo de “Hamilton” tiene 219 palabras significativas tras el filtrado.

Reto final: implementa "Tokenize Columns" para crear el número de tokens válidos del título y del body, y agrega estos resultados a tu receta de procesamiento en el Jupyter Notebook. ¿Qué dudas te surgieron al implementarlo? Comparte tu experiencia en los comentarios.