MISIÓN 1 · Lección 2

Técnicas de Análisis de Sentimientos

El análisis de sentimientos busca determinar la polaridad de un texto (positivo, negativo o neutro). Se aplica en redes sociales, reseñas de productos, encuestas y más.

Enfoques principales

Ejemplo con TextBlob (en inglés)

from textblob import TextBlob

texto = "I really love this course, it's amazing!"
resultado = TextBlob(texto).sentiment
print(resultado)
# Sentiment(polarity=0.85, subjectivity=0.75)

Nota: TextBlob funciona mejor con inglés. Para español se recomiendan librerías como spacy o modelos específicos como BETO.

Clasificador con Scikit-learn

from sklearn.pipeline import Pipeline
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import LogisticRegression

X = ["me encanta", "lo odio", "genial", "terrible"]
y = [1, 0, 1, 0]  # 1 = positivo, 0 = negativo

pipe = Pipeline([
  ("tfidf", TfidfVectorizer()),
  ("clf", LogisticRegression(max_iter=1000))
])

pipe.fit(X, y)
print(pipe.predict(["esto está bien"]))
# [1] → positivo

Métricas de evaluación

from sklearn.metrics import classification_report

print(classification_report(y, pipe.predict(X)))

Ejemplo con Transformers (Hugging Face)

from transformers import pipeline

clasificador = pipeline("sentiment-analysis", model="nlptown/bert-base-multilingual-uncased-sentiment")
resultado = clasificador("Este curso es excelente!")
print(resultado)
# [{'label': '5 stars', 'score': 0.81}]

Estos modelos multilingües permiten análisis más precisos en varios idiomas, incluido el español.

Retos del análisis de sentimientos

Buenas prácticas

Aplicaciones reales

Reflexión final

El análisis de sentimientos es un pilar del NLP aplicado. Comprender diferentes enfoques y herramientas permitirá elegir la mejor estrategia para cada proyecto.