Spaces:
Sleeping
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`](https://huggingface.co/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`](https://huggingface.co/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: | |
| 1. **Installazione e test del progetto** | |
| - Esecuzione di unit test e integration test. | |
| - Verifica delle metriche e della qualità del codice. | |
| 2. **Retraining automatico** | |
| - Se le performance scendono sotto soglia, viene eseguito un retraining parziale. | |
| 3. **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. | |
| --- | |
| --- | |