Procesamiento del Lenguaje Natural para Principiantes Absolutos

Procesamiento Lenguaje Natural para Principiantes

Resolviendo tareas complejas de procesamiento del lenguaje natural en 10 líneas de código Python

Imagen generada por el autor

Es en su mayoría cierto que el procesamiento del lenguaje natural (NLP, por sus siglas en inglés) es un área compleja de la ciencia de la computación. Frameworks como SpaCy o NLTK son grandes y a menudo requieren cierto aprendizaje. Pero con la ayuda de modelos de lenguaje grandes de código abierto (LLMs, por sus siglas en inglés) y bibliotecas modernas de Python, muchas tareas pueden resolverse de manera mucho más sencilla. Y aún más, los resultados que hace solo varios años solo estaban disponibles en artículos científicos ahora se pueden lograr con solo 10 líneas de código Python.

Sin más preámbulos, vamos a ello.

1. Traducción de idiomas

¿Alguna vez te has preguntado cómo funciona Google Translate? Google utiliza un modelo de aprendizaje profundo entrenado con una gran cantidad de texto. Ahora, con la ayuda de la biblioteca Transformers, esto se puede hacer no solo en los laboratorios de Google, sino también en una PC común. En este ejemplo, utilizaré un modelo pre-entrenado T5-base (Texto a Texto Transfer Transformer). Este modelo fue entrenado primero con datos de texto sin procesar, luego se ajustó a pares de origen-destino como (“traducir inglés a alemán: la casa es maravillosa”, “Das Haus ist Wunderbar”). Aquí, “traducir inglés a alemán” es un prefijo que “indica” al modelo qué hacer, y las frases son el contexto real que el modelo debe aprender.

Advertencia importante. Los modelos de lenguaje grandes son literalmente bastante grandes. La clase T5ForConditionalGeneration, utilizada en este ejemplo, descargará automáticamente el modelo “t5-base”, que tiene un tamaño de aproximadamente 900 MB. Antes de ejecutar el código, asegúrate de tener suficiente espacio en disco y de que tu tráfico no esté limitado.

Un modelo T5 pre-entrenado se puede utilizar en Python:

from transformers import T5Tokenizer, T5ForConditionalGenerationpreprocessed_text = "traducir inglés a alemán: el clima es bueno"tokenizer = T5Tokenizer.from_pretrained('t5-base',                                        max_length=64,                                        model_max_length=512,                                        legacy=False)tokens = tokenizer.encode(preprocessed_text,                          return_tensors="pt",                          max_length=512,                          truncation=True)model =…