Analisi delle Recensioni AI - Case study

uomo sulla riva con le spalle al mare

Analisi e Classificazione delle Recensioni con BigQuery: Un Approccio Passo Passo

Introduzione

L’obiettivo di questo progetto è stato sviluppare un servizio che analizzi e classifichi le recensioni per fornire insight utili alle microattività e ai piccoli studi legali. Attraverso Google Cloud BigQuery, la Natural Language API e Vertex AI, l’intero processo consente di estrarre informazioni significative dalle recensioni per supportare decisioni strategiche e migliorare la customer experience. Il lavoro si inserisce in un percorso di studio e sperimentazione che unisce l’esperienza di Jep come front-end developer e Innovation Consultant, con un focus sull’integrazione di AI e Cloud Computing nei siti web per piccole attività.


Fasi del Progetto

1. 📥 Raccolta delle Recensioni

Sono state raccolte 50 recensioni reali dal web utilizzando API di terze parti già in uso (inclusi servizi Google). Le recensioni sono state salvate in un file CSV denominato recensioni_web_50.csv, posizionato nella stessa cartella del progetto Streamlit per facilitarne la gestione e la visualizzazione.

Esempio di righe del file CSV:

review_idbusiness_idreview_textreview_daterating
rev001biz101”Ottimo servizio e personale gentile.”2025-01-155
rev002biz102”Prezzi alti ma qualità eccellente.”2025-01-204
rev003biz101”Attesa troppo lunga, esperienza negativa.”2025-01-222

2. 📊 Caricamento in BigQuery

Le recensioni sono state caricate nella tabella BigQuery denominata project.dataset.recensioni_web_50. La struttura della tabella include i seguenti campi:

  • review_id (STRING)
  • business_id (STRING)
  • review_text (STRING)
  • review_date (DATE)
  • rating (INT64)

Comando di caricamento:

gcloud bq load --source_format=CSV project:dataset.recensioni_web_50 recensioni_web_50.csv

Query per visualizzare i primi dati:

SELECT *
FROM `project.dataset.recensioni_web_50`
LIMIT 10;

3. 🧹 Pulizia e Pre-processing dei Dati

È stata eseguita una pulizia per garantire l’affidabilità dell’analisi. Le operazioni includevano:

  • Rimozione di recensioni vuote.
  • Standardizzazione del testo.
  • Eliminazione di stopword e caratteri speciali.
UPDATE `project.dataset.recensioni_web_50`
SET review_text = LOWER(REGEXP_REPLACE(review_text, r'[^\\w\\s]', ''))
WHERE review_text IS NOT NULL;

4. 🧠 Analisi del Sentiment con Google Cloud Natural Language API

Utilizzando le API Google già integrate, è stata effettuata l’analisi del sentiment su tutte le 50 recensioni. I punteggi, compresi tra -1 (negativo) e 1 (positivo), sono stati memorizzati nella colonna sentiment_score della tabella recensioni_web_50.

Query di esempio:

SELECT review_id, review_text, rating, sentiment_score
FROM `project.dataset.recensioni_web_50`
WHERE sentiment_score < 0
ORDER BY sentiment_score ASC;

Esempio di risultati:

review_idreview_textratingsentiment_score
rev003attesa troppo lunga esperienza negativa2-0.75
rev007pessima esperienza da non ripetere1-0.85

5. 🗂️ Classificazione Tematica con Vertex AI e BigQuery ML

Le recensioni sono state classificate in categorie tematiche rilevanti per le microattività:

  • Prezzo
  • Qualità del servizio
  • Ambiente
  • Tempi di attesa

È stato creato un modello di clustering utilizzando BigQuery ML:

CREATE MODEL `project.dataset.recensioni_clustering`
OPTIONS(model_type='kmeans', num_clusters=4) AS
SELECT review_text, sentiment_score, rating
FROM `project.dataset.recensioni_web_50`;

Assegnazione dei cluster alle recensioni:

SELECT review_id, review_text, predicted_cluster_id
FROM ML.PREDICT(MODEL `project.dataset.recensioni_clustering`,
                (SELECT review_text, sentiment_score, rating
                 FROM `project.dataset.recensioni_web_50`));

6. 📈 Visualizzazione dei Risultati

Sono state realizzate le seguenti visualizzazioni per i 50 dati analizzati:

  • Notebook BigQuery: Per analisi esplorative sui cluster e sui punteggi di sentiment.
  • Dashboard Streamlit: Permette di filtrare per data, punteggio e categoria tematica.
  • Report PDF: Generato automaticamente contenente grafici a barre e word cloud delle parole più frequenti.

Esempio di dashboard:

  • Filtro per sentiment positivo/negativo.
  • Grafico delle recensioni per categoria tematica.
  • Word cloud delle parole chiave più utilizzate.

7. 📝 Conclusioni e Prospettive Future

L’analisi delle 50 recensioni ha dimostrato come l’integrazione di BigQuery e delle API Google possa fornire insight pratici per migliorare la customer experience nelle microattività. I dati, classificati e visualizzati, hanno permesso di identificare aree critiche come tempi di attesa e politiche sui prezzi.

Prossimi passi:

  • Scalare l’analisi a un numero maggiore di recensioni.
  • Integrare i risultati nei siti web tramite REST API ProcessWire.
  • Ottimizzare la dashboard Streamlit per una consultazione mobile.

📚 Riferimenti e Strumenti Utilizzati

  • Dataset BigQuery: project.dataset.recensioni_web_50 (50 recensioni reali)
  • Google Cloud BigQuery
  • Natural Language API
  • Vertex AI
  • Streamlit per visualizzazione dati
  • Notebook BigQuery per analisi interattiva
  • Report PDF per sintesi dei risultati

🌐 Demo online

Scopri la nostra simulazione online

Visita il sito aziendale