{ "cells": [ { "cell_type": "markdown", "id": "e5b020ca3265da72", "metadata": { "collapsed": false }, "source": [ "# UD03 · Notebook 9 — Clasificador de preguntas\n", "\n", "## Clasificar preguntas\n", "\n", "En la práctica [Clasificación de texto con PyTorch](https://colab.research.google.com/github/martinezpenya/ModelosIA/blob/main/docs/UD03/notebooks/UD03_N02_clasificacion_texto_torch.ipynb) hemos visto el proceso para convertir un texto en una representación numérica que pueda ser utilizada por un algoritmo de aprendizaje automático. Hemos visto diferentes representaciones como *Bolsa de palabras* (BoW) y *incrustaciones de palabras* (word embeddings) y cómo entrenar una red neuronal para clasificar texto.\n", "\n", "En esta práctica, deberás repetir el proceso para clasificar las preguntas en temas. Usaremos el conjunto de datos **TREC** de preguntas en inglés, en su versión moderna: [`SetFit/TREC-QC`](https://huggingface.co/datasets/SetFit/TREC-QC).\n", "\n", "**el identificador del *dataset***\n", "\n", "`datasets` ya no ejecuta scripts de carga («*Dataset scripts are no longer supported*»), así\n", "que el identificador clásico `trec` (o `CogComp/trec`) **ya no funciona**, tampoco fijando una\n", "versión antigua de la librería. Usa `load_dataset(\"SetFit/TREC-QC\")`, que es la misma base de\n", "preguntas ya convertida al formato actual. La categoría gruesa está en la columna\n", "`label_coarse_text`.\n", "\n", "### Objetivos de la práctica\n", "\n", "* Reproducir el proceso de [Clasificación de texto con PyTorch](https://colab.research.google.com/github/martinezpenya/ModelosIA/blob/main/docs/UD03/notebooks/UD03_N02_clasificacion_texto_torch.ipynb) para clasificar preguntas por temática.\n", "* Preparar una red neuronal con PyTorch para la clasificación.\n", "* Probar al menos dos representaciones (bolsa de palabras y *embeddings*) para convertir el texto en números.\n", "* Comparar los resultados obtenidos con cada representación.\n", "\n", "### Parte escrita (RA3-b, RA3-e, RA3-f)\n", "\n", "Añade al final una sección de **conclusiones** que responda:\n", "\n", "1. Si tuvieras que anotar manualmente 1.000 preguntas nuevas con su tema, ¿qué decisiones de\n", " *tagset* tomaría un lingüista antes de empezar? (Pista: repasa el §7.2 de la teoría.)\n", "2. ¿Qué perfiles harían falta si este proyecto creciera a un producto real de atención al cliente?\n", "3. ¿Qué formación necesitarías tú para mejorar este sistema más allá de lo visto en la unidad?\n", "", "\n", "## Entrega\n", "\n", "Completa y ejecuta el notebook entero (todas las celdas, sin errores) antes de subirlo a la tarea\n", "correspondiente en Moodle." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.6" } }, "nbformat": 4, "nbformat_minor": 5 }