🤖 Tutorial: Cómo Hacer Análisis de Sentimiento Local, Privado y Gratis con Python y Hugging Face

¿Alguna vez has querido analizar miles de comentarios de clientes, reseñas de productos o menciones en redes sociales para entender qué opina la gente? ¡El análisis de sentimiento es la herramienta que necesitas! Pero, ¿qué pasa si no quieres enviar tus datos a una API de terceros por costos o privacidad?

Video YouTube

¡La solución es ejecutarlo todo en tu propia máquina! 🚀

En este tutorial completo, te guiaré paso a paso para que construyas tu propio pipeline de análisis de sentimiento. Al finalizar, serás capaz de procesar un archivo con miles de comentarios y obtener una clasificación detallada de dos maneras diferentes, todo de forma 100% local, offline y gratuita.

¡Vamos a sumergirnos en el fascinante mundo del NLP (Procesamiento del Lenguaje Natural)!

✨ ¿Por Qué un Análisis Local? Las Ventajas del Modo Offline

Antes de escribir una sola línea de código, es importante entender por qué este enfoque es tan poderoso:

  • 🔒 Privacidad Absoluta: Los datos que analizas (que podrían ser comentarios confidenciales de clientes) nunca abandonan tu computadora. No dependes de servidores externos ni expones información sensible.
  • 💰 Cero Costos de API: Usar APIs de análisis de sentimiento puede volverse caro rápidamente si tienes un gran volumen de texto. Este método es completamente gratuito, sin importar si analizas 100 o 1,000,000 de comentarios.
  • 🌐 Sin Dependencia de Internet: Una vez que descargas los modelos, puedes ejecutar el análisis en un avión, en un sótano o en medio del campo. No necesitas una conexión activa.
  • 🔧 Control Total: Tienes control absoluto sobre la versión del modelo que usas y cómo se procesan los datos.

🛠️ Paso 1: Preparando Nuestro Entorno de Trabajo

Todo gran proyecto comienza con una buena organización. Vamos a preparar nuestro “taller” de NLP.

1. Prerrequisitos: Asegúrate de tener Python (versión 3.9 o superior) y Git instalados en tu sistema.

2. Estructura del Proyecto: Clona el repositorio o crea una estructura de carpetas como la siguiente. Esto mantendrá todo ordenado.

mi_proyecto_sentimiento/
├── local_nlp_bert/
│   └── descargar_nlp_bert.py
├── local_tabularis_sentiment/
│   └── descarga_modelo.py
├── analisis_combinado.py
├── requirements.txt
└── Data_Clasif_comentarios.xlsx

3. El Entorno Virtual: Nuestro Espacio Aislado Siempre es una buena práctica crear un entorno virtual para no mezclar las librerías de diferentes proyectos.

# Navega a la carpeta de tu proyecto
cd mi_proyecto_sentimiento
# Crea el entorno virtual (llámalo 'env')
python -m venv env
# Actívalo
# En Windows:
env\Scripts\activate
# En macOS/Linux:
source env/bin/activate

Si ves (env) al principio de la línea de tu terminal, ¡lo has hecho bien!

📦 Paso 2: Instalando las Herramientas Necesarias

Con nuestro entorno activado, vamos a instalar las librerías que harán posible la magia. Crea un archivo requirements.txt y añade lo siguiente:

pandas
torch
transformers
openpyxl

Ahora, instálalas todas con un solo comando:

pip install -r requirements.txt

¿Qué acabamos de instalar?

  • transformers: La increíble librería de Hugging Face. Es el cerebro que nos da una interfaz súper sencilla para trabajar con modelos complejos.
  • torch: El motor de cálculo numérico (de Facebook AI). Es el músculo que realiza todas las operaciones matemáticas que el modelo necesita.
  • pandas: La navaja suiza para la manipulación de datos en Python. La usaremos para leer nuestro archivo Excel y guardar los resultados.
  • openpyxl: Una librería que pandas necesita para poder leer y escribir archivos .xlsx.

🧠 Paso 3: Descargando los “Cerebros” de la Operación (Los Modelos)

Este es el único paso donde necesitaremos internet. Vamos a descargar dos modelos diferentes para nuestro análisis dual.

Modelo 1: Clasificación Categórica (tabularisai/multilingual-sentiment-analysis) Este modelo nos dará una etiqueta clara: “Positivo”, “Negativo”, etc.

  • Crea el archivo local_tabularis_sentiment/descarga_modelo.py y pega esto:
from transformers import AutoTokenizer, AutoModelForSequenceClassification
print("📥 Descargando modelo Tabularis...")
tokenizer = AutoTokenizer.from_pretrained("tabularisai/multilingual-sentiment-analysis")
model = AutoModelForSequenceClassification.from_pretrained("tabularisai/multilingual-sentiment-analysis")
tokenizer.save_pretrained("./local_tabularis_sentiment/modelo_descargado")
model.save_pretrained("./local_tabularis_sentiment/modelo_descargado")
print("✅ ¡Modelo Tabularis guardado localmente!")

Modelo 2: Calificación por Estrellas (nlptown/bert-base-multilingual-uncased-sentiment) Este modelo nos dará una calificación de 1 a 5 estrellas, perfecto para reseñas.

  • Crea el archivo local_nlp_bert/descargar_nlp_bert.py y pega esto:
from transformers import AutoTokenizer, AutoModelForSequenceClassification
print("📥 Descargando modelo NLP Town (estrellas)...")
tokenizer = AutoTokenizer.from_pretrained("nlptown/bert-base-multilingual-uncased-sentiment")
model = AutoModelForSequenceClassification.from_pretrained("nlptown/bert-base-multilingual-uncased-sentiment")
tokenizer.save_pretrained("./local


Comments

Deja un comentario