La sentiment analysis è una tecnica di elaborazione del linguaggio naturale che ha a che fare con la classificazione di opinioni o emozioni in testo digitale. La sentiment analysis viene comunemente utilizzata nell’analisi del feedback dei clienti, nel monitoraggio dei social media e nell’esecuzione di ricerche di mercato per automatizzare l’analisi di grandi corpora di testi.
La sentiment analysis prevede l’applicazione di metodi computazionali avanzati per identificare ed estrarre informazioni soggettive da dati testuali. La sentiment analysis sfrutta algoritmi di Machine Learning, approcci basati su regole o un mix di entrambi per classificare il testo in categorie di sentiment (ad es. positivo, negativo o neutro).
Analizzando le caratteristiche linguistiche, la semantica contestuale e le strutture sintattiche, la sentiment analysis offre una comprensione granulare delle opinione in set di dati di grandi dimensioni. Di conseguenza, la sentiment analysis è molto efficace nel capire le sfumature semantiche e nell’automatizzare l’interpretazione delle emozioni umane in ambienti ricchi di dati.
La sentiment analysis inizia con la raccolta di input testuali da fonti di dati quali i social media, le recensioni o i sondaggi. I due passaggi fondamentali della sentiment analysis sono la preparazione dei dati per garantirne l’adeguatezza per l’analisi e la classificazione delle emozioni nei dati. La scelta del classificatore giusto dipende dai dati e dalla flessibilità necessaria.

Fasi principali della sentiment analysis.
Difficoltà della sentiment analysis
Esistono vari fattori che possono ostacolare l’accuratezza dell’interpretazione e della classificazione del sentiment nei dati testuali. Uno dei principali problemi è rappresentato dall’ambiguità e dalla variabilità intrinseche del linguaggio naturale. I dati testuali possono contenere sarcasmo, ironia o espressioni idiomatiche che gli algoritmi faticano a interpretare correttamente. Ad esempio, la frase “Questo investimento è fantastico” può essere interpretata in modo molto diverso se contiene del sarcasmo.
Un altro problema della sentiment analysis riguarda la classificazione di dati testuali relativi a domini specifici. I classificatori della sentiment analysis addestrati su set di dati generali potrebbero non funzionare bene in domini specializzati, come quello ingegneristico o scientifico. Ad esempio, prendiamo in esame la terminologia molto specializzata usata da un ingegnere meccanico o da un neurologo. In genere, i classificatori della sentiment analysis pre-addestrati non sono addestrati su questa terminologia.
Per superare queste difficoltà occorre utilizzare modelli di IA avanzati per la sentiment analysis, i quali sono in grado di comprendere e intrepretare le informazioni in base al contesto. Per poter elaborare i dati relativi a domini specifici, anche questi modelli potrebbero aver bisogno di essere ottimizzati.

Esempi di dati testuali che presentano delle difficoltà per la sentiment analysis.
I dati testuali per la sentiment analysis possono provenire dai social, da recensioni online o dal feedback diretto dei clienti. L’analisi manuale di questi dati richiederebbe troppo tempo e sarebbe inefficiente, senza menzionare il fatto che l’errore sarebbe sempre dietro l’angolo. La sentiment analysis aggiunge automazione utilizzando l’elaborazione del linguaggio naturale (NLP) e tecniche di intelligenza artificiale (IA) per interpretare e classificare automaticamente il sentiment espresso in grandi volumi di dati testuali.
Questo processo automatizzato non solo velocizza l’analisi dei dati ma consente anche alle aziende di prendere decisioni anticipate e migliori. Ad esempio, possono monitorare il sentiment degli utenti dal momento in cui un prodotto o una funzionalità vengono lanciati sul mercato per stabilire in modo rapido ed efficace la direzione futura di quel prodotto.

I dati testuali per la sentiment analysis possono provenire dai social, da recensioni online o dal feedback diretto dei clienti.
Esempi di sentiment analysis
Le organizzazioni che operano in un’ampia selezione di settori si servono della sentiment analysis in molte applicazioni, tra cui:
- Strategia di trading: misurazione del sentiment del mercato a partire da articoli su notizie finanziarie e social media per prendere decisioni di investimento informate. Comprendendo le emozioni del mercato, i trader possono anticipare i movimenti del mercato e correggere le proprie strategie di conseguenza.
- Ricerche di mercato: analisi delle recensioni dei clienti e dei post sui social media per comprendere la percezione del pubblico di un brand o di un prodotto. Ciò consente alle aziende di personalizzare le proprie strategie di marketing e di migliorare l’offerta sulla base del sentiment dei clienti.
- Ricerca in ambito sanitario: valutazione del tono emotivo e delle opinioni espresse in testi correlati alla salute, come le recensioni dei pazienti, i post sui social media o i forum medici. Questa analisi aiuta le strutture sanitarie a capire qual è la percezione del pubblico dei servizi sanitari, dei trattamenti e delle politiche sanitarie, il che consente loro di riconoscere dei trend, migliorare la cura del paziente e personalizzare le strategie per la salute pubblica basate sul feedback reale.
- User insight: riconoscimento dei livelli di soddisfazione dei clienti tramite l’analisi del feedback proveniente da sondaggi e ticket di assistenza. Questo aiuta le aziende a rispondere a preoccupazioni specifiche dei clienti e a migliorare la qualità complessiva del servizio.
- Monitoraggio dei social media: monitoraggio delle menzioni del brand e comprensione del sentiment generale nei confronti dell’azienda e dei suoi prodotti sulle piattaforme social. Ciò consente alle aziende di creare un engagement efficace con il suo pubblico e di gestire la propria percezione online in modo proattivo.

Esempi di casi d’uso della sentiment analysis.
Vantaggi della sentiment analysis per le aziende
Le aziende stanno rapidamente adottando la sentiment analysis perché consente loro di:
- Ottimizzare lo sviluppo di prodotti e servizi: i sistemi di sentiment analysis consentono alle attività di perfezionare la propria offerta in base al feedback autentico e specifico dei clienti. Le tecnologie di IA sono in grado di identificare entità del mondo reale collegate a sentiment negativi.
- Ampliare le operazioni di analisi: le aziende estraggono continuamente degli insight da quantità molto grandi di dati non strutturati, quali messaggi e-mail, interazioni con chatbot, sondaggi, record su CRM e recensioni di prodotti. Gli strumenti di sentiment analysis basati su Cloud consentono alle aziende di ampliare efficacemente l’estrazione delle emozioni dei clienti dai dati testuali in un modo economicamente vantaggioso.
- Ottenere insight in tempo reale: nel mercato di oggi, in costante e rapida evoluzione, le attività devono rispondere con agilità alle potenziali crisi o ai trend emergenti. Gli operatori di marketing si affidano a software di sentiment analysis per misurare il sentiment dei clienti nei confronti dei loro brand, prodotti e servizi in tempo reale, per poi prendere misure immediate sulla base di questi insight.
Vantaggi della sentiment analysis per gli ingegneri
Sfruttando la sentiment analysis, gli ingegneri possono ottimizzare la qualità dei prodotti, migliorare il livello di soddisfazione degli utenti e contribuire al successo complessivo dei loro progetti. Tra i vantaggi possiamo annoverare i seguenti:
- Analisi ottimizzata del feedback degli utenti: la sentiment analysis consente agli ingegneri di elaborare e interpretare automaticamente un numero elevato di feedback di utenti, per identificare il sentiment prevalente in merito ai loro prodotti o alle loro funzionalità. Ciò contribuisce a dare priorità alle attività di sviluppo concentrandosi su aree che richiedono un intervento immediato, come la correzione di bug o l’ottimizzazione delle funzionalità.
- Sviluppo prodotti migliorato: grazie alle informazioni sul sentiment dei clienti, gli ingegneri possono prendere decisioni informate sulla progettazione dei prodotti e la prioritizzazione delle funzionalità. Gli insight ottenuti tramite la sentiment analysis possono guidare il processo di sviluppo, a garanzia che le nuove funzionalità siano in linea con le aspettative degli utenti e le richieste del mercato.
- Processo decisionale basato sui dati: la sentiment analysis offre agli ingegneri informazioni pratiche derivate dai dati testuali, che supportano i processi decisionali basati sui dati. Tramite le informazioni sul trend dei sentiment, gli ingegneri possono elaborare strategie migliori per i cicli di sviluppo e la tabella di marcia dei prodotti.
- Vantaggio competitivo: analizzando i dati sui sentiment, gli ingegneri possono individuare trend e pattern che offrono un vantaggio competitivo. Comprendere in che modo gli utenti percepiscono i prodotti in concorrenza tra loro può aiutare a migliorare e a innovare le strategie, posizionando un prodotto in modo più favorevole sul mercato.
- Ottimizzazione delle risorse: la sentiment analysis automatizzata aiuta gli ingegneri ad allocare le risorse in modo efficace mettendo in luce gli aspetti di un prodotto o di un servizio più importanti per gli utenti. Si ha così la certezza di dedicare il proprio tempo e le proprie risorse ad aree che avranno un impatto più significativo sulla soddisfazione degli utenti.
Per saperne di più
I passaggi fondamentali della sentiment analysis sono la preparazione dei dati e la classificazione delle emozioni nei dati. I classificatori della sentiment analysis possono essere dei sistemi basati su regole o modelli di Machine Learning.
Preparazione dei dati per la sentiment analysis
Le tecniche utilizzate per convertire il testo da un formato non strutturato a uno strutturato, che il classificatore è in grado di elaborare, includono:
- Tokenizzazione: in genere, questa è la prima fase dell’elaborazione del testo per l’elaborazione del linguaggio naturale. Indica la suddivisione del testo in frasi o parole. La tokenizzazione è una fase comune di preparazione dei dati per la sentiment analysis. A seconda del tipo e del potere predittivo del classificatore della sentiment analysis, potrebbero essere richieste ulteriori fasi di pre-elaborazione dei dati.
- Rimozione delle stop word: parole quali articoli, congiunzioni e preposizioni, note come “stop word”, possono aggiungere rumore ai dati testuali. Rimuovendo le stop word, i classificatori di sentiment analysis possono concentrarsi su parole più significative e informative.
- Lemmatizzazione: questa tecnica di normalizzazione del testo utilizza il vocabolario e l’analisi morfologica per rimuovere gli affissi delle parole. Ad esempio, “l’edificio ha dei piani” viene ridotto a “edificare avere piano”.

Fasi di preparazione dei dati per la sentiment analysis.
Una volta che i dati sono stati convertiti nel formato strutturato corretto, è possibile selezionare un classificatore in grado di prevedere il sentiment con precisione.
Sentiment analysis basata su regole
Nella sentiment analysis basata su regole, l’algoritmo etichetta automaticamente i dati di input in base a un set di regole e lessici predefiniti. Questo approccio si basa sulla valutazione della presenza di determinate parole o espressioni, spesso categorizzate in lessici di sentimenti, vale a dire elenchi di parole annotate con la loro polarità di sentimenti associata (positiva, negativa o neutra). Il processo prevede l’analisi del testo per individuare tali parole e l’applicazione di regole sintattiche per tenere conto di negazioni, intensificatori e altri modificatori che possono alterare il sentiment.
Sebbene i sistemi basati su regole siano semplici da capire e attuare, spesso mancano di flessibilità e di sfumature per gestire costrutti linguistici complessi, come il sarcasmo o le espressioni dipendenti dal contesto, il che può limitarne l’accuratezza rispetto agli approcci basati sull’IA. Nonostante queste limitazioni, la sentiment analysis basata su regole può essere efficace in attività specifiche in cui il linguaggio è relativamente prevedibile e ben definito.

Esempio di sentiment analysis basata su regole, in cui viene classificato il sentiment in delle frasi sulla base di un set di regole predefinite.
Sentiment analysis con l’IA
I modelli di IA in genere sono più precisi dei sistemi basati su regole per la sentiment analysis. Sono in grado di elaborare set di dati testuali di grandi dimensioni e di apprendere diversi pattern espliciti e impliciti nei dati. Un modello di sentiment analysis viene costruito usando un algoritmo di apprendimento con supervisione.
Analogamente ad altri classificatori, come quelli usati per i dati immagine, il modello di sentiment analysis viene addestrato con un set di dati sufficientemente grande e con le etichette corrispondenti. Dopo l’addestramento, il modello può essere usato per la classificazione. Durante la fase di inferenza, il modello prevede l’etichetta corretta per il suo input.

Confronto dei processi per le fasi di addestramento e inferenza della sentiment analysis e della classificazione di immagini con l’IA.
Tipi di modelli di IA per la sentiment analysis
La sentiment analysis sfrutta vari modelli di IA, che sono in linea generale categorizzati in tradizionali modelli di Machine Learning e modelli di Deep Learning.
I modelli di Machine Learning tradizionali, come gli alberi decisionali e le macchine a vettori di supporto (SVM), si basano di tecniche di estrazione delle feature come i modelli bag-of-words per la conversione del testo in rappresentazioni numeriche. Questi modelli sono addestrati su set di dati etichettati per apprendere pattern associati a diverse classi di sentiment. Sebbene da un punto di vista computazionale siano efficienti e interpretabili, le loro prestazioni dipendono dalla qualità dell’ingegneria delle feature e potrebbero avere difficoltà nel cogliere il contesto e sfumature linguistiche complesse.
I modelli di Deep Learning offrono un approccio più sofisticato alla comprensione della lingua. Le reti neurali ricorrenti (RNN) e le loro varianti, come le reti Long Short-Term Memory (LSTM), possono gestire dati sequenziali, il che le rende adatte all’apprendimento di dipendenze a lungo termine nei dati testuali. È possibile utilizzare anche le reti neurali convoluzionali (CNN) per la sentiment analysis in combinazione con il word embedding, come word2vec.
Un tipo particolare di un modello di Deep Learning sono i modelli di trasformatori. L’introduzione dei modelli di trasformatori, come i modelli BERT (Bidirectional Encoder Representations from Transformers), in ambito NLP ha determinato un notevole progresso delle capacità della sentiment analysis.

Confronto tra modelli di IA per la sentiment analysis in termini di potere predittivo, complessità e dimensione dei dati di apprendimento.
Sentiment analysis con LLM
I modelli linguistici di grandi dimensioni (LLM), come i modelli GPT, hanno un’architettura di trasformatore sottostante. I modelli di trasformatori possono cogliere relazioni complesse tra parole e sfumature nel linguaggio umano. Questi modelli sono impegnativi dal punto di vista computazionale e necessitano di set di dati di addestramento di grandi dimensioni ma offrono massimi livelli di accuratezza e precisione per la sentiment analysis.
I modelli LLM possono essere ottimizzati per le attività di sentiment analysis. L’ottimizzazione prevede la regolazione di un modello pre-addestrato per un’attività specifica. Questo approccio consente di utilizzare un set di dati più piccolo per riaddestrare un modello grande, raggiungendo comunque un alto livello di precisione. Ad esempio, è possibile aggiungere altri layer a un modello BERT e ripetere l’addestramento con un set di dati più piccolo per eseguire la sentiment analysis.

Ottimizzazione di un modello BERT per la sentiment analysis.
Con MATLAB®, Text Analytics Toolbox™ e Deep Learning Toolbox™, è possibile eseguire la sentiment analysis per svariate applicazioni servendosi di strumenti integrati e sfruttando i modelli LLM.
Preparazione dei dati
È possibile trasformare i dati linguistici non strutturati in un formato strutturato in modo interattivo e pulire i dati con l’attività di pre-elaborazione dei dati testuali di Live Editor. In alternativa, è possibile preparare i dati NLP in modo programmatico con funzioni integrate.
Utilizzando le nuvole di parole e i grafici a dispersione, è possibile visualizzare dati testuali, modelli e gli esiti della sentiment analysis.

Visualizzazione di parole positive e negative usando nuvole di parole che illustrano la frequenza delle parole. (Cfr. codice MATLAB.)
Sentiment analysis basata su regole
È possibile analizzare il testo usando le funzioni integrate vaderSentimentScores e ratioSentimentScores per la sentiment analysis. Queste funzioni calcolano il punteggio di sentiment di una frase sulla base dei punteggi delle parole composte, date dal lessico di sentiment VADER. È anche possibile generare lessici per domini specifici (utilizzando word embedding per acquisire i dettagli semantici delle parole) e modelli di sentiment analysis personalizzati (ad esempio, per la sentiment analysis in lingue diverse dall’inglese).
Sentiment analysis con l’IA
È possibile addestrare molti tipi di modelli di Machine Learning per la sentiment analysis. Ad esempio, è possibile creare e addestrare reti LSTM con poche righe di codice MATLAB. È anche possibile utilizzare un modello BERT pre-addestrato, che è una rete neurale di trasformatore che può essere ottimizzata per molte attività NLP, tra cui la sentiment analysis.
Sentiment analysis con LLM
L’archivio di modelli linguistici di grandi dimensioni (LLM) con MATLAB fornisce il codice utilizzabile per accedere alle LLM e interagirvi con MATLAB. È possibile collegare MATLAB all’API Chat Completions di OpenAI® (alla base di ChatGPT™), Ollama™ (per le LLM locali) e ai servizi OpenAI di Azure®.
Esempio: eseguire la sentiment analysis con un modello GPT
Specificare il prompt di sistema. Il prompt di sistema dice all’assistente come comportarsi, in questo caso, in qualità di analizzatore di sentiment. Fornisce anche al sistema degli esempi semplici su come eseguire la sentiment analysis.
systemPrompt = "Sei un analizzatore di sentiment. Osserverai una frase e genererai"+...
" una singola parola per classificare quella frase come 'positiva' o 'negativa'. "+...
"Esempi: \n"+...
"Il progetto è stato un totale fallimento. \n"+...
"negativa \n\n"+...
"Il team ha portato a termine il progetto con successo prima del previsto. "+...
"positiva \n\n"+...
"Il suo atteggiamento è stato terribilmente scoraggiante per il team. \n"+...
"negativa \n\n";
Inizializza l’oggetto OpenAI Chat immettendo un prompt di sistema.
chat = openAIChat(systemPrompt,ApiKey=my_key);
Genera una risposta inserendo una nuova frase per la classificazione.
testo = generate(chat,"Il team si sente molto motivato.") testo = "positivo"
30 giorni di prova gratuita
Inizia oraSeleziona un sito web
Seleziona un sito web per visualizzare contenuto tradotto dove disponibile e vedere eventi e offerte locali. In base alla tua area geografica, ti consigliamo di selezionare: United States.
Puoi anche selezionare un sito web dal seguente elenco:
Come ottenere le migliori prestazioni del sito
Per ottenere le migliori prestazioni del sito, seleziona il sito cinese (in cinese o in inglese). I siti MathWorks per gli altri paesi non sono ottimizzati per essere visitati dalla tua area geografica.
Americhe
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)