Contenido del curso

Redes neuronales con PyTorch

Clasificación de texto con TorchText y DBpedia

Resumen

Construir un modelo de clasificación de texto con datos reales requiere algo más que conocer PyTorch: necesitas saber cómo procesar lenguaje natural y conectar todo a un dataset confiable. Aquí aprenderás cómo usar PyTorch, nn.Module y TorchText para clasificar artículos de Wikipedia en 14 categorías distintas, entrenar tu modelo y publicarlo en Hugging Face.

Qué librerías de PyTorch necesitas para procesar texto

El ecosistema de PyTorch es amplio y cada librería tiene un propósito específico. Para trabajar con lenguaje natural, la pieza clave es TorchText, que ofrece funciones, objetos y clases pensadas para preparar texto antes de alimentarlo a un modelo.

Dentro del proyecto open source de PyTorch encuentras también otras herramientas que vale la pena explorar:

  • TorchText: procesamiento de texto, tokenización y vocabularios.
  • TorchAudio: manejo de archivos y señales de audio.
  • TorchVision: imágenes, video y tareas de visión por computador.

¿Qué es TorchText? Es la librería oficial de PyTorch para procesar texto. Te da datasets listos, tokenizadores y utilidades para construir vocabularios sin escribir todo desde cero.

Cómo instalar TorchText y Portalocker en Google Colab

El entorno de trabajo es Google Colab, y antes de importar nada necesitas instalar dos paquetes [00:50]. La razón es simple: Colab no trae por defecto la versión más reciente de TorchText, y Portalocker es una dependencia obligatoria para descargar los datasets.

La instalación se hace con dos comandos clave:

  • Instalar Portalocker en una versión mayor a la 2.00.
  • Instalar TorchText con el flag upgrade para forzar la versión más actualizada.

El flag upgrade le indica a pip que reemplace la versión que Colab instalaría por defecto. Sin esto, te arriesgas a usar una versión antigua incompatible con los datasets más nuevos.

bash !pip install portalocker>=2.0.0 !pip install torchtext --upgrade

Una vez instalado, importas las librerías con import torch e import torchtext. Verifica siempre la versión instalada; al momento de esta clase la más actualizada es la 0.15.1 [02:50].

Qué es DBpedia y por qué usarlo para clasificar texto

El dataset que usaremos se llama DBpedia y se obtiene directamente desde torchtext.datasets [01:50]. Es un conjunto curado, de alta calidad, formado por entradas reales de Wikipedia en inglés.

¿Qué es DBpedia? Es un dataset de clasificación de texto basado en artículos de Wikipedia en inglés, organizado en 14 categorías como atletas, compañías o pueblos. Se usa para entrenar modelos de clasificación múltiple.

La ventaja de trabajar con datasets oficiales de TorchText es que ya vienen estructurados y limpios, lo que te ahorra horas de preprocesamiento.

Qué otros datasets ofrece TorchText

DBpedia no es la única opción. La librería incluye varios datasets útiles según la tarea que quieras resolver:

  • AG News: clasificación de noticias, muy popular para benchmarks.
  • DBpedia: clasificación multiclase con 14 etiquetas.
  • Datasets para machine translation y modelado de lenguaje.

Puedes usarlos para entrenar desde cero, afinar modelos o simplemente probar arquitecturas nuevas sin preocuparte por la calidad de los datos.

Cómo funciona la clasificación múltiple con 14 etiquetas

El objetivo del modelo es recibir un texto y predecir a cuál de las 14 categorías pertenece. Si le pasas un fragmento de Wikipedia, el modelo te dirá si habla sobre un atleta, una compañía, un pueblo, una película, entre otros.

Esto se conoce como clasificación multiclase: a diferencia de la clasificación binaria (sí/no), aquí el modelo elige una entre varias opciones posibles. Para que funcione, necesitas:

  • Tokenizar el texto y convertirlo en números.
  • Construir un vocabulario que mapee palabras a índices.
  • Definir una arquitectura con nn.Module que produzca 14 salidas.
  • Entrenar, evaluar y guardar el modelo.

¿Por qué importa tokenizar antes de entrenar? Los modelos no entienden palabras, solo números. Tokenizar convierte cada palabra en un identificador único que el modelo puede procesar matemáticamente.

El último paso del flujo será subir el modelo entrenado a Hugging Face, la plataforma estándar para compartir modelos de machine learning con la comunidad.

Con las dependencias listas y el dataset cargado, ya tienes la base para empezar a procesar el texto. ¿Qué categoría te gustaría que tu modelo identifique primero cuando lo pruebes? Cuéntame en los comentarios.