Il cliente: il primo dipendente di un’azienda

Viviamo in un mondo in cui la novità tecnologica è all’ordine del giorno e un aspetto fondamentale di questa corsa alla scoperta è che ogni novità introdotta è dovuta in buona parte alle azioni che compiamo ogni giorno; infatti effettuare una ricerca su Google, effettuare un acquisto online su Amazon, commentare una notizia su Facebook sono tutte azioni che vengono utilizzate da queste (e altre) aziende per poter proporci qualcosa di nuovo relativamente al loro business, estraendo quindi una linea di azione da nostri semplici comportamenti quotidiani.

Nel mio lavoro, molto importante è stato il lancio di un social aziendale volto a comprendere le principali tematiche (topic extraction) su cui andare ad intervenire con azioni formative mirate oppure a testare il sentiment (ossia il gradimento o meno) riguardo alcune iniziative da parte dei consulenti a contatto diretto con il cliente; avere un riscontro dalla ”base”, da chi vive il contatto quotidiano con la gente, assume un’importanza fondamentale per qualsiasi tipo di business e apporta dei correttivi rispetto a quanto deciso ai ”piani alti”.

Il processo KDD

Questa estrazione di conoscenza di informazione si articola nel Knowledge Discovery of Datasets (KDD), un processo volto appunto alla scoperta di contenuti ”nascosti” all’interno di dataset. I passi principali di questo processo sono i seguenti:

  1. definizione dell’obiettivo di analisi;
  2. reperimento dei dati necessari;
  3. preparazione dei dati;
  4. data mining (scelta dell’algoritmo e degli opportuni parametri, valutazione del modello);
  5. interpretazione e rappresentazione dei risultati.

In questo post ci concentreremo sull’analisi del sentiment su un dataset di tweet (per chi avesse dei dubbi/curiosità su Twitter rimando a http://bit.ly/1N4odjJ).

1. Definizione dell’obiettivo di analisi

L’obiettivo di questa analisi è quello di misurare il sentiment degli utenti Twitter sullo storico incontro del Presidente U.S.A. Obama con il Presidente cubano Raoul Castro al vertice delle Americhe a Panama del 11 Aprile 2015.

2. Reperimento Dati

Per il reperimento dei dati ci serviamo delle API-Twitter tramite il linguaggio R (Le API messe a disposizione da Twitter consentono di interrogare il servizio di micro-blogging con varie modalità per recuperare insiemi di tweet immessi dagli utenti. Per questa analisi si è fatto uso della search API, ricercando i tweet contenenti la stringa Panama). I dati sono costituiti da 888 tweet in lingua italiana ”cinguettati” nel periodo 08.04.2015 – 11.04.2015.

3. Preparazione dei Dati

Prima di procedere alla fase di Data Mining è necessario avere dei dati il più possibile puliti. In un tweet (ma anche in qualsiasi altro tipo di testo) possono essere presenti molte informazioni che poco comunicano a chi li legge, come ad esempio numerosi spazi bianchi, la punteggiatura, i numeri.

Innanzitutto, per uniformare il testo nell’analisi, tutti i caratteri vengono trasformati in minuscolo, eliminando possibili ripetizioni (ad esempio Casa Biancacasa bianca).

Successivamente vengono utilizzate delle particolari stringhe di ricerca, le cosiddette regular expressions, che consentono di andare a cercare in un tweet (e in un qualsiasi altro tipo di testo) i caratteri che occorre eliminare.

Ad esempio il tweet

“Disgelo UsaCuba.  A Panama storica stretta di mano tra i 2 rappresentanti Kerry e Rodriguez.”

diventa

“disgelo usacuba a panama storica stretta di mano tra i rappresentanti kerry e rodriguez”

Una volta trovati tutti i caratteri da eliminare, si effettuano delle semplici sostituzioni, ottenendo così un dato pulito su cui andare a lavorare nella fase di Data Mining.

4. Data Mining: Classificatore Naive Bayes

Come detto il nostro obiettivo è quello di calcolare il sentiment. Per fare ciò ci serviamo di un classificatore, un particolare strumento che deve stabilire in maniera automatica che tipo di messaggio un tweet porta con sé.

Ci sono molti tipi di classificatori; noi ci avvaliamo del classificatore Naive Bayes, che si basa sul noto teorema di Bayes, di seguito riportato

Teorema di Bayes. Sia $$ A = {A_{1}, \dots, A_{n}}$$ un insieme di variabili che caratterizzano alcune entità da classificare e sia $$C = {C_{1}, \dots, C_{m}}$$ una variabile i cui stati rappresentano le categorie a cui appartengono le entità. Allora si ha:

$$P(C_j | A_i) = \frac{P(A_i | C_j) P(C_j)}{P(A_i)} \ \forall i = 1, \dots, n , \ j = 1, \dots, m$$

dove:

  • $$P(A)$$ è la probabilità a priori o probabilità marginale di $$A_{i}$$. “A priori” significa che non tiene conto di nessuna informazione riguardo $$C_{j}$$.
  • $$P(A_{i} | C_{j})$$ è la probabilità di $$A_{i}$$, sapendo che si è realizzato l’evento $$C_{j}$$.
  • $$P(C_{j} | A_{i})$$ è la probabilità di $$C_{j}$$, sapendo che si è realizzato l’evento $$A_{i}$$. Viene anche chiamata probabilità a posteriori, poiché dipende dal valore di $$A_{i}$$.
  • $$P(C_{j})$$ è la probabilità a priori di $$C_{j}$$, ossia non tiene conto di nessuna informazione riguardo $$A_{i}$$.

Non entrerò qui nei dettagli dell’implementazione del classificatore, però contestualizziamo nel nostro ambito:

  • Un’istanza è il singolo tweet e le singole parole che lo compongono sono le variabili che lo caratterizzano.
  • Le classi sono 3: tweet positivo, tweet negativo e tweet neutro.

Partendo da dei tweet già classificati (ricavando dunque le probabilità a priori), si ricavano le probabilità a posteriori tramite il suddetto Teorema di Bayes. Ogni nuovo tweet viene quindi classificato secondo la categoria $$C_{j}$$ che massimizza la probabilità a posteriori.

4.1 Osservazione

L’assunzione del Naive Bayes consiste nel fatto che tutti gli attributi che descrivono una certa istanza sono tra loro condizionalmente indipendenti data la categoria a cui appartiene l’istanza – tradotto nel nostro caso, le parole che compongono un tweet sono indipendenti tra di loro. Nella realtà tuttavia le parole che occorrono in un testo sono fortemente relazionate tra di loro. Ad esempio, consideriamo la seguente frase:

”Il tuo lavoro non è per niente male”.

Ovviamente la stringa porta con se un messaggio positivo, tuttavia è composta da tre indicatori generalmente negativi (non, niente, male) che il classificatore Naive Bayes potrebbe interpretare come spie di un messaggio negativo. Questo rappresenta il principale limite di questo approccio.

5. Interpretazione e rappresentazione dei risultati

5.1 Visualizzazione tramite Word Cloud

Al fine di valutare con facilità i termini maggiormente ricorrenti, è stata realizzata una word cloud dell’insieme dei tweet precedentemente elaborato. Una word cloud è una rappresentazione grafica di dati testuali, usata in particolare per la visualizzazione di parole chiave sul web o di testo in forma libera. Le modalità di visualizzazione di una word cloud variano a seconda della particolare necessità.

panama_word_cloud

 

Il criterio adottato in questo post consente una rapida visione dei termini maggiormente frequenti in un testo: viene dapprima assegnata una dimensione al font per la rappresentazione di ciascuna parola in maniera direttamente proporzionale alla frequenza della stessa; successivamente i termini vengono collocati, a partire dal centro della cloud, seguendo l’ordine decrescente delle frequenze.

5.2 Risultati della classificazione

L’analisi sul campione considerato riporta come la maggior parte dei tweet sia caratterizzata da un opinione positiva all’incontro tra i due rappresentati politici, in particolare domina il sentimento di attesa (principalmente nei giorni precedenti all’incontro) per un evento storico per entrambi i Paesi, ad esempio:

  • A Panama dopo più di dieci anni un vertice americano con Usa e Cuba Obama e Castro insieme
  • Panama attesa per l’incontro storico tra Obama e Raul Castro
  • Panama Obama a vertice Americhe. I fari del mondo su incontro con Castro

D’altra parte è presente una buona parte di messaggi negativi, quali ad esempio:

  • Panama scontri tra polizia e manifestanti venezuelani pro Maduro
  • A Panama l’assassinio del CHE
  • Panama si sta giocando una grande partita ma i media sono disinteressati o ansia da prestazione. A noi le notizie arriveranno tra qlc mese

Infine vale la pena sottolineare alcuni tweet neutrali, per lo più riconducibili agli account Twitter di agenzie di stampa come l’Ansa:

  • UsaCuba a Panama sabato incontro tra Obama e Raul Castro Storica telefonata tra i due leader prima dell’arrivo
  • Il video della stretta di mano tra Obama e Castro

tweet_classConclusioni

Alla fine della lettura di questo esempio, potrebbe sorgere spontanea la domanda: ”Che cosa ci facciamo con questo tipo di analisi?”. Ebbene i campi di applicazioni sono i più disparati, ad esempio:

  • Politica Un politico attento oggigiorno non tasta l’umore dei possibili elettori solamente attraverso i canali di comunicazione tradizionali, ma segue con attenzione quanto si dice su di sé anche sui canali emergenti, come i social appunto. Basti pensare ad esempio agli eventi #matteorisponde di Matteo Renzi. Inoltre non è da sottovalutare l’attendibilità di questi strumenti (si veda ad esempio il caso delle elezioni presidenziali americane del 2012 – Sentiment Analysis Presidenziali USA 2012 http://bit.ly/1Hfgvi2/Risultati Presidenziali USA 2012 http://huff.to/1OmRwLA)
  • Marketing I potenziali clienti sempre meno si affidano alle pubblicità accattivanti e sempre più al passaparola e sempre più spesso attraverso i social network. Per un azienda o una persona influente è assolutamente vitale sapere quanto viene scritto su Internet per conoscere la propria reputation e quanto questa venga influenzata dal lancio di prodotti o di campagne di comunicazione o, viceversa, per capire quali servizi e soluzioni i propri clienti desiderano, acquistando così un importante vantaggio sui principali competitor.

 

CC BY-NC-SA 4.0
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.