Enriquecimiento de los datos

Clase 31 de 38Curso de Ingeniería de Datos con Python

Contenido del curso

Web scraping

Pandas

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.