Clase 11: Análisis de texto

Eje IV: Procesamiento de lenguaje natural (NLP)

Objetivo

Primera de las dos clases de texto. Hasta ahora todos los datos eran números o categorías, pero mucho de lo que estudian las ciencias del comportamiento llega como texto: respuestas abiertas de encuestas, entrevistas, posteos, mensajes. Hoy vemos cómo convertir texto en algo que se puede contar, graficar y modelar.

Es una clase práctica: una caja de herramientas para usar texto en el trabajo integrador. Las herramientas clásicas primero, y al final los embeddings, que son el puente a la clase que viene.

Contenidos

  • El texto como dato: los comentarios abiertos de la encuesta de Nimbus y la nota de recomendación.
  • Limpiar y contar: minúsculas, tildes, tokenizar y las stopwords, que se leen antes de usarlas. Las palabras más frecuentes por grupo.
  • Análisis de sentimiento con un diccionario: dos listas de palabras y una resta, validado contra la nota. Dónde se equivoca: negaciones e ironía.
  • La bolsa de palabras: cada texto, una fila de números. Lo que se pierde: el orden.
  • El texto como predictor: bolsa de palabras y regresión logística, comparada contra el diccionario y contra la clase más común. Qué palabras pesan, según los coeficientes.
  • Una receta para llevar el texto a su trabajo integrador.
  • Embeddings: el significado como posición. Del one-hot a los embeddings preentrenados, la analogía rey − hombre + mujer, y el mismo clasificador con embeddings como predictores.
NotaUna tabla nueva de Nimbus: lo que escribieron en la encuesta

nimbus_comentarios.csv trae, para los mismos 600 empleados, la respuesta a la pregunta abierta que seguía a la nota de recomendación: “¿Por qué pusiste esa nota?”. Nimbus es simulada: los comentarios están armados con frases que suenan a una encuesta de clima real, y por eso los métodos andan un poco mejor que con texto real.

Notebooks

La notebook recorre las herramientas clásicas: limpiar y contar palabras por grupo, el diccionario de sentimiento, la bolsa de palabras y el clasificador, y cierra con funciones listas para usar en el trabajo integrador. Tiene dos consignas. Los embeddings se ven en las slides.

Lenguaje Leer en el sitio Ejecutar en Colab Descargar
Python Notebook renderizada Open in Colab .ipynb

La versión en R de esta clase no está publicada.

Los datos

Los archivos se leen por URL desde la notebook, sin bajar nada.

Archivo Contenido URL
nimbus_comentarios.csv el comentario abierto de cada empleado /data/toy-nimbus/nimbus_comentarios.csv
nimbus_patrones.csv la nota de recomendación (y las medidas de la clase 10) /data/toy-nimbus/nimbus_patrones.csv

Slides

Diapositivas de la clase

Lo que viene

La Clase 12 sigue con texto: los modelos de lenguaje grandes (LLMs), cómo usarlos desde una API, y un repaso para el examen.

Lecturas

Obligatoria:

  • James, G., Witten, D., Hastie, T., Tibshirani, R. & Taylor, J. (2023). An Introduction to Statistical Learning with Applications in Python (ISLP), capítulo 10, sección 10.4 (clasificación de documentos con bolsa de palabras) y el comienzo de la sección 10.5 (word embeddings). PDF gratuito oficial en https://www.statlearning.com/.

Recursos de consulta:

  • Dot CSV, los dos videos de su serie sobre procesamiento de lenguaje natural, en los que se apoya el bloque de embeddings: parte 1 y parte 2.
  • La documentación de scikit-learn sobre extracción de features de texto, de donde sale CountVectorizer.