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.
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 | .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
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.