Procesamiento de Lenguaje Natural con Python en Google Colab

Clase 4 de 24Curso de Fundamentos de Procesamiento de Lenguaje Natural con Python y NLTK

Contenido del curso

Fundamentos con NLTK

Resumen

Trabajar con procesamiento de lenguaje natural ya no requiere configuraciones complicadas ni instalaciones locales. Con NLTK y Google Colab puedes comenzar a explorar corpus de texto en español en cuestión de minutos, directamente desde tu navegador. A continuación se explican los pasos fundamentales para importar la librería, descargar un corpus y realizar las primeras operaciones de exploración sobre los datos.

¿Por qué usar Google Colab para procesamiento de lenguaje natural?

Google Colab es una plataforma que permite ejecutar notebooks tipo Jupyter sin instalar nada en tu computador [0:12]. Al abrir un navegador web ya tienes acceso a una instancia con RAM y disco asignados, e incluso puedes usar GPUs y TPUs para modelos más sofisticados. La gran ventaja para ciencia de datos y machine learning es que muchas librerías, incluyendo NLTK, ya vienen preinstaladas, lo que elimina la fricción inicial.

Cuando la marca verde de RAM y disco aparece en la parte superior del notebook, significa que la instancia está lista para soportar todos tus cálculos [0:42].

¿Cómo importar NLTK y descargar un corpus en español?

El primer paso es importar la librería con una sola línea:

python import nltk

Una vez importada, es necesario descargar el corpus que se quiere procesar. NLTK mantiene una base central con múltiples volúmenes de texto (corpus o corpora). Para obtener uno específico se utiliza nltk.download() indicando el nombre del recurso [1:17]:

python nltk.download('cess_esp')

El corpus cess_esp es una colección de texto en español compuesta por titulares de noticias que ya están tokenizados, es decir, cada palabra y signo de puntuación aparece como un elemento independiente dentro de listas [2:10].

¿Qué estructura tiene el corpus descargado?

Para cargar las oraciones del corpus y explorar su contenido se escribe:

python corpus = nltk.corpus.cess_esp.sents() print(corpus)

El resultado es una lista de listas (los corchetes cuadrados dobles lo confirman). Cada sublista representa un titular de noticia tokenizado [2:26]. Para conocer el tamaño del corpus basta con usar len():

python print(len(corpus))

Esto devuelve 6 030, lo que indica que el corpus contiene seis mil treinta titulares de noticias en español [3:05].

¿Qué significa aplanar una lista y para qué sirve?

El proceso de aplanar (o flatten) consiste en concatenar todas las sublistas en una sola lista grande. De esta forma se obtiene una secuencia continua de tokens en lugar de una estructura anidada [3:25].

python flatten = [w for l in corpus for w in l] print(len(flatten))

Esta sintaxis compacta equivale a un doble ciclo for: el ciclo exterior recorre cada lista dentro del corpus y el ciclo interior recorre cada palabra dentro de esa sublista [3:55]. El resultado arroja 192 685 tokens, que pueden ser palabras o signos de puntuación dependiendo de la estructura del corpus [4:50].

Para inspeccionar solo una porción se usa la notación de slicing:

python print(flatten[:20])

Esto muestra los primeros veinte elementos, que corresponden aproximadamente al primer titular completo [5:10]. Si se amplía el rango a cien, se pueden observar varios titulares concatenados, confirmando que el aplanamiento funcionó correctamente [5:35].

¿Qué papel juegan las expresiones regulares en el procesamiento de texto?

Las expresiones regulares son un lenguaje estandarizado para definir patrones de búsqueda dentro de cadenas de texto [1:55]. Python incluye la librería Re para trabajar con ellas:

python import re

La documentación oficial de la librería re está disponible directamente desde los notebooks del curso y cubre todo lo necesario para aplicar expresiones regulares en Python [2:00]. Aunque en esta sesión solo se introduce el concepto, en la siguiente clase se aplican funciones con expresiones regulares para encontrar patrones específicos dentro de los textos del corpus.

¿Ya probaste cargar el corpus cess_esp en tu propio notebook de Colab? Comparte en los comentarios qué otros corpus de NLTK te gustaría explorar y qué patrones de texto te interesaría buscar.