sentiment-fastapi / README.md
LorenzoBioinfo
UpdateReadMe
d03c48d
metadata
title: SentimentAnalysis
colorFrom: red
colorTo: green
sdk: docker
sdk_version: '{{1.0}}'
app_file: src/app.py
pinned: false

CI

🧠 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

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:

  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.