MISIÓN 1 · Lección 8

Cápsulas de Aprendizaje (NLP)

Las cápsulas son recursos cortos y prácticos para reforzar conceptos clave de NLP. Incluyen ejemplos, mini-retos y material audiovisual para afianzar el aprendizaje.

Cápsula 1: Tokenización

Dividir un texto en palabras o subpalabras es el primer paso del NLP.

import nltk
nltk.download('punkt')
from nltk.tokenize import word_tokenize

texto = "¡El NLP es increíble!"
print(word_tokenize(texto))
# ['¡', 'El', 'NLP', 'es', 'increíble', '!']

Mini-reto: Tokeniza 5 frases diferentes y cuenta cuántas palabras tiene cada una.

Cápsula 2: Lematización

La lematización reduce palabras a su forma base (ejemplo: "corriendo" → "correr").

import spacy
nlp = spacy.load("es_core_news_sm")

doc = nlp("Los estudiantes estaban corriendo rápidamente")
print([token.lemma_ for token in doc])
# ['el', 'estudiante', 'estar', 'correr', 'rápidamente']

Mini-reto: Aplica lematización a un párrafo de una noticia.

Cápsula 3: Análisis de Sentimientos

Identificar la polaridad de un texto.

from textblob import TextBlob

print(TextBlob("I love NLP!").sentiment)
# Sentiment(polarity=0.5, subjectivity=0.6)

Mini-reto: Evalúa 10 tuits y clasifícalos en positivos o negativos.

Cápsula 4: Named Entity Recognition (NER)

Extraer nombres de personas, organizaciones o lugares.

doc = nlp("Lionel Messi juega para el Inter de Miami en Estados Unidos.")
for ent in doc.ents:
    print(ent.text, ent.label_)
# Lionel Messi PERSON
# Inter de Miami ORG
# Estados Unidos LOC

Mini-reto: Extrae todas las entidades de un artículo periodístico.

Cápsula 5: Visualización con WordCloud

Las nubes de palabras permiten visualizar la frecuencia de términos.

from wordcloud import WordCloud
import matplotlib.pyplot as plt

texto = "El NLP es útil en análisis de texto y extracción de información"
wc = WordCloud(background_color="white").generate(texto)
plt.imshow(wc, interpolation="bilinear")
plt.axis("off")
plt.show()

Mini-reto: Genera una nube de palabras de un corpus de reseñas.

Cápsula 6: Clasificación de Texto

Construcción de un clasificador sencillo con Scikit-learn.

from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB

X = ["me gusta", "no me gusta", "excelente", "horrible"]
y = [1, 0, 1, 0]

vec = CountVectorizer()
X_vec = vec.fit_transform(X)
model = MultinomialNB().fit(X_vec, y)

print(model.predict(vec.transform(["me encanta"])))
# [1] → positivo

Mini-reto: Entrena un clasificador con 20 frases propias.

Cápsula 7: Traducción automática

Uso de modelos preentrenados para traducir texto.

from transformers import pipeline

traductor = pipeline("translation_es_to_en", model="Helsinki-NLP/opus-mt-es-en")
print(traductor("El procesamiento de lenguaje natural es poderoso"))

Mini-reto: Traduce 5 frases de español a inglés y verifica los resultados.

Cápsula 8: Resumen automático

Reducir un texto largo a una versión corta manteniendo el sentido.

resumidor = pipeline("summarization")
texto = """
El procesamiento de lenguaje natural permite a las máquinas comprender
el lenguaje humano. Sus aplicaciones incluyen chatbots, asistentes virtuales y
análisis de sentimientos en redes sociales.
"""
print(resumidor(texto, max_length=30, min_length=10))

Mini-reto: Resume un artículo de periódico en 3 frases.

Reflexión final

Las cápsulas permiten reforzar conocimientos a través de ejemplos rápidos y retos prácticos. Son ideales para consolidar el aprendizaje entre clases más extensas.