Text mining nel Progetto Cloud4City

L’utilizzo del text mining all’interno del progetto Cloud4City ha come scopo quello di offrire un supporto conoscitivo e valutativo rispetto agli eventi realizzati. Per far questo abbiamo scelto di fornire uno strumento tecnologico per valutare il sentiment di messaggi testuali.

L’analisi del sentiment è una tecnica che permette di classificare elementi testuali sulla base dei contenuti espressi dall’autore. Questa tecnica può essere utilizzata per diversi scopi, come ad esempio: (1) valutare il sentiment o l’opinione di una singola persona riguardo ad un determinato prodotto o servizio, (2) estendere la valutazione su un campione più ampio di utenti per conoscere un’opinione comune, (3) valutare la tendenza, ovvero come la valutazione varia, o al contrario è stabile, nel tempo.

A partire dalle conversazioni tra utenti riguardo ad un evento vogliamo fornire una analisi del sentiment dei messaggi. Per effettuare l’analisi del sentiment è ragionevole operare suddividendo le conversazioni in messaggi singoli e poi procedere alla loro analisi e valutazione, messaggio per messaggio. Infatti, processare l’intera conversazione come un unico testo sarebbe una scelta non adatta, dato che i messaggi possono esprimere sentimenti e opinioni discordanti.

Una declinazione comune e tra le più usate di analisi del sentiment è valutare la polarità del testo. Definiamo due modalità differenti, tra le più utilizzate:

  • Classificazione binaria, ovvero classificazione del testo in due possibili categorie: sentiment positivo o negativo;
  • Classificazione ternaria, ovvero classificazione del testo in tre differenti categorie: se il testo esprime un sentiment positivo o negativo viene classificato con la polarità specifica, al contrario viene classificato come neutrale.

La nostra scelta per i fini del progetto è quella di utilizzare un approccio a tre classi (‘Positivo’, ‘Neutrale’, ‘Negativo’), dal momento che è ragionevole pensare che non tutti i testi siano caratterizzati da una polarità, ma al contrario in un flusso di messaggi tra utenti ci saranno testi con polarità non definita (es. polarità discordante o senza polarità).

Processo di ricerca per la scelta del modello di analisi

Il processo di ricerca si è evoluto in diverse fasi, sperimentando diversi approcci per la creazione di uno strumento per l’analisi dell’opinione.

Le soluzioni identificate sono state valutate su un unico dataset di test, e questo ha portato all’identificazione della tecnologia più efficace per lo strumento di analisi del sentiment.

I diversi approcci sperimentati sono:

  1. C4CKS: Creazione di un algoritmo di tipo Keyword Spotting, ovvero che ricerca parole chiave all’interno di un messaggio testuale, le parole chiave sono contenute in un lessico multilingue multiculturale. La valutazione del sentiment del messaggio procede nelle seguenti fasi: (1) viene calcolato un valore di sentiment per ogni parola chiave presente nel messaggio, moltiplicando il numero delle occorrenze della parola chiave per un valore numerico (precedentemente associato alla classe di appartenenza della parola chiave) (2) i valori calcolati al punto 1 vengono sommati, il risultato è un valore numerico associato alla polarità del messaggio.
  2. NeuralyBERT: Valutazione del modello neuraly/bert-base-italian-cased-sentiment, una rete neurale profonda, disponibile nel portale HuggingFace, che fa uso dei transformers e del meccanismo di attenzione. Tale rete è coerente con la nostra definizione del problema di analisi del sentiment e quindi la prima valutazione è stata fatta direttamente su tale modello.
  3. C4CBERT: modifica del modello NeruralyBERT attraverso procedura di fine tuning. Tale procedura, appartenente alle tecniche di transfer learning, permette di adattare un modello già esistente ad un compito simile. Per l’operazione di fine tuning abbiamo creato un dataset composito, in cui la popolazione è bilanciata tra le tre classi. Questo dal nostro punto di vista è importante per avere un modello finale che sappia riconoscere con prestazioni simili le tre classi.
Fine tuning per la creazione del modello C4CBERT

Nella fase di addestramento di un modello di deep learning, e in generale di machine learning, si definiscono iperparametri, dei valori di configurazione o di input dell’algoritmo che ne modificano le capacità di apprendimento. Scegliere valori differenti per gli iperparametri può modificare notevolmente le prestazioni del modello finale e le capacità predittive nella fase di inferenza.  

Spesso per selezionare gli iperparametri migliori si effettuano molteplici tentativi (run) di configurazione e si valutano le prestazioni dei modelli risultanti.  Per l’esperimento, abbiamo operato eseguendo una Grid Search, ovvero una ricerca esaustiva su tutte le possibili configurazioni degli iperparametri scelti in uno spazio di valori discreto. Le prestazioni sono state misurate su un dataset di validazione, differente da quello di test utilizzato per comparare i diversi approcci.

Gli iperparametri scelti per la ricerca esaustiva, il loro significato, i rispettivi valori e quelli selezionati per l’inferenza (in grassetto) sono descritti nella tabella seguente. 

Parametro 

Descrizione 

Valori  

Learning Rate 

Rappresenta quanto velocemente un modello di apprendimento impara, dato che influenza fino a che punto le nuove informazioni acquisite prevalgono su quelle precedentemente acquisite.  

2e-5, 3e-5, 4e-5, 5e-5 

Batch Size 

Dimensione del gruppo di esempi che verranno inviati contemporaneamente alla rete come input di addestramento. I valori ammissibili sono fortemente dipendenti e limitati dalle caratteristiche hardware della macchina che si utilizza per il training.  

4,8 

Weight Decay 

Iperparametro legato alla funzione di ottimizzazione utilizzata, ovvero AdamW, il suo compito è quello di far decrescere i pesi della rete, dato che reti con pesi piccoli tendono a generalizzare meglio e non degradare in over-fitting.  

0, 1e-3, 1e-4, 1e-5 

Nella seguente immagine (estratta dal portale di Azure Machine Learning), mostriamo i differenti tentativi effettuati durante la Grid Search e la variazione del valore dell’accuratezza al variare degli iperparametri, ogni curva spezzata rappresenta un run differente.

Selezione delle metriche di valutazione e prestazioni degli approcci

Per valutare una soluzione predittiva devono essere definite delle metriche che rappresentino in maniera quantificabile la capacità di predizione della soluzione.

Nella seguente tabella sono riportate le metriche di valutazione per gli approcci sopra descritti.

Algoritmo 

C4CKS 

NeuralyBERT 

C4CBERT 

Accuratezza 

0.483 

0.564 

0.6895 

Precisione 

0.48 

0.68 

0.69 

Recupero 

0.48 

0.56 

0.69 

F-1 Score 

0.35 

0.49 

0.68 

Il modello C4CBERT è superiore in tutte le metriche ed è quello che viene utilizzato per la fase di inferenza, ovvero per costruire il componente software della piattaforma. 

La componente software finale è stata resa disponibile per il progetto Cloud4City attraverso un container Docker che espone REST Api, e che viene interrogato dalle altre componenti della piattaforma.

Prova ora il sistema di Text Mining di C4C
Inserisci la frase:

Approfondimenti

Notifiche

Efficienza delle notifiche 

Il modulo DEA ha lo scopo di fornire una valutazione sull’efficienza relativa di un insieme di notifiche. Tale efficienza può tenere conto di un insieme di fattori oggettivi

Read More »

Avvisi e segnalazioni

L’attivazione di un filo diretto tra cittadini e Pubblica Amministrazione rende possibile non soltanto lo scambio di informazioni e la promozione del territorio ma anche l’invio di avvisi e segnalazioni che reciprocamente notificano gli abitanti e gli enti pubblici locali dei problemi e delle criticità riscontrate nel territorio vissuto quotidianamente.

Read More »

Laura Alfano

Content Curator Giusi Meli | Graphic Federica Guzzardi | Webmaster/UI-UX Creator Salvatore Vinci

©2021 Cloud4City | All Rights Reserved.