Aplicación web para análisis de sentimientos en español usando Naive Bayes y TF-IDF.
- 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
pip install -r requirements.txtpython model_training.pyEsto 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)
python api/index.pyAbre tu navegador en http://localhost:5000
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
- Conecta tu repositorio a Vercel
- Vercel detectará automáticamente la configuración de
vercel.json - Los modelos se desplegarán automáticamente desde la carpeta
/models
URL de producción: https://ml-web-smoky.vercel.app
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
- Backend: Flask, scikit-learn
- Frontend: HTML, CSS, JavaScript
- ML: Naive Bayes, TF-IDF
- Deploy: Vercel Serverless Functions
El proyecto sigue el proceso completo de Knowledge Discovery in Databases:
- Selección: Carga del dataset de 2,590 textos en español
- Preprocesamiento: Limpieza de emojis, URLs, menciones y stopwords
- Transformación: Vectorización TF-IDF (3000 features, unigramas y bigramas)
- Minería: Entrenamiento de Multinomial Naive Bayes (alpha=1.0)
- Evaluación: Métricas de accuracy, precision, recall y F1-score
# 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,
...
}
}MIT License