Spaces:
Sleeping
title: SentimentAnalysis
colorFrom: red
colorTo: green
sdk: docker
sdk_version: '{{1.0}}'
app_file: src/app.py
pinned: false
🧠 Sentiment Analysis MLOps Pipeline
MachineInnovators Inc. — Scalable Machine Learning for Social Reputation Monitoring
📘 Descrizione
Progetto dedicato all’automazione dell’analisi del sentiment sui social media tramite FastText e pratiche MLOps.
L’obiettivo è permettere a MachineInnovators Inc. di monitorare la reputazione online, reagire ai cambiamenti nel sentiment degli utenti e mantenere il modello aggiornato nel tempo.
🚀 Obiettivi
- Analisi automatica del sentiment (positivo / neutro / negativo)
- Monitoraggio continuo delle performance e del sentiment nel tempo
- Retraining automatico del modello per adattarsi ai nuovi dati
🧩 Struttura del Progetto
Fase 1 — Modello
- Modello:
cardiffnlp/twitter-roberta-base-sentiment-latest - Dataset pubblici con testi etichettati per il sentiment
Fase 2 — Pipeline CI/CD
- Automazione di training, test e deploy tramite GitHub Actions e Docker
Fase 3 — Deploy e Monitoraggio
- Deploy su Hugging Face
- Monitoraggio continuo
🛠️ Stack Tecnologico
| Categoria | Tecnologie |
|---|---|
| Linguaggio | Python |
| ML | FastText, Transformers, Scikit-learn |
| CI/CD | GitHub Actions, Docker |
| Deploy | Hugging Face Hub |
💡 Motivazione
L’analisi automatica del sentiment consente una gestione più efficiente e reattiva della reputazione aziendale.
Con questo progetto, MachineInnovators Inc. integra soluzioni MLOps per una pipeline scalabile, affidabile e costantemente aggiornata.
⚙️ Spiegazione del Progetto
Il progetto è organizzato in tre moduli principali:
1️⃣ Applicazione di Sentiment Analysis (FastAPI App)
L’applicazione, sviluppata in FastAPI, offre tre endpoint di analisi:
- /random_tweet – analizza esempi tratti dal dataset TweetEval
- /random_youtube – valuta esempi provenienti dal dataset di commenti YouTube
- /predict – consente all’utente di inserire manualmente una frase per l’analisi del sentiment
Il modello utilizzato è cardiffnlp/twitter-roberta-base-sentiment-latest, ottimizzato per la classificazione in tre classi di sentiment.
2️⃣ Pipeline di Addestramento e Monitoraggio
L’intero processo di addestramento e valutazione è automatizzato.
- I dati (TweetEval e YouTube Comments) vengono preprocessati e salvati in formato
datasets.Dataset. - Il modello viene valutato con uno script di monitoring che calcola Accuracy e F1-score su entrambi i dataset.
- Se le metriche ottenute sul dataset di YouTube risultano inferiori a una soglia predefinita (es.
Accuracy < 0.75), il sistema esegue automaticamente un retraining incrementale, combinando i dati di TweetEval con un campione di YouTube Comments.
3️⃣ Pipeline CI/CD e Deploy su Hugging Face
La pipeline CI/CD, implementata con GitHub Actions, automatizza:
Installazione e test del progetto
- Esecuzione di unit test e integration test.
- Verifica delle metriche e della qualità del codice.
Retraining automatico
- Se le performance scendono sotto soglia, viene eseguito un retraining parziale.
Deploy e sincronizzazione automatica
- Il modello aggiornato viene pubblicato su Hugging Face Hub.
- L’app FastAPI viene automaticamente distribuita come Space, sempre sincronizzata con l’ultima versione del modello.