• Non ci sono risultati.

Il pre-processamento del testo

Capitolo 2: L’analisi testuale

2.3 Il pre-processamento del testo

Il Text Mining si basa sull’analisi di dati che derivano da testi: è dunque fondamentale la fase in cui il testo viene ridotto ad un dato quantitativo così da poter essere trattato da un modello statistico. Si parla, in generale, di corpus16 per descrivere l’insieme di testi o documenti e di

corpura per l’insieme di corpus.

La fase di pre-processing dei testi permette di semplificare la struttura del linguaggio attraverso l’eliminazione dell’informazione derivante dall’ordine delle parole. Le parole diventano quindi “dati” indipendenti tra loro, andando a formare quello che prende il nome di “bag of words”. Le trasformazioni eseguibili sono innumerevoli, nel seguito riportiamo una serie di operazioni usate frequentemente.

Tutte le lettere vengono rese minuscole: generalmente la modalità di scrittura non porta alcuna informazione aggiuntiva, perciò si riduce il testo a sole lettere minuscole per avere una rappresentazione univoca, tenendo presente che in alcuni casi come i blog a volte la scrittura in maiuscolo può accentuare ad esempio il senso di approvazione/disapprovazione che si vuole esprimere.

Vengono rimosse le “stopwords”, ovvero tutte quelle parole che non portano informazioni importanti per la comprensione del sentiment come gli articoli, le congiunzioni, le preposizioni semplici e composte, i verbi ausiliari, ecc.

Viene eliminata l’intera punteggiatura che in genere è fondamentale per la comprensione del testo, ma non per l’utilizzo di un metodo statistico.

Vengono rimossi gli spazi bianchi in eccesso (se tra due parole sono presenti più spazi bianchi, vengono ridotti all’unità) e possono essere rimossi anche i termini che compaiono troppo frequentemente nel corpus (per esempio nel maggiore del 90% dei testi) o troppo raramente (inferiore al 5%).

Il testo viene poi ridotto ad un insieme minore di termini chiamati stem: possono riguardare una singola parola (unigram) o coppia di parole (bigram) o terne (trigram) ecc. In generale uno stem non è necessariamente una parola intera, ma può far riferimento alla sua radice fondamentale (ad esempio la radice “comput” ha come varianti: comput-er, comput-ational,

16 Salem (1994) afferma che un corpus deve essere rigorosamente omogeneo, costituito da testi prodotti in condizioni di enunciazioni simili e con caratteristiche lessico metriche confrontabili (struttura delle frasi, ricchezza del vocabolario, ecc.). Inoltre è prudente che, ai fini del confronto, i testi che si racchiudono in una stessa collezione abbiano delle lunghezze comparabili.

26

comput-ed, comput-able). Questa fase in cui i testi vengono trasformati in stem, o in italiano stilemi, viene detta stemming.

Ad esempio, supponiamo di avere il seguente testo:

“#Ca’Foscari è considerata una delle migliori università d’Italia, i neolaureati spesso trovano subito lavoro.”

Nella Tabella 2.1 osserviamo la serie di operazione descritte sopra. Inizialmente tutte le lettere maiuscole vengono trasformate in minuscolo, vengono rimosse quelle che abbiamo definito come “stopwords” (nella tabella sostituite da “_”). Allo stesso modo viene eliminata la punteggiatura, seguita dalla fase di stemming. Infine vengono eliminati tutti gli spazi bianchi in eccesso, già presenti o derivanti dalle fasi precedenti, ottenendo un testo lineare e utilizzabile per la fase successiva di costruzione di un vettore.

Tabella 2.1: Esempio di pre processamento del testo

AZIONE RISULTATO

Lettere minuscole #ca’foscari è una delle migliori università d’italia, i neolaureati spesso trovano subito lavoro.

Rimozione “stopwords”

#ca’foscari _ ___ _____ migliori università _’italia, _ neolaureati trovano subito lavoro.

Rimozione punteggiatura

_ca_foscari _ ___ _____ migliori università __italia_ _ neolaureati trovano subito lavoro_

Stemming _ca_fosc___ _ ___ _____ miglior_ univers___ __ital___ _ neolaur____ trov___ sub___ lavor__

Rimozioni spazi bianchi

cafosc miglior univers tal neolaur trov sub lavor

Dopo aver processato tutti i documenti del corpus, si considerano tutti gli stem trovati e si costruisce una matrice dove gli stem sono raffigurati nelle colonne e i vari documenti nelle righe. Si associa poi valore 1 in tutte le celle della matrice in cui il j-simo stem è presente nel i- simo testo. In altre parole per ogni testo si genera un vettore, detto “word stem profile”, in cui ad ogni stem viene assegnato valore 1 (presenza stem) o 0 (assenza stem) e si crea una matrice contente tutte le informazioni del corpus.

27

Ad esempio, consideriamo i seguenti testi presi da un esempio relativo all’analisi del sentimento sul ritorno dell’impiego dell’energia nucleare in Italia17:

 Testo 1: “il nucleare conviene perché è economico”  Testo 2: “il nucleare produce scorie”

 Testo 3: “il nucleare mi fa paura per le radiazioni, le scorie e non riduce l’inquinamento”  Altri testi

Di questi testi, come gli altri presenti nel corpus, individuiamo i vari stem che poi riporteremo nelle colonne della Tabella 2.2; se lo stem compare assegneremo il valore 1 altrimenti 0. In grassetto sono evidenziate le parole che rappresentano i nostri stem: nucleare, economico, scorie, paura, radiazioni e inquinamento. Ogni testo appartiene ad una categoria semantica, che chiameremo Dk, k= 1,…,K, dove K rappresenta il numero totale di categorie. Supponiamo

K=2, con D1 “a favore” e D2 “contro” il ritorno del nucleare in Italia. Nella matrice che

riportiamo, vediamo nelle colonne i vari stem individuati e la categoria di appartenenza (immaginiamo che solo alcuni testi siano già stati classificati, ad esempio il testo 2 non è classificato). L’insieme degli stem lo indichiamo con Si,m=( Si1,…, SiM) dove i=1,…,N è il

numero totale dei testi nel corpus e M è il numero di stem nel corpus. Tale vettore è una variabile dicotomica che assume valore 1 se lo stem m è presente nel testo e valore 0 se non è presente. Gli stem considerati nell’esempio sono sei e compongono il vettore nel seguente modo: lo stem “nucleare” appartiene al testo 1 ed è lo stem numero 1 perciò lo identifichiamo con S1,1 ; lo

stem “economico” appartiene al testo 1 ed è lo stem numero 2 perciò lo identifichiamo con S1,2;

lo stem “scorie” appartiene al testo 2 ed è lo stem numero 3 perciò lo identifichiamo con S2,3 e

così via per gli altri.

17 A.Ceron, L. Curini, S.M. Iacus (2013) Social Media e Sentiment Analysis. L’evoluzione dei fenomeni sociali attraverso la rete (Capitolo 2, pag 32-33)

28

Tabella 2.2: Esempio di matrice degli stem e assegnazione di categoria semantica

Tes to Dk Stem (Si,m) Nucleare S1,1 Paura S3,4 Radiazioni S3,5 Inquinamento S3,6 Scorie S2,3 Economico S1,2 … 1 2 3 4 5 … A favore NA Contro Contro A favore … 1 1 1 1 1 … 0 0 1 1 0 … 0 0 1 1 1 … 0 0 1 1 1 … 0 1 1 1 1 … 1 0 0 0 0 …

È importante sottolineare come questa matrice degli stem sia il punto di partenza per ogni analisi; la sfida maggiore riguarda il numero di righe. Mentre è stato constatato che tipicamente il numero di colonne, quindi di stem, non è maggiore di 300 o 500 stilemi, invece il numero di righe dipende dal numero di testi da analizzare che possono arrivare ad essere molto limitati in confronto al numero di stem o viceversa estremamente grandi arrivando anche oltre il milione. A partire da matrici di questo tipo è possibile poi sviluppare molte delle recenti tecniche all’analisi testuale presenti in letteratura. Tra queste troviamo metodologie che si occupano di assegnare un punteggio di testi del corpus, classificando i testi in varie categorie o che “raggruppano” in base a determinate misure di distanza senza delle categorie pre-fissate a priori.