16
2.1 Acquisizione del testo
Il primo passo da compiere per implementare un'analisi testuale è perciò l’ottenimento dei dati
testuali, che è divenuto negli ultimi anni molto più semplice ed efficace per via dello sviluppo
delle capacità e della capienza dei database elettronici, dei software statistici, e della maggiore
rapidità di scambio dei dati. Le fonti più immediate da reperire e da utilizzare, come i database
online di articoli accademici o database di varie istituzioni pubbliche, forniscono i dati in
maniera diretta e già in formato adatto per effettuare l’analisi. Più complesso è invece ottenere i
dati all’interno di siti web, ma vi sono fortunatamente alcuni software per lo “scraping” che
alleggeriscono il lavoro; in questo caso un’altra possibilità consiste nell’appoggiarsi a
piattaforme web che in cambio di un corrispettivo in denaro, commissionano la ricerca e la
raccolta di informazioni a soggetti terzi
12
. I dati provenienti dal Web rivestono una grande
importanza nel mondo dei Big Data, infatti ne presentano tutte e tre le caratteristiche basilari
(velocità, varietà, volume) in modo accentuato e inoltre hanno un potenziale informativo
elevatissimo. Nel dettaglio si fa riferimento alle seguenti tipologie di dati:
Pagine HTML
13
in qualsiasi lingua;
I tweet;
Contenuti Facebook o di altri social network (come LinkedIn);
Documenti XML, PDF, Excel, Word e Power Point;
Commenti sui blog e sui forum, e altri post.
La particolarità di questi dati è che sono non strutturati o semi-strutturati, quindi il testo è spesso
caratterizzato da errori di battitura, slang, errori grammaticali, imprecisioni, abbreviazioni,
emoticon; e questo complica un po’ la procedura successiva di analisi.
12
Un esempio è il servizio offerto da Amazon, denominato Amazon Mechanical Turk, servizio internet di
crowdsourcing che permette ai programmatori informatici (requester) di coordinare l’uso di intelligenze umane per
eseguire compiti che i computer non sono ancora totalmente in grado di svolgere.
13
HTML, acronimo di Hyper Text Markup Language, in informatica è il linguaggio di markup solitamente
utilizzato per la formattazione e impaginazione di documenti ipertestuali disponibili nel World Wide Web.
17
Nel grafico seguente sono elencati i possibili metodi e le tecnologie maggiormente utilizzate per
la fase di acquisizione:
Figura 2.1-Elenco degli strumenti per categoria
14
:
Lo strumento di nostro interesse e che sarà utilizzato in questa tesi rientra nella categoria delle
API e poiché si dovranno reperire i dati da Twitter, si utilizzeranno le cosiddette Twitter API.
Nel seguente paragrafo si approfondiranno la struttura di Twitter e la fase di acquisizione tramite
le API.
2.1.1 Twitter e le API
Twitter
15
è un servizio di social networking e micro-blogging e permette agli utenti di postare
messaggi in tempo reale, che vengono denominati tweet; questi tweet sono dei messaggi brevi di
massimo 140 caratteri e oltre al testo possono contenere immagini, video, link o altre risorse sul
Web. È una della piattaforme più utilizzate per esprimere opinioni su vari argomenti, discutere
dei problemi correnti, protestare, o esprimere dei ”sentiment” sui prodotti o servizi con cui si ha
a che fare quotidianamente; alcune persone lo utilizzano per far conoscere informazioni circa il
proprio lavoro, hobby o stati d’animo. La piattaforma può essere utilizzata attraverso PC o
dispositivi mobili quali smartphone, tablet, etc….
14
Riferimento Figura 2.1:
“
Big data : architettura, tecnologie e metodi per l'utilizzo di grandi basi di dati” ,
Alessandro Rezzani, Maggioli, 2013.
15
Twitter è un servizio gratuito di social networking e micro-blogging, creato nel marzo 2006 dalla Obvious
Corporation di San Francisco. Il nome "Twitter" deriva dal verbo inglese to tweet che significa "cinguettare".
18
Figura 2.2- Logo di Twitter
16
Vista la natura dei tweet, brevi e veloci, la gente solitamente utilizza acronimi, abbreviazioni,
commette errori di spelling, utilizza emoticon e altri caratteri che esprimono significati
particolari. Ecco alcuni dei simboli e termini associati all'utilizzo di questo servizio:
Figura 2.3- Simboli e termini utilizzati in Twitter
17
Twitter dà la possibilità agli sviluppatori di utilizzarne le funzionalità attraverso le API
18
, che
rappresentano l'interfaccia aperta mediante la quale interagire con programmi (o parti di essi)
altrimenti inaccessibili e permettono di espanderne le funzionalità ben oltre le intenzioni reali
dello sviluppatore. In particolare le Twitter API
19
consentono di interagire con l'intera
piattaforma, di leggere ed estrarre i dati Twitter e molto altro. Vi è anche la possibilità di
monitorare e processare i tweet in tempo reale attraverso la funzionalità chiamata streaming. Per
poter utilizzare queste funzionalità, quindi accedere ai dati, è necessario richiedere
un'autorizzazione a Twitter ricorrendo al modello di autenticazione Oauth
20
.
16
Riferimento figura 2.2: [https://twitter.com/?lang=it], consultato il 25/09/2016.
17
Riferimento figura 2.3: si veda nota 18.
18
API, acronimo di Application Programming Interface, sono degli strumenti di programmazione che le
maggiori software house e industrie del mondo informatico – come Microsoft, Google e Facebook – mettono a
disposizione degli sviluppatori per facilitare il loro compito nella realizzazione di applicazioni di vario genere.
19
Per maggiori approfondimenti si consulti il link: [https://dev.twitter.com/rest/public ].
20
Riferimento URL:[https://dev.twitter.com/oauth], consultato il 25/09/2016.
19
Si riporta schematicamente la procedura:
1. Innanzitutto occorre creare un account Twitter, se non lo si possiede già;
2. In seguito bisogna accedere al sito https://apps.twitter.com/ e creare una propria
applicazione facendo clic sulla voce “Create my app”. Nella fase di creazione
verrà richiesto di inserire dei dati personali, tra cui una casella in cui verrà
richiesto un URL.
Figura 2.4- Esempio: creazione di una Twitter App
3. Nella casella in cui è richiesto l'URL bisogna inserire il proprio sito, e se non lo si
possiede, si può procedere a crearne uno gratuitamente, ad esempio su Altervista:
http://it.altervista.org/;
4. Infine, una volta creata e aperta la propria app, bisognerà andare nella sezione
“Keys and Access Tokens” e premere il pulsante “Generate My Access Token”.
20
A questo punto si dovrebbero ottenere queste chiavi di accesso come riportato nell'esempio qui
in basso:
Figura 2.5 – Esempio richiesta chiavi di accesso Twitter
Le quattro chiavi di accesso evidenziate in giallo saranno essenziali per ottenere l'autorizzazione
di Twitter e quindi ad acquisire i dati di interesse. Ovviamente sono state oscurate in neretto in
quanto sono strettamente personali. Si vedrà successivamente come utilizzarle e come attraverso
l'utilizzo di un software statistico, sarà possibile estrarre i tweet su un determinato argomento.
21
3. Pre-processing testuale
In questo paragrafo si vanno a vedere le principali tecniche di pre-processamento del testo
generalmente attuate prima dell'applicazione dei metodi di classificazione testuale; non è una
fase obbligatoria, ma è fortemente consigliata in gran parte delle tecniche di analisi testuale.
Come è noto a tutti, il linguaggio può essere fortemente complesso e strutturato, ma per
un'analisi di tipo testuale non è necessario riuscire ad interpretarlo e decodificarlo in tutta la sua
complessità. La variabile di interesse sono le parole che messe assieme determinano il testo e
affinché il testo possa essere trattato da un modello statistico, è necessario che le parole siano
tramutate in variabili numeriche. Prima di fare ciò però è bene procedere ad una pulizia del testo,
rimuovendo tutto quello che può risultare superfluo al nostro fine; si tratta quindi di una sorta di
filtraggio che tuttavia bisogna praticare con molta cautela per evitare di alterare o compromettere
i risultati delle analisi successive, o di perdere informazioni rilevanti: la lingua umana è molto
complessa, per questo l'ordine delle parole o la presenza di una preposizione anziché un'altra
possono cambiare totalmente il significato. Lo scopo di questo procedimento è quello di creare
un corpus testuale ovvero un insieme di testi, in modo tale che nella fase successiva non vi siano
problemi e inconsistenze che compromettano l'efficacia degli algoritmi implementati.
Generalmente le fasi di filtraggio sono le seguenti, ma possono variare leggermente a seconda
del tipo di testo analizzato e dello scopo dell'analisi:
Rimozione delle stopword: bisogna concentrarsi solo sulle parole che ci aiutino a capire
qualcosa sul sentiment del testo, tutte quelle che non apportano informazioni importanti
devono essere eliminate dal corpus; le stopword sono tutte le preposizioni semplici e
composte, personali, gli articoli, i verbi ausiliari…. Anche se è poco probabile che
eliminandole si migliori la qualità delle predizioni, tutte queste parole devono essere
rimosse per ridurre la mole dei dati. Inoltre a seconda della lingua in cui si sta lavorando
e del contesto dell'analisi queste possono variare;
22
Figura 3.1- Esempio di alcune stopword italiane
21
:
Rimozione della punteggiatura del testo: sicuramente rilevante se si vuole leggere e
capire il testo, ma nell'ottica di un'analisi matematico-statistica e della rilevazione del
sentiment risulta essere inutile e occorre quindi eliminarla; ovviamente si rimuovono
anche eventuali simboli del tipo $, %, &. Il principio basilare sarebbe quello di eliminare
qualunque cosa non sia costituita da lettere, ma come già detto questo può prescindere
dal tipo di analisi che si sta svolgendo. In alcuni casi può essere utile tenere dei simboli
come @ o #, ad esempio nel caso di un'analisi dei tweet;
Rimozione degli spazi vuoti in eccesso tra le parole: è consigliato rimuoverli perché
potrebbero esserci dei problemi nell'utilizzo di funzioni sensibili ai caratteri e agli spazi
tra le parole;
Cambiare tutte le parole o in minuscolo o in maiuscolo (tolower): non importa se le
parole sono scritte in maiuscolo o minuscolo, perciò è utile renderle tutte omogenee al
fine dell'analisi, altrimenti i computer che sono molto sensibili potrebbero rilevare una
stessa parola scritta in tre modi diversi come tre parole distinte, cosa che non semplifica
l'analisi.
21
Figura 3.1: Elenco principali stopwords italiane, sito consultato:[ http://www.ranks.nl/stopwords/italian ],
consultato il 30/09/2016.
23
Figura 3.2- Esempio applicazione tolower sulla parola “apple
22
”:
In tal modo il software utilizzato per l'analisi riconoscerà la parola come unica;
Rimozione di particolari parole: se vi sono una o più parole che si presentano
frequentemente nel testo ma sono irrilevanti al fine della nostra analisi, si possono
tranquillamente rimuovere;
Stemming: si tratta dell'applicazione di un algoritmo per identificare la radice comune di
parole scritte in maniera diversa; consiste dunque nella trasformazione di ogni parola del
testo dalla forma flessa alla forma radice. Ad esempio le parole abbandonato,
abbandonava, abbandonate, vengono sostituite tutte con la radice abbandon-. Dato che
le parole esprimono lo stesso concetto, non c'è motivo di considerarle distintamente e
questo comporta una notevole semplificazione e riduzione della numerosità del dataset
finale. Vi sono diversi tipi di algoritmi che si occupano di questa pratica e che sono stati
ideati per molte lingue diverse, ma uno dei più conosciuti è sicuramente quello di Martin
Porter (1980), poiché adotta un approccio non troppo aggressivo nella semplificazione
delle parole. Potrebbero esservi comunque dei casi in cui l'algoritmo non riconosca
parole nuove o poco conosciute.
Nonostante tutti questi accorgimenti, c'è comunque da dire che permangono delle difficoltà che
rendono ardua la Sentiment Analysis:
- nei dati derivanti dal web sono spesso presenti le faccine ovvero le cosiddette “emoticon” che
bisogna decidere come trattare, in quanto in alcuni casi sono molto espressive dei messaggi che
l'autore vuole trasmettere; vi possono essere anche difficoltà di interpretazione delle stesse per
via di ambiguità di significato.
- errori di battitura dell'autore, espansione delle lettere (oddìoooooo anziché oddìo), elementi
che costituiscono delle distorsioni del linguaggio umano che alcuni software potrebbero non
riconoscere;
22
Figura 3.2, riferimento grafico, consultare sito internet:[ https://www.edx.org/course/analytics-edge-mitx-15-
071x-2].