Skip to content

Repository files navigation

🎭 Análisis de Sentimientos con Naive Bayes

Aplicación web para análisis de sentimientos en español usando Naive Bayes y TF-IDF.

📊 Características

  • Modelo: Multinomial Naive Bayes
  • Accuracy: 62.19%
  • Dataset: 2,590 textos en español
  • Sentimientos: 6 categorías (joyful, sad, mad, scared, powerful, peaceful)
  • Preprocesamiento: Limpieza de emojis, URLs, menciones y stopwords en español

🚀 Uso Local

1. Instalar dependencias

pip install -r requirements.txt

2. Entrenar el modelo

python model_training.py

Esto ejecutará el proceso KDD completo:

  • Fase 1: Selección de datos
  • Fase 2: Preprocesamiento (limpieza, stopwords)
  • Fase 3: Transformación (TF-IDF)
  • Fase 4: Minería de datos (Naive Bayes)
  • Fase 5: Evaluación (métricas)

3. Ejecutar la aplicación

python api/index.py

Abre tu navegador en http://localhost:5000

📁 Estructura del Proyecto

MLWeb/
├── api/
│   └── index.py              # API Flask para Vercel
├── data/
│   └── sentiment_analysis_dataset.csv  # Dataset en español
├── models/
│   ├── nb_sentiment_model.joblib      # Modelo Naive Bayes
│   └── tfidf_vectorizer.joblib        # Vectorizador TF-IDF
├── templates/
│   └── index.html            # Interfaz web
├── model_training.py         # Script de entrenamiento
├── requirements.txt          # Dependencias Python
└── README.md

🌐 Despliegue en Vercel

  1. Conecta tu repositorio a Vercel
  2. Vercel detectará automáticamente la configuración de vercel.json
  3. Los modelos se desplegarán automáticamente desde la carpeta /models

URL de producción: https://ml-web-smoky.vercel.app

📈 Métricas del Modelo

Accuracy: 62.19%

              precision    recall  f1-score
joyful           0.88      0.40      0.55
mad              0.65      0.79      0.71
peaceful         0.52      0.87      0.65
powerful         0.67      0.61      0.64
sad              0.69      0.42      0.52
scared           0.81      0.25      0.39

🔧 Tecnologías

  • Backend: Flask, scikit-learn
  • Frontend: HTML, CSS, JavaScript
  • ML: Naive Bayes, TF-IDF
  • Deploy: Vercel Serverless Functions

📝 Proceso KDD

El proyecto sigue el proceso completo de Knowledge Discovery in Databases:

  1. Selección: Carga del dataset de 2,590 textos en español
  2. Preprocesamiento: Limpieza de emojis, URLs, menciones y stopwords
  3. Transformación: Vectorización TF-IDF (3000 features, unigramas y bigramas)
  4. Minería: Entrenamiento de Multinomial Naive Bayes (alpha=1.0)
  5. Evaluación: Métricas de accuracy, precision, recall y F1-score

🎯 Ejemplos de Uso

# Texto de entrada
"Estoy muy feliz hoy todo salió perfecto"

# Predicción
{
  "sentiment": "joyful",
  "confidence": 0.45,
  "probabilities": {
    "joyful": 0.45,
    "powerful": 0.25,
    "peaceful": 0.15,
    ...
  }
}

📄 Licencia

MIT License

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages