SlideShare a Scribd company logo
ALMA MATER STUDIORUM
UNIVERSIT `A DI BOLOGNA
CAMPUS DI CESENA
SCUOLA DI INGEGNERIA E ARCHITETTURA
Corso di Laurea in Ingegneria Elettronica, Informatica e
Telecomunicazioni- ambito Informatica
ELABORAZIONE DEL LINGUAGGIO NATURALE
NELL’ IA E TECNOLOGIE MODERNE:
SENTIMENT ANALYSIS COME CASO DI STUDIO
Elaborata nel corso di: Fondamenti di Informatica B
Tesi di Laurea di:
GIOVANNI CIANDRINI
Relatore:
Prof. ANDREA ROLI
Co-relatori:
Prof. FEDERICO CHESANI
ANNO ACCADEMICO 2014-2015
SESSIONE I
Natural Language Processing
PAROLE CHIAVE
Intelligenza Artificiale
NLP
Sentiment Analysis
Approccio semantico
Approccio statistico
Natural Language Processing
A tutte le persone pi`u importanti della mia vita che mi
hanno sostenuto sempre
Natural Language Processing
Indice
Introduzione ix
1 Natural Language Processing in IA 1
1.1 Il mondo IA . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Intelligenza Artificiale e test di Turing . . . . . . . . 1
1.2 Primi approcci a NLP . . . . . . . . . . . . . . . . . . . . . 4
1.2.1 Brevi cenni storici . . . . . . . . . . . . . . . . . . . . 5
1.2.2 Linguistica Computazionale e IA: definizione di NLP 8
1.3 Stato dell’arte moderno di NLP . . . . . . . . . . . . . . . . 10
2 Approccio statistico e approccio semantico 13
2.1 Concetti chiave e modelli generali per NLP . . . . . . . . . . 13
2.1.1 Valutazione delle problematiche di NLP . . . . . . . 13
2.1.2 Analisi Morfologica e parsing sintattico . . . . . . . . 15
2.1.3 Modelli di linguaggio, probabilit`a e CFG . . . . . . . 17
2.2 Approccio probabilistico e PCFG . . . . . . . . . . . . . . . 20
2.2.1 Information Retrieval, Estrazione dell’informazione e
traduzione automatica . . . . . . . . . . . . . . . . . 22
2.3 Approccio semantico . . . . . . . . . . . . . . . . . . . . . . 23
2.3.1 Valutazioni e critiche dell’approccio: WSD . . . . . . 23
2.3.2 BabelNet e BabelFly . . . . . . . . . . . . . . . . . . 26
3 Sentiment Analysis e IA 29
3.1 Economia data-driven e Big Data . . . . . . . . . . . . . . . 29
3.1.1 Ruolo dei dati e figura del Data Scientist . . . . . . . 29
3.1.2 Intelligenza semantica . . . . . . . . . . . . . . . . . 31
3.2 Sentiment Analysis . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.1 Caratteristiche e problematiche . . . . . . . . . . . . 33
3.2.2 Ruolo di IA e NLP nella Sentiment Analysis . . . . . 34
4 Sentiment Analysis e Twitter 37
4.1 Il ruolo della Sentiment Analysis in Twitter . . . . . . . . . 37
4.1.1 Contesto di Twitter e prospettive . . . . . . . . . . . 37
4.1.2 Sentiment Analysis in Twitter . . . . . . . . . . . . . 38
4.2 Sentiment Analysis semantica in Twitter . . . . . . . . . . . 39
4.3 Sentiment Analysis probabilistica in Twitter: modello basato
sul corpus . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Introduzione
L’informatica e le sue tecnologie nella societ`a moderna si riassumono spesso
in un assioma fuorviante: essa, infatti, `e comunemente legata al concetto
che ci`o che le tecnologie ci offrono pu`o essere accessibile da tutti e sfruttato,
all’interno della propria quotidianit`a, in modi pi`u o meno semplici.
Anche se quello appena descritto `e un obiettivo fondamentale del mondo
high-tech, occorre chiarire subito una questione: l’ informatica non `e sem-
plicemente tutto ci`o che le tecnologie ci offrono, perch`e questo pensiero som-
mario fa presagire ad un’informatica “generalizzante“; l’ informatica invece
si divide tra molteplici ambiti, toccando diversi mondi inter-disciplinari, e
non possiamo affrontare un percorso che riguarda una sua tecnologia se non
teniamo conto di questa ipotesi fondante. L’importanza di queste tecnologie
nella societ`a moderna deve spingerci a porre domande, riflessioni sul perch`e
l’informatica, in tutte le sue sfaccettature, negli ultimi decenni, ha portato
una vera e propria rivoluzione nelle nostre vite, nelle nostre abitudini, e non
di meno importanza, nel nostro contesto lavorativo e aziendale, e non ha
alcuna intenzione (per fortuna) di fermare le proprie possibilit`a di svilup-
po. Occorre essere sempre stimolati all’idea che capire questi meccanismi
`e fondamentale per essere protagonisti nella nostra societ`a , e che anche se
non si `e esperti o amanti di certe tematiche, non `e un impresa impossibile,
se vengono seguiti dei modelli precisi e una metodologia ordinata di analisi.
Per introdurre a un trattato scientifico che riguarda un ambito specifico
inerente al mondo informatico occorre senz’altro capire come nel tempo si
`e sviluppato questo ambito all’interno del proprio contesto, per poter com-
prendere le basi che lo caratterizzano, ma `e di vitale importanza a un certo
punto distaccarsi dal passato e guardare al presente e al futuro, approccian-
doci con occhio critico e con un buon bagaglio di conoscenze preliminari
alle tecnologie specifiche che ci offre la modernit`a inerenti a quell’ambito.
In questo trattato ci occuperemo di definire una particolare tecnica moder-
na relativa a una parte di quel mondo complesso che viene definito come
Intelligenza Artificiale. L’intelligenza Artificiale(IA) `e una scienza che si `e
sviluppata proprio con il progresso tecnologico e dei suoi potenti strumenti,
che non sono solo informatici, ma soprattutto teorico- matematici (probabi-
listici) e anche inerenti l’ambito Elettronico-TLC (basti pensare alla Roboti-
ca): ecco l’interdisciplinarit`a. Il lettore che si approccia per la prima volta a
livello tecnico al concetto di Intelligenza Artificiale e che magari non ha una
definizione chiara del concetto, deve affrontare questo percorso liberandosi
da tutti i pregiudizi, con il solo pensiero che l’IA rappresenta a tutti gli effet-
ti una vera Scienza, cercando di cogliere nel primo capitolo del documento
i concetti fondamentali per crearsi un idea organica in testa. Concetto che
`e fondamentale per poi affrontare il nocciolo del percorso presentato nel se-
condo capitolo del documento proposto: i due approcci possibili, semantico
e probabilistico, verso l’elaborazione del linguaggio naturale(NLP), branca
fondamentale di IA. Per quanto dar`o un buono spazio nella tesi a come
le tecniche di NLP semantiche e statistiche si siano sviluppate nel tempo,
verr`a prestata attenzione soprattutto ai concetti fondamentali di questi am-
biti , perch´e, come gi`a detto sopra, anche se `e fondamentale farsi delle basi
e conoscere l’evoluzione di queste tecnologie nel tempo, l’obiettivo `e quello
a un certo punto di staccarsi e studiare il livello tecnologico moderno ine-
renti a questo mondo, con uno sguardo anche al domani: in questo caso,
la Sentiment Analysis(capitolo 3). Sentiment Analysis (SA) `e una tecnica
di NLP che si sta definendo proprio ai giorni nostri, tecnica che si `e svilup-
pata soprattutto in relazione all’esplosione del fenomeno Social Network,
che viviamo e tocchiamo costantemente. L’approfondimento centrale della
tesi verter`a sulla presentazione di alcuni esempi moderni e modelli di SA
che riguardano entrambi gli approcci(statistico e semantico), con particolare
attenzione (nel quarto capitolo) a modelli di SA che sono stati proposti per
Twitter in questi ultimi anni, valutando quali sono gli scenari che propone
questa tecnica moderna, e a quali conseguenze contestuali (e non) potrebbe
portare questa particolare tecnica. L’obiettivo principale, dunque, `e cercare
di accompagnare il lettore attraverso argomenti che tecnicamente possono
sembrare abbastanza complicati, e che a volte prevedono l’uso di termi-
ni molto sofisticati, ma che sono essenziali per poter comprendere a pieno
l’importanza di questa tecnica e delle sue ripercussioni su diversi ambiti,
mettendo in evidenza sempre i modelli e i concetti fondamentali con una
metodologia ordinata di analisi, cercando infine di invogliarlo ad applicare
questa metodologia di ragionamento e questo tipo di approccio anche ad
ambiti scientifici diversi da quello preso in esame in questo elaborato.
Capitolo 1
Natural Language Processing
in IA
Illustriamo in questo capitolo un’idea organica di NLP all’interno del mondo
“Intelligenza Artificiale”, tenendo presente del contesto in cui questa tecnica
si `e sviluppata.
1.1 Il mondo IA
In questo capitolo partiremo definendo in maniera organica l’Intelligenza
Artificiale, di cui NLP ne rappresenta una particolare branca, definizione
che non pu`o non tenere conto del background culturale e del contesto in cui
essa si `e sviluppata (pensiamo allo sviluppo e alla crescita delle conoscenze
tecnologiche negli anni ’70,’80); solo dopo aver definito e contestualizzato il
mondo IA potremo avvicinarci a NLP, riassumendo in breve la sua storia, e
presentando i concetti base e le tecnologie che riguardano l’elaborazione del
linguaggio naturale, in particolare i diversi approcci che vengono utilizzati
per definirle. In questo modo, in accordo con il nostro obiettivo, potremo
avvicinarci con questo bagaglio di conoscenze ad affrontare le tecnologie
moderne che riguardano questo ambito, dando una valutazione critica e
organica del loro impatto nella societ`a odierna.
1.1.1 Intelligenza Artificiale e test di Turing
Occorre subito specificare che il concetto IA non ha una definizione pre-
cisa, bens`ı molteplici definizioni che dipendono da quale approccio viene
utilizzato per andare a descrivere questo concetto, approcci che erano senza
distinzioni nei primi anni ’70,’80, quando IA nasceva effettivamente : l’ap-
proccio umano, incentrato ai processi di pensiero e ragionamento, testando
la somiglianza dell’elaboratore a un essere umano, e l’approccio razionale,
incentrato sul comportamento e sulla razionalit`a, testando invece la razio-
nalit`a dell’elaboratore. E’ proprio negli anni ’80-’90, con lo sviluppo degli
strumenti a nostra disposizione, che arriviamo da Ingegneri a intraprendere
2 CAPITOLO 1. NATURAL LANGUAGE PROCESSING IN IA
la strada verso un approccio puramente razionale nel definire l’IA, attra-
verso l’introduzione degli agenti razionali [11], unit`a elementari alla base di
IA, allontanandosi da quell’approccio umano basato soprattutto sui com-
portamenti degli esseri umani, che porter`a a ci`o che verr`a poi etichettato
come scienza cognitiva. In parole semplici, la differenza tra i due approcci
verte nel cambiamento del requisito di partenza : se nei primi tempi veni-
va approfondito il concetto di IA partendo dall’ipotesi che ci si trovava ad
analizzare un essere con dei comportamenti simili e paragonabili a quelli di
un essere umano, concentrandoci solamente sul corretto uso dell’inferenza,
con la strada dell’approccio razionale invece siamo consapevoli di partire
dall’ipotesi che abbiamo davanti a noi un elaboratore; non ci poniamo pi`u
dunque il problema di capire se ha comportamenti simili a un essere uma-
no, ma generalizziamo l’approccio verso di esso , concentrandoci non solo
sull’inferenza, poich´e essa `e solo uno dei molteplici meccanismi utilizzabili
per arrivare alla razionalit`a. Gli elaboratori che abbiamo davanti prendono
il nome di Agenti razionali , definiti semplicemente come un qualcosa che
agisce, che fa qualcosa, che riesce a rappresentare la conoscenza e appli-
carvi un ragionamento, perch´e avere una buona idea del funzionamento del
mondo non solo consente di apprendere passivamente ci`o che caratterizza
l’ambiente su cui si affacciano, ma permette loro di generare strategie pi`u
efficaci per interagire con esso: ecco la svolta fondamentale per IA.
Il concetto di razionalit`a in poche parole, intesa da Ingegneri , passa da fare
la cosa giusta a fare qualcosa.
Figura 1.1: Schema elementare dell’agente razionale, unit`a del mondo IA:
dalle percezioni ricevute dall’ambiente, l’agente fa qualcosa su di esso attra-
verso delle azioni, che produrranno delle conseguenze contestuali sull’am-
biente tali a volte da alterare e modificare le percezioni iniziali dell’agente
stesso.
Anche se come `e stato detto il concetto di IA non `e definibile univo-
camente perch´e dipende dal tipo di approccio che utilizziamo verso questo
mondo (umano o razionale), possiamo individuare due fattori comuni che
CAPITOLO 1. NATURAL LANGUAGE PROCESSING IN IA 3
ne hanno determinato senza meno lo sviluppo e lo stato dell’arte moderno:
lo sviluppo delle tecnologie e delle conoscenze informatiche, elettroniche e
non solo, ma soprattutto il punto di partenza del mondo IA, che pu`o essere
intravisto nel famoso test di Turing (1950), considerato il crocevia concet-
tuale per fornire una soddisfacente definizione operativa dell’intelligenza.
Quando un calcolatore `e intelligente? Turing non suggerisce una lista di
caratteristiche sine qua non un elaboratore di informazioni pu`o essere con-
siderato razionale o meno, bens`ı egli fornisce un test basato sull’impossibilit`a
di distinguerlo da entit`a che lo sono senza dubbio: gli esseri umani.
In sostanza, il test di Turing prevede tre mondi (A,B,C) divisi tra di lo-
ro e senza alcun tipo di conoscenza reciproca, dove nel mondo A abbiamo
sicuramente un esaminatore umano, e nei mondi B e C sappiamo esserci
un elaboratore e un essere umano, senza che l’esaminatore umano conosca
a priori quale mondo rispettivo occupano questi due elementi. L’esamina-
tore umano fa una sola azione: pu`o fare delle domande in forma scritta e
mandarle ad entrambe i mondi, ricevendo una risposta; nel momento in cui
l’esaminatore non riuscir`a a capire se le risposte provengono da una perso-
na oppure da un elaboratore, allora l’elaboratore in questione avr`a passato
il test. Come prima cosa, `e importante constatare che l’ambiguit`a tra gli
approcci di IA (umano e razionale) dei primi tempi discende proprio dal-
l’impostazione di questo test, che invita a nascondere l’ipotesi di partenza
nella definizione di razionalit`a (sto parlando con un calcolatore, o con un
essere umano?). Questo tipo di test invita successivamente a due questioni
importanti: `e assolutamente matematico l’assioma test passato, computer
intelligente?. Ma soprattutto: quanto pu`o essere grosso il lavoro che sta
dietro alla programmazione di un elaboratore in grado di passare questo te-
st? Mentre per la prima domanda rimandiamo ad altri testi per un’analisi
pi`u approfondita riguardo le tematiche inerenti il mondo IA e il relativo sta-
to dell’arte, affrontiamo la seconda domanda riformulandola da Ingegneri,
progettisti : quali devono essere le capacit`a che l’elaboratore deve posse-
dere per passare questo test? Gli esperti di IA hanno elencato sei diverse
capacit`a da tenere in considerazione per poter progettare e programmare
un calcolatore(agente razionale) in grado di poter passare questo test:
• Interpretazione del linguaggio naturale (l’agente deve comunicare con
l’esaminatore umano)
• Rappresentazione della conoscenza (l’agente deve memorizzare quello
che sa)
• Ragionamento automatico (l’agente deve utilizzare la sua conoscenza
per rispondere e trarre conclusioni)
• Apprendimento (l’agente deve adattarsi a nuove circostanze)
• Visione artificiale (l’agente deve percepire gli oggetti)
4 CAPITOLO 1. NATURAL LANGUAGE PROCESSING IN IA
• Robotica (l’agente deve poter manipolare gli oggetti e spostarsi fisi-
camente)
Nonostante le ultime due capacit`a non riguardano esattamente il test
di Turing in questione ma pi`u precisamente un test di Turing totale (dove
l’esaminatore testa anche la capacit`a percettive e di movimento del sog-
getto), notiamo comunque che progettare un sistema in grado di riuscire
a passare questo test richiede la progettazione di diverse capacit`a, ognuna
delle quali diventer`a nel tempo una particolare branca del variegato mon-
do IA. La potenza di questo test la vediamo proprio durante tutti questi
sessant’ anni in cui esso `e rimasto comunque significativo: in tutti questi
anni i ricercatori non hanno mai fatto tanti sforzi per progettare un sistema
capace di passare il test in questione, ma hanno invece speso tutte le loro
energie (coadiuvati da un progresso tecnologico sempre pi`u incessante) allo
studio dei principi alla base del concetto intelligenza fornito da questo test,
definendo e studiando le diverse componenti IA che derivano dalle capacit`a
elencate proprio qui sopra. Il test non fu importante quindi semplicemente
per il suo significato, ma per quello che ha portato nello studio di queste
tematiche: `e grazie al test di Turing che il mondo IA oggi `e quello che
conosciamo, ma allo stesso momento paradossalmente nessun calcolatore `e
riuscito mai a passare questo test.
Ed `e proprio dalla prima delle capacit`a elencate, l’interpretazione (ed elabo-
razione) del linguaggio naturale (Natural Language Processing: NLP), che
noi partiremo per affrontare il percorso che svolgeremo nei prossimi capitoli.
Figura 1.2: Rappresentazione esemplificativa del test di Turing.
1.2 Primi approcci a NLP
L’obiettivo finale di questa sezione sar`a andare a definire, in maniera rigo-
rosa e organica, il concetto di NLP all’interno dell’Intelligenza Artificiale,
relativamente alla quale abbiamo discusso e esaminato le caratteristiche in
maniera concisa ma completa nella precedente sezione.
CAPITOLO 1. NATURAL LANGUAGE PROCESSING IN IA 5
Ora, per poter arrivare a dare un senso all’elaborazione del linguaggio natu-
rale, teniamo solamente presente quello che abbiamo dedotto sinora dal test
di Turing, associando NLP alla capacit`a di un elaboratore di comunicare
con un essere umano, e cerchiamo, attraverso dei brevi cenni storici, di po-
ter capire effettivamente nel tempo come si sono sviluppate queste tecniche
legate al concetto NLP, in relazione allo sviluppo delle tecnologie e delle
conoscenze relative a IA: cerchermo nella sottosezione seguente di ripercor-
rere molto brevemente la sua storia e le relative tecniche, per poter poi nella
seconda sottosezione analizzare il concetto e, tenendo in considerazione il
suo sviluppo nel tempo, dare una definizione rigorosa, andando poi alla fine
del capitolo a elencare qualche esempio e tecnica concreta, che riprenderemo
poi pi`u avanti nel nostro percorso.
1.2.1 Brevi cenni storici
Ripercorrendo la storia di NLP fino ai giorni nostri, possiamo dividere il
suo sviluppo in quattro diverse fasi, ognuna delle quali ha prodotto lavori e
ricerche fondamentali per lo sviluppo dello stato dell’arte moderno, carat-
terizzate rispettivamente dalla traduzione automatica, dall’ influenza di IA,
da un’adozione di uno stile logico-grammaticale e dall’uso massivo di dati
linguistici e l’introduzione dei Big Data (vedremo pi`u avanti l’importanza
di questo concetto)[8].
• Prima fase: Fine anni ’40 - Fine anni ’60: Machine Transla-
tion (MT)
La prima fase fu caratterizzata soprattutto dalla traduzione automati-
ca, branca della Linguistica Computazionale che studia la traduzione
dei testi da una lingua naturale a un’altra attraverso programmi infor-
matici (Google Translate, ndr). Le ricerche inerenti a NLP comincia-
rono ufficialmente nei primi anni ’50, attraverso dei primi rudimentali
esperimenti di traduzione automatica dall’Inglese al Russo, finanzia-
ti in dimostrazioni di IBM nel 1954, ma `e alla fine degli anni ’50
che NLP cominci`o a vedere gli albori, quando fu collegata da Min-
sky all’information retrieval(IR), insieme di tecniche che si occupano
di gestire la rappresentazione, la memorizzazione, l’organizzazione e
l’accesso ad oggetti contenenti informazioni. Questa fase fu dominata
da un crescente ottimismo e entusiasmo, proprio perch´e in un epoca
dove ancora le risorse e le tecniche computazionali erano molto povere
(non esistevano linguaggi ad alto livello, e le macchine erano carat-
terizzate da un accesso veramente minimo alle risorse e una quantit`a
ridicola di storage), si riuscirono comunque ad affrontare i primi pro-
blemi relativi alla semantica, sintattica e all’ambiguit`a del linguaggio,
fornendo e completando dizionari e regole di traduzione.
Le tecniche di NLP iniziarono a collegarsi fortemente a queste regole
di traduzione, ma ancora risultavano distanti dal mondo IA.
6 CAPITOLO 1. NATURAL LANGUAGE PROCESSING IN IA
• Seconda Fase: Fine anni ’60 - Fine anni ’70: Intelligenza Ar-
tificiale (IA)
La seconda fase di NLP fu caratterizzata dal sempre pi`u forte accosta-
mento al mondo IA, e quindi vediamo pi`u enfasi verso la conoscenza
del mondo e dell’ambiente circostante (importanza degli agenti ra-
zionali) e verso il ruolo della costruzione e della manipolazione del
significato della rappresentazione. I dizionari, le regole di traduzione
sviluppate nella prima fase, furono ridimensionate dallo stesso Min-
sky (1968) per diventare input linguistici in dei primi sistemi sem-
plici capaci di interpretare questi input e in questo modo avvicinarsi
a un corretto uso dell’inferenza. SHRDLU(Winograd, 1973) e LU-
NAR(Woods,1978) furono i discendenti di questi primi sistemi, che
per`o mostravano capacit`a ancora migliori di processare task NLP con
uno stile procedurale. In questa fase `e da tener soprattuto conto del
cambio di direzione inerente al significato di semantica dei task NLP:
nel 1980, R. Schank, in accordo con le teorie che stavano alla base
dei primi sistemi capaci di interpretare e elaborare quelle regole che
erano state trovate nella prima fase di NLP, lavor`o in maniera tale da
creare modelli in cui la semantica non fosse pi`u legata a una conce-
zione (tipica delle prime analisi linguiste) in cui si andava a valutare
singolarmente le proposizioni logiche all’interno di frasi e periodi, ma
arriv`o a definire una semantica general purpose: questo concetto di
organizzazione a larga scala della semantica denota le interazioni tra
tutti gli elementi che fanno parte dell’universo del discorso, e pu`o dare
cos`ı un grande contributo al supporto dell’inferenza, soprattutto per
quanto riguarda dialoghi e discorsi prolungati, e non semplici proposi-
zioni logiche. NLP diventa semantic-driven , con la concezione di una
semantica “general purpose”.
• Terza fase: Fine anni ’70 - Fine anni ’80: Analisi Logico-
Grammaticale
Se la seconda fase di NLP fu caratterizzata dall’influenza dell’ IA e
dal concetto di semantica in un significato pi`u allargato, la terza fase
di NLP vide un rientro in campo da parte della figura dei lingui-
sti relativamente a queste tecniche, con l’introduzione di una nuova
analisi logico-grammaticale nella rappresentazione della conoscenza e
nella costruzione di sistemi capaci di gestire task NLP: infatti, il limi-
te della fase semantica general-purpose veniva intravisto nel fatto che
vennero dati nuovi modelli generali del concetto di semantica, ma le
regole linguistiche-grammaticali erano ancora regole particolari e lega-
te al singolo periodo, frase, contesto. Quindi vennero proposti nuovi
modelli generali di analisi logico-grammaticale, raggruppando queste
regole in un numero ben definito di tipi di grammatica, per esempio
funzionale, categorica, e in delle strutture generali: soltanto in que-
sto modo potevano essere orientate verso la computabilit`a come dei
CAPITOLO 1. NATURAL LANGUAGE PROCESSING IN IA 7
principi astratti, generali, supportando anche algoritmi importanti di
parsing, riferito al processo che analizza un flusso continuo di dati in
ingresso (input) in modo da determinare la sua struttura grazie ad
una data grammatica formale; in questa fase vennero creati i primi
parser , programmi che eseguivano questo compito.
• Quarta fase: Anni ’90: Statistic Natural Language Proces-
sing (SNLP)
L’approccio linguista che caratterizz`o la terza fase fu di grande influen-
za nella quarta e ultima fase di NLP, che vede una grande svolta pro-
prio durante gli anni ’90. I modelli logico-grammaticali e il concetto
di semantica general-purpose, la costruzione di parser in grado di tra-
durre e comprendere dizionari anche molto consistenti, alberi lessico-
grammaticali in grado di gestire contesti molto ampi di traduzione,
diedero adito a un nuovo approccio per poter gestire, manipolare una
grande quantit`a di dati e di informazioni, che con gli albori di Internet
videro un primo ingresso nel mondo della tecnologia: i cosiddetti Big
Data. Sebbene i modelli per gestire task NLP attraverso un approccio
semantico general-purpose erano molto astratti, e quindi potevano co-
munque affrontare una gran quantit`a di flusso di informazioni, si vide
proprio in questi anni il limite di questo approccio, che era comun-
que legato (seppur attraverso dei modelli generali) alla conoscenza del
singolo dato, task, information: per questo motivo, nell’ultima fase
di NLP nacque un nuovo approccio capace di affrontare, elaborare e
interpretare attraverso un calcolatore questa grande quantit`a di infor-
mazioni: arriviamo a un approccio statistico/probabilistico per NLP
(Manning e Schuetze, 1999), che caratterizz`o i nuovi sistemi di NLP e
i nuovi parser dell’ultima decade, applicando i principi base della teo-
ria della probabilit`a a questi sistemi NLP. Arriviamo proprio in questa
decade e con quest’approccio a definire nuove fondamentali tecniche
attraverso un approccio probabilistico di NLP in grado di sviluppare
capacit`a molto importanti: estrazione dell’informazione, information
retrieval(motori di ricerca), sono solo due esempi della potenza di que-
st’approccio, che vedremo caratterizzare tutt’oggi il contesto moderno
di queste tecniche.
Vedremo nell’ultima sezione del primo capitolo qual `e lo stato moderno
di NLP ai giorni nostri, ma prima intendiamo dedicare una sottosezione
alla definizione formale e organica di NLP, avendo nel nostro bagaglio tutti
i passaggi pi`u importanti dell’evoluzione di questo concetto negli ultimi 50
anni, in relazione allo sviluppo tecnologico contestuale.
8 CAPITOLO 1. NATURAL LANGUAGE PROCESSING IN IA
1.2.2 Linguistica Computazionale e IA: definizione di
NLP
Nella conclusione della sottosezione inerente a IA, sono state messe in risal-
to le caratteristiche e le propriet`a fondamentali che denotano, delineano il
concetto di intelligenza associato a un calcolatore: in particolare, prendia-
mo come punto focale la prima di queste caratteristiche, l’interpretazione
del linguaggio naturale, collegata quindi alla capacit`a che deve possedere
l’agente razionale per comunicare con l’essere umano(che `e l’esaminatore
nel test di Turing).
Cosa intendiamo per interpretare, elaborare, capire il linguaggio naturale?
Occorre definire un punto di partenza per la nostra analisi, e occorre inoltre
cercare un collegamento saldo tra NLP e il concetto di linguaggio. In prima
analisi, riflettiamo per esempio sulle forze fondamentali della natura: la for-
za gravitazionale, elettromagnetica, nucleare debole e forte, che hanno una
natura molto diversa tra loro, sono accomunate da una caratteristica fon-
dante: sono tutte forze d’interazione, e quindi intendiamo da questo seppur
banale collegamento alla realt`a, che il problema fondamentale, anche in na-
tura, `e quello di definire un concetto di interazione, delineando i soggetti di
quest’interazione e il significato vero e proprio del concetto a differenza del
contesto. Avvicinandoci ora all’ambito informatico, vediamo per esempio
che l’interazione acquisisce un ruolo significativo nel mondo dei Sistemi Di-
stribuiti, dove un sistema Software funziona lavorando su macchine fisiche
diverse, e il problema dell’interazione tra i diversi ambienti diventa una del-
le principali questioni da gestire, non solo a livello di progetto del sistema,
ma soprattutto a livello di modellazione e di analisi, nella produzione del
suddetto software. Tutto ci`o per mettere in evidenza il punto di partenza:
in ogni problematica tecnica, partiamo dall’affrontare la questione dell’in-
terazione.
Nell’ IA i soggetti dell’interazione sono facili da individuare: abbiamo a
che fare sicuramente con un’ interazione uomo-macchina, che porter`a die-
tro tutte le problematiche del caso (elencate anche dal test di Turing), e
che sicuramente dovr`a essere affrontata esponendo modelli e tecniche che
riguardano l’interazione tra essere umani e elaboratori. Trovati i sogget-
ti dell’interazione, `e pi`u complicato definire il vero e proprio modello di
interazione tra esseri umani e calcolatori: dobbiamo cercare delle tecni-
che che riescano a far comunicare due mondi in apparenza completamente
diversi, nonostante l’elaboratore abbia con s`e le caratteristiche di un agen-
te razionale; come fare a trasformare il linguaggio umano, con tutte le sue
problematiche, le sue ambiguit`a, in una serie di dati comprensibili da un ela-
boratore tramite regole formali (linguaggio macchina), considerando anche
che questa trasformazione dev’essere reversibile (andata e ritorno, l’essere
umano deve poter capire dati elaborati da un calcolatore). Inseriamo ora,
in prima battuta, l’elaborazione del linguaggio naturale: essa `e definita pro-
prio come tecnica capace di produrre modelli che hanno il ruolo di mediare
CAPITOLO 1. NATURAL LANGUAGE PROCESSING IN IA 9
tra il mondo umano e il mondo degli elaboratori a livello di comprensione e
generazione del linguaggio naturale. Ecco il collegamento tra NLP e il con-
cetto vero e proprio di linguaggio: i programmi NLP devono poter riuscire
a elaborare espressioni proprie del linguaggio umano, che possono essere
scritte in diverse espressioni della lingua (dialetti, lingue, registro scritto,
parlato); la comprensione di NLP `e vincolata quindi alla conoscenza di di-
versi campi dello studio del linguaggio. Il problema di definire NLP quindi
passa attraverso la conoscenza e le problematiche che riguardano lo studio
del linguaggio vero e proprio: ad esempio fonetica, semantica, morfologia,
sintassi... Per questo motivo, quando si parla di NLP, si tende ad associare
molto spesso questo concetto ad una branca che si `e sviluppata a partire
dagli anni ’50, non molto distante ma diversa dal concetto IA, che tocca in
maniera molto forte queste tematiche: la Linguistica Computazionale, che si
concentra sullo sviluppo di formalismi descrittivi del funzionamento di una
lingua naturale, tali che si possano trasformare in programmi eseguibili dai
computer. I problemi che affronta la linguistica computazionale consistono
nel trovare una mediazione fra un oggetto di studio in costante evoluzione
(il linguaggio umano) e le capacit`a di comprensione della macchina, limitate
a quanto pu`o essere descritto tramite regole formali; con NLP si tenta di
dare quindi proprio questo modello di interazione, cercando di formulare
approcci (che vedremo nel proseguo del percorso) in grado di determinare
tecniche capaci di mediare il problema di comprensione e di gestione del
linguaggio naturale.
Considerato il collegamento molto forte tra NLP e la Linguistica Computa-
zionale, il ruolo di NLP come mediazione a livello di linguaggio tra elabora-
tori e esseri umani, e l’importanza del suo collegamento con le tecniche vere
e proprie dello studio del linguaggio (vedremo pi`u avanti come sar`a molto
importante nelle tecniche moderne di NLP il ruolo e l’importanza della fi-
gura dei linguisti), proviamo a dare una definizione organica del concetto:
L’elaborazione del linguaggio naturale `e una branca, un campo
di studi e di ricerca che si divide tra IA e Linguistica Computazionale, e
che fa riferimento al processo di trattamento automatico mediante un cal-
colatore elettronico delle informazioni scritte o parlate in lingua naturale,
ponendosi come vero e proprio modello di mediazione nell’interazione uomo-
macchina: la complessit`a che sta alla base di questo processo, dovuta alle
caratteristiche intrinseche di ambiguit`a del linguaggio umano, `e affrontata
attraverso un duplice meccanismo che da una parte suddivide questo proces-
so in fasi diverse, con analisi lessicale, grammaticale, sintattica, semanti-
ca(influenza della Linguistica Computazionale), e da un’altra parte associa
a queste analisi tecniche in grado di implementare al meglio questo modello
di mediazione(influenza di IA).
10 CAPITOLO 1. NATURAL LANGUAGE PROCESSING IN IA
Figura 1.3: Il ruolo fondamentale di NLP `e quello di mediazione tra lin-
guaggio umano(indefinito e ambiguo) e linguaggio macchina(definito e con
regole formali
1.3 Stato dell’arte moderno di NLP
Dopo aver discusso ampiamente sulla definizione e sul significato contestua-
le dell’elaborazione del linguaggio naturale, e averne ripercorso brevemente
le sue evoluzioni storiche nei campi IA e Linguistica Computazionale, in-
teriorizzando la sua importanza in relazione a tecniche che possiamo gi`a
intuire avere influenze molto significative in un contesto sociale dove l’im-
patto tecnologico `e rilevante (come ad esempio il contesto storico attuale
della societ`a, sempre pi`u tecnologica e informatizzata a tutti i livelli), termi-
niamo questo capitolo mostrando lo stato dell’arte di NLP ai giorni nostri,
riassumendo anche attraverso qualche esempio e riferimento il suo impatto
nella societ`a moderna. Ritengo che questa sezione, seppur breve e comun-
que di carattere ancora introduttivo, sia molto importante per capire e per
affrontare il proseguimento del trattato, dato che poi ci avvicineremo nel
prossimo capitolo a un’analisi molto pi`u tecnica di NLP e dei suoi approcci,
valutando attraverso esempi anche tecniche moderne, per poi andare a sfo-
ciare nei capitoli successivi a una tecnica moderna particolare, nucleo della
tesi: Sentiment Analysis.
Ai giorni nostri NLP `e in continua espansione e grazie alle nuove tecnologie
informatiche ricopre tutt’ora un ruolo fondamentale ad esempio per quan-
to riguarda le sue espressioni in campo di Information Retrieval(Google,
Bing, Yahoo..) e nel campo della traduzione automatica (Google Translate,
dizionari online..); molti progressi sono stati fatti nel campo della sintas-
si, migliorando i programmi parser attraverso strutture logiche sempre pi`u
ben definite, e inoltre la potenza sempre pi`u elevata degli elaboratori ha
facilitato molto l’esecuzione e la computazione di algoritmi anche pesanti,
non consumando le risorse. Ovviamente siamo ancora lontani da sistemi
perfetti in grado di lavorare al 100% delle possibilit`a e garantire una cono-
scenza globale dell’ambiente sul quale si affacciano e dei dati che hanno a
disposizione, basti pensare ai cosiddetti “problemi intrattabili”, ma `e faci-
le pensare che NLP occupi nella societ`a moderna una posizione rilevante,
CAPITOLO 1. NATURAL LANGUAGE PROCESSING IN IA 11
cosa che non poteva essere se la storia di NLP fosse stata diversa o fosse
stata scollegata dal contesto informatico in espansione. Ripercorrendo la
storia di NLP attraverso le sue diverse fasi, vediamo che da una primissima
fase di semplice MT e di semplici ricerche di dati siamo passati attraver-
so uno sviluppo tecnologico e ricerche in questo settore a modelli sempre
pi`u general-purpose, che affrontassero e che dessero regole il pi`u generali e
riusabili possibili, come nella produzione di un qualsiasi sistema software,
perch´e `e di questo che stiamo parlando: parlare di tecniche di costruzione
di un sistema NLP si avvicina molto di pi`u alla produzione di un sistema
software di quanto crediamo, ma `e essenziale definire dei modelli e degli
approcci , dato che questi sistemi fanno riferimento a una razionalit`a, a una
conoscenza globale del mondo intorno a s`e che non `e prevista da un semplice
sistema software: in questo modo, con l’introduzione di un approccio duale
a quello semantico (probabilistico-statistico), ci rendiamo conto di riuscire
a modellare e programmare algoritmi e interi sistemi riutilizzando modelli
e teorie prettamente matematiche impiantate in un contesto e in un proble-
ma informatico di elaborazione di grandi quantit`a di informazioni. Vedremo
che la Sentiment Analysis, tecnica di elaborazione del linguaggio naturale
che si sta definendo proprio nel nostro contesto, e che dipende direttamente
dalle nuove tecnologie informatiche di grande interesse (Social Network),
riprender`a proprio questi concetti appena espressi: oggi le tecniche di NLP,
realizzate attraverso un approccio definito e dei modelli general-purpose che
si sono sviluppati in questi 50-60 anni della sua esistenza, cercano di esse-
re impiantate in tecnologie informatiche moderne, cercando di sfruttare la
potenza di queste tecniche.
Unire il vecchio al nuovo, unire il bagaglio di conoscenza legato a NLP e ai
suoi modelli alle nuove infrastrutture e strumenti che ci offre la tecnologia,
sapersi adattare al cambio repentino del contesto tecnologico e del progres-
so moderno, sar`a proprio il tema che verr`a ripreso nella conclusione, che in
un certo senso ridefinisce il ruolo di un ingegnere informatico all’interno di
un’azienda.
12 CAPITOLO 1. NATURAL LANGUAGE PROCESSING IN IA
Capitolo 2
Approccio statistico e
approccio semantico
Esaminiamo e apprendiamo in questo capitolo i concetti chiave di NLP,
studiandone i possibili approcci tecnici, per poter essere in grado di ritrovare
questi concetti su tecniche moderne di IA.
2.1 Concetti chiave e modelli generali per
NLP
In questa sezione andremo a riprendere il concetto di elaborazione del lin-
guaggio naturale come l’abbiamo definito nel primo capitolo del trattato,
cercando di valutare prima le problematiche intrinseche di questa tecnica,
e quindi l’esigenza di fornire un percorso capace di stabilire modelli gene-
rali in grado di affrontare queste difficolt`a. Partiremo poi nel definire i
concetti tecnici chiave nell’elaborazione del linguaggio naturale, valutando
nelle successive sottosezioni gli elementi fondamentali dell’elaborazione del
linguaggio naturale, fornendo un flow definito e modelli base che verranno
poi affrontati in seguito da due filoni di ricerca basati su approcci duali,
statistico e semantico, che vedremo nella prossima sezione.
2.1.1 Valutazione delle problematiche di NLP
Per poter gestire il ruolo di mediazione legato al concetto di NLP per come
l’abbiamo definito nel precedente capitolo, e’ naturale pensare che occorre
gestire svariate problematiche legate al concetto che risolvere task NLP si-
gnifica andare ad affrontare l’ambiguit`a del linguaggio parlato. Attraverso
tecniche e modelli svariati, pi`u o meno performanti, occorre definire prima
modelli per gestire queste interazioni, e poi in ultima analisi implementare
tecniche in grado di seguire questi modelli. Quello appena descritto `e il
problema iniziale relativo alla condizione di NLP, ovvero legato intrinseca-
mente alla sua definizione, e al suo ruolo nel mondo dell’ IA: analizzando
14
CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO
SEMANTICO
per`o il flusso che attraversa NLP nel ruolo di mediatore, ci rendiamo con-
to che questa problematica `e divisa a sua volta in due sfaccettature. Se
da una parte il mediatore NLP dev’essere in grado di riuscire a tradurre
il linguaggio naturale in dati formali, ci sar`a anche un processo di ritorno,
in cui il mediatore dev’essere in grado di generare da dei dati formali delle
informazioni esprimibili in linguaggio naturale. Per questo motivo le pro-
blematiche dei task NLP si dividono in due grandi categorie: problemi di
interpretazione e problemi di generazione. I problemi di interpretazione e
di comprensione riguardano tutti quei problemi che richiedono processi in
grado di partire dal linguaggio naturale, effettuare delle rimozioni di ambi-
guit`a, e riuscire a costruire dati formali in grado di essere interpretati con
facilit`a da un elaboratore e nelle operazioni di calcolo; per quanto riguarda
la seconda categoria, i problemi di generazione, abbiamo invece tutti quei
problemi che richiedono processi che comprendano la generazione (a par-
tire da dati formali) di dati comprensibili all’uomo, attraverso ad esempio
capacit`a di scegliere una struttura del testo, di scegliere una costruzione
sintattica adeguata, di generare un intonazione vocale adatta, etc..
Figura 2.1: Le due grandi categorie di problemi dei task NLP: problemi di
interpretazione e problemi di generazione
Linguistica computazionale, Intelligenza Artificiale, Computer Science:
NLP `e a tutti gli effetti un agente interdisciplinare, coinvolto in maniera
pi`u o meno profonda in tutti questi mondi, ma la vera difficolt`a nel trattare
NLP si pu`o vedere nell’ambiguit`a presente a livelli differenti del linguaggio
stesso (problemi di interpretazione). Analizzare il linguaggio naturale per
poterne dare un’interpretazione significativa e non ambigua significa analiz-
zare l’ambiguit`a di un concetto, un periodo, un discorso, in diversi livelli.
Proviamo a valutare con un esempio questo concetto appena espresso, di
importanza fondamentale: se vogliamo interpretare la frase Inglese “ I made
her duck “ , per interpretare questo periodo ho bisogno di disambiguare al-
meno tre differenti livelli: duck viene inteso come il verbo “to duck“ , oppure
CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO
SEMANTICO 15
si riferisce a “anatra“ ? Il verbo “made“ ha significato di “fare, creare“ ,
oppure di “cucinare“? E inoltre: her e duck, fan parte della stessa struttura
sintattica? In questi tre livelli di analisi si annidano i primi esempi di solu-
zioni che proporranno modelli che poi osserveremo pi`u a fondo: il Part of
Speech Tagging risolver`a la prima ambiguit`a, il Word Sense Disambiguation
e il Probabilistic Parsing le ultime due. Come analizzeremo successivamen-
te, questi problemi vengono oggi risolti con soluzioni ad alto livello relative
a tecniche di Intelligenza Artificiale e di Machine Learning, ma occorre met-
tere in evidenza che tutte queste soluzioni partono comunque dal modellare
prima a basso livello queste tipologie di problemi, che troviamo soprattutto
a livello di linguaggio, per poi sfruttare questi modelli e proporre tecniche
avanzate in grado di ottimizzare queste soluzioni. Questi concetti base che
andremo a fornire nella prossima sottosezione saranno poi investiti da due
approcci, statistico e semantico, di cui valuteremo i diversi impatti senza
per`o andare a cercare una strada migliore tra i due (anche se nell’ultima
decade i sistemi di apprendimento statistico hanno avuto i risultati migliori
nella risoluzione di questi task) , ma cercando di evidenziare come entrambi
gli approcci siano validi in termini di ricerca di soluzioni per i task NLP,
facendo riferimento a titolo di esempio anche a qualche progetto. In par-
ticolare, definiremo dunque nelle sottosezioni seguenti elementi in grado di
affrontare un percorso composto da: analisi morfologica, modellazione del
linguaggio, parsing sintattico, part-of-speech tagging, traduzione statistica
e semantica lessico-computazionale. Solo dopo questo processo “a basso
livello“ saremo in grado di astrarre e valutare soluzioni “ad alto livello“
per affrontare il problema dell’interpretazione del linguaggio naturale, ed
esaminare i due approcci nella risoluzione a livello di software di queste
problematiche.
2.1.2 Analisi Morfologica e parsing sintattico
Il legame di NLP con il campo della Linguistica Computazionale `e vera-
mente forte, e infatti vediamo subito che la figura dei linguisti in questo
ambito `e di vitale importanza: partiamo infatti nell’affrontare il problema
di modellare NLP dal problema di modellazione del linguaggio e di Analisi
Morfologica del linguaggio.
L’elemento che sta alla base di questa prima fase sono le parole [10]: esse
sono l’unit`a fondamentale nella nostra analisi, rappresentano il blocco ba-
se del linguaggio, compongono qualsiasi tipo di linguaggio umano (parlato,
scritto..), e rappresentano soprattutto le pi`u piccole forme del linguaggio che
possono essere enunciate autonomamente e avere un contenuto pragmatico
e semantico(dotate di un significato). In generale, esse a loro volta sono
composte da morfemi, il cui concetto rappresenta il pi`u piccolo elemento di
una parola dotato di significato che non pu`o essere suddiviso ulteriormente;
dunque, studiare le unit`a fondamentali del linguaggio significa andare a stu-
diare i morfemi che compongono le parole. Questi morfemi si dividono a loro
16
CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO
SEMANTICO
volta in due tipologie : morfemi radice (i morfemi principali delle parole), e
i morfemi che rappresentano suffissi, prefissi, collegati con le parole stesse.
Non perdiamo per`o di vista il contatto con la nostra analisi principale: `e
fondamentale avere chiaro questa seppur generica introduzione inerente all’
analisi morfologica del linguaggio, per poter essere in grado di affrontare
il prossimo step, ovvero una prima trasposizione di questo scenario verso
il mondo informatico, cio`e collegare il concetto di analisi morfologica a un
qualche processo informatico: `e qui che nasce il concetto di Parsing, inteso
come processo che analizza un flusso di dati continuo in input, in modo da
determinare una sua struttura definita data una grammatica formale. Il
nostro problema, dunque, sar`a quello di costruire un Parsing Sintattico, in
grado di fare questa prima analisi morfologica delle parole, e fare detecting
dei vari morfemi che eventualmente le compongono, dando una prima forma
di struttura definita (formale); lo schema `e quello classico di un sistema, do-
ve inseriamo le parole come degli input veri e propri e il sistema di parsing
rappresenta la scatola nera che `e in grado di elaborare questi input e resti-
tuire in output dati formali che verranno dati in pasto a un elaboratore [5].
Definiamo ora tre passi fondamentali che compongono il percorso (bilatera-
le) per risolvere il problema di costruzione di un sistema del genere, legato
ovviamente al problema principale di disambiguare le parole in relazione
al contesto semantico. Nel processo di Parsing, in un primo livello (Livello
superficiale), abbiamo bisogno di riuscire a riscontrare e formalizzare in ma-
niera astratta le regole grammaticali con i quali i morfemi sono combinati
per generare la parola in questione (per esempio, in inglese, la parola:
cities = city + s); parte qui il vero detecting dei morfemi all’interno delle
parole. In un secondo livello (Livello intermedio), modelliamo questi mor-
femi trovati per cogliere il loro valore semantico all’interno della parola (ad
esempio, nell’esempio precedente, la “s“ trovata rappresenta un plurale:
city + s = city + PL); in questa fase, che rappresenta il cuore dell’atti-
vit`a del Parsing, avremo bisogno di una modellazione particolare attraverso
macchine a stati finiti (FST), dipendenti da grammatiche formali specifiche.
Infine arriviamo all’ultimo livello, il livello lessico, in cui abbiamo quindi fat-
to parsing sintattico della parola per valutarne la formalit`a, e abbiamo tutte
le informazioni per mettere questa word in pasto a un elaboratore che la-
vora con dati formali, e sar`a in grado di comprenderla. In maniera duale
e simmetrica, andremo a comporre il processo di creazione della parola a
partire da un dato formale.
CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO
SEMANTICO 17
Figura 2.2: Schema puntuale del processo di Parsing e del processo di
Generazione: la parola “BEAGLES“
Dopo aver valutato tecnicamente questi concetti inerenti all’interpreta-
zione di una singola parola, e aver visualizzato bene il contesto in cui ci stia-
mo muovendo, finalmente abbiamo raggiunto l’obiettivo di aver trasposto
in maniera esaustiva il problema linguistico dell’interpretazione sintattica
verso un processo di parsing sintattico puramente informatico, in grado di
interpretare semanticamente una singola word estrapolandola da un conte-
sto pi`u ampio; ora dovremo provare nella prossima sottosezione a capire in
quale maniera riuscire a lavorare con pi`u entit`a, con pi`u parole, studiare
le varie combinazioni tra esse, per avvicinarci sempre pi`u a interpretare e
analizzare un “periodo“, e non una singola parola che lo compone.
2.1.3 Modelli di linguaggio, probabilit`a e CFG
Anche se dovremo a un certo punto (come prima) collegarci a un processo
informatico, capiamo proprio nel momento in cui dobbiamo affrontare la
combinazione dell’analisi di pi`u parole l’importanza del concetto di proba-
bilit`a collegato a queste tecniche. Valuteremo pi`u avanti in concreto il vero
impatto dell’approccio probabilistico e i suoi veri punti di forza, ma occorre
iniziare a determinare i legami e le interazioni chiave che esistono a basso
livello tra NLP e la probabilit`a; per questo motivo inseriamo qui, in un
contesto ancora “comune“ tra approccio semantico e approccio statistico,
alcuni concetti che rappresentano le fondamenta di NLP per entrambi gli
approcci. Siamo ora in grado di processare un testo a livello morfologico,
e quindi cerchiamo di passare alla fase successiva, ovvero la gestione di un
periodo, di una frase composta da pi`u parole, partendo dal definire dei veri
e propri modelli di linguaggio. Introduciamo il concetto fondamentale di
18
CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO
SEMANTICO
Corpus, che rappresenta una grande collezione di testi generica, scritti in
linguaggio naturale (da umani per gli umani), come ad esempio le migliaia
di pagine che compongono il World Wide Web, e che quindi fornisce un
insieme di parole che possono essere interpretate. Un modello di linguag-
gio definisce una distribuzione di probabilit`a su questo insieme di parole,
potenzialmente infinito; in pratica, a differenza del modello di linguaggio
specifico scelto, da esso viene associata una certa funzione f(w) a ogni paro-
la del lessico, e in base al modello di linguaggio, alle dimensioni del corpus,
ai concetti fondamentali di statistica e probabilit`a (che in questo contesto
rappresentano la stessa cosa) e infine all’apprendimento, si riesce a costrui-
re a basso livello tutta quella struttura in grado di poter sostenere poi ad
alto livello tecniche e algoritmi di estrazione dell’informazione, traduzione
automatica e information retrieval. I modelli di linguaggio associati a una
generica parola(w) del lessico sono modelli n-gramma, in particolare:
• Modelli uni-grammi, in cui f(w) = P(w) , probabilit`a associata a una
parola
• Modelli bi-grammi, in cui f(w) = P(w;w-1), probabilit`a associata a
una parola e alla precedente
• Modelli N-grammi, in cui f(w) = P(w; w-(N-1)), probabilit`a associata
a una parola e alle N precedenti
Ovviamente la scelta del modello di linguaggio sar`a importante per ot-
tenere un livello pi`u o meno raffinato di interpretazione del linguaggio e di
disambiguazione semantica, ma come gi`a detto abbiamo bisogno anche di
un corpus con certe dimensioni per avere la possibilit`a di poter sfruttare al
meglio questi modelli, che alla fin fine esprimono delle funzioni (matemati-
che) che hanno bisogno di molti “valori“ sul quale lavorare per funzionare al
meglio, e far funzionare gli algoritmi che le sfruttano direttamente: questo
concetto, andando sempre pi`u ad alto livello, sta alla base della cosiddetta
“machine learning“ e dei sistemi software che sviluppano la parte di appren-
dimento automatico delle macchine, che riconduce un p`o tutto quello che
stiamo valutando al mondo informatico e alle tecnologie moderne (l’impatto
dell’IA nel nostro contesto moderno).
Come stimare la funzione probabilit`a P(w) , e associarla a una parola? E’
essenziale ed `e mio obiettivo, come gi`a espresso pi`u volte, cercare di capire
in questa parte relativamente tecnica i concetti fondamentali che poi saran-
no ripresi nell’approfondimento centrale della tesi; ma in questo momento
abbiamo bisogno di fare un ulteriore collegamento, seppur molto generale,
per trovare delle regole fondamentali di probabilit`a, proprio perch´e queste
regole verranno riprese nel momento in cui andremo a trasporci verso il
mondo informatico, valutandone il significato in relazione all’approccio spe-
cifico. Dobbiamo quindi in pratica collegare i modelli a N-Grammi mostrati
a un’ espressione formale, e per farlo abbiamo bisogno di definire il processo
CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO
SEMANTICO 19
Markoviano, come un processo nel quale la probabilit`a di transizione che de-
termina il passaggio ad uno stato di sistema dipende unicamente dallo stato
di sistema immediatamente precedente (propriet`a di Markov) e non dal co-
me si `e giunti a tale stato. Questo concetto `e fondamentale per introdurre
la catena di Markov, processo che gode della propriet`a di Markov appe-
na descritta, con spazio degli Stati discreto (numerabile). Ora, partendo
dagli uni-grammi, scrivendo una prima formula relativa a una particolare
funzione di probabilit`a, dovremo ovviamente andare a combinare le varie
probabilit`a di tutte le N parole che abbiamo a disposizione nel corpus: per
poter generalizzare e semplificare questo calcolo, andiamo a scrivere la ca-
tena attraverso un’approssimazione; a questo punto, approcciandoci verso
i bigrammi, dovremo risolvere questa formula sfruttando il concetto di fre-
quenza dei bigrammi nel nostro corpus. In poche parole, questo processo
che racchiude queste formule matematiche, mi da la conferma che la fun-
zione di probabilit`a associata a un bigramma dipende essenzialmente dalla
frequenza con cui il bigramma si presenta all’interno del corpus; ecco il
perch´e un corpus pi`u ampio mi da pi`u possibilit`a di disambiguare il lin-
guaggio naturale e effettivamente associare la parola giusta, in dipendenza
delle parole precedenti. Per questo, i bigrammi possono essere rappresentati
come catene di Markov: questo concetto `e indipedente dall’approccio poi
che verr`a fatto per implementare una tecnica specifica di NLP, ma mi da
solamente il collegamento tra un modello di linguaggio (che viene imple-
mentato attraverso algoritmi) e una formula matematica che viene ripresa
dalla teoria della probabilit`a: vedremo pi`u avanti, in alcune analisi di tecni-
che concrete, come abbiamo bisogno di riprendere questo concetto e magari
ridefinirlo, proprio nel momento in cui ci andiamo a trasferire da queste basi
matematiche alle vere tecniche informatiche che le implementano.
Per chiudere questa sezione, introduciamo molto velocemente un ultimo
concetto che verr`a poi ripreso subito nella prossima sezione in chiave proba-
bilistica: le Context-Free-Grammar(CFG), ovvero le grammatiche formali
Figura 2.3: 1: probabilit`a unigrammo; 2: probabilit`a di un bigrammo; 3:
probabilit`a di un bigrammo con frequenza relativa; 4:probabilit`a N-grammo
20
CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO
SEMANTICO
(struttura astratta che descrive un linguaggio formale in modo preciso, as-
sociando attraverso regole formali alcune parole a un determinato alfabeto),
definite da 4 tuple : G = (N,T,P,S). Le 4 tuple rappresentano nell’ordine:
l’insieme di simboli non-terminali (N), l’insieme di simboli terminali (T),
l’insieme delle regole (P) e l’insieme dei simboli di partenza (S). E’ impor-
tante iniziare a capire il ruolo di queste grammatiche proprio perch´e danno
quelle regole di traduzione e interpretazione tali da trasformare periodi,frasi
in dati formali, associandoli a strutture definite dipendenti dalle propriet`a
del linguaggio a cui appartengono, di cui la grammatica specifica ne ha
dettato le regole di traduzione: arriviamo a una struttura “ad albero“ dei
periodi. Insomma, relativamente a quella scatola nera che mi rappresen-
tava il sistema di parsing sintattico definito in precedenza, le grammatiche
CFG rappresentano l’insieme di regole fondamentali con cui questa scatola
nera funziona e elabora le frasi che riceve in input, dandone una struttura
formale e sintattica. Dunque, dopo aver finalmente definito NLP nel primo
capitolo, e aver interiorizzato il ruolo che occupa all’interno di IA, abbia-
mo ora studiato ed elencato tutti quegli strumenti tecnici che rendono NLP
strettamente collegata sia al mondo del linguaggio in s`e (parsing sintattico
relativo a una parola), sia in maniera pi`u generale strettamente collegata
a concetti probabilistici/matematici (modellazione del linguaggio relativo a
un corpus, e gestione di periodi, frasi attraverso grammatiche). Andremo
dunque ora, con questi concetti bene in testa, ad approfondire in maniera
prima teorica e poi concreta i due possibili approcci verso NLP, andando
poi nei prossimi capitoli a definire una tecnica moderna(Sentiment Analy-
sis) e riprendendo nell’ultimo capitolo questi concetti di NLP collegandoli
a questa tecnica.
2.2 Approccio probabilistico e PCFG
A questo punto, dopo aver definito le grammatiche non contestuali (CFG),
siamo in grado di caratterizzare una stringa come appartenente o no a un
determinato linguaggio, attraverso regole di parsing: ma quale potrebbe es-
sere un modo per poter decidere se un intero periodo possa appartenere a un
determinato linguaggio? Allarghiamo dunque i soggetti del nostro discorso:
dobbiamo tradurre in maniera informatica questo passaggio, cercando di
capire in quale modo riusciamo a interpretare il linguaggio naturale, dopo
aver definito basi comuni nella definizione di grammatiche, di necessit`a di
parsing, di traduzione. Arrivati a questo punto intravediamo due possibi-
li approcci che si sono sviluppati negli anni per poter affrontare e risolvere
questo problema: l’approccio probabilistico e l’approccio semantico. In que-
sta sezione analizzeremo il primo approccio, il filone statistico-probabilistico
(che qui vogliono dire la stessa cosa), che ha riscontrato un grande successo
negli ultimi anni, soprattuto in relazione all’esplosione dei Big Data. Un
modello probabilistico del linguaggio definisce una distribuzione di proba-
CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO
SEMANTICO 21
bilit`a su un insieme (potenzialmente infinito) di stringhe: nella sottosezio-
ne precedente abbiamo definito modelli che funzionano attraverso funzioni
probabilistiche, come i modelli unigrammi, bigrammi, n-grammi, e abbia-
mo determinato che questi modelli sono in grado di interpretare abbastanza
fedelmente il linguaggio determinando, attraverso la frequenza relativa as-
sociata a una cosiddetta catena di Markov, delle funzioni di probabilit`a
all’interno del proprio corpus: ma dato che realizzare un corpus infinito `e
impossibile, in quale modo posso generare un modello potenzialmente infini-
to se ho a disposizione n-word limitate? E’ fondamentale capire, in questo
contesto, che quello che deve cambiare sono le basi, e che il concetto di
CFG definito precedentemente sar`a ridefinito e verranno messe a punto le
PCFG(Grammatiche non contestuali probabilistiche), che sono a tutti gli
effetti CFG con un nuovo, fondamentale requisito: esse associano una proba-
bilit`a a ogni regola di riscrittura [9]. In poche parole, associamo un’ulteriore
probabilit`a relativa alle regole che compongono i nodi dell’albero sintattico;
in questo modo, con le PCFG abbiamo modo di avere conoscenza non solo
sulle word interne al corpus, ma anche al di fuori di esso: su queste nuove
basi, possiamo intravedere finalmente tecniche ad alto livello, che vedremo
nella prossima sottosezione. Riscontriamo per`o due limiti che devono essere
risolti: anche se le PCFG, per come le abbiamo definite, sembra riescano a
costruire alberi sintattici completi(seppur sempre dipendenti da una stima,
da una probabilit`a, e non da una certezza assoluta), ci rendiamo conto che
formalizzare un albero sintattico non vuol dire che siamo riusciti a cogliere
il significato del periodo, la semantica del contesto: e quindi per questo
motivo andremo anche a parlare di un ulteriore approccio, semantico, in
grado di affrontare questo discorso, e vedremo i pro e i contro anche di que-
sto approccio. Il secondo limite che dobbiamo essere in grado di superare
`e relativo alle catene di Markov: seppur esse rappresentino una modella-
zione concreta e abbastanza completa di un primo approccio al linguaggio
naturale, `e fondamentale in questo contesto probabilistico ridefinire queste
catene di Markov, come abbiamo ridefinito le CFG: `e qui che iniziamo a
parlare di Hidden Markov Models (HMM), o catene di Markov nascoste, il
cui significato pu`o risultare ambiguo, ma che se viene contestualizzato in
questo discorso, riusciamo veramente a capire quali sono le basi di questo
approccio probabilistico. HMM sono effettivamente catene di Markov, che
per`o nascondono lo stato attuale, associando una funzione di probabilit`a re-
lativamente allo stato in cui si possono trovare: perch´e, in questo passaggio
di ulteriori ridefinizioni, vogliamo rinunciare a un’informazione che con le
semplici catene di Markov visibili avevamo? Le HMM sono in grado di asso-
ciare probabilit`a a particolari eventi che vengono generati in ogni possibile
stato: la gestione di questa duplice funzione di probabilit`a (stati, eventi), `e
in grado di modellare un contesto molto pi`u ampio, rispetto a ci`o che face-
vano le semplici catene di Markov. Allargare il contesto, passare da CFG a
PCFG, da catene di Markov visibili a invisibili, `e il passaggio fondamentale
che caratterizza l’approccio probabilistico: PCFG e HMM sono le valvole
22
CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO
SEMANTICO
da gestire per un modello ad alto livello, e vedremo come nella Sentiment
Analysis si passa attraverso questi concetti per poter definire modellazioni
probabilistiche di questa tecnologia. Concludiamo dicendo che comunque
PCFG e HMM sono s`ı elementi fondamentali, ma pur sempre caratterizzati
da limiti: l’approccio probabilistico, che `e in continua evoluzione, ha avu-
to perfezionamenti e sono stati introdotti nuovi modelli al posto di HMM,
soprattutto relativamente alla tecnica di POS-Tagging, che non andremo
ad analizzare dettagliatamente qui. Il lettore deve essere consapevole del
ruolo fondamentale svolto dalle PCFG e da HMM nell’approccio probabi-
listico, per poter percorrere criticamente il percorso che verr`a affrontato
successivamente nel quarto capitolo.
2.2.1 Information Retrieval, Estrazione dell’informa-
zione e traduzione automatica
In questa sottosezione illustreremo brevemente le tecniche informatiche che
si sono sviluppate nell’ambito dell’approccio probabilistico, ovvero nell’am-
bito di una modellazione attraverso PCFG del linguaggio naturale, costruen-
do funzioni di probabilit`a a due livelli per poter essere in grado di manipo-
lare un grande flusso di dati. La fortuna dell’approccio probabilistico sta
proprio in questo: queste tecniche, che si sono sviluppate soprattutto negli
anni ’80-’90 con l’avvento del WWW e dei Big Data, sono ai giorni nostri
considerate quasi scontate, e ci soffermeremo poco sul loro funzionamento:
quello che il lettore deve tenere presente comunque, `e il continuo collega-
mento tra le basi probabilistiche (ridefinite nella precedente sottosezione) e
le tecniche implementative che sfruttano queste basi, tecniche che tendono
a variare alcuni punti in questi modelli per poter ottenere vantaggi in un
certo senso rispetto ad un altro. L’information retrieval (IR), che `e la prima
tecnica che affrontiamo, consiste nel trovare i documenti rilevanti per le ne-
cessit`a informative di un utente: `e un naturale sottoinsieme di NLP, perch´e
esso ha a che fare con una certa funzionalit`a di NLP. Questa tecnica, perfe-
zionata nel corso degli anni, `e fondamentale al giorno d’oggi, basti pensare
alla fortuna dei motori di ricerca. L’obiettivo principale di questa tecnica,
che `e in grado in poche parole di costruire veri e propri sistemi capaci di
fare information retrieval, `e proprio quello di avere un ritorno ad-hoc del-
l’informazione: l’utente, attraverso una query, descrive l’informazione che
desidera avere, e il sistema IR dev’essere in grado di far avere all’utente una
lista inerente all’informazione richiesta dall’utente, o soddisfacendo esatta-
mente le richieste dell’utente(matching esatto), oppure dando in risposta
documenti che il sistema ha valutato avere una buona influenza nella query
formulata dall’utente (matching stimato, grande flusso di dati). E’ molto
importante anche capire, valutare, se un sistema IR pu`o avere delle buone
prestazioni oppure no: i due parametri che `e possibile ottimizzare all’inter-
no di algoritmi IR riguardano la precisione, che misura la proporzione di
una parte rispetto a un totale, e la copertura, che misura quanta parte del
CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO
SEMANTICO 23
corpus non `e stata inclusa nei risultati. Andiamo anche a spendere due pa-
role su altre tecniche di NLP probabilistico: l’estrazione dell’informazione,
che fa riferimento al processo mediante cui si inseriscono dati in un data-
base esaminando un testo e cercando le occorrenze di una particolare classe
di oggetto o evento all’interno di questo DB, e non da meno la traduzio-
ne automatica, che fa riferimento all’operazione di traduzione da un testo
in lingua naturale a un altro (obiettivo, sorgente), e che forse `e una delle
tecniche pi`u complicate in questo ambito: si pensi alla parola “hard“, che
in inglese ha una certa valenza contestuale, ma che in italiano pu`o essere
tradotta “forte“ oppure “difficile“, a seconda del contesto in cui si trova.
Allargare il discorso in questo momento diventa fondamentale, e notiamo
che l’approccio probabilistico, sebbene determini un passaggio importante
e abbastanza lineare nella nostra analisi, pu`o risultare stretto in certi versi,
ma sicuramente risulta l’approccio pi`u semplice, lineare, fedele, con il quale
gestire una grande quantit`a di dati in entrata.
Per riassumere: l’approccio probabilistico, caratterizzato a basso livello dal
passaggio alle PCFG e agli HMM(e non solo), fornisce tecniche in grado
di gestire con una certa fedelt`a e linearit`a grandi moli di dati (come pu`o
essere il corpus che rappresenta il linguaggio naturale), associando funzioni
di probabilit`a alle word e alle stesse regole di traduzione: queste tecniche,
quali Information Retrieval, Estrazione dell’informazione e Traduzione Au-
tomatica, fanno parte di NLP dai primi anni ’60-’70, ma ottengono molto
successo soprattutto durante gli anni ’90, con l’ascesa del WWW e dell’in-
formazione che viaggia sul web: sebbene l’approccio probabilistico abbia
molti limiti(e uno di questi `e proprio l’impossibilit`a di associare una tradu-
zione semantica esatta a una traduzione sintattica esatta), esso rappresenta
un’ arma vincente per l’implementazione di sistemi in grado di gestire le
problematiche di NLP e interpretare il linguaggio naturale. Non andiamo
ora a mostrare qualche esempio concreto di tecnica probabilistica NLP, ma
avremo modo (soprattutto nell’ultimo capitolo) di valutare criticamente una
tecnica moderna che segue un modello probabilistico.
2.3 Approccio semantico
Dopo aver valutato e presentato l’approccio probabilistico, andiamo a con-
testualizzare il secondo possibile approccio all’interpretazione del linguaggio
naturale : l’approccio semantico.
2.3.1 Valutazioni e critiche dell’approccio: WSD
La semantica fa riferimento alla parte di linguistica che si occupa del piano
del significato di un periodo. E’ molto complicato arrivare a delineare una
definizione rigorosa del concetto di significato, gi`a a partire da un piano lin-
guistico: un significato pu`o essere rappresentato da un’idea, un’immagine
24
CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO
SEMANTICO
mentale, e pu`o essere connesso alle sensazioni che esso d`a luogo, ma allo
stesso momento invece pu`o essere rappresentato attraverso un collegamento
oggettivo, cosa rappresenta questo significato a livello di modello[3]. Que-
ste problematiche che stanno alla base di un’interpretazione semantica di
un contesto reale, sono problematiche che si ripercuotono fino ad arrivare a
problemi che dovremo affrontare nella modellazione di questo mondo, per
poter arrivare a definire tecniche come abbiamo fatto nell’approccio sta-
tistico. L’approccio semantico si prefigge di sconfiggere quel limite che `e
imposto da un approccio puramente probabilistico, ovvero quello di non
avere certezza assoluta della traduzione semantica di un periodo come lo si
ha generalmente di una traduzione sintattica: il limite dell’approccio pro-
babilistico sta nel fatto che tutto ci`o che viene svolto a basso livello da
algoritmi probabilistici `e quello di sottostare a funzioni matematiche (che
vengono modellate all’interno di tecniche con PCFG) che descrivono il fun-
zionamento e le regole nella gestione di svariate mole di dati: le formule
matematiche non si possono occupare di significato.
Come riuscire a ingegnerizzare il concetto ambiguo di “significato“, e in-
terpretare semanticamente il linguaggio naturale? Questo task `e tuttora
irrisolto nel mondo dell’NLP e in generale nel mondo dell’IA; riuscire a
trovare un modo semplice e lineare di modellare questo problema per po-
ter arrivare a una disambiguazione assoluta del significato di un periodo
`e praticamente impossibile. Quello che possiamo fare `e sempre lo stesso
ragionamento: proviamo ad allargare i soggetti del nostro discorso. Se `e
praticamente impossibile modellare regole in grado di tradurre a pieno il si-
gnificato di singoli periodi, cerchiamo di utilizzare nel nostro discorso regole
associate a un intero corpus, sorpassando quegli algoritmi o codici relati-
vi a singoli periodi, word: nell’area dell’apprendimento semantico, ci sono
tantissimi usi di tecniche basate sul corpus: alcuni ricercatori hanno usato
tecniche empiriche per indirizzare un task complicato a un’interpretazione
semantica, cercando di sviluppare accurate regole in grado di dare la giusta
interpretazione semantica a un contesto, oppure abbiamo una metodologia
empirica nell’affrontare questo tipo di problematiche, producendo dei veri e
propri parser (come facevamo nell’approccio probabilistico). Ma la grande
novit`a dell’approccio semantico sta nel Word Sense Disambiguation(WSD),
tecnica che caratterizza quest’approccio il cui principale obiettivo `e quello
di identificare il corretto significato di una parola in un certo contesto[7]. Il
funzionamento riprende un p`o anche il discorso fatto nelle precedenti sot-
tosezioni per la fase di traduzione NLP: oltre alla parola in input (descritta
in linguaggio naturale), al “parser semantico“ viene data l’informazione di
quale “Part of Speech“ (parte del discorso) la parola fa parte (`e un nome? `e
un verbo? un aggettivo?); in output, avremo semplicemente che ogni occo-
renza di una generica word avr`a il proprio tag relativo al suo significato. In
poche parole, stiamo arrivando piano piano alla definizione di un processo
di analisi semantica che finalmente astrae da algoritmi o codici relativi a un
singolo periodo, a una singola word, ma che vanno a investire un intero cor-
CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO
SEMANTICO 25
pus: per`o `e da evidenziare che mentre nell’approccio probabilistico abbiamo
associato funzioni matematiche per poter effettuare questo passaggio e al-
largare il discorso, qui dobbiamo per forza definire attraverso nuovi modelli
un modo di affrontare il linguaggio in maniera pi`u precisa, e per forza di
cose pi`u complicata: `e qui che entrano in gioco tecniche “machine-learning“
, in grado di avvicinare l’elaboratore a un essere pensante e in grado di
apprendere automaticamente strategie per poter affrontare problematiche
sempre nuove. Il WSD rappresenta proprio la scatola nera semantica che
abbiamo definito nelle precedenti sottosezioni quando eravamo ancora in un
analisi comune ai due approcci: Supported Vectors, Tag, parti del discorso,
rappresentano elementi a cui il WSD deve fare riferimento per poter arri-
vare a utilizzare tecniche basate sul corpus, arrivando a definire un vero e
proprio “parser semantico“.
Anche se in realt`a il discorso fatto pu`o risultare abbastanza complica-
to, `e importante tenere presente che in una valutazione critica di questo
approccio dobbiamo avere in mente che il limite imposto da un approc-
cio probabilistico pu`o considerarsi quasi superato, ma che per andare a
realizzare tecniche implementative, sistemi software in grado di riuscire a
modellare il problema del WSD(e del semantic parsing), abbiamo un lavoro
molto oneroso da fare, a differenza di sistemi che rispecchiano un approccio
probabilistico, in grado di collegarsi comunque costantemente a formule e
quindi modelli lineari di traduzione. Come in ogni contesto, pu`o risultare
favorevole o meno l’utilizzo di un approccio o di un altro a seconda del fun-
zionamento o della tipologia di tecnologia che si vuole realizzare: definiti gli
obiettivi, e conoscendo entrambi gli approcci, possiamo criticamente decide-
re in quale contesto pu`o essere vantaggioso usare il filone probabilistico o il
filone semantico. Interiorizzati entrambi gli approcci che si sono sviluppati
negli anni relativamente al problema dell’interpretazione del linguaggio, e
studiati gli elementi cardine sul quale andare a modellare e implementare
sistemi, possiamo finalmente passare a studiare l’impatto di questi concetti
Figura 2.4: Un esempio di semantic parser presa da una query relativa a
un DB
26
CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO
SEMANTICO
nel contesto sociale moderno, dopo aver illustrato a titolo informativo un
esempio di sistema semantico-NLP.
2.3.2 BabelNet e BabelFly
In questa sottosezione vorrei illustrare a titolo informativo due sistemi ba-
sati sui concetti appena espressi, ovvero tecnologie che si occupano di ge-
stire sistemi in grado di interpretare semanticamente il linguaggio naturale.
Roberto Navigli, Professore dell’Universit`a della Sapienza di Roma, respon-
sabile del dipartimento di Linguistica Computazionale, gestisce da pi`u di
5 anni un progetto chiamato “multiJedi“, inerente proprio alla creazione
di risorse lessicali a larga scala e alla comprensione di testi in diverse lin-
gue. Nell’ambito di questo progetto, Navigli ha contribuito insieme ad altri
ricercatori a sviluppare varie tecnologie e sistemi software che andassero
proprio a riprendere le basi che abbiamo discusso prima inerenti a NLP, co-
me approccio semantico, comprensione del linguaggio, andando a costruire
tecnologie user-friendly in grado di gestire ad alto livello questi argomenti:
in particolare, citiamo BabelNet e BabelFly. BabelNet `e una rete semanti-
ca computazionale con copertura a larga scala, che riprende ingressi lessici
da WordNet, uno dei sistemi di computazione linguistica pi`u importanti
creato negli anni ’90, e ingressi enciclopedici da Wikipedia. BabelNet ha
una copertura a larga scala, copre 271 linguaggi diversi, e gestisce pi`u di
300M di relazioni semantiche: gestisce le entries (ingressi) che vengono da
WordNet e da Wikipedia, cercando di modellarle sottoforma di concetti e di
nomi-entit`a. Quello che rimane, ancora, `e un forte carattere di ambiguit`a,
legato all’ambiguit`a di queste entries (per l’ingresso “calcio“ intendiamo la
sostanza chimica, o lo sport?)
BabelFly `e un sistema che racchiude disambiguazione multilingua e col-
legamenti diretti alle entit`a: con la stessa interfaccia utente di BabelNet,
esso rappresenta la parte in grado di disambiguare le word in entrata sul-
la rete di BabelNet, con la possibilit`a di linkarsi direttamente all’entit`a di
Figura 2.5: UI di BabelNet
CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO
SEMANTICO 27
cui l’utente fa richiesta. Questo processo di disambiguazione ovviamente
procede per step, partendo da una signature semantica, per poi passare
al trovare ogni possibile significato della word(ambiguit`a), connessione dei
vari significati trovati, estrazione di un grafo logico, e infine selezionare i
significati pi`u inerenti. A livello di API, troviamo nel sito diverse tecnologie
con le quali costruire query in grado di interagire con il sistema BabelNet:
HTTP query, JAVA query, SPARQL query. Nella libreria inerente a Java,
ad esempio, vediamo che sono presenti tre classi principali:
• BabelNet: la classe principale, che rappresenta l’entry point sulle ri-
sorse BabelNet: questa classe `e implementata con il Singleton Pattern
• BabelSynset: classe che rappresenta un set di lessici multilingua che
hanno una caratteristica comune: ad esempio, potrei essere interessato
ad avere in mano tutti i termini che fanno parte di un certo discorso
• BabelSense: `e la classe che rappresenta la singola word presente nello
specifico BabelSynset
Con queste API gerarchiche, riusciamo a interfacciare (attraverso IDE
come Eclipse o NetBeans) sistemi software in grado di interagire con Ba-
belNet [1]. Inutile ribadire qui che con l’approccio a oggetti (Java, Sca-
la) abbiamo l’enorme possibilit`a di fare query riusabili, estendibili, e quin-
di rimanere sempre a un buon livello di astrazione dalla tecnologia basso
livello. Nell’ultima figura, visualizziamo un esempio d’uso in cui ritrovo
l’ID del wikidata(dato di wikipedia) per ogni BabelSense presente in un
BabelSynset.
Figura 2.6: Usage example
28
CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO
SEMANTICO
Capitolo 3
Sentiment Analysis e IA
Dopo una breve contestualizzazione dello scenario moderno rappresentato
da un’economia data-driven, andremo a definire in questo capitolo il ruo-
lo della Sentiment Analysis in relazione ai concetti di NLP e IA descritti
precedentemente, e le sue principali caratteristiche.
3.1 Economia data-driven e Big Data
Andiamo ora a descrivere in particolare lo scenario moderno su cui l’Intel-
ligenza Artificiale opera attraverso le sue caratteristiche, descrivendo anche
in maniera generale le tecnologie informatiche che ne fanno parte[4].
Nel contesto moderno informatico siamo dominati da un concetto di eco-
nomia data-driven, ovvero una nuova modalit`a di approccio verso la realt`a
attraverso la gestione di un flusso di dati in ingresso, che si presenta con una
mole sempre pi`u importante: i cosiddetti Big Data, che fanno riferimento a
data-set in quantit`a di volume enormi derivanti da fonti diverse (social me-
dia, mobile, web), che arrivano alle aziende con velocit`a a cui non sono mai
state abituate. Capiamo subito dunque che servono nuovi approcci all’ana-
lisi del concetto di dato: in questo scenario occorre analizzare il concetto di
“dato“ in maniera ingegneristica, soprattutto in relazione a ci`o che ci offre
la modernit`a, e solo dopo potremo descrivere in che maniera il fenomeno di
economia data-driven sia in grado di generare nuovi mestieri che riguardano
questo ambito, valutando il suo impatto profondo.
3.1.1 Ruolo dei dati e figura del Data Scientist
I dati e il software sono andati sempre di pari passo nella storia dell’infor-
matica: il dato rappresenta l’unit`a fondamentale con la quale un sistema
software pu`o interagire, prendendolo in ingresso e analizzandolo attraverso
meccanismi pi`u o meno ingegnerizzati. Nel momento in cui, intorno agli
anni ’90, abbiamo avuto l’esplosione del fenomeno Web, abbiamo iniziato a
capire quale fosse il fondamentale ruolo dei dati all’interno delle nostre ana-
lisi software, come ad esempio pagine web, pagine utenti, query su DB, con
30 CAPITOLO 3. SENTIMENT ANALYSIS E IA
l’esplosione di quel trend che venne chiamato “Web Analysing“, fornendo
una nuova figura nel mondo del lavoro. La rivoluzione tecnologica che domi-
na la societ`a moderna ha fatto s`ı che il progresso oggi fornisse nuovi scenari
con i quali andare a interfacciarsi: tecnologie e app mobili, tecnologie social
media, hanno dato quella spinta tecnologica in cui anche il concetto base di
“dato“ deve essere per forza ridefinito, riscrivendo di conseguenza il signi-
ficato di software, che deve adeguarsi a questo nuovo concetto. Il software
sta diventando sempre pi`u interdisciplinare nel nostro contesto: negli ulti-
mi anni, coadiuvato anche dalla grande ascesa dei social media (Facebook,
Linkedin, Twitter) e da una sempre pi`u informatizzazione a livello globa-
le, come abbiamo discusso nell’introduzione del nostro percorso, esso sta
decisamente invertendo la propria tendenza: da materia di nicchia, oggi il
Software `e diventato a tutti gli effetti una materia interdisciplinare. Bioin-
formatica (simulazione di calcolo su PC, esami in laboratorio), geografia(gps
e software di gestione spazi, Google Maps), sono soltanto due degli esempi
pi`u lampanti in cui ci rendiamo conto che al giorno d’oggi il software ha un
ruolo molto pi`u predominante di quello che gli associavamo fino a non molto
tempo fa. Possiamo senz’altro generalizzare e definire il software come uno
dei vettori che guidano l’analisi della societ`a che viviamo, perch´e esso stesso
la costruisce: device, ambienti, infrastrutture che popolano la realt`a, sono
i nuovi sistemi software che la caratterizzano. I dati sono le informazioni
che questi dispositivi scambiano con l’ambiente reale, e dunque riuscendo a
interpretare questi dati attraverso le tecnologie informatiche che conoscia-
mo, si pu`o dare senz’altro un’interpretazione della realt`a stessa: non stiamo
parlando solamente di Data Mining, ovvero dell’interpretazione dei dati che
ci arrivano dai dispositivi, ma addirittura di Reality Mining, ovvero inter-
pretazione della realt`a stessa. E’ in questo contesto che nasce la figura di
“Data Scientist“, che rappresenta un esperto del settore, che non solo `e in
grado attraverso competenze informatiche di dare un significato a questi da-
ti, ma che avendo anche competenze di Business Intelligence, riuscir`a a dare
un significato contestuale per aiutare aziende o imprese a sviluppare nuovi
meccanismi per primeggiare sul mercato: un mercato che non `e pi`u solo
fatto da umani, ma che vede come protagonisti soprattutto elaboratori, de-
vices, agenti razionali. E’ proprio questa la nuova frontiera dell’intelligenza
artificiale: i dati sono diventati l’interfaccia del mondo reale. Oltre alle con-
siderazioni fatte, bisogna anche capire che le tecnologie moderne modificano
in maniera definitiva i concetti di tempo e spazio. Nell’era moderna tutto
accade in tempo reale, e un gran flusso di informazioni viaggia online co-
stantemente: ma il tempo reale lato macchina `e un concetto profondamente
diverso dal tempo reale lato utente (concepito dagli esseri umani). Inoltre,
non esiste pi`u oramai la netta divisione “realt`a virtuale“ da “realt`a fisica“,
perch´e ci rendiamo sempre pi`u conto che i dispositivi e i vari dati che attra-
versano il mondo online al giorno d’oggi influenzano eccome la realt`a fisica
(dispositivi wearable, gps, tecnologie opinion mining..); per questo motivo,
possiamo tranquillamente affermare che il codice fa muovere la realt`a in
CAPITOLO 3. SENTIMENT ANALYSIS E IA 31
cui noi viviamo, con i suoi tempi e spazi, e ha il potere di modificare lo
spazio fisico in cui `e ambientato. Pensiamo ad esempio a una grossa catena
di vestiti che mi propone un’offerta nel momento in cui io sto transitando
proprio davanti al negozio; oppure, a tutti quei nuovi metodi di “analisi
predittiva“, che in base al controllo costante dei dati generati da un certo
cliente (ad esempio relativamente al mondo dell’utenza telefonica), siamo in
grado di capire attraverso alcuni suoi comportamenti se questo cliente ha in-
tenzione di disdire il proprio abbonamento telefonico oppure no, e in questo
modo riuscire ad anticipare una disdetta che a posteriori sarebbe molto pi`u
complicato gestire. Il mercato sta cambiando, ed `e essenziale capire che ci
saranno nuovi lavori legati a questi fenomeni, che quindi `e essenziale saper
analizzare: umani e algoritmi sono i nuovi protagonisti in simbiosi tra loro
del mercato. Un esempio particolare in cui `e possibile riscontrare questi
concetti `e il mondo dei Social Network e la loro moderna ascesa, definiti
come servizio di rete sociale che consente la gestione dei rapporti sociali,
facilitando la comunicazione e la condivisione di informazioni digitali.
E’ in questo contesto che vediamo proprio il binomio umani-agenti razionali
protagonisti di questi fenomeni, governati sempre da quei concetti IA che
abbiamo spiegato abbondantemente nel capitolo precedente: ed `e in questo
contesto che vediamo le possibilit`a migliori per il futuro.
3.1.2 Intelligenza semantica
Ma quali sono in concreto i nuovi scenari che questo fenomeno del data-
driven porta nella nostra societ`a? Oltre al discorso che riprenderemo nelle
vere e proprie conclusioni di questo trattato, inerente a una nuova ridefini-
zione del ruolo dell’ingegnere informatico all’interno delle aziende, ci basti
pensare che in questo nuovo contesto molte azioni e molte operazioni che
sono state sempre svolte con una certa naturalit`a da esseri umani, saranno
svolte in maniera funzionale da agenti razionali. Non sar`a pi`u necessario ad
esempio conoscere un posto o chiedere indicazioni per raggiungere una certa
localit`a, abbiamo i software di navigazione (es. Google Maps); oppure ad
esempio non ci sar`a pi`u bisogno di svolgere tradizionali e onerose ricerche di
mercato per valutare l’opinione dei consumatori su di un prodotto, avremo
tecnologie ad-hoc che svolgeranno questo compito. Tutto ci`o `e solamente
possibile grazie al nuovo ruolo dei dati nel contesto moderno: i dati sono una
valvola di traduzione della realt`a, e saperli gestire attraverso competenze in-
formatiche adeguate (infrastrutture, linguaggi di programmazione, sistemi
relazionali classici e non relazionali, e ovviamente conoscenze IA), fornisce
una potentissima capacit`a: la capacit`a di “interpretare“ la realt`a. Le azien-
de devono cambiare il loro modo di decidere in base a questi nuovi scenari:
per essere protagonisti nel mercato, occorre sempre pi`u abbandonare vecchi
preconcetti e passare invece a fare decisioni real-time, analisi predittiva e in-
tercettazione dei commenti, per migliorare sempre pi`u velocemente i propri
prodotti e avere un ruolo predominante nel nuovo mercato che si sta for-
32 CAPITOLO 3. SENTIMENT ANALYSIS E IA
mando, dominato dal binomio uomo-agente razionale. Ed `e proprio qui che
nasce il fenomeno principale del nostro discorso: la Sentiment Analysis (o
Opinion Mining), che rappresenta in poche parole l’attivit`a di identificazio-
ne, elaborazione e classificazione di informazioni legate ad un brand o ad un
argomento attraverso software di elaborazione del linguaggio e linguistica
computazionale allo scopo di determinare l’attitudine di chi ha pubblicato
e la polarit`a contestuale del contenuto (positiva, neutra, negativa): ecco
uno dei nuovi scenari che noi andremo a sviluppare pi`u dettagliamente nel
prossimo capitolo. Pi`u in generale, parliamo proprio di una “Intelligenza
Semantica“, ovvero della possibilit`a di tradurre i dati e dargli un significato
contestuale per facilitare il lavoro di promozione di un prodotto da parte
dell’aziende: ad esempio, se in un forum inerente “Impianti fotovoltaici“
riesco a captare le opinioni e le preferenze degli utenti rispetto all’argomen-
to(interesse al design, interesse ai consumi, interesse alle spese), io riesco a
capire che il cliente X `e pi`u interessato a una certa caratteristica rispetto
a un’altra, alla quale ad esempio `e interessato il cliente Y. In poche paro-
le, l’economia data-driven, oltre a generare un fenomeno molto grande che
ridefinisce il significato stesso di dato e software, produce all’interno delle
aziende nuovi tipi di lavoro legati a un nuovo mercato dominato da uomini
e agenti razionali, che generalmente si combinano nell’obiettivo di perse-
guire una certa Intelligenza Semantica: per rimanere dominanti in questo
nuovo mercato, le aziende hanno bisogno di investire in queste nuove figure.
Sentiment Analysis rappresenta proprio un’attivit`a legata all’intelligenza
semantica, che viene sviluppata soprattutto all’interno di Social Network e
forum, dove vediamo confluire molti utenti e quindi clienti.
3.2 Sentiment Analysis
Arrivati a questo punto, e dopo aver definito il contesto e l’ambiente a cui
facciamo riferimento, andiamo a dare una definizione rigorosa del fenomeno
Sentiment Analysis. Definiamo Sentiment Analysis (o Opinion Mining) la
tecnica che `e in grado di catturare la vantaggiosit`a di un insieme di docu-
menti tramite tecniche di NLP: questa tecnica fa una sorta di classificazione
a seconda della polarit`a di questi documenti, commenti, dati(positiva, ne-
gativa, neutra), riuscendo a interpretare, determinare come sta andando un
certo prodotto o un certo brand in relazione alle opinioni degli utenti. E’
naturale intendere che la Sentiment ha numerosissime applicazioni nel mon-
do soprattutto dei Social Network, dove abbiamo la possibilit`a di avere un
enorme flusso di utenti e dati sui prodotti; ma allo stesso momento la ritro-
viamo nel mondo dei blog, dei forum, insomma in relazione a tutto ci`o che `e
raggiungibile online (Big Data, Internet Of Things). La Sentiment Analysis,
se modellata bene, pu`o rappresentare un enorme strumento di vittoria nel
mercato di oggi, perch´e rappresenta una nuova frontiera nel mondo dell’e-
conomia data-driven, ma anch’essa avr`a i suoi punti di forza e i suoi punti
CAPITOLO 3. SENTIMENT ANALYSIS E IA 33
deboli, che sono in costante fase di sviluppo e studio: la Sentiment Analysis
`e ancora una tecnica in fase di cantiere, di sviluppo, come spiegheremo pi`u
avanti.
3.2.1 Caratteristiche e problematiche
La Sentiment Analysis `e caratterizzata da molti fattori, e alcuni di essi
rendono questa tecnica molto difficoltosa. Ad esempio, consideriamo la ca-
ratteristica principale della Sentiment Analysis: la possibilit`a di catturare
la polarit`a di un certo commento, che significa essere in grado di interpre-
tare la polarit`a di un periodo: come fare? Potremo dire ad un primo livello
di analisi che potrebbero esistere delle parole chiave nel linguaggio naturale
che determinano senz’altro un’evidente polarit`a, positiva ad esempio con gli
aggettivi “bello“, “meraviglioso“, “funzionale“, oppure negativa con “orri-
bile“, “brutto“, “disprezzo“. Dunque, potremo semplicemente dire che per
fare detecting di una certa polarit`a basta semplicemente fare riferimento
a una lista di parole chiavi, che sono legate a un trend positivo, negativo,
neutro, e controllare la loro presenza nel dato che vuol’essere interpreta-
to. In realt`a, anche se volessimo ridurre in maniera banale il problema
del detecting della polarit`a di un certo commento, facendo riferimento agli
studi condotti dal ricercatore Pang[2], uno dei massimi esponenti di questo
fenomeno, troviamo diversi problemi nel decidere di comune accordo qua-
li parole effettivamente rappresentino una polarit`a positiva e quali termini
rappresentino una polarit`a negativa. Nell’esempio proposto nella pagina
successiva, vediamo due uomini che propongono una lista di parole relative
a un corpus che rappresentano per loro delle polarit`a rispettivamente nega-
tive e positive, e mettiamo in confronto l’accuratezza (precisione) di questi
set con un set elaborato attraverso un’analisi statistica che abbiamo discus-
so nei capitoli precedenti da parte di un agente: notiamo che abbiamo una
precisione pi`u elevata (69 per cento), e inoltre vediamo che le parole che
fanno riferimento alle polarit`a sono diverse. Per questo ci rendiamo conto
che non basta solamente una semplice formulazione di una lista di parole che
fanno riferimento a sentimenti positivi, negativi, per risolvere questo task:
avremo senz’altro bisogno di modelli, e questi modelli dovranno prendere
in esame senz’altro un intero corpus di dati, e quindi capiamo l’importanza
di trasporre la Sentiment Analysis attraverso dei modelli il pi`u possibile
basati sul corpus. Ovviamente avremo anche altri problemi relativamente
alla Sentiment Analysis, basti pensare alla classificazione dei documenti, e
all’attribuzione di commenti a un utente specifico, determinando il com-
portamento di questo utente per prevedere ad esempio alcune sue mosse e
interessi(predictive analysing, o ad esempio gli algoritmi di Facebook, Twit-
ter, che analizzano le immagini postate dagli utenti, cercando di capire i loro
interessi etc.) In rete mostriamo veramente chi siamo attraverso i dati che
scambiamo attraverso i Social Media.
34 CAPITOLO 3. SENTIMENT ANALYSIS E IA
Figura 3.1: Esempio di Pang: elaborazione umani-agenti lista parole chiave
nel detecting di una polarit`a
3.2.2 Ruolo di IA e NLP nella Sentiment Analysis
Diventa fondamentale arrivati a questo punto, dopo aver capito lo scenario
moderno data-driven e aver inteso a fondo il senso e il significato della Sen-
timent Analysis, capire in quale modo alcune di quelle tecniche elencate nel
capitolo precedente relativamente ai problemi di NLP vengono riprese e mo-
dellate in questo scenario: vedremo poi, nell’ultimo capitolo, in che maniera
valutare Sentiment Analysis su Twitter attraverso gli approcci probabilisti-
ci e semantici, quali modelli vengono proposti e in che maniera possiamo
sfruttare elementi a nostro vantaggio, valutando criticamente questi modelli.
Uno dei primi problemi , oltre il detecting della polarit`a(associata ad un ap-
proccio statistico e alla frequenza relativa discussa in ambito NLP), `e quello
di riconoscere quale parte del commento rappresenta l’elemento soggettivo(e
quindi l’opinione diretta dell’utente) e quale l’elemento oggettivo: provia-
mo a fare riferimento quindi a tutti quei discorsi fatti sul Part Of Speech
(parte del discorso) in ambito NLP, per poter capire quale parte di periodo
rappresenta la parte soggettiva e quale la parte oggettiva dell’analisi. Que-
sto problema per niente banale ha visto molti ricercatori studiare alcune
possibilit`a: Hatzivassiloglou e Wiebe (2000) diedero una prima analisi al
fenomeno perseguendo l’obiettivo di giudicare se la parte di un commento
fosse soggettiva o no attraverso gli aggettivi che comparivano nel commen-
to; attraverso molti progetti, essi definirono il detecting della soggettivit`a di
un commento attraverso caratteristiche chiave , legate al detecting di questi
aggettivi. Ma nel caso in cui devo interpretare un commento neutrale, nel
quale dunque non riscontro questi aggettivi, come faccio a capire che effet-
tivamente `e un commento neutrale e quindi una parte soggettiva, invece che
una parte oggettiva? Cio`e, come faccio a distinguere un commento neutrale
da una parte oggettiva (quindi una parte che non riguarda un opinione), se
in entrambi i casi non ho aggettivi a cui fare riferimento? Ecco dove ripren-
CAPITOLO 3. SENTIMENT ANALYSIS E IA 35
diamo per filo e per segno il discorso svolto nel secondo capitolo: abbiamo
bisogno di allargare i soggetti del discorso; non possiamo generalizzare tutta
la problematica del detecting delle varie parti di un commento attraverso
il collegamento con singoli aggettivi, singole word, ma abbiamo il bisogno
di avere la possibilit`a di riconoscere parti intere di un discorso, tradurre
periodi, per poter effettivamente avere una precisione alta e un ambiguit`a
relativamente bassa. Ecco ancora una volta l’importanza di avere modelli
basati su un intero corpus, ed ecco l’importanza di avere approcci NLP in
grado di generalizzare e allargare il discorso: POS Tagging, Part of Speech,
sono tutte tecniche che non abbiamo descritto in maniera dettagliata, ma
di cui abbiamo capito il senso e il significato in relazione al loro sviluppo:
`e proprio in questo contesto che queste tecniche verranno utilizzate a basso
livello, andando a gestire le caratteristiche chiave della Sentiment. E’ im-
portante, a titolo di esempio, capire anche che l’interpretazione di periodi,
di parti del discorso, ci permettono di fare classificazione dei commenti, e
quindi ogni documento analizzato fa parte di una certa materia soggettiva:
in questo modo, algoritmi di ricerca sul mercato potranno lavorare con docu-
menti che fanno tutti parte di un certo argomento, facilitando di gran lunga
queste ricerche, velocizzando il lavoro di sviluppo all’interno dell’azienda, e
ridefinendo anche il ruolo del customer-care, che pu`o effettivamente runtime
capire valutazioni, critiche, problemi dei singoli utenti e andare a risolvere
questi problemi nella maniera pi`u efficiente possibile. La Sentiment Analy-
sis, la cui modellazione definitiva `e ancora in fase di cantiere, rappresenta
senz’altro uno degli spiragli futuri dell’Intelligenza Artificiale applicata nel
contesto dell’economia data-driven, che deve maturare in ambito aziendale.
36 CAPITOLO 3. SENTIMENT ANALYSIS E IA
Capitolo 4
Sentiment Analysis e Twitter
Andiamo in questo capitolo conclusivo a descrivere il fenomeno Sentiment
Analysis all’interno di Twitter, illustrando e valutando due diverse tipo-
logie di modelli proposti nell’affrontare questo tipo di tecnica, criticando
costruttivamente i pregi e i difetti di questi modelli.
4.1 Il ruolo della Sentiment Analysis in Twit-
ter
In questa prima sezione andiamo a ripercorrere brevemente la storia della
Sentiment Analysis in relazione allo sviluppo dei suoi modelli all’interno di
Twitter, dopo aver contestualizzato l’ascesa di questo Social Network nella
nostra societ`a. Questa analisi getter`a le basi ai due modelli che presenteremo
nelle successive sezioni di questo capitolo.
4.1.1 Contesto di Twitter e prospettive
Twitter `e un servizio gratuito di social networking e microblogging, creato
nel marzo 2006 dalla Obvius Corporation di San Francisco, ed `e ad oggi
una delle rete sociali pi`u usate di tutto il mondo. Principale antagonista
del colosso Facebook, `e utilizzata da milioni di utenti che ogni giorno la
usano per condividere e visualizzare le informazioni pi`u disparate: opinioni,
informazioni, commenti, e molto altro. Il social network `e strutturato in
maniera tale che `e caratterizzato dalla pubblicazione di brevi messaggi, de-
nominati “tweets“, che possono contenere opinioni, immagini, riferimenti e
link multimediali; `e possibile seguire un gruppo di utenti oppure venire se-
guiti, attraverso i gruppi sociali “Followers“ e “Following“, definiti per ogni
utente del servizio. Twitter nasce come servizio di comunicazione unilatera-
le, in cui un utente scrive e un altro legge, ma nel tempo ha stabilito anche
una sorta di “conversazione“: attraverso un apposito tag (@) `e possibile
menzionare un altro utente, e attraverso un altro tag(#) `e possibile creare
un topic, un argomento, un dibattito inerente a una qualsiasi tematica: il
38 CAPITOLO 4. SENTIMENT ANALYSIS E TWITTER
Figura 4.1: Simbolo di Twitter: `e in questo servizio che troviamo il territorio
migliore per fare Sentiment Analysis
concetto di hashtag all’interno di Twitter `e fondamentale per lo sviluppo
della Sentiment Analysis su questo servizio.
4.1.2 Sentiment Analysis in Twitter
Considerando gli enormi numeri di Twitter, come i pi`u di 200 milioni di
utenti iscritti, tra cui ovviamente anche svariate aziende e marchi noti, ol-
tre 500 milioni di tweets scambiati ogni giorno e poco meno di 6000 tweets
ogni secondo, `e facile intendere che c’`e un enorme potenziale informativo
in questa mole di dati: sicuramente sar`a molto difficile estrapolare, inter-
pretare questi dati, considerando la loro quantit`a. In relazione al concetto
espresso nel precedente capitolo, questi dati possono essere visti al giorno
d’oggi come la valvola che definisce la realt`a, e interpretare queste informa-
zioni significa interpretare la realt`a: in particolare, attraverso la Sentiment
Analysis, interpretiamo le opinioni degli utenti relative a un topic, forum,
argomento. Twitter e i Social Network in generale infatti sono ottimi am-
bienti per condurre indagini di vario tipo, proprio grazie alla semplicit`a del
loro funzionamento: l’utente pu`o in ogni momento scrivere ci`o che gli pas-
sa per la mente, e grazie alla condivisione tematica, in Twitter l’utente si
ritrova a interagire con parenti e/o colleghi, e inoltre pu`o esprimere opi-
nioni e valutazioni inerenti a un certo topic o a certi prodotti all’interno
del loro contesto, scambiando opinioni con altri utenti sui medesimi argo-
menti. Da queste opinioni personali possono uscire senz’altro informazioni
utili a determinare il grado di soddisfacimento dei clienti; la novit`a `e che
queste informazioni, se tradotte e interpretate con sistemi ad hoc, possono
essere maneggiate in maniera real-time, facilitando il lavoro di indagine e
velocizzando le decisioni dell’azienda sul mercato: pi`u veloci, pi`u completi,
pi`u profitti. Con precise API (che `e possibile scaricare online), `e possibile
CAPITOLO 4. SENTIMENT ANALYSIS E TWITTER 39
recuperare i Tweet, e dopodich`e, attraverso sistemi in grado di utilizzare e
implementare quelle tecniche di NLP di cui abbiamo parlato prima, siamo
effettivamente in grado di interpretare commenti e fare detecting delle opi-
nioni espresse dagli utenti. Ora che abbiamo interiorizzato il perch´e sia cos`ı
importante sviluppare tecniche di NLP in relazione a questo fenomeno di
Sentiment Analysis all’interno di Social Network come Twitter, facilitando
la supremazia e il controllo di un’azienda sul mercato, sviluppando analisi
predittiva e velocizzando tempi decisionali relativi alle opinioni degli utenti,
dobbiamo valutare criticamente in quale maniera ad alto livello approcciar-
ci a questo fenomeno: quali vantaggi mi pu`o dare un approccio semantico
a differenza di uno probabilistico, o viceversa? Quale potrebbe essere il
modello giusto per definire la Sentiment Analysis, che tuttora rimane una
tecnica che non viene definita attraverso un modello univoco, ma con svaria-
ti approcci? Il nucleo di queste valutazioni `e da trovare nelle prossime due
sezioni, in cui illustreremo le caratteristiche di due approcci di Sentiment
Analysis su Twitter, uno classico (analisi semantica), e uno invece relativo
a una ricerca svolta nel 2014, probabilistico e molto pi`u moderno.
4.2 Sentiment Analysis semantica in Twitter
L’approccio semantico che caratterizza attraverso alcuni modelli la Senti-
ment Analysis in Twitter parte da una certa direzione di ricerca: ci pre-
occupiamo di identificare, all’interno di Twitter (ma il discorso vale anche
per altri tipi di blog, forum, etc.), quali sono le peculiarit`a semantiche da
aggiungere a un modello di identificazione semantica, come ad esempio il
ruolo di hashtag, di ripetizioni di carattere, emoticon: ci preoccupiamo di
trovare un nuovo set di caratteristiche che derivino dalla rappresentazione
concettuale semantica delle entit`a che appaiono nei tweets. Queste caratte-
ristiche fanno riferimento ai concetti semantici che rappresentano le entit`a
estratte dai tweets. La ragione per la quale un approccio semantico di que-
sto tipo parte proprio da questa operazione sta nel fatto che certe entit`a e
concetti tendono ad avere una pi`u forte consistenza con sentimenti positivi
e negativi: conoscere queste relazioni ci aiutano senz’altro a determinare la
polarit`a e i sentimenti semantici relativi alle entit`a, alzando di gran lunga
la precisione e l’accuratezza dell’indagine. L’obiettivo principale che dob-
biamo sempre avere in testa infatti `e quello di ricercare la miglior precisione
e accuratezza nell’interpretazione di queste entit`a: conoscendo i loro legami
semantici, siamo di gran lunga avvantaggiati all’interno degli algoritmi di
NLP. Esistono diversi tool che sono in grado di estrapolare queste entit`a
e interpretare i dati in questo modo: AlchemyAPI, Zemanta e OpenCa-
lais. Nel lavoro proposto da Hassan, He [6], andiamo ad analizzare proprio
attraverso un eseprimento l’efficienza di questi tool e il miglioramento del-
l’accuratezza grazie ai modelli semantic-purpose che li caratterizzano, in
relazione a tre diversi data-set forniti in input:
40 CAPITOLO 4. SENTIMENT ANALYSIS E TWITTER
• Stanford Twitter Sentiment Corpus(STS): Dataset che `e formato da
60K tweets casuali, caratterizzati da emoticon, alcune negative e al-
cune positive;
• Health Care Reform (HCR): Dataset che `e formato da commenti
contenenti l’hashtag # HCR (riforma della salute), dove sono stati
eliminati commenti neutrali ma solamente raccolti trend positivi e
negativi
• Obama-McCain Debate (OMD): Dataset che `e formato da tutti quei
tweets inerenti allo scontro per le presidenziali USA tra Obama e
McCain: anche qui sono stati eliminati commenti neutrali o misti.
Dopo aver definito pi`u o meno le caratteristiche del nostro data-set che
abbiamo in ingresso, andiamo ora a definire la strada per applicare una
metodologia di approccio semantica al problema della traduzione di questi
dati (massimizzando la precisione e l’accuratezza dell’indagine Sentiment).
Come detto prima, i concetti semantici delle entit`a che vengono estrapo-
lati dai tweets possono essere usate per misurare la correlazione generale
tra gruppi di entit`a (ad es: l’insieme dei prodotti Apple), con una polarit`a
data; ma dobbiamo capire a questo livello, che l’analisi semantica non va
solamente a descrivere le entit`a visibili dal tweet in questione, ma si prefigge
di andare oltre, stabilendo tutte quelle connessioni semantiche che fan s`ı di
riuscire a costruire legami tra entit`a in grado di descrivere la polarit`a anche
di entit`a non ancora mai incontrate, ma che fanno parte di un certo gruppo
semantico. Esempio lampante: se della frase “Finally, I got my iPhone!“ ,
noi riusciamo a estrapolare semanticamente la parola iPhone, che da sola
non esprime essenzialmente una polarit`a, ma che sapendo che `e collegata
direttamente al gruppo “Prodotti Apple“, e che questi prodotti sono stati
classificati in generale ricchi di polarit`a positive (su algoritmi e stime pro-
babilistiche), allora viene associato generalmente il termine iPhone a un
trend positivo: ecco il cuore dell’analisi semantica e del modello proposto
in questo documento, dove abbiamo la ricerca di caratteristiche semantiche
in grado di approcciarsi con la Sentiment Analysis.
Quindi, oltre ad avere i data-set in ingresso nello spazio originale di in-
put, nell’analisi semantica abbiamo bisogno di un informazione aggiuntiva
che riguarda le relazioni contestuali semantiche delle entit`a: come le inse-
riamo nella nostra analisi? Facciamo riferimento a due metodi, aumento e
interpolazione. Con il metodo dell’aumento, noi andiamo a inserire nello
spazio input tutti quei concetti e tutte quelle caratteristiche semantiche,
aumentando di gran lunga la grandezza del vocabolario e del corpus in ge-
nerale: anche se ci`o, come accennato prima, pu`o essere un fattore positivo
(pi`u termini nel corpus, pi`u machine learning), in relazione alla Sentiment
Analysis ci rendiamo conto che la precisione pu`o diminuire di gran lunga,
e aver utilizzato approccio semantico non ci `e servito quasi a nulla. Per
questo viene molto meglio utilizzare il metodo dell’interpolazione; non an-
CAPITOLO 4. SENTIMENT ANALYSIS E TWITTER 41
Figura 4.2: Schema del cuore dell’analisi semantica di un tweet
diamo direttamente ad aggiungere tutti quei concetti semantici all’inizio
della nostra analisi (in input), ma andiamo a definire attraverso una formu-
la precisa la regola sotto la quale devono essere trovati e modellati questi
concetti (runtime), che riguardano concetti semantici, sequenze di Part Of
Speech, argomenti di sentiment; le API che dovranno implementare questo
approccio dovranno essere molto elaborate, ma almeno in questo modo non
perdiamo nulla in quanto precisione e accuratezza dell’analisi. In partico-
lare, riprendendo i data-set illustrati precedentemente, applicando questi
due metodi e anche un terzo, il replacement, che consiste semplicemente nel
rimpiazzare l’entit`a di un tweet con il suo valore semantico, riscontriamo
ci`o che viene illustrato nella tabella in figura.
Interpretando questo schema, possiamo fare valutazioni critiche di vario
tipo: concludiamo in generale che `e bene investire in un’analisi semantica
quando l’azienda o un marchio vuole interpretare, con una precisione alta
(magari facendo dipendere dei costi di manutenzione, sviluppo, in relazione
Figura 4.3: Schema tabella data-set
42 CAPITOLO 4. SENTIMENT ANALYSIS E TWITTER
a questi dati), anche un numero minore di tweet; ma ci rendiamo conto che
il limite grosso sar`a implementare sistemi in grado di gestire, oltre la mole
di dati provenienti dalla realt`a, anche tutte quelle connessioni semantiche di
cui dobbiamo tenere traccia nel processo di interpretazione delle opinioni.
4.3 Sentiment Analysis probabilistica in Twit-
ter: modello basato sul corpus
A questo punto, dopo aver mostrato rapidamente un modello di approc-
cio semantico alla Sentiment Analysis su Twitter, cercando di dare le basi
per effetture analisi critiche inerentemente a quest’approccio, andiamo a
valutare una metodologia duale, riprendendo anche concetti descritti gi`a
nel secondo capitolo dell’elaborato: approccio statistico-probabilistico. Va-
lutiamo un modello che investe questo approccio proponendo un modello
portato avanti da ricercatori e ingegneri italiani(Vanzo,Croce, Basili) [12],
che cercano di allargare il discorso e definire un modello basato sul corpus,
e non sul singolo dato,tweet. Molti degli articoli scientifici, tecnici, inerenti
alla Sentiment Analysis (periodo 2012-2015), sono stati molto incentrati sul-
l’idea che il sentimento degli utenti fosse una funzione di un singolo tweet.
Sulla questione di ridurre il sentimento a una funzione possiamo essere pi`u o
meno d’accordo, ricordando che l’approccio probabilistico prevede proprio
l’utilizzo di funzioni per descrivere frequenze relative, per trovare stati e
eventi ed essere in grado di dare un’interpretazione ai dati del linguaggio
naturale. Ma capiamo che ci possono essere molti svantaggi a ridurci all’a-
nalisi di un solo tweet: questo perch´e in realt`a il tweet, che pu`o essere stato
filtrato ovviamente da algoritmi ad hoc, `e un elemento di un contesto pi`u
ampio, uno scenario di cui fa parte (ad esempio di un topic comune); perch´e
gettare via l’informazione del contesto che comunque siamo sempre in grado
di reperire, pensando che non ci serva a niente? Con questo modello capia-
mo l’importanza di riuscire ad associare modelli non a singoli tweet, ma ad
interi contesti di cui i tweet fanno parte: quello che viene cercato di fare `e di
delegare il problema del riconoscimento e dell’interpretazione della polarit`a
attraverso una classificazione che sta sopra un flusso di tweets. In quale
modo riusciamo a fare questo, e soprattutto perch´e capiamo che utilizzare
un approccio probabilistico su un singolo tweet sia poco preciso? (Obietti-
vo fisso: accuratezza e precisione). Capiamo con un semplice esempio che
l’interpretazione della polarit`a di un tweet pu`o essere molto ambigua, se
non viene messa in relazione al contesto, allo scenario da dove viene fuori.
Valutiamo il tweet “Sono d’accordo con te riguardo le sostituzioni“, ine-
rentemente al topic inerente una partita di calcio specifica (linkata con il
simbolo dell’hashtag #): con un’analisi sommaria, potremo quasi associare
una polarit`a positiva a questo commento; ma, ricostruendo lo scenario e
il contesto( qualche tweets precedente), capiamo che magari questo tweet
`e di risposta a un tweet negativo (in disaccordo con le sostituzioni): ecco
CAPITOLO 4. SENTIMENT ANALYSIS E TWITTER 43
l’impossibilit`a di delegare un approccio statistico a un singolo tweet. Per
riuscire a svincolarci da questo problema, cerchiamo di porci un duplice
obiettivo: per prima cosa, arricchiamo la rappresentazione contestuale di
un tweet recuperando anche l’informazione dello scenario, argomento, di
cui fa parte, e come seconda cosa introdurre una nuova classificazione pi`u
complessa che lavora su un’intera sequenza di tweet(e non un singolo dato).
Per fare questa classificazione complessa abbiamo un solo metodo: ridefini-
re il ruolo di un vettore di interpretazione, che inizialmente era in grado di
collegare una singola entit`a, tweet, ad un topic, ma che in questo contesto
rivaluta le sue caratteristiche; il vettore `e unico ma sviluppa la rappresen-
tazione delle entit`a in modo autonomo. Senza andare tanto in profondit`a
a questo argomento, diciamo semplicemente che sfruttando la ridefinizione
del SVM e l’allargamento del modello a investire tutto il contesto risulta la
potenza moderna di questa tecnica, che trova nell’approccio probabilistico
uno strumento magari non precisissimo, ma di cui gli studi stanno arrivan-
do proprio a una precisione elevata, uno strumento sicuramente affidabile
e di cui la traduzione `e poco onerosa a livello computazionale, tecnologico.
Per concludere, in questo secondo scenario, ridefiniamo il vettore SVM che
contiene diverse rappresentazioni di entit`a: in questo modo, ricostruiamo
dal singolo tweet un contesto intero, attraverso ovviamente strumenti e for-
mule basso livello, che vengono implementati da tecniche gi`a analizzate nel
capitolo secondo; a livello di precisione non siamo al massimo, ma siamo in
grado abbastanza velocemente di gestire tutti i dati provenienti dalla realt`a.
44 CAPITOLO 4. SENTIMENT ANALYSIS E TWITTER
Conclusioni
Durante il percorso trattato all’interno di questo documento, il mio obiettivo
`e stato quello di mostrare i collegamenti che uniscono due mondi (intelligen-
za artificiale e economia data-driven), che in apparenza crescono e maturano
singolarmente, ma che a un certo punto vengono uniti per l’ascesa di nuove,
fondamentali tecniche analitiche, come la Sentiment Analysis. Nell’ultimo
capitolo capiamo l’importanza di definire modelli per questa tecnica: siamo
in una realt`a nuova, dominata da dati che costituiscono la realt`a stessa, e
interpretare questi dati significa interpretare l’intero contesto sociale moder-
no: per questo motivo `e fondamentale dare una concretizzazione e sfruttare
i vantaggi di una tecnica come la Sentiment Analysis, che si prefigge l’am-
bizioso obiettivo di andare a ridefinire l’intero mondo del customer-care.
Abbiamo valutato che approccio semantico e approccio statistico, che sono
le basi di traduzione del linguaggio naturale in generale, applicati in questo
contesto risentono degli stessi effetti che subiscono in un contesto non data-
driven, e quindi possiamo valutare attraverso i punti forti e i punti deboli
la riuscita o meno di questi approcci. In generale, essendo la Sentiment
Analysis ancora in fase di cantiere come tecnica, non esiste l’approccio o
il modello migliore di altri: semplicemente, possiamo fare delle valutazioni
e accettare alcuni limiti a differenza di altri, utilizzando un contesto se-
mantico o probabilistico, limiti che sapevamo gi`a esistere a livello teorico
di traduzione del linguaggio. Noi non cambiamo nulla della teoria riguar-
dante le tecniche di NLP (secondo capitolo del trattato): semplicemente
prendiamo tutto il blocco NLP, definito prima come mediatore in un piano
orizzontale all’interno del primo capitolo, e definito poi verticalmente nel
secondo capitolo attraverso tutti i suoi piani di astrazione, e lo inseriamo
in questo contesto data-driven, dopo aver definito nel terzo capitolo cosa
implica una concezione dell’economia e del contesto sociale dominata dai
dati e dal software. Il quarto capitolo `e il cuore di questa analisi, e vedia-
mo che mettendo il blocco NLP in un contesto nuovo, moderno, dinamico,
andiamo a descrivere nuove tecniche, e soprattutto legandoci alle nuove in-
frastrutture informatiche, come i Social Network, andiamo a ridefinire il
mercato intero, legandoci alle opinioni degli utenti e gestendo una nuova
tecnica che ridefinisce questo ambito. Dobbiamo trovare ancora il modello
migliore per descrivere questa nuova tecnica in Twitter: ma, in generale,
abbiamo capito che (soprattutto nell’approccio probabilistico), conviene le-
garci a un intero contesto, a un intero scenario, e non al singolo tweet, per
46 CAPITOLO 4. SENTIMENT ANALYSIS E TWITTER
andare a descrivere quelle caratteristiche semantiche che facilitano l’ascesa
della precisione e dell’accuratezza di un analisi di opinioni. Infine, questo
trattato fornisce un ampio respiro verso il futuro e verso una ridefinizione
del ruolo dell’Ingegnere Informatico all’interno dell’azienda, con la nascita
di fondamentali nuovi mestieri: il Software non `e pi`u argomento di nicchia e
delegato in uno spazio virtuale, esso esce dai computer ed entra nel mondo
reale (attraverso devices), non andiamo pi`u quindi a mettere il reale nel
virtuale (come nei primi siti web anni ’90), ma facciamo l’esatto contrario,
andando a popolare il mondo reale di software. Una volta gli esperti del
settore siti-web erano i Web Analytics, ma ora che il software entra dentro
la realt`a e viviamo nuove tecnologie, avremo App Analytics per esempio,
esperti di social business e social intelligence (basti pensare al mining delle
immagini caricate sui Social Media usato per fini pubblicitari), predictive
analytics (in grado di monitorare il comportamento di un cliente e anti-
cipare le sue mosse), e infine data-scientist(esperti dell’interpretazione dei
dati che compongono la realt`a). Tutte queste professioni stanno maturan-
do grazie all’inserimento del Software all’interno della realt`a: ridefiniamo il
ruolo dell’Ingegnere Informatico all’interno dell’azienda proprio perch´e, se
l’azienda vuole primeggiare sul mercato, e il mercato `e popolato da dati e
codice, allora significa che l’azienda deve essere in grado di interpretare que-
sto codice, che non `e pi`u fine a s`e stesso, ma diventa il territorio per fare pi`u
in generale Business Analysis. Grazie all’abilit`a di utilizzare pi`u linguaggi
di programmazione, unita all’abilit`a di gestire database, e rimanendo nel
nostro caso grazie all’importanza della conoscenza di tecnologie IA, l’Inge-
gnere Informatico `e l’unica figura aziendale in grado di saper interpretare
questi dati, e quindi la realt`a. Essere in grado di cambiare velocemente
strategie e adattarsi a nuovi scenari tecnologici sar`a l’arma vincente per
ogni azienda sul mercato moderno. Per essere padroni sul mercato, occorre
essere padroni sulla realt`a; per essere padroni sulla realt`a, occorre essere
padroni sui dati; per essere padroni sui dati, occorre essere padroni delle
tecnologie informatiche.
Ringraziamenti
Vorrei spendere due parole per ringraziare tutte le persone che mi hanno
sostenuto in questo percorso molto impegnativo ma estremamente gratifi-
cante e che non mi hanno mai fatto mancare il proprio appoggio.
In particolare, dedico questa tesi a tutta la mia famiglia e parenti, a mia
mamma Cinzia, mio babbo Franco e mio fratello Andrea, che amo con tutto
me stesso e da cui ho ricevuto un costante sostegno in questo difficoltoso
ma soddisfacente percorso universitario, con un fortissimo sostegno morale
ed economico per tutta questa fase di studio.
Ringrazio di cuore la mia fidanzata Giulia, che arricchisce le mie giorna-
te, che mi `e stata vicino sempre e soprattutto in questo ultimo periodo di
studio-lavoro, non facendomi mai mancare il suo enorme affetto.
Ringrazio tutti i miei amici, i pi`u intimi e meno, sia i compagni di corso
universitario che mi hanno fatto compagnia in questi anni, facendomi ma-
turare come ragazzo prima e come studente poi, e ovviamente tutti i miei
amici di Pesaro, che sono il sale della mia vita.
Ringrazio infine il mio relatore Andrea Roli e il mio correlatore Federico
Chesani, che mi hanno aiutato a sviluppare bene questo trattato e han-
no sempre mostrato enorme disponibilit`a, e che insieme ad altri docenti
di Cesena mi hanno saputo far appassionare ad argomenti entusiasmanti
e veramente interessanti, offrendomi anche la possibilit`a di poter cercare
autonomamente la mia strada per il futuro, verso un ricco e nuovo scenario
lavorativo.
Con la speranza di proseguire il mio percorso di studi con la scuola Magi-
strale, mando un abbraccio a tutti coloro che mi vogliono bene.
GRAZIE!
Giovanni Ciandrini
48 CAPITOLO 4. SENTIMENT ANALYSIS E TWITTER
Bibliografia
[1] JAVA API ON BABELNET: http://babelnet.org.
[2] Pang B. and Lee L. Opinion mining and sentiment analysis. 2008.
[3] G. Berruto. Corso Elementare di Linguistica Generale. Utet Universit`a,
2006.
[4] Accoto C. Reality mining: dai big data alla social intelligence, le
nuove professioni della data-driven economy. 07/05/2015. Universit`a
di Ingegneria e Scienze Informatiche, Cesena.
[5] Fiore E. Aspetti e problematiche del parser del linguaggio naturale,
2000. http://www.di.unipi.it/cappelli/seminari/fiore1.pdf.
[6] Hassan and He. Semantic sentiment analysis of twitter. 11-15/11/2012.
The 11th International Semantic Web Conference (ISWC 2012),
Boston, USA.
[7] Zelle J. and Tou Ng H. Corpus-based approaches to semantic interpre-
tation in natural language processing. AI Magazine Volume 18 Number
4 (AAAI), 1997.
[8] Karen Sparck Jones. Natural language processing: A historical review.
2001.
[9] Schutze H. Manning D.C. Foundations of Statistical Natural Language
Processing. The MIT press, 1999.
[10] Navigli R. Natural language processing: Introduction. 27/04/2015.
Universit`a di Bologna.
[11] S. Russell and P. Norvig. Artificial Intelligence: A Modern Approach.
Prentice Hall, 3rd edition, 2009.
[12] Croce D. Vanzo A. and Basili R. A context-based model for sentiment
analysis in twitter. 2014. Dipartimento di Enterprise Engineering,
Universit`a di Tor Vergata, Roma.

More Related Content

PPTX
I linguaggi di programmazione 3BS
PDF
L'apporto dei cat tools nella didattica
PDF
La grammatica della user experience
PDF
I promessi sposi 3.0 Mobile User Experience & Usability nel settore dei beni...
PDF
Predisposizione di un dataset per applicazioni di natural language generation...
PDF
Presentazione blog la lente di kant finito
PDF
Soothsayer multisource system for text prediction
PDF
AMMASSO REGOLATO - STRATEGIE DI COMMUNITY DETECTION
I linguaggi di programmazione 3BS
L'apporto dei cat tools nella didattica
La grammatica della user experience
I promessi sposi 3.0 Mobile User Experience & Usability nel settore dei beni...
Predisposizione di un dataset per applicazioni di natural language generation...
Presentazione blog la lente di kant finito
Soothsayer multisource system for text prediction
AMMASSO REGOLATO - STRATEGIE DI COMMUNITY DETECTION

Similar to Natural Language Processing (20)

ODP
Esercizio 3 impress presentazione
PDF
Intelligenza Artificiale (Marco Somalvico, Francesco Amigoni, Viola Schiaffon...
PPT
Lezione 1 Introduzione Al Corso di Tecnologie della Comunicazione applicate...
ODP
Società digitale: quale Tecnologia
PDF
Progettazione di strumenti di comunicazione sostenibili per l'educazione: il ...
PDF
Intelligenza Artificiale e Chatbot: Limiti Attuali e Sviluppi Futuri
PPTX
Introduzione al coding
PPTX
201203021 comphumanities 2012
PDF
Progetto Euridice
PPT
complexity education by valerio eletti (1/4)
DOCX
Didattica PER il coding. Didattica, pensiero computazionale, corporeità
PDF
Gli Androidi dipingeranno quadri elettronici? - Libro di Andrea Bonavoglia
DOC
Didattica e tecnologie: intersezioni. Complessità, coding, robotica educativa
PPT
IC2009 Introduzione all'ingegneria della conoscenza
PPT
IC2008 Introduzione all'Ingegneria Della Conoscenza
PPT
26 01-08 psicologia dello sviluppo
PPT
26 01-08 psicologia dello sviluppo
PDF
Abracadabr@ ! paro!e chiave x accedere a! digita!e
DOCX
Informatica
PPT
Capitolo 9 - Applicare la psicologia dei nuovi media
Esercizio 3 impress presentazione
Intelligenza Artificiale (Marco Somalvico, Francesco Amigoni, Viola Schiaffon...
Lezione 1 Introduzione Al Corso di Tecnologie della Comunicazione applicate...
Società digitale: quale Tecnologia
Progettazione di strumenti di comunicazione sostenibili per l'educazione: il ...
Intelligenza Artificiale e Chatbot: Limiti Attuali e Sviluppi Futuri
Introduzione al coding
201203021 comphumanities 2012
Progetto Euridice
complexity education by valerio eletti (1/4)
Didattica PER il coding. Didattica, pensiero computazionale, corporeità
Gli Androidi dipingeranno quadri elettronici? - Libro di Andrea Bonavoglia
Didattica e tecnologie: intersezioni. Complessità, coding, robotica educativa
IC2009 Introduzione all'ingegneria della conoscenza
IC2008 Introduzione all'Ingegneria Della Conoscenza
26 01-08 psicologia dello sviluppo
26 01-08 psicologia dello sviluppo
Abracadabr@ ! paro!e chiave x accedere a! digita!e
Informatica
Capitolo 9 - Applicare la psicologia dei nuovi media
Ad

Natural Language Processing

  • 1. ALMA MATER STUDIORUM UNIVERSIT `A DI BOLOGNA CAMPUS DI CESENA SCUOLA DI INGEGNERIA E ARCHITETTURA Corso di Laurea in Ingegneria Elettronica, Informatica e Telecomunicazioni- ambito Informatica ELABORAZIONE DEL LINGUAGGIO NATURALE NELL’ IA E TECNOLOGIE MODERNE: SENTIMENT ANALYSIS COME CASO DI STUDIO Elaborata nel corso di: Fondamenti di Informatica B Tesi di Laurea di: GIOVANNI CIANDRINI Relatore: Prof. ANDREA ROLI Co-relatori: Prof. FEDERICO CHESANI ANNO ACCADEMICO 2014-2015 SESSIONE I
  • 3. PAROLE CHIAVE Intelligenza Artificiale NLP Sentiment Analysis Approccio semantico Approccio statistico
  • 5. A tutte le persone pi`u importanti della mia vita che mi hanno sostenuto sempre
  • 7. Indice Introduzione ix 1 Natural Language Processing in IA 1 1.1 Il mondo IA . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.1 Intelligenza Artificiale e test di Turing . . . . . . . . 1 1.2 Primi approcci a NLP . . . . . . . . . . . . . . . . . . . . . 4 1.2.1 Brevi cenni storici . . . . . . . . . . . . . . . . . . . . 5 1.2.2 Linguistica Computazionale e IA: definizione di NLP 8 1.3 Stato dell’arte moderno di NLP . . . . . . . . . . . . . . . . 10 2 Approccio statistico e approccio semantico 13 2.1 Concetti chiave e modelli generali per NLP . . . . . . . . . . 13 2.1.1 Valutazione delle problematiche di NLP . . . . . . . 13 2.1.2 Analisi Morfologica e parsing sintattico . . . . . . . . 15 2.1.3 Modelli di linguaggio, probabilit`a e CFG . . . . . . . 17 2.2 Approccio probabilistico e PCFG . . . . . . . . . . . . . . . 20 2.2.1 Information Retrieval, Estrazione dell’informazione e traduzione automatica . . . . . . . . . . . . . . . . . 22 2.3 Approccio semantico . . . . . . . . . . . . . . . . . . . . . . 23 2.3.1 Valutazioni e critiche dell’approccio: WSD . . . . . . 23 2.3.2 BabelNet e BabelFly . . . . . . . . . . . . . . . . . . 26 3 Sentiment Analysis e IA 29 3.1 Economia data-driven e Big Data . . . . . . . . . . . . . . . 29 3.1.1 Ruolo dei dati e figura del Data Scientist . . . . . . . 29 3.1.2 Intelligenza semantica . . . . . . . . . . . . . . . . . 31 3.2 Sentiment Analysis . . . . . . . . . . . . . . . . . . . . . . . 32 3.2.1 Caratteristiche e problematiche . . . . . . . . . . . . 33 3.2.2 Ruolo di IA e NLP nella Sentiment Analysis . . . . . 34 4 Sentiment Analysis e Twitter 37 4.1 Il ruolo della Sentiment Analysis in Twitter . . . . . . . . . 37 4.1.1 Contesto di Twitter e prospettive . . . . . . . . . . . 37 4.1.2 Sentiment Analysis in Twitter . . . . . . . . . . . . . 38 4.2 Sentiment Analysis semantica in Twitter . . . . . . . . . . . 39
  • 8. 4.3 Sentiment Analysis probabilistica in Twitter: modello basato sul corpus . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
  • 9. Introduzione L’informatica e le sue tecnologie nella societ`a moderna si riassumono spesso in un assioma fuorviante: essa, infatti, `e comunemente legata al concetto che ci`o che le tecnologie ci offrono pu`o essere accessibile da tutti e sfruttato, all’interno della propria quotidianit`a, in modi pi`u o meno semplici. Anche se quello appena descritto `e un obiettivo fondamentale del mondo high-tech, occorre chiarire subito una questione: l’ informatica non `e sem- plicemente tutto ci`o che le tecnologie ci offrono, perch`e questo pensiero som- mario fa presagire ad un’informatica “generalizzante“; l’ informatica invece si divide tra molteplici ambiti, toccando diversi mondi inter-disciplinari, e non possiamo affrontare un percorso che riguarda una sua tecnologia se non teniamo conto di questa ipotesi fondante. L’importanza di queste tecnologie nella societ`a moderna deve spingerci a porre domande, riflessioni sul perch`e l’informatica, in tutte le sue sfaccettature, negli ultimi decenni, ha portato una vera e propria rivoluzione nelle nostre vite, nelle nostre abitudini, e non di meno importanza, nel nostro contesto lavorativo e aziendale, e non ha alcuna intenzione (per fortuna) di fermare le proprie possibilit`a di svilup- po. Occorre essere sempre stimolati all’idea che capire questi meccanismi `e fondamentale per essere protagonisti nella nostra societ`a , e che anche se non si `e esperti o amanti di certe tematiche, non `e un impresa impossibile, se vengono seguiti dei modelli precisi e una metodologia ordinata di analisi. Per introdurre a un trattato scientifico che riguarda un ambito specifico inerente al mondo informatico occorre senz’altro capire come nel tempo si `e sviluppato questo ambito all’interno del proprio contesto, per poter com- prendere le basi che lo caratterizzano, ma `e di vitale importanza a un certo punto distaccarsi dal passato e guardare al presente e al futuro, approccian- doci con occhio critico e con un buon bagaglio di conoscenze preliminari alle tecnologie specifiche che ci offre la modernit`a inerenti a quell’ambito. In questo trattato ci occuperemo di definire una particolare tecnica moder- na relativa a una parte di quel mondo complesso che viene definito come Intelligenza Artificiale. L’intelligenza Artificiale(IA) `e una scienza che si `e sviluppata proprio con il progresso tecnologico e dei suoi potenti strumenti, che non sono solo informatici, ma soprattutto teorico- matematici (probabi- listici) e anche inerenti l’ambito Elettronico-TLC (basti pensare alla Roboti- ca): ecco l’interdisciplinarit`a. Il lettore che si approccia per la prima volta a livello tecnico al concetto di Intelligenza Artificiale e che magari non ha una definizione chiara del concetto, deve affrontare questo percorso liberandosi
  • 10. da tutti i pregiudizi, con il solo pensiero che l’IA rappresenta a tutti gli effet- ti una vera Scienza, cercando di cogliere nel primo capitolo del documento i concetti fondamentali per crearsi un idea organica in testa. Concetto che `e fondamentale per poi affrontare il nocciolo del percorso presentato nel se- condo capitolo del documento proposto: i due approcci possibili, semantico e probabilistico, verso l’elaborazione del linguaggio naturale(NLP), branca fondamentale di IA. Per quanto dar`o un buono spazio nella tesi a come le tecniche di NLP semantiche e statistiche si siano sviluppate nel tempo, verr`a prestata attenzione soprattutto ai concetti fondamentali di questi am- biti , perch´e, come gi`a detto sopra, anche se `e fondamentale farsi delle basi e conoscere l’evoluzione di queste tecnologie nel tempo, l’obiettivo `e quello a un certo punto di staccarsi e studiare il livello tecnologico moderno ine- renti a questo mondo, con uno sguardo anche al domani: in questo caso, la Sentiment Analysis(capitolo 3). Sentiment Analysis (SA) `e una tecnica di NLP che si sta definendo proprio ai giorni nostri, tecnica che si `e svilup- pata soprattutto in relazione all’esplosione del fenomeno Social Network, che viviamo e tocchiamo costantemente. L’approfondimento centrale della tesi verter`a sulla presentazione di alcuni esempi moderni e modelli di SA che riguardano entrambi gli approcci(statistico e semantico), con particolare attenzione (nel quarto capitolo) a modelli di SA che sono stati proposti per Twitter in questi ultimi anni, valutando quali sono gli scenari che propone questa tecnica moderna, e a quali conseguenze contestuali (e non) potrebbe portare questa particolare tecnica. L’obiettivo principale, dunque, `e cercare di accompagnare il lettore attraverso argomenti che tecnicamente possono sembrare abbastanza complicati, e che a volte prevedono l’uso di termi- ni molto sofisticati, ma che sono essenziali per poter comprendere a pieno l’importanza di questa tecnica e delle sue ripercussioni su diversi ambiti, mettendo in evidenza sempre i modelli e i concetti fondamentali con una metodologia ordinata di analisi, cercando infine di invogliarlo ad applicare questa metodologia di ragionamento e questo tipo di approccio anche ad ambiti scientifici diversi da quello preso in esame in questo elaborato.
  • 11. Capitolo 1 Natural Language Processing in IA Illustriamo in questo capitolo un’idea organica di NLP all’interno del mondo “Intelligenza Artificiale”, tenendo presente del contesto in cui questa tecnica si `e sviluppata. 1.1 Il mondo IA In questo capitolo partiremo definendo in maniera organica l’Intelligenza Artificiale, di cui NLP ne rappresenta una particolare branca, definizione che non pu`o non tenere conto del background culturale e del contesto in cui essa si `e sviluppata (pensiamo allo sviluppo e alla crescita delle conoscenze tecnologiche negli anni ’70,’80); solo dopo aver definito e contestualizzato il mondo IA potremo avvicinarci a NLP, riassumendo in breve la sua storia, e presentando i concetti base e le tecnologie che riguardano l’elaborazione del linguaggio naturale, in particolare i diversi approcci che vengono utilizzati per definirle. In questo modo, in accordo con il nostro obiettivo, potremo avvicinarci con questo bagaglio di conoscenze ad affrontare le tecnologie moderne che riguardano questo ambito, dando una valutazione critica e organica del loro impatto nella societ`a odierna. 1.1.1 Intelligenza Artificiale e test di Turing Occorre subito specificare che il concetto IA non ha una definizione pre- cisa, bens`ı molteplici definizioni che dipendono da quale approccio viene utilizzato per andare a descrivere questo concetto, approcci che erano senza distinzioni nei primi anni ’70,’80, quando IA nasceva effettivamente : l’ap- proccio umano, incentrato ai processi di pensiero e ragionamento, testando la somiglianza dell’elaboratore a un essere umano, e l’approccio razionale, incentrato sul comportamento e sulla razionalit`a, testando invece la razio- nalit`a dell’elaboratore. E’ proprio negli anni ’80-’90, con lo sviluppo degli strumenti a nostra disposizione, che arriviamo da Ingegneri a intraprendere
  • 12. 2 CAPITOLO 1. NATURAL LANGUAGE PROCESSING IN IA la strada verso un approccio puramente razionale nel definire l’IA, attra- verso l’introduzione degli agenti razionali [11], unit`a elementari alla base di IA, allontanandosi da quell’approccio umano basato soprattutto sui com- portamenti degli esseri umani, che porter`a a ci`o che verr`a poi etichettato come scienza cognitiva. In parole semplici, la differenza tra i due approcci verte nel cambiamento del requisito di partenza : se nei primi tempi veni- va approfondito il concetto di IA partendo dall’ipotesi che ci si trovava ad analizzare un essere con dei comportamenti simili e paragonabili a quelli di un essere umano, concentrandoci solamente sul corretto uso dell’inferenza, con la strada dell’approccio razionale invece siamo consapevoli di partire dall’ipotesi che abbiamo davanti a noi un elaboratore; non ci poniamo pi`u dunque il problema di capire se ha comportamenti simili a un essere uma- no, ma generalizziamo l’approccio verso di esso , concentrandoci non solo sull’inferenza, poich´e essa `e solo uno dei molteplici meccanismi utilizzabili per arrivare alla razionalit`a. Gli elaboratori che abbiamo davanti prendono il nome di Agenti razionali , definiti semplicemente come un qualcosa che agisce, che fa qualcosa, che riesce a rappresentare la conoscenza e appli- carvi un ragionamento, perch´e avere una buona idea del funzionamento del mondo non solo consente di apprendere passivamente ci`o che caratterizza l’ambiente su cui si affacciano, ma permette loro di generare strategie pi`u efficaci per interagire con esso: ecco la svolta fondamentale per IA. Il concetto di razionalit`a in poche parole, intesa da Ingegneri , passa da fare la cosa giusta a fare qualcosa. Figura 1.1: Schema elementare dell’agente razionale, unit`a del mondo IA: dalle percezioni ricevute dall’ambiente, l’agente fa qualcosa su di esso attra- verso delle azioni, che produrranno delle conseguenze contestuali sull’am- biente tali a volte da alterare e modificare le percezioni iniziali dell’agente stesso. Anche se come `e stato detto il concetto di IA non `e definibile univo- camente perch´e dipende dal tipo di approccio che utilizziamo verso questo mondo (umano o razionale), possiamo individuare due fattori comuni che
  • 13. CAPITOLO 1. NATURAL LANGUAGE PROCESSING IN IA 3 ne hanno determinato senza meno lo sviluppo e lo stato dell’arte moderno: lo sviluppo delle tecnologie e delle conoscenze informatiche, elettroniche e non solo, ma soprattutto il punto di partenza del mondo IA, che pu`o essere intravisto nel famoso test di Turing (1950), considerato il crocevia concet- tuale per fornire una soddisfacente definizione operativa dell’intelligenza. Quando un calcolatore `e intelligente? Turing non suggerisce una lista di caratteristiche sine qua non un elaboratore di informazioni pu`o essere con- siderato razionale o meno, bens`ı egli fornisce un test basato sull’impossibilit`a di distinguerlo da entit`a che lo sono senza dubbio: gli esseri umani. In sostanza, il test di Turing prevede tre mondi (A,B,C) divisi tra di lo- ro e senza alcun tipo di conoscenza reciproca, dove nel mondo A abbiamo sicuramente un esaminatore umano, e nei mondi B e C sappiamo esserci un elaboratore e un essere umano, senza che l’esaminatore umano conosca a priori quale mondo rispettivo occupano questi due elementi. L’esamina- tore umano fa una sola azione: pu`o fare delle domande in forma scritta e mandarle ad entrambe i mondi, ricevendo una risposta; nel momento in cui l’esaminatore non riuscir`a a capire se le risposte provengono da una perso- na oppure da un elaboratore, allora l’elaboratore in questione avr`a passato il test. Come prima cosa, `e importante constatare che l’ambiguit`a tra gli approcci di IA (umano e razionale) dei primi tempi discende proprio dal- l’impostazione di questo test, che invita a nascondere l’ipotesi di partenza nella definizione di razionalit`a (sto parlando con un calcolatore, o con un essere umano?). Questo tipo di test invita successivamente a due questioni importanti: `e assolutamente matematico l’assioma test passato, computer intelligente?. Ma soprattutto: quanto pu`o essere grosso il lavoro che sta dietro alla programmazione di un elaboratore in grado di passare questo te- st? Mentre per la prima domanda rimandiamo ad altri testi per un’analisi pi`u approfondita riguardo le tematiche inerenti il mondo IA e il relativo sta- to dell’arte, affrontiamo la seconda domanda riformulandola da Ingegneri, progettisti : quali devono essere le capacit`a che l’elaboratore deve posse- dere per passare questo test? Gli esperti di IA hanno elencato sei diverse capacit`a da tenere in considerazione per poter progettare e programmare un calcolatore(agente razionale) in grado di poter passare questo test: • Interpretazione del linguaggio naturale (l’agente deve comunicare con l’esaminatore umano) • Rappresentazione della conoscenza (l’agente deve memorizzare quello che sa) • Ragionamento automatico (l’agente deve utilizzare la sua conoscenza per rispondere e trarre conclusioni) • Apprendimento (l’agente deve adattarsi a nuove circostanze) • Visione artificiale (l’agente deve percepire gli oggetti)
  • 14. 4 CAPITOLO 1. NATURAL LANGUAGE PROCESSING IN IA • Robotica (l’agente deve poter manipolare gli oggetti e spostarsi fisi- camente) Nonostante le ultime due capacit`a non riguardano esattamente il test di Turing in questione ma pi`u precisamente un test di Turing totale (dove l’esaminatore testa anche la capacit`a percettive e di movimento del sog- getto), notiamo comunque che progettare un sistema in grado di riuscire a passare questo test richiede la progettazione di diverse capacit`a, ognuna delle quali diventer`a nel tempo una particolare branca del variegato mon- do IA. La potenza di questo test la vediamo proprio durante tutti questi sessant’ anni in cui esso `e rimasto comunque significativo: in tutti questi anni i ricercatori non hanno mai fatto tanti sforzi per progettare un sistema capace di passare il test in questione, ma hanno invece speso tutte le loro energie (coadiuvati da un progresso tecnologico sempre pi`u incessante) allo studio dei principi alla base del concetto intelligenza fornito da questo test, definendo e studiando le diverse componenti IA che derivano dalle capacit`a elencate proprio qui sopra. Il test non fu importante quindi semplicemente per il suo significato, ma per quello che ha portato nello studio di queste tematiche: `e grazie al test di Turing che il mondo IA oggi `e quello che conosciamo, ma allo stesso momento paradossalmente nessun calcolatore `e riuscito mai a passare questo test. Ed `e proprio dalla prima delle capacit`a elencate, l’interpretazione (ed elabo- razione) del linguaggio naturale (Natural Language Processing: NLP), che noi partiremo per affrontare il percorso che svolgeremo nei prossimi capitoli. Figura 1.2: Rappresentazione esemplificativa del test di Turing. 1.2 Primi approcci a NLP L’obiettivo finale di questa sezione sar`a andare a definire, in maniera rigo- rosa e organica, il concetto di NLP all’interno dell’Intelligenza Artificiale, relativamente alla quale abbiamo discusso e esaminato le caratteristiche in maniera concisa ma completa nella precedente sezione.
  • 15. CAPITOLO 1. NATURAL LANGUAGE PROCESSING IN IA 5 Ora, per poter arrivare a dare un senso all’elaborazione del linguaggio natu- rale, teniamo solamente presente quello che abbiamo dedotto sinora dal test di Turing, associando NLP alla capacit`a di un elaboratore di comunicare con un essere umano, e cerchiamo, attraverso dei brevi cenni storici, di po- ter capire effettivamente nel tempo come si sono sviluppate queste tecniche legate al concetto NLP, in relazione allo sviluppo delle tecnologie e delle conoscenze relative a IA: cerchermo nella sottosezione seguente di ripercor- rere molto brevemente la sua storia e le relative tecniche, per poter poi nella seconda sottosezione analizzare il concetto e, tenendo in considerazione il suo sviluppo nel tempo, dare una definizione rigorosa, andando poi alla fine del capitolo a elencare qualche esempio e tecnica concreta, che riprenderemo poi pi`u avanti nel nostro percorso. 1.2.1 Brevi cenni storici Ripercorrendo la storia di NLP fino ai giorni nostri, possiamo dividere il suo sviluppo in quattro diverse fasi, ognuna delle quali ha prodotto lavori e ricerche fondamentali per lo sviluppo dello stato dell’arte moderno, carat- terizzate rispettivamente dalla traduzione automatica, dall’ influenza di IA, da un’adozione di uno stile logico-grammaticale e dall’uso massivo di dati linguistici e l’introduzione dei Big Data (vedremo pi`u avanti l’importanza di questo concetto)[8]. • Prima fase: Fine anni ’40 - Fine anni ’60: Machine Transla- tion (MT) La prima fase fu caratterizzata soprattutto dalla traduzione automati- ca, branca della Linguistica Computazionale che studia la traduzione dei testi da una lingua naturale a un’altra attraverso programmi infor- matici (Google Translate, ndr). Le ricerche inerenti a NLP comincia- rono ufficialmente nei primi anni ’50, attraverso dei primi rudimentali esperimenti di traduzione automatica dall’Inglese al Russo, finanzia- ti in dimostrazioni di IBM nel 1954, ma `e alla fine degli anni ’50 che NLP cominci`o a vedere gli albori, quando fu collegata da Min- sky all’information retrieval(IR), insieme di tecniche che si occupano di gestire la rappresentazione, la memorizzazione, l’organizzazione e l’accesso ad oggetti contenenti informazioni. Questa fase fu dominata da un crescente ottimismo e entusiasmo, proprio perch´e in un epoca dove ancora le risorse e le tecniche computazionali erano molto povere (non esistevano linguaggi ad alto livello, e le macchine erano carat- terizzate da un accesso veramente minimo alle risorse e una quantit`a ridicola di storage), si riuscirono comunque ad affrontare i primi pro- blemi relativi alla semantica, sintattica e all’ambiguit`a del linguaggio, fornendo e completando dizionari e regole di traduzione. Le tecniche di NLP iniziarono a collegarsi fortemente a queste regole di traduzione, ma ancora risultavano distanti dal mondo IA.
  • 16. 6 CAPITOLO 1. NATURAL LANGUAGE PROCESSING IN IA • Seconda Fase: Fine anni ’60 - Fine anni ’70: Intelligenza Ar- tificiale (IA) La seconda fase di NLP fu caratterizzata dal sempre pi`u forte accosta- mento al mondo IA, e quindi vediamo pi`u enfasi verso la conoscenza del mondo e dell’ambiente circostante (importanza degli agenti ra- zionali) e verso il ruolo della costruzione e della manipolazione del significato della rappresentazione. I dizionari, le regole di traduzione sviluppate nella prima fase, furono ridimensionate dallo stesso Min- sky (1968) per diventare input linguistici in dei primi sistemi sem- plici capaci di interpretare questi input e in questo modo avvicinarsi a un corretto uso dell’inferenza. SHRDLU(Winograd, 1973) e LU- NAR(Woods,1978) furono i discendenti di questi primi sistemi, che per`o mostravano capacit`a ancora migliori di processare task NLP con uno stile procedurale. In questa fase `e da tener soprattuto conto del cambio di direzione inerente al significato di semantica dei task NLP: nel 1980, R. Schank, in accordo con le teorie che stavano alla base dei primi sistemi capaci di interpretare e elaborare quelle regole che erano state trovate nella prima fase di NLP, lavor`o in maniera tale da creare modelli in cui la semantica non fosse pi`u legata a una conce- zione (tipica delle prime analisi linguiste) in cui si andava a valutare singolarmente le proposizioni logiche all’interno di frasi e periodi, ma arriv`o a definire una semantica general purpose: questo concetto di organizzazione a larga scala della semantica denota le interazioni tra tutti gli elementi che fanno parte dell’universo del discorso, e pu`o dare cos`ı un grande contributo al supporto dell’inferenza, soprattutto per quanto riguarda dialoghi e discorsi prolungati, e non semplici proposi- zioni logiche. NLP diventa semantic-driven , con la concezione di una semantica “general purpose”. • Terza fase: Fine anni ’70 - Fine anni ’80: Analisi Logico- Grammaticale Se la seconda fase di NLP fu caratterizzata dall’influenza dell’ IA e dal concetto di semantica in un significato pi`u allargato, la terza fase di NLP vide un rientro in campo da parte della figura dei lingui- sti relativamente a queste tecniche, con l’introduzione di una nuova analisi logico-grammaticale nella rappresentazione della conoscenza e nella costruzione di sistemi capaci di gestire task NLP: infatti, il limi- te della fase semantica general-purpose veniva intravisto nel fatto che vennero dati nuovi modelli generali del concetto di semantica, ma le regole linguistiche-grammaticali erano ancora regole particolari e lega- te al singolo periodo, frase, contesto. Quindi vennero proposti nuovi modelli generali di analisi logico-grammaticale, raggruppando queste regole in un numero ben definito di tipi di grammatica, per esempio funzionale, categorica, e in delle strutture generali: soltanto in que- sto modo potevano essere orientate verso la computabilit`a come dei
  • 17. CAPITOLO 1. NATURAL LANGUAGE PROCESSING IN IA 7 principi astratti, generali, supportando anche algoritmi importanti di parsing, riferito al processo che analizza un flusso continuo di dati in ingresso (input) in modo da determinare la sua struttura grazie ad una data grammatica formale; in questa fase vennero creati i primi parser , programmi che eseguivano questo compito. • Quarta fase: Anni ’90: Statistic Natural Language Proces- sing (SNLP) L’approccio linguista che caratterizz`o la terza fase fu di grande influen- za nella quarta e ultima fase di NLP, che vede una grande svolta pro- prio durante gli anni ’90. I modelli logico-grammaticali e il concetto di semantica general-purpose, la costruzione di parser in grado di tra- durre e comprendere dizionari anche molto consistenti, alberi lessico- grammaticali in grado di gestire contesti molto ampi di traduzione, diedero adito a un nuovo approccio per poter gestire, manipolare una grande quantit`a di dati e di informazioni, che con gli albori di Internet videro un primo ingresso nel mondo della tecnologia: i cosiddetti Big Data. Sebbene i modelli per gestire task NLP attraverso un approccio semantico general-purpose erano molto astratti, e quindi potevano co- munque affrontare una gran quantit`a di flusso di informazioni, si vide proprio in questi anni il limite di questo approccio, che era comun- que legato (seppur attraverso dei modelli generali) alla conoscenza del singolo dato, task, information: per questo motivo, nell’ultima fase di NLP nacque un nuovo approccio capace di affrontare, elaborare e interpretare attraverso un calcolatore questa grande quantit`a di infor- mazioni: arriviamo a un approccio statistico/probabilistico per NLP (Manning e Schuetze, 1999), che caratterizz`o i nuovi sistemi di NLP e i nuovi parser dell’ultima decade, applicando i principi base della teo- ria della probabilit`a a questi sistemi NLP. Arriviamo proprio in questa decade e con quest’approccio a definire nuove fondamentali tecniche attraverso un approccio probabilistico di NLP in grado di sviluppare capacit`a molto importanti: estrazione dell’informazione, information retrieval(motori di ricerca), sono solo due esempi della potenza di que- st’approccio, che vedremo caratterizzare tutt’oggi il contesto moderno di queste tecniche. Vedremo nell’ultima sezione del primo capitolo qual `e lo stato moderno di NLP ai giorni nostri, ma prima intendiamo dedicare una sottosezione alla definizione formale e organica di NLP, avendo nel nostro bagaglio tutti i passaggi pi`u importanti dell’evoluzione di questo concetto negli ultimi 50 anni, in relazione allo sviluppo tecnologico contestuale.
  • 18. 8 CAPITOLO 1. NATURAL LANGUAGE PROCESSING IN IA 1.2.2 Linguistica Computazionale e IA: definizione di NLP Nella conclusione della sottosezione inerente a IA, sono state messe in risal- to le caratteristiche e le propriet`a fondamentali che denotano, delineano il concetto di intelligenza associato a un calcolatore: in particolare, prendia- mo come punto focale la prima di queste caratteristiche, l’interpretazione del linguaggio naturale, collegata quindi alla capacit`a che deve possedere l’agente razionale per comunicare con l’essere umano(che `e l’esaminatore nel test di Turing). Cosa intendiamo per interpretare, elaborare, capire il linguaggio naturale? Occorre definire un punto di partenza per la nostra analisi, e occorre inoltre cercare un collegamento saldo tra NLP e il concetto di linguaggio. In prima analisi, riflettiamo per esempio sulle forze fondamentali della natura: la for- za gravitazionale, elettromagnetica, nucleare debole e forte, che hanno una natura molto diversa tra loro, sono accomunate da una caratteristica fon- dante: sono tutte forze d’interazione, e quindi intendiamo da questo seppur banale collegamento alla realt`a, che il problema fondamentale, anche in na- tura, `e quello di definire un concetto di interazione, delineando i soggetti di quest’interazione e il significato vero e proprio del concetto a differenza del contesto. Avvicinandoci ora all’ambito informatico, vediamo per esempio che l’interazione acquisisce un ruolo significativo nel mondo dei Sistemi Di- stribuiti, dove un sistema Software funziona lavorando su macchine fisiche diverse, e il problema dell’interazione tra i diversi ambienti diventa una del- le principali questioni da gestire, non solo a livello di progetto del sistema, ma soprattutto a livello di modellazione e di analisi, nella produzione del suddetto software. Tutto ci`o per mettere in evidenza il punto di partenza: in ogni problematica tecnica, partiamo dall’affrontare la questione dell’in- terazione. Nell’ IA i soggetti dell’interazione sono facili da individuare: abbiamo a che fare sicuramente con un’ interazione uomo-macchina, che porter`a die- tro tutte le problematiche del caso (elencate anche dal test di Turing), e che sicuramente dovr`a essere affrontata esponendo modelli e tecniche che riguardano l’interazione tra essere umani e elaboratori. Trovati i sogget- ti dell’interazione, `e pi`u complicato definire il vero e proprio modello di interazione tra esseri umani e calcolatori: dobbiamo cercare delle tecni- che che riescano a far comunicare due mondi in apparenza completamente diversi, nonostante l’elaboratore abbia con s`e le caratteristiche di un agen- te razionale; come fare a trasformare il linguaggio umano, con tutte le sue problematiche, le sue ambiguit`a, in una serie di dati comprensibili da un ela- boratore tramite regole formali (linguaggio macchina), considerando anche che questa trasformazione dev’essere reversibile (andata e ritorno, l’essere umano deve poter capire dati elaborati da un calcolatore). Inseriamo ora, in prima battuta, l’elaborazione del linguaggio naturale: essa `e definita pro- prio come tecnica capace di produrre modelli che hanno il ruolo di mediare
  • 19. CAPITOLO 1. NATURAL LANGUAGE PROCESSING IN IA 9 tra il mondo umano e il mondo degli elaboratori a livello di comprensione e generazione del linguaggio naturale. Ecco il collegamento tra NLP e il con- cetto vero e proprio di linguaggio: i programmi NLP devono poter riuscire a elaborare espressioni proprie del linguaggio umano, che possono essere scritte in diverse espressioni della lingua (dialetti, lingue, registro scritto, parlato); la comprensione di NLP `e vincolata quindi alla conoscenza di di- versi campi dello studio del linguaggio. Il problema di definire NLP quindi passa attraverso la conoscenza e le problematiche che riguardano lo studio del linguaggio vero e proprio: ad esempio fonetica, semantica, morfologia, sintassi... Per questo motivo, quando si parla di NLP, si tende ad associare molto spesso questo concetto ad una branca che si `e sviluppata a partire dagli anni ’50, non molto distante ma diversa dal concetto IA, che tocca in maniera molto forte queste tematiche: la Linguistica Computazionale, che si concentra sullo sviluppo di formalismi descrittivi del funzionamento di una lingua naturale, tali che si possano trasformare in programmi eseguibili dai computer. I problemi che affronta la linguistica computazionale consistono nel trovare una mediazione fra un oggetto di studio in costante evoluzione (il linguaggio umano) e le capacit`a di comprensione della macchina, limitate a quanto pu`o essere descritto tramite regole formali; con NLP si tenta di dare quindi proprio questo modello di interazione, cercando di formulare approcci (che vedremo nel proseguo del percorso) in grado di determinare tecniche capaci di mediare il problema di comprensione e di gestione del linguaggio naturale. Considerato il collegamento molto forte tra NLP e la Linguistica Computa- zionale, il ruolo di NLP come mediazione a livello di linguaggio tra elabora- tori e esseri umani, e l’importanza del suo collegamento con le tecniche vere e proprie dello studio del linguaggio (vedremo pi`u avanti come sar`a molto importante nelle tecniche moderne di NLP il ruolo e l’importanza della fi- gura dei linguisti), proviamo a dare una definizione organica del concetto: L’elaborazione del linguaggio naturale `e una branca, un campo di studi e di ricerca che si divide tra IA e Linguistica Computazionale, e che fa riferimento al processo di trattamento automatico mediante un cal- colatore elettronico delle informazioni scritte o parlate in lingua naturale, ponendosi come vero e proprio modello di mediazione nell’interazione uomo- macchina: la complessit`a che sta alla base di questo processo, dovuta alle caratteristiche intrinseche di ambiguit`a del linguaggio umano, `e affrontata attraverso un duplice meccanismo che da una parte suddivide questo proces- so in fasi diverse, con analisi lessicale, grammaticale, sintattica, semanti- ca(influenza della Linguistica Computazionale), e da un’altra parte associa a queste analisi tecniche in grado di implementare al meglio questo modello di mediazione(influenza di IA).
  • 20. 10 CAPITOLO 1. NATURAL LANGUAGE PROCESSING IN IA Figura 1.3: Il ruolo fondamentale di NLP `e quello di mediazione tra lin- guaggio umano(indefinito e ambiguo) e linguaggio macchina(definito e con regole formali 1.3 Stato dell’arte moderno di NLP Dopo aver discusso ampiamente sulla definizione e sul significato contestua- le dell’elaborazione del linguaggio naturale, e averne ripercorso brevemente le sue evoluzioni storiche nei campi IA e Linguistica Computazionale, in- teriorizzando la sua importanza in relazione a tecniche che possiamo gi`a intuire avere influenze molto significative in un contesto sociale dove l’im- patto tecnologico `e rilevante (come ad esempio il contesto storico attuale della societ`a, sempre pi`u tecnologica e informatizzata a tutti i livelli), termi- niamo questo capitolo mostrando lo stato dell’arte di NLP ai giorni nostri, riassumendo anche attraverso qualche esempio e riferimento il suo impatto nella societ`a moderna. Ritengo che questa sezione, seppur breve e comun- que di carattere ancora introduttivo, sia molto importante per capire e per affrontare il proseguimento del trattato, dato che poi ci avvicineremo nel prossimo capitolo a un’analisi molto pi`u tecnica di NLP e dei suoi approcci, valutando attraverso esempi anche tecniche moderne, per poi andare a sfo- ciare nei capitoli successivi a una tecnica moderna particolare, nucleo della tesi: Sentiment Analysis. Ai giorni nostri NLP `e in continua espansione e grazie alle nuove tecnologie informatiche ricopre tutt’ora un ruolo fondamentale ad esempio per quan- to riguarda le sue espressioni in campo di Information Retrieval(Google, Bing, Yahoo..) e nel campo della traduzione automatica (Google Translate, dizionari online..); molti progressi sono stati fatti nel campo della sintas- si, migliorando i programmi parser attraverso strutture logiche sempre pi`u ben definite, e inoltre la potenza sempre pi`u elevata degli elaboratori ha facilitato molto l’esecuzione e la computazione di algoritmi anche pesanti, non consumando le risorse. Ovviamente siamo ancora lontani da sistemi perfetti in grado di lavorare al 100% delle possibilit`a e garantire una cono- scenza globale dell’ambiente sul quale si affacciano e dei dati che hanno a disposizione, basti pensare ai cosiddetti “problemi intrattabili”, ma `e faci- le pensare che NLP occupi nella societ`a moderna una posizione rilevante,
  • 21. CAPITOLO 1. NATURAL LANGUAGE PROCESSING IN IA 11 cosa che non poteva essere se la storia di NLP fosse stata diversa o fosse stata scollegata dal contesto informatico in espansione. Ripercorrendo la storia di NLP attraverso le sue diverse fasi, vediamo che da una primissima fase di semplice MT e di semplici ricerche di dati siamo passati attraver- so uno sviluppo tecnologico e ricerche in questo settore a modelli sempre pi`u general-purpose, che affrontassero e che dessero regole il pi`u generali e riusabili possibili, come nella produzione di un qualsiasi sistema software, perch´e `e di questo che stiamo parlando: parlare di tecniche di costruzione di un sistema NLP si avvicina molto di pi`u alla produzione di un sistema software di quanto crediamo, ma `e essenziale definire dei modelli e degli approcci , dato che questi sistemi fanno riferimento a una razionalit`a, a una conoscenza globale del mondo intorno a s`e che non `e prevista da un semplice sistema software: in questo modo, con l’introduzione di un approccio duale a quello semantico (probabilistico-statistico), ci rendiamo conto di riuscire a modellare e programmare algoritmi e interi sistemi riutilizzando modelli e teorie prettamente matematiche impiantate in un contesto e in un proble- ma informatico di elaborazione di grandi quantit`a di informazioni. Vedremo che la Sentiment Analysis, tecnica di elaborazione del linguaggio naturale che si sta definendo proprio nel nostro contesto, e che dipende direttamente dalle nuove tecnologie informatiche di grande interesse (Social Network), riprender`a proprio questi concetti appena espressi: oggi le tecniche di NLP, realizzate attraverso un approccio definito e dei modelli general-purpose che si sono sviluppati in questi 50-60 anni della sua esistenza, cercano di esse- re impiantate in tecnologie informatiche moderne, cercando di sfruttare la potenza di queste tecniche. Unire il vecchio al nuovo, unire il bagaglio di conoscenza legato a NLP e ai suoi modelli alle nuove infrastrutture e strumenti che ci offre la tecnologia, sapersi adattare al cambio repentino del contesto tecnologico e del progres- so moderno, sar`a proprio il tema che verr`a ripreso nella conclusione, che in un certo senso ridefinisce il ruolo di un ingegnere informatico all’interno di un’azienda.
  • 22. 12 CAPITOLO 1. NATURAL LANGUAGE PROCESSING IN IA
  • 23. Capitolo 2 Approccio statistico e approccio semantico Esaminiamo e apprendiamo in questo capitolo i concetti chiave di NLP, studiandone i possibili approcci tecnici, per poter essere in grado di ritrovare questi concetti su tecniche moderne di IA. 2.1 Concetti chiave e modelli generali per NLP In questa sezione andremo a riprendere il concetto di elaborazione del lin- guaggio naturale come l’abbiamo definito nel primo capitolo del trattato, cercando di valutare prima le problematiche intrinseche di questa tecnica, e quindi l’esigenza di fornire un percorso capace di stabilire modelli gene- rali in grado di affrontare queste difficolt`a. Partiremo poi nel definire i concetti tecnici chiave nell’elaborazione del linguaggio naturale, valutando nelle successive sottosezioni gli elementi fondamentali dell’elaborazione del linguaggio naturale, fornendo un flow definito e modelli base che verranno poi affrontati in seguito da due filoni di ricerca basati su approcci duali, statistico e semantico, che vedremo nella prossima sezione. 2.1.1 Valutazione delle problematiche di NLP Per poter gestire il ruolo di mediazione legato al concetto di NLP per come l’abbiamo definito nel precedente capitolo, e’ naturale pensare che occorre gestire svariate problematiche legate al concetto che risolvere task NLP si- gnifica andare ad affrontare l’ambiguit`a del linguaggio parlato. Attraverso tecniche e modelli svariati, pi`u o meno performanti, occorre definire prima modelli per gestire queste interazioni, e poi in ultima analisi implementare tecniche in grado di seguire questi modelli. Quello appena descritto `e il problema iniziale relativo alla condizione di NLP, ovvero legato intrinseca- mente alla sua definizione, e al suo ruolo nel mondo dell’ IA: analizzando
  • 24. 14 CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO SEMANTICO per`o il flusso che attraversa NLP nel ruolo di mediatore, ci rendiamo con- to che questa problematica `e divisa a sua volta in due sfaccettature. Se da una parte il mediatore NLP dev’essere in grado di riuscire a tradurre il linguaggio naturale in dati formali, ci sar`a anche un processo di ritorno, in cui il mediatore dev’essere in grado di generare da dei dati formali delle informazioni esprimibili in linguaggio naturale. Per questo motivo le pro- blematiche dei task NLP si dividono in due grandi categorie: problemi di interpretazione e problemi di generazione. I problemi di interpretazione e di comprensione riguardano tutti quei problemi che richiedono processi in grado di partire dal linguaggio naturale, effettuare delle rimozioni di ambi- guit`a, e riuscire a costruire dati formali in grado di essere interpretati con facilit`a da un elaboratore e nelle operazioni di calcolo; per quanto riguarda la seconda categoria, i problemi di generazione, abbiamo invece tutti quei problemi che richiedono processi che comprendano la generazione (a par- tire da dati formali) di dati comprensibili all’uomo, attraverso ad esempio capacit`a di scegliere una struttura del testo, di scegliere una costruzione sintattica adeguata, di generare un intonazione vocale adatta, etc.. Figura 2.1: Le due grandi categorie di problemi dei task NLP: problemi di interpretazione e problemi di generazione Linguistica computazionale, Intelligenza Artificiale, Computer Science: NLP `e a tutti gli effetti un agente interdisciplinare, coinvolto in maniera pi`u o meno profonda in tutti questi mondi, ma la vera difficolt`a nel trattare NLP si pu`o vedere nell’ambiguit`a presente a livelli differenti del linguaggio stesso (problemi di interpretazione). Analizzare il linguaggio naturale per poterne dare un’interpretazione significativa e non ambigua significa analiz- zare l’ambiguit`a di un concetto, un periodo, un discorso, in diversi livelli. Proviamo a valutare con un esempio questo concetto appena espresso, di importanza fondamentale: se vogliamo interpretare la frase Inglese “ I made her duck “ , per interpretare questo periodo ho bisogno di disambiguare al- meno tre differenti livelli: duck viene inteso come il verbo “to duck“ , oppure
  • 25. CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO SEMANTICO 15 si riferisce a “anatra“ ? Il verbo “made“ ha significato di “fare, creare“ , oppure di “cucinare“? E inoltre: her e duck, fan parte della stessa struttura sintattica? In questi tre livelli di analisi si annidano i primi esempi di solu- zioni che proporranno modelli che poi osserveremo pi`u a fondo: il Part of Speech Tagging risolver`a la prima ambiguit`a, il Word Sense Disambiguation e il Probabilistic Parsing le ultime due. Come analizzeremo successivamen- te, questi problemi vengono oggi risolti con soluzioni ad alto livello relative a tecniche di Intelligenza Artificiale e di Machine Learning, ma occorre met- tere in evidenza che tutte queste soluzioni partono comunque dal modellare prima a basso livello queste tipologie di problemi, che troviamo soprattutto a livello di linguaggio, per poi sfruttare questi modelli e proporre tecniche avanzate in grado di ottimizzare queste soluzioni. Questi concetti base che andremo a fornire nella prossima sottosezione saranno poi investiti da due approcci, statistico e semantico, di cui valuteremo i diversi impatti senza per`o andare a cercare una strada migliore tra i due (anche se nell’ultima decade i sistemi di apprendimento statistico hanno avuto i risultati migliori nella risoluzione di questi task) , ma cercando di evidenziare come entrambi gli approcci siano validi in termini di ricerca di soluzioni per i task NLP, facendo riferimento a titolo di esempio anche a qualche progetto. In par- ticolare, definiremo dunque nelle sottosezioni seguenti elementi in grado di affrontare un percorso composto da: analisi morfologica, modellazione del linguaggio, parsing sintattico, part-of-speech tagging, traduzione statistica e semantica lessico-computazionale. Solo dopo questo processo “a basso livello“ saremo in grado di astrarre e valutare soluzioni “ad alto livello“ per affrontare il problema dell’interpretazione del linguaggio naturale, ed esaminare i due approcci nella risoluzione a livello di software di queste problematiche. 2.1.2 Analisi Morfologica e parsing sintattico Il legame di NLP con il campo della Linguistica Computazionale `e vera- mente forte, e infatti vediamo subito che la figura dei linguisti in questo ambito `e di vitale importanza: partiamo infatti nell’affrontare il problema di modellare NLP dal problema di modellazione del linguaggio e di Analisi Morfologica del linguaggio. L’elemento che sta alla base di questa prima fase sono le parole [10]: esse sono l’unit`a fondamentale nella nostra analisi, rappresentano il blocco ba- se del linguaggio, compongono qualsiasi tipo di linguaggio umano (parlato, scritto..), e rappresentano soprattutto le pi`u piccole forme del linguaggio che possono essere enunciate autonomamente e avere un contenuto pragmatico e semantico(dotate di un significato). In generale, esse a loro volta sono composte da morfemi, il cui concetto rappresenta il pi`u piccolo elemento di una parola dotato di significato che non pu`o essere suddiviso ulteriormente; dunque, studiare le unit`a fondamentali del linguaggio significa andare a stu- diare i morfemi che compongono le parole. Questi morfemi si dividono a loro
  • 26. 16 CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO SEMANTICO volta in due tipologie : morfemi radice (i morfemi principali delle parole), e i morfemi che rappresentano suffissi, prefissi, collegati con le parole stesse. Non perdiamo per`o di vista il contatto con la nostra analisi principale: `e fondamentale avere chiaro questa seppur generica introduzione inerente all’ analisi morfologica del linguaggio, per poter essere in grado di affrontare il prossimo step, ovvero una prima trasposizione di questo scenario verso il mondo informatico, cio`e collegare il concetto di analisi morfologica a un qualche processo informatico: `e qui che nasce il concetto di Parsing, inteso come processo che analizza un flusso di dati continuo in input, in modo da determinare una sua struttura definita data una grammatica formale. Il nostro problema, dunque, sar`a quello di costruire un Parsing Sintattico, in grado di fare questa prima analisi morfologica delle parole, e fare detecting dei vari morfemi che eventualmente le compongono, dando una prima forma di struttura definita (formale); lo schema `e quello classico di un sistema, do- ve inseriamo le parole come degli input veri e propri e il sistema di parsing rappresenta la scatola nera che `e in grado di elaborare questi input e resti- tuire in output dati formali che verranno dati in pasto a un elaboratore [5]. Definiamo ora tre passi fondamentali che compongono il percorso (bilatera- le) per risolvere il problema di costruzione di un sistema del genere, legato ovviamente al problema principale di disambiguare le parole in relazione al contesto semantico. Nel processo di Parsing, in un primo livello (Livello superficiale), abbiamo bisogno di riuscire a riscontrare e formalizzare in ma- niera astratta le regole grammaticali con i quali i morfemi sono combinati per generare la parola in questione (per esempio, in inglese, la parola: cities = city + s); parte qui il vero detecting dei morfemi all’interno delle parole. In un secondo livello (Livello intermedio), modelliamo questi mor- femi trovati per cogliere il loro valore semantico all’interno della parola (ad esempio, nell’esempio precedente, la “s“ trovata rappresenta un plurale: city + s = city + PL); in questa fase, che rappresenta il cuore dell’atti- vit`a del Parsing, avremo bisogno di una modellazione particolare attraverso macchine a stati finiti (FST), dipendenti da grammatiche formali specifiche. Infine arriviamo all’ultimo livello, il livello lessico, in cui abbiamo quindi fat- to parsing sintattico della parola per valutarne la formalit`a, e abbiamo tutte le informazioni per mettere questa word in pasto a un elaboratore che la- vora con dati formali, e sar`a in grado di comprenderla. In maniera duale e simmetrica, andremo a comporre il processo di creazione della parola a partire da un dato formale.
  • 27. CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO SEMANTICO 17 Figura 2.2: Schema puntuale del processo di Parsing e del processo di Generazione: la parola “BEAGLES“ Dopo aver valutato tecnicamente questi concetti inerenti all’interpreta- zione di una singola parola, e aver visualizzato bene il contesto in cui ci stia- mo muovendo, finalmente abbiamo raggiunto l’obiettivo di aver trasposto in maniera esaustiva il problema linguistico dell’interpretazione sintattica verso un processo di parsing sintattico puramente informatico, in grado di interpretare semanticamente una singola word estrapolandola da un conte- sto pi`u ampio; ora dovremo provare nella prossima sottosezione a capire in quale maniera riuscire a lavorare con pi`u entit`a, con pi`u parole, studiare le varie combinazioni tra esse, per avvicinarci sempre pi`u a interpretare e analizzare un “periodo“, e non una singola parola che lo compone. 2.1.3 Modelli di linguaggio, probabilit`a e CFG Anche se dovremo a un certo punto (come prima) collegarci a un processo informatico, capiamo proprio nel momento in cui dobbiamo affrontare la combinazione dell’analisi di pi`u parole l’importanza del concetto di proba- bilit`a collegato a queste tecniche. Valuteremo pi`u avanti in concreto il vero impatto dell’approccio probabilistico e i suoi veri punti di forza, ma occorre iniziare a determinare i legami e le interazioni chiave che esistono a basso livello tra NLP e la probabilit`a; per questo motivo inseriamo qui, in un contesto ancora “comune“ tra approccio semantico e approccio statistico, alcuni concetti che rappresentano le fondamenta di NLP per entrambi gli approcci. Siamo ora in grado di processare un testo a livello morfologico, e quindi cerchiamo di passare alla fase successiva, ovvero la gestione di un periodo, di una frase composta da pi`u parole, partendo dal definire dei veri e propri modelli di linguaggio. Introduciamo il concetto fondamentale di
  • 28. 18 CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO SEMANTICO Corpus, che rappresenta una grande collezione di testi generica, scritti in linguaggio naturale (da umani per gli umani), come ad esempio le migliaia di pagine che compongono il World Wide Web, e che quindi fornisce un insieme di parole che possono essere interpretate. Un modello di linguag- gio definisce una distribuzione di probabilit`a su questo insieme di parole, potenzialmente infinito; in pratica, a differenza del modello di linguaggio specifico scelto, da esso viene associata una certa funzione f(w) a ogni paro- la del lessico, e in base al modello di linguaggio, alle dimensioni del corpus, ai concetti fondamentali di statistica e probabilit`a (che in questo contesto rappresentano la stessa cosa) e infine all’apprendimento, si riesce a costrui- re a basso livello tutta quella struttura in grado di poter sostenere poi ad alto livello tecniche e algoritmi di estrazione dell’informazione, traduzione automatica e information retrieval. I modelli di linguaggio associati a una generica parola(w) del lessico sono modelli n-gramma, in particolare: • Modelli uni-grammi, in cui f(w) = P(w) , probabilit`a associata a una parola • Modelli bi-grammi, in cui f(w) = P(w;w-1), probabilit`a associata a una parola e alla precedente • Modelli N-grammi, in cui f(w) = P(w; w-(N-1)), probabilit`a associata a una parola e alle N precedenti Ovviamente la scelta del modello di linguaggio sar`a importante per ot- tenere un livello pi`u o meno raffinato di interpretazione del linguaggio e di disambiguazione semantica, ma come gi`a detto abbiamo bisogno anche di un corpus con certe dimensioni per avere la possibilit`a di poter sfruttare al meglio questi modelli, che alla fin fine esprimono delle funzioni (matemati- che) che hanno bisogno di molti “valori“ sul quale lavorare per funzionare al meglio, e far funzionare gli algoritmi che le sfruttano direttamente: questo concetto, andando sempre pi`u ad alto livello, sta alla base della cosiddetta “machine learning“ e dei sistemi software che sviluppano la parte di appren- dimento automatico delle macchine, che riconduce un p`o tutto quello che stiamo valutando al mondo informatico e alle tecnologie moderne (l’impatto dell’IA nel nostro contesto moderno). Come stimare la funzione probabilit`a P(w) , e associarla a una parola? E’ essenziale ed `e mio obiettivo, come gi`a espresso pi`u volte, cercare di capire in questa parte relativamente tecnica i concetti fondamentali che poi saran- no ripresi nell’approfondimento centrale della tesi; ma in questo momento abbiamo bisogno di fare un ulteriore collegamento, seppur molto generale, per trovare delle regole fondamentali di probabilit`a, proprio perch´e queste regole verranno riprese nel momento in cui andremo a trasporci verso il mondo informatico, valutandone il significato in relazione all’approccio spe- cifico. Dobbiamo quindi in pratica collegare i modelli a N-Grammi mostrati a un’ espressione formale, e per farlo abbiamo bisogno di definire il processo
  • 29. CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO SEMANTICO 19 Markoviano, come un processo nel quale la probabilit`a di transizione che de- termina il passaggio ad uno stato di sistema dipende unicamente dallo stato di sistema immediatamente precedente (propriet`a di Markov) e non dal co- me si `e giunti a tale stato. Questo concetto `e fondamentale per introdurre la catena di Markov, processo che gode della propriet`a di Markov appe- na descritta, con spazio degli Stati discreto (numerabile). Ora, partendo dagli uni-grammi, scrivendo una prima formula relativa a una particolare funzione di probabilit`a, dovremo ovviamente andare a combinare le varie probabilit`a di tutte le N parole che abbiamo a disposizione nel corpus: per poter generalizzare e semplificare questo calcolo, andiamo a scrivere la ca- tena attraverso un’approssimazione; a questo punto, approcciandoci verso i bigrammi, dovremo risolvere questa formula sfruttando il concetto di fre- quenza dei bigrammi nel nostro corpus. In poche parole, questo processo che racchiude queste formule matematiche, mi da la conferma che la fun- zione di probabilit`a associata a un bigramma dipende essenzialmente dalla frequenza con cui il bigramma si presenta all’interno del corpus; ecco il perch´e un corpus pi`u ampio mi da pi`u possibilit`a di disambiguare il lin- guaggio naturale e effettivamente associare la parola giusta, in dipendenza delle parole precedenti. Per questo, i bigrammi possono essere rappresentati come catene di Markov: questo concetto `e indipedente dall’approccio poi che verr`a fatto per implementare una tecnica specifica di NLP, ma mi da solamente il collegamento tra un modello di linguaggio (che viene imple- mentato attraverso algoritmi) e una formula matematica che viene ripresa dalla teoria della probabilit`a: vedremo pi`u avanti, in alcune analisi di tecni- che concrete, come abbiamo bisogno di riprendere questo concetto e magari ridefinirlo, proprio nel momento in cui ci andiamo a trasferire da queste basi matematiche alle vere tecniche informatiche che le implementano. Per chiudere questa sezione, introduciamo molto velocemente un ultimo concetto che verr`a poi ripreso subito nella prossima sezione in chiave proba- bilistica: le Context-Free-Grammar(CFG), ovvero le grammatiche formali Figura 2.3: 1: probabilit`a unigrammo; 2: probabilit`a di un bigrammo; 3: probabilit`a di un bigrammo con frequenza relativa; 4:probabilit`a N-grammo
  • 30. 20 CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO SEMANTICO (struttura astratta che descrive un linguaggio formale in modo preciso, as- sociando attraverso regole formali alcune parole a un determinato alfabeto), definite da 4 tuple : G = (N,T,P,S). Le 4 tuple rappresentano nell’ordine: l’insieme di simboli non-terminali (N), l’insieme di simboli terminali (T), l’insieme delle regole (P) e l’insieme dei simboli di partenza (S). E’ impor- tante iniziare a capire il ruolo di queste grammatiche proprio perch´e danno quelle regole di traduzione e interpretazione tali da trasformare periodi,frasi in dati formali, associandoli a strutture definite dipendenti dalle propriet`a del linguaggio a cui appartengono, di cui la grammatica specifica ne ha dettato le regole di traduzione: arriviamo a una struttura “ad albero“ dei periodi. Insomma, relativamente a quella scatola nera che mi rappresen- tava il sistema di parsing sintattico definito in precedenza, le grammatiche CFG rappresentano l’insieme di regole fondamentali con cui questa scatola nera funziona e elabora le frasi che riceve in input, dandone una struttura formale e sintattica. Dunque, dopo aver finalmente definito NLP nel primo capitolo, e aver interiorizzato il ruolo che occupa all’interno di IA, abbia- mo ora studiato ed elencato tutti quegli strumenti tecnici che rendono NLP strettamente collegata sia al mondo del linguaggio in s`e (parsing sintattico relativo a una parola), sia in maniera pi`u generale strettamente collegata a concetti probabilistici/matematici (modellazione del linguaggio relativo a un corpus, e gestione di periodi, frasi attraverso grammatiche). Andremo dunque ora, con questi concetti bene in testa, ad approfondire in maniera prima teorica e poi concreta i due possibili approcci verso NLP, andando poi nei prossimi capitoli a definire una tecnica moderna(Sentiment Analy- sis) e riprendendo nell’ultimo capitolo questi concetti di NLP collegandoli a questa tecnica. 2.2 Approccio probabilistico e PCFG A questo punto, dopo aver definito le grammatiche non contestuali (CFG), siamo in grado di caratterizzare una stringa come appartenente o no a un determinato linguaggio, attraverso regole di parsing: ma quale potrebbe es- sere un modo per poter decidere se un intero periodo possa appartenere a un determinato linguaggio? Allarghiamo dunque i soggetti del nostro discorso: dobbiamo tradurre in maniera informatica questo passaggio, cercando di capire in quale modo riusciamo a interpretare il linguaggio naturale, dopo aver definito basi comuni nella definizione di grammatiche, di necessit`a di parsing, di traduzione. Arrivati a questo punto intravediamo due possibi- li approcci che si sono sviluppati negli anni per poter affrontare e risolvere questo problema: l’approccio probabilistico e l’approccio semantico. In que- sta sezione analizzeremo il primo approccio, il filone statistico-probabilistico (che qui vogliono dire la stessa cosa), che ha riscontrato un grande successo negli ultimi anni, soprattuto in relazione all’esplosione dei Big Data. Un modello probabilistico del linguaggio definisce una distribuzione di proba-
  • 31. CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO SEMANTICO 21 bilit`a su un insieme (potenzialmente infinito) di stringhe: nella sottosezio- ne precedente abbiamo definito modelli che funzionano attraverso funzioni probabilistiche, come i modelli unigrammi, bigrammi, n-grammi, e abbia- mo determinato che questi modelli sono in grado di interpretare abbastanza fedelmente il linguaggio determinando, attraverso la frequenza relativa as- sociata a una cosiddetta catena di Markov, delle funzioni di probabilit`a all’interno del proprio corpus: ma dato che realizzare un corpus infinito `e impossibile, in quale modo posso generare un modello potenzialmente infini- to se ho a disposizione n-word limitate? E’ fondamentale capire, in questo contesto, che quello che deve cambiare sono le basi, e che il concetto di CFG definito precedentemente sar`a ridefinito e verranno messe a punto le PCFG(Grammatiche non contestuali probabilistiche), che sono a tutti gli effetti CFG con un nuovo, fondamentale requisito: esse associano una proba- bilit`a a ogni regola di riscrittura [9]. In poche parole, associamo un’ulteriore probabilit`a relativa alle regole che compongono i nodi dell’albero sintattico; in questo modo, con le PCFG abbiamo modo di avere conoscenza non solo sulle word interne al corpus, ma anche al di fuori di esso: su queste nuove basi, possiamo intravedere finalmente tecniche ad alto livello, che vedremo nella prossima sottosezione. Riscontriamo per`o due limiti che devono essere risolti: anche se le PCFG, per come le abbiamo definite, sembra riescano a costruire alberi sintattici completi(seppur sempre dipendenti da una stima, da una probabilit`a, e non da una certezza assoluta), ci rendiamo conto che formalizzare un albero sintattico non vuol dire che siamo riusciti a cogliere il significato del periodo, la semantica del contesto: e quindi per questo motivo andremo anche a parlare di un ulteriore approccio, semantico, in grado di affrontare questo discorso, e vedremo i pro e i contro anche di que- sto approccio. Il secondo limite che dobbiamo essere in grado di superare `e relativo alle catene di Markov: seppur esse rappresentino una modella- zione concreta e abbastanza completa di un primo approccio al linguaggio naturale, `e fondamentale in questo contesto probabilistico ridefinire queste catene di Markov, come abbiamo ridefinito le CFG: `e qui che iniziamo a parlare di Hidden Markov Models (HMM), o catene di Markov nascoste, il cui significato pu`o risultare ambiguo, ma che se viene contestualizzato in questo discorso, riusciamo veramente a capire quali sono le basi di questo approccio probabilistico. HMM sono effettivamente catene di Markov, che per`o nascondono lo stato attuale, associando una funzione di probabilit`a re- lativamente allo stato in cui si possono trovare: perch´e, in questo passaggio di ulteriori ridefinizioni, vogliamo rinunciare a un’informazione che con le semplici catene di Markov visibili avevamo? Le HMM sono in grado di asso- ciare probabilit`a a particolari eventi che vengono generati in ogni possibile stato: la gestione di questa duplice funzione di probabilit`a (stati, eventi), `e in grado di modellare un contesto molto pi`u ampio, rispetto a ci`o che face- vano le semplici catene di Markov. Allargare il contesto, passare da CFG a PCFG, da catene di Markov visibili a invisibili, `e il passaggio fondamentale che caratterizza l’approccio probabilistico: PCFG e HMM sono le valvole
  • 32. 22 CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO SEMANTICO da gestire per un modello ad alto livello, e vedremo come nella Sentiment Analysis si passa attraverso questi concetti per poter definire modellazioni probabilistiche di questa tecnologia. Concludiamo dicendo che comunque PCFG e HMM sono s`ı elementi fondamentali, ma pur sempre caratterizzati da limiti: l’approccio probabilistico, che `e in continua evoluzione, ha avu- to perfezionamenti e sono stati introdotti nuovi modelli al posto di HMM, soprattutto relativamente alla tecnica di POS-Tagging, che non andremo ad analizzare dettagliatamente qui. Il lettore deve essere consapevole del ruolo fondamentale svolto dalle PCFG e da HMM nell’approccio probabi- listico, per poter percorrere criticamente il percorso che verr`a affrontato successivamente nel quarto capitolo. 2.2.1 Information Retrieval, Estrazione dell’informa- zione e traduzione automatica In questa sottosezione illustreremo brevemente le tecniche informatiche che si sono sviluppate nell’ambito dell’approccio probabilistico, ovvero nell’am- bito di una modellazione attraverso PCFG del linguaggio naturale, costruen- do funzioni di probabilit`a a due livelli per poter essere in grado di manipo- lare un grande flusso di dati. La fortuna dell’approccio probabilistico sta proprio in questo: queste tecniche, che si sono sviluppate soprattutto negli anni ’80-’90 con l’avvento del WWW e dei Big Data, sono ai giorni nostri considerate quasi scontate, e ci soffermeremo poco sul loro funzionamento: quello che il lettore deve tenere presente comunque, `e il continuo collega- mento tra le basi probabilistiche (ridefinite nella precedente sottosezione) e le tecniche implementative che sfruttano queste basi, tecniche che tendono a variare alcuni punti in questi modelli per poter ottenere vantaggi in un certo senso rispetto ad un altro. L’information retrieval (IR), che `e la prima tecnica che affrontiamo, consiste nel trovare i documenti rilevanti per le ne- cessit`a informative di un utente: `e un naturale sottoinsieme di NLP, perch´e esso ha a che fare con una certa funzionalit`a di NLP. Questa tecnica, perfe- zionata nel corso degli anni, `e fondamentale al giorno d’oggi, basti pensare alla fortuna dei motori di ricerca. L’obiettivo principale di questa tecnica, che `e in grado in poche parole di costruire veri e propri sistemi capaci di fare information retrieval, `e proprio quello di avere un ritorno ad-hoc del- l’informazione: l’utente, attraverso una query, descrive l’informazione che desidera avere, e il sistema IR dev’essere in grado di far avere all’utente una lista inerente all’informazione richiesta dall’utente, o soddisfacendo esatta- mente le richieste dell’utente(matching esatto), oppure dando in risposta documenti che il sistema ha valutato avere una buona influenza nella query formulata dall’utente (matching stimato, grande flusso di dati). E’ molto importante anche capire, valutare, se un sistema IR pu`o avere delle buone prestazioni oppure no: i due parametri che `e possibile ottimizzare all’inter- no di algoritmi IR riguardano la precisione, che misura la proporzione di una parte rispetto a un totale, e la copertura, che misura quanta parte del
  • 33. CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO SEMANTICO 23 corpus non `e stata inclusa nei risultati. Andiamo anche a spendere due pa- role su altre tecniche di NLP probabilistico: l’estrazione dell’informazione, che fa riferimento al processo mediante cui si inseriscono dati in un data- base esaminando un testo e cercando le occorrenze di una particolare classe di oggetto o evento all’interno di questo DB, e non da meno la traduzio- ne automatica, che fa riferimento all’operazione di traduzione da un testo in lingua naturale a un altro (obiettivo, sorgente), e che forse `e una delle tecniche pi`u complicate in questo ambito: si pensi alla parola “hard“, che in inglese ha una certa valenza contestuale, ma che in italiano pu`o essere tradotta “forte“ oppure “difficile“, a seconda del contesto in cui si trova. Allargare il discorso in questo momento diventa fondamentale, e notiamo che l’approccio probabilistico, sebbene determini un passaggio importante e abbastanza lineare nella nostra analisi, pu`o risultare stretto in certi versi, ma sicuramente risulta l’approccio pi`u semplice, lineare, fedele, con il quale gestire una grande quantit`a di dati in entrata. Per riassumere: l’approccio probabilistico, caratterizzato a basso livello dal passaggio alle PCFG e agli HMM(e non solo), fornisce tecniche in grado di gestire con una certa fedelt`a e linearit`a grandi moli di dati (come pu`o essere il corpus che rappresenta il linguaggio naturale), associando funzioni di probabilit`a alle word e alle stesse regole di traduzione: queste tecniche, quali Information Retrieval, Estrazione dell’informazione e Traduzione Au- tomatica, fanno parte di NLP dai primi anni ’60-’70, ma ottengono molto successo soprattutto durante gli anni ’90, con l’ascesa del WWW e dell’in- formazione che viaggia sul web: sebbene l’approccio probabilistico abbia molti limiti(e uno di questi `e proprio l’impossibilit`a di associare una tradu- zione semantica esatta a una traduzione sintattica esatta), esso rappresenta un’ arma vincente per l’implementazione di sistemi in grado di gestire le problematiche di NLP e interpretare il linguaggio naturale. Non andiamo ora a mostrare qualche esempio concreto di tecnica probabilistica NLP, ma avremo modo (soprattutto nell’ultimo capitolo) di valutare criticamente una tecnica moderna che segue un modello probabilistico. 2.3 Approccio semantico Dopo aver valutato e presentato l’approccio probabilistico, andiamo a con- testualizzare il secondo possibile approccio all’interpretazione del linguaggio naturale : l’approccio semantico. 2.3.1 Valutazioni e critiche dell’approccio: WSD La semantica fa riferimento alla parte di linguistica che si occupa del piano del significato di un periodo. E’ molto complicato arrivare a delineare una definizione rigorosa del concetto di significato, gi`a a partire da un piano lin- guistico: un significato pu`o essere rappresentato da un’idea, un’immagine
  • 34. 24 CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO SEMANTICO mentale, e pu`o essere connesso alle sensazioni che esso d`a luogo, ma allo stesso momento invece pu`o essere rappresentato attraverso un collegamento oggettivo, cosa rappresenta questo significato a livello di modello[3]. Que- ste problematiche che stanno alla base di un’interpretazione semantica di un contesto reale, sono problematiche che si ripercuotono fino ad arrivare a problemi che dovremo affrontare nella modellazione di questo mondo, per poter arrivare a definire tecniche come abbiamo fatto nell’approccio sta- tistico. L’approccio semantico si prefigge di sconfiggere quel limite che `e imposto da un approccio puramente probabilistico, ovvero quello di non avere certezza assoluta della traduzione semantica di un periodo come lo si ha generalmente di una traduzione sintattica: il limite dell’approccio pro- babilistico sta nel fatto che tutto ci`o che viene svolto a basso livello da algoritmi probabilistici `e quello di sottostare a funzioni matematiche (che vengono modellate all’interno di tecniche con PCFG) che descrivono il fun- zionamento e le regole nella gestione di svariate mole di dati: le formule matematiche non si possono occupare di significato. Come riuscire a ingegnerizzare il concetto ambiguo di “significato“, e in- terpretare semanticamente il linguaggio naturale? Questo task `e tuttora irrisolto nel mondo dell’NLP e in generale nel mondo dell’IA; riuscire a trovare un modo semplice e lineare di modellare questo problema per po- ter arrivare a una disambiguazione assoluta del significato di un periodo `e praticamente impossibile. Quello che possiamo fare `e sempre lo stesso ragionamento: proviamo ad allargare i soggetti del nostro discorso. Se `e praticamente impossibile modellare regole in grado di tradurre a pieno il si- gnificato di singoli periodi, cerchiamo di utilizzare nel nostro discorso regole associate a un intero corpus, sorpassando quegli algoritmi o codici relati- vi a singoli periodi, word: nell’area dell’apprendimento semantico, ci sono tantissimi usi di tecniche basate sul corpus: alcuni ricercatori hanno usato tecniche empiriche per indirizzare un task complicato a un’interpretazione semantica, cercando di sviluppare accurate regole in grado di dare la giusta interpretazione semantica a un contesto, oppure abbiamo una metodologia empirica nell’affrontare questo tipo di problematiche, producendo dei veri e propri parser (come facevamo nell’approccio probabilistico). Ma la grande novit`a dell’approccio semantico sta nel Word Sense Disambiguation(WSD), tecnica che caratterizza quest’approccio il cui principale obiettivo `e quello di identificare il corretto significato di una parola in un certo contesto[7]. Il funzionamento riprende un p`o anche il discorso fatto nelle precedenti sot- tosezioni per la fase di traduzione NLP: oltre alla parola in input (descritta in linguaggio naturale), al “parser semantico“ viene data l’informazione di quale “Part of Speech“ (parte del discorso) la parola fa parte (`e un nome? `e un verbo? un aggettivo?); in output, avremo semplicemente che ogni occo- renza di una generica word avr`a il proprio tag relativo al suo significato. In poche parole, stiamo arrivando piano piano alla definizione di un processo di analisi semantica che finalmente astrae da algoritmi o codici relativi a un singolo periodo, a una singola word, ma che vanno a investire un intero cor-
  • 35. CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO SEMANTICO 25 pus: per`o `e da evidenziare che mentre nell’approccio probabilistico abbiamo associato funzioni matematiche per poter effettuare questo passaggio e al- largare il discorso, qui dobbiamo per forza definire attraverso nuovi modelli un modo di affrontare il linguaggio in maniera pi`u precisa, e per forza di cose pi`u complicata: `e qui che entrano in gioco tecniche “machine-learning“ , in grado di avvicinare l’elaboratore a un essere pensante e in grado di apprendere automaticamente strategie per poter affrontare problematiche sempre nuove. Il WSD rappresenta proprio la scatola nera semantica che abbiamo definito nelle precedenti sottosezioni quando eravamo ancora in un analisi comune ai due approcci: Supported Vectors, Tag, parti del discorso, rappresentano elementi a cui il WSD deve fare riferimento per poter arri- vare a utilizzare tecniche basate sul corpus, arrivando a definire un vero e proprio “parser semantico“. Anche se in realt`a il discorso fatto pu`o risultare abbastanza complica- to, `e importante tenere presente che in una valutazione critica di questo approccio dobbiamo avere in mente che il limite imposto da un approc- cio probabilistico pu`o considerarsi quasi superato, ma che per andare a realizzare tecniche implementative, sistemi software in grado di riuscire a modellare il problema del WSD(e del semantic parsing), abbiamo un lavoro molto oneroso da fare, a differenza di sistemi che rispecchiano un approccio probabilistico, in grado di collegarsi comunque costantemente a formule e quindi modelli lineari di traduzione. Come in ogni contesto, pu`o risultare favorevole o meno l’utilizzo di un approccio o di un altro a seconda del fun- zionamento o della tipologia di tecnologia che si vuole realizzare: definiti gli obiettivi, e conoscendo entrambi gli approcci, possiamo criticamente decide- re in quale contesto pu`o essere vantaggioso usare il filone probabilistico o il filone semantico. Interiorizzati entrambi gli approcci che si sono sviluppati negli anni relativamente al problema dell’interpretazione del linguaggio, e studiati gli elementi cardine sul quale andare a modellare e implementare sistemi, possiamo finalmente passare a studiare l’impatto di questi concetti Figura 2.4: Un esempio di semantic parser presa da una query relativa a un DB
  • 36. 26 CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO SEMANTICO nel contesto sociale moderno, dopo aver illustrato a titolo informativo un esempio di sistema semantico-NLP. 2.3.2 BabelNet e BabelFly In questa sottosezione vorrei illustrare a titolo informativo due sistemi ba- sati sui concetti appena espressi, ovvero tecnologie che si occupano di ge- stire sistemi in grado di interpretare semanticamente il linguaggio naturale. Roberto Navigli, Professore dell’Universit`a della Sapienza di Roma, respon- sabile del dipartimento di Linguistica Computazionale, gestisce da pi`u di 5 anni un progetto chiamato “multiJedi“, inerente proprio alla creazione di risorse lessicali a larga scala e alla comprensione di testi in diverse lin- gue. Nell’ambito di questo progetto, Navigli ha contribuito insieme ad altri ricercatori a sviluppare varie tecnologie e sistemi software che andassero proprio a riprendere le basi che abbiamo discusso prima inerenti a NLP, co- me approccio semantico, comprensione del linguaggio, andando a costruire tecnologie user-friendly in grado di gestire ad alto livello questi argomenti: in particolare, citiamo BabelNet e BabelFly. BabelNet `e una rete semanti- ca computazionale con copertura a larga scala, che riprende ingressi lessici da WordNet, uno dei sistemi di computazione linguistica pi`u importanti creato negli anni ’90, e ingressi enciclopedici da Wikipedia. BabelNet ha una copertura a larga scala, copre 271 linguaggi diversi, e gestisce pi`u di 300M di relazioni semantiche: gestisce le entries (ingressi) che vengono da WordNet e da Wikipedia, cercando di modellarle sottoforma di concetti e di nomi-entit`a. Quello che rimane, ancora, `e un forte carattere di ambiguit`a, legato all’ambiguit`a di queste entries (per l’ingresso “calcio“ intendiamo la sostanza chimica, o lo sport?) BabelFly `e un sistema che racchiude disambiguazione multilingua e col- legamenti diretti alle entit`a: con la stessa interfaccia utente di BabelNet, esso rappresenta la parte in grado di disambiguare le word in entrata sul- la rete di BabelNet, con la possibilit`a di linkarsi direttamente all’entit`a di Figura 2.5: UI di BabelNet
  • 37. CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO SEMANTICO 27 cui l’utente fa richiesta. Questo processo di disambiguazione ovviamente procede per step, partendo da una signature semantica, per poi passare al trovare ogni possibile significato della word(ambiguit`a), connessione dei vari significati trovati, estrazione di un grafo logico, e infine selezionare i significati pi`u inerenti. A livello di API, troviamo nel sito diverse tecnologie con le quali costruire query in grado di interagire con il sistema BabelNet: HTTP query, JAVA query, SPARQL query. Nella libreria inerente a Java, ad esempio, vediamo che sono presenti tre classi principali: • BabelNet: la classe principale, che rappresenta l’entry point sulle ri- sorse BabelNet: questa classe `e implementata con il Singleton Pattern • BabelSynset: classe che rappresenta un set di lessici multilingua che hanno una caratteristica comune: ad esempio, potrei essere interessato ad avere in mano tutti i termini che fanno parte di un certo discorso • BabelSense: `e la classe che rappresenta la singola word presente nello specifico BabelSynset Con queste API gerarchiche, riusciamo a interfacciare (attraverso IDE come Eclipse o NetBeans) sistemi software in grado di interagire con Ba- belNet [1]. Inutile ribadire qui che con l’approccio a oggetti (Java, Sca- la) abbiamo l’enorme possibilit`a di fare query riusabili, estendibili, e quin- di rimanere sempre a un buon livello di astrazione dalla tecnologia basso livello. Nell’ultima figura, visualizziamo un esempio d’uso in cui ritrovo l’ID del wikidata(dato di wikipedia) per ogni BabelSense presente in un BabelSynset. Figura 2.6: Usage example
  • 38. 28 CAPITOLO 2. APPROCCIO STATISTICO E APPROCCIO SEMANTICO
  • 39. Capitolo 3 Sentiment Analysis e IA Dopo una breve contestualizzazione dello scenario moderno rappresentato da un’economia data-driven, andremo a definire in questo capitolo il ruo- lo della Sentiment Analysis in relazione ai concetti di NLP e IA descritti precedentemente, e le sue principali caratteristiche. 3.1 Economia data-driven e Big Data Andiamo ora a descrivere in particolare lo scenario moderno su cui l’Intel- ligenza Artificiale opera attraverso le sue caratteristiche, descrivendo anche in maniera generale le tecnologie informatiche che ne fanno parte[4]. Nel contesto moderno informatico siamo dominati da un concetto di eco- nomia data-driven, ovvero una nuova modalit`a di approccio verso la realt`a attraverso la gestione di un flusso di dati in ingresso, che si presenta con una mole sempre pi`u importante: i cosiddetti Big Data, che fanno riferimento a data-set in quantit`a di volume enormi derivanti da fonti diverse (social me- dia, mobile, web), che arrivano alle aziende con velocit`a a cui non sono mai state abituate. Capiamo subito dunque che servono nuovi approcci all’ana- lisi del concetto di dato: in questo scenario occorre analizzare il concetto di “dato“ in maniera ingegneristica, soprattutto in relazione a ci`o che ci offre la modernit`a, e solo dopo potremo descrivere in che maniera il fenomeno di economia data-driven sia in grado di generare nuovi mestieri che riguardano questo ambito, valutando il suo impatto profondo. 3.1.1 Ruolo dei dati e figura del Data Scientist I dati e il software sono andati sempre di pari passo nella storia dell’infor- matica: il dato rappresenta l’unit`a fondamentale con la quale un sistema software pu`o interagire, prendendolo in ingresso e analizzandolo attraverso meccanismi pi`u o meno ingegnerizzati. Nel momento in cui, intorno agli anni ’90, abbiamo avuto l’esplosione del fenomeno Web, abbiamo iniziato a capire quale fosse il fondamentale ruolo dei dati all’interno delle nostre ana- lisi software, come ad esempio pagine web, pagine utenti, query su DB, con
  • 40. 30 CAPITOLO 3. SENTIMENT ANALYSIS E IA l’esplosione di quel trend che venne chiamato “Web Analysing“, fornendo una nuova figura nel mondo del lavoro. La rivoluzione tecnologica che domi- na la societ`a moderna ha fatto s`ı che il progresso oggi fornisse nuovi scenari con i quali andare a interfacciarsi: tecnologie e app mobili, tecnologie social media, hanno dato quella spinta tecnologica in cui anche il concetto base di “dato“ deve essere per forza ridefinito, riscrivendo di conseguenza il signi- ficato di software, che deve adeguarsi a questo nuovo concetto. Il software sta diventando sempre pi`u interdisciplinare nel nostro contesto: negli ulti- mi anni, coadiuvato anche dalla grande ascesa dei social media (Facebook, Linkedin, Twitter) e da una sempre pi`u informatizzazione a livello globa- le, come abbiamo discusso nell’introduzione del nostro percorso, esso sta decisamente invertendo la propria tendenza: da materia di nicchia, oggi il Software `e diventato a tutti gli effetti una materia interdisciplinare. Bioin- formatica (simulazione di calcolo su PC, esami in laboratorio), geografia(gps e software di gestione spazi, Google Maps), sono soltanto due degli esempi pi`u lampanti in cui ci rendiamo conto che al giorno d’oggi il software ha un ruolo molto pi`u predominante di quello che gli associavamo fino a non molto tempo fa. Possiamo senz’altro generalizzare e definire il software come uno dei vettori che guidano l’analisi della societ`a che viviamo, perch´e esso stesso la costruisce: device, ambienti, infrastrutture che popolano la realt`a, sono i nuovi sistemi software che la caratterizzano. I dati sono le informazioni che questi dispositivi scambiano con l’ambiente reale, e dunque riuscendo a interpretare questi dati attraverso le tecnologie informatiche che conoscia- mo, si pu`o dare senz’altro un’interpretazione della realt`a stessa: non stiamo parlando solamente di Data Mining, ovvero dell’interpretazione dei dati che ci arrivano dai dispositivi, ma addirittura di Reality Mining, ovvero inter- pretazione della realt`a stessa. E’ in questo contesto che nasce la figura di “Data Scientist“, che rappresenta un esperto del settore, che non solo `e in grado attraverso competenze informatiche di dare un significato a questi da- ti, ma che avendo anche competenze di Business Intelligence, riuscir`a a dare un significato contestuale per aiutare aziende o imprese a sviluppare nuovi meccanismi per primeggiare sul mercato: un mercato che non `e pi`u solo fatto da umani, ma che vede come protagonisti soprattutto elaboratori, de- vices, agenti razionali. E’ proprio questa la nuova frontiera dell’intelligenza artificiale: i dati sono diventati l’interfaccia del mondo reale. Oltre alle con- siderazioni fatte, bisogna anche capire che le tecnologie moderne modificano in maniera definitiva i concetti di tempo e spazio. Nell’era moderna tutto accade in tempo reale, e un gran flusso di informazioni viaggia online co- stantemente: ma il tempo reale lato macchina `e un concetto profondamente diverso dal tempo reale lato utente (concepito dagli esseri umani). Inoltre, non esiste pi`u oramai la netta divisione “realt`a virtuale“ da “realt`a fisica“, perch´e ci rendiamo sempre pi`u conto che i dispositivi e i vari dati che attra- versano il mondo online al giorno d’oggi influenzano eccome la realt`a fisica (dispositivi wearable, gps, tecnologie opinion mining..); per questo motivo, possiamo tranquillamente affermare che il codice fa muovere la realt`a in
  • 41. CAPITOLO 3. SENTIMENT ANALYSIS E IA 31 cui noi viviamo, con i suoi tempi e spazi, e ha il potere di modificare lo spazio fisico in cui `e ambientato. Pensiamo ad esempio a una grossa catena di vestiti che mi propone un’offerta nel momento in cui io sto transitando proprio davanti al negozio; oppure, a tutti quei nuovi metodi di “analisi predittiva“, che in base al controllo costante dei dati generati da un certo cliente (ad esempio relativamente al mondo dell’utenza telefonica), siamo in grado di capire attraverso alcuni suoi comportamenti se questo cliente ha in- tenzione di disdire il proprio abbonamento telefonico oppure no, e in questo modo riuscire ad anticipare una disdetta che a posteriori sarebbe molto pi`u complicato gestire. Il mercato sta cambiando, ed `e essenziale capire che ci saranno nuovi lavori legati a questi fenomeni, che quindi `e essenziale saper analizzare: umani e algoritmi sono i nuovi protagonisti in simbiosi tra loro del mercato. Un esempio particolare in cui `e possibile riscontrare questi concetti `e il mondo dei Social Network e la loro moderna ascesa, definiti come servizio di rete sociale che consente la gestione dei rapporti sociali, facilitando la comunicazione e la condivisione di informazioni digitali. E’ in questo contesto che vediamo proprio il binomio umani-agenti razionali protagonisti di questi fenomeni, governati sempre da quei concetti IA che abbiamo spiegato abbondantemente nel capitolo precedente: ed `e in questo contesto che vediamo le possibilit`a migliori per il futuro. 3.1.2 Intelligenza semantica Ma quali sono in concreto i nuovi scenari che questo fenomeno del data- driven porta nella nostra societ`a? Oltre al discorso che riprenderemo nelle vere e proprie conclusioni di questo trattato, inerente a una nuova ridefini- zione del ruolo dell’ingegnere informatico all’interno delle aziende, ci basti pensare che in questo nuovo contesto molte azioni e molte operazioni che sono state sempre svolte con una certa naturalit`a da esseri umani, saranno svolte in maniera funzionale da agenti razionali. Non sar`a pi`u necessario ad esempio conoscere un posto o chiedere indicazioni per raggiungere una certa localit`a, abbiamo i software di navigazione (es. Google Maps); oppure ad esempio non ci sar`a pi`u bisogno di svolgere tradizionali e onerose ricerche di mercato per valutare l’opinione dei consumatori su di un prodotto, avremo tecnologie ad-hoc che svolgeranno questo compito. Tutto ci`o `e solamente possibile grazie al nuovo ruolo dei dati nel contesto moderno: i dati sono una valvola di traduzione della realt`a, e saperli gestire attraverso competenze in- formatiche adeguate (infrastrutture, linguaggi di programmazione, sistemi relazionali classici e non relazionali, e ovviamente conoscenze IA), fornisce una potentissima capacit`a: la capacit`a di “interpretare“ la realt`a. Le azien- de devono cambiare il loro modo di decidere in base a questi nuovi scenari: per essere protagonisti nel mercato, occorre sempre pi`u abbandonare vecchi preconcetti e passare invece a fare decisioni real-time, analisi predittiva e in- tercettazione dei commenti, per migliorare sempre pi`u velocemente i propri prodotti e avere un ruolo predominante nel nuovo mercato che si sta for-
  • 42. 32 CAPITOLO 3. SENTIMENT ANALYSIS E IA mando, dominato dal binomio uomo-agente razionale. Ed `e proprio qui che nasce il fenomeno principale del nostro discorso: la Sentiment Analysis (o Opinion Mining), che rappresenta in poche parole l’attivit`a di identificazio- ne, elaborazione e classificazione di informazioni legate ad un brand o ad un argomento attraverso software di elaborazione del linguaggio e linguistica computazionale allo scopo di determinare l’attitudine di chi ha pubblicato e la polarit`a contestuale del contenuto (positiva, neutra, negativa): ecco uno dei nuovi scenari che noi andremo a sviluppare pi`u dettagliamente nel prossimo capitolo. Pi`u in generale, parliamo proprio di una “Intelligenza Semantica“, ovvero della possibilit`a di tradurre i dati e dargli un significato contestuale per facilitare il lavoro di promozione di un prodotto da parte dell’aziende: ad esempio, se in un forum inerente “Impianti fotovoltaici“ riesco a captare le opinioni e le preferenze degli utenti rispetto all’argomen- to(interesse al design, interesse ai consumi, interesse alle spese), io riesco a capire che il cliente X `e pi`u interessato a una certa caratteristica rispetto a un’altra, alla quale ad esempio `e interessato il cliente Y. In poche paro- le, l’economia data-driven, oltre a generare un fenomeno molto grande che ridefinisce il significato stesso di dato e software, produce all’interno delle aziende nuovi tipi di lavoro legati a un nuovo mercato dominato da uomini e agenti razionali, che generalmente si combinano nell’obiettivo di perse- guire una certa Intelligenza Semantica: per rimanere dominanti in questo nuovo mercato, le aziende hanno bisogno di investire in queste nuove figure. Sentiment Analysis rappresenta proprio un’attivit`a legata all’intelligenza semantica, che viene sviluppata soprattutto all’interno di Social Network e forum, dove vediamo confluire molti utenti e quindi clienti. 3.2 Sentiment Analysis Arrivati a questo punto, e dopo aver definito il contesto e l’ambiente a cui facciamo riferimento, andiamo a dare una definizione rigorosa del fenomeno Sentiment Analysis. Definiamo Sentiment Analysis (o Opinion Mining) la tecnica che `e in grado di catturare la vantaggiosit`a di un insieme di docu- menti tramite tecniche di NLP: questa tecnica fa una sorta di classificazione a seconda della polarit`a di questi documenti, commenti, dati(positiva, ne- gativa, neutra), riuscendo a interpretare, determinare come sta andando un certo prodotto o un certo brand in relazione alle opinioni degli utenti. E’ naturale intendere che la Sentiment ha numerosissime applicazioni nel mon- do soprattutto dei Social Network, dove abbiamo la possibilit`a di avere un enorme flusso di utenti e dati sui prodotti; ma allo stesso momento la ritro- viamo nel mondo dei blog, dei forum, insomma in relazione a tutto ci`o che `e raggiungibile online (Big Data, Internet Of Things). La Sentiment Analysis, se modellata bene, pu`o rappresentare un enorme strumento di vittoria nel mercato di oggi, perch´e rappresenta una nuova frontiera nel mondo dell’e- conomia data-driven, ma anch’essa avr`a i suoi punti di forza e i suoi punti
  • 43. CAPITOLO 3. SENTIMENT ANALYSIS E IA 33 deboli, che sono in costante fase di sviluppo e studio: la Sentiment Analysis `e ancora una tecnica in fase di cantiere, di sviluppo, come spiegheremo pi`u avanti. 3.2.1 Caratteristiche e problematiche La Sentiment Analysis `e caratterizzata da molti fattori, e alcuni di essi rendono questa tecnica molto difficoltosa. Ad esempio, consideriamo la ca- ratteristica principale della Sentiment Analysis: la possibilit`a di catturare la polarit`a di un certo commento, che significa essere in grado di interpre- tare la polarit`a di un periodo: come fare? Potremo dire ad un primo livello di analisi che potrebbero esistere delle parole chiave nel linguaggio naturale che determinano senz’altro un’evidente polarit`a, positiva ad esempio con gli aggettivi “bello“, “meraviglioso“, “funzionale“, oppure negativa con “orri- bile“, “brutto“, “disprezzo“. Dunque, potremo semplicemente dire che per fare detecting di una certa polarit`a basta semplicemente fare riferimento a una lista di parole chiavi, che sono legate a un trend positivo, negativo, neutro, e controllare la loro presenza nel dato che vuol’essere interpreta- to. In realt`a, anche se volessimo ridurre in maniera banale il problema del detecting della polarit`a di un certo commento, facendo riferimento agli studi condotti dal ricercatore Pang[2], uno dei massimi esponenti di questo fenomeno, troviamo diversi problemi nel decidere di comune accordo qua- li parole effettivamente rappresentino una polarit`a positiva e quali termini rappresentino una polarit`a negativa. Nell’esempio proposto nella pagina successiva, vediamo due uomini che propongono una lista di parole relative a un corpus che rappresentano per loro delle polarit`a rispettivamente nega- tive e positive, e mettiamo in confronto l’accuratezza (precisione) di questi set con un set elaborato attraverso un’analisi statistica che abbiamo discus- so nei capitoli precedenti da parte di un agente: notiamo che abbiamo una precisione pi`u elevata (69 per cento), e inoltre vediamo che le parole che fanno riferimento alle polarit`a sono diverse. Per questo ci rendiamo conto che non basta solamente una semplice formulazione di una lista di parole che fanno riferimento a sentimenti positivi, negativi, per risolvere questo task: avremo senz’altro bisogno di modelli, e questi modelli dovranno prendere in esame senz’altro un intero corpus di dati, e quindi capiamo l’importanza di trasporre la Sentiment Analysis attraverso dei modelli il pi`u possibile basati sul corpus. Ovviamente avremo anche altri problemi relativamente alla Sentiment Analysis, basti pensare alla classificazione dei documenti, e all’attribuzione di commenti a un utente specifico, determinando il com- portamento di questo utente per prevedere ad esempio alcune sue mosse e interessi(predictive analysing, o ad esempio gli algoritmi di Facebook, Twit- ter, che analizzano le immagini postate dagli utenti, cercando di capire i loro interessi etc.) In rete mostriamo veramente chi siamo attraverso i dati che scambiamo attraverso i Social Media.
  • 44. 34 CAPITOLO 3. SENTIMENT ANALYSIS E IA Figura 3.1: Esempio di Pang: elaborazione umani-agenti lista parole chiave nel detecting di una polarit`a 3.2.2 Ruolo di IA e NLP nella Sentiment Analysis Diventa fondamentale arrivati a questo punto, dopo aver capito lo scenario moderno data-driven e aver inteso a fondo il senso e il significato della Sen- timent Analysis, capire in quale modo alcune di quelle tecniche elencate nel capitolo precedente relativamente ai problemi di NLP vengono riprese e mo- dellate in questo scenario: vedremo poi, nell’ultimo capitolo, in che maniera valutare Sentiment Analysis su Twitter attraverso gli approcci probabilisti- ci e semantici, quali modelli vengono proposti e in che maniera possiamo sfruttare elementi a nostro vantaggio, valutando criticamente questi modelli. Uno dei primi problemi , oltre il detecting della polarit`a(associata ad un ap- proccio statistico e alla frequenza relativa discussa in ambito NLP), `e quello di riconoscere quale parte del commento rappresenta l’elemento soggettivo(e quindi l’opinione diretta dell’utente) e quale l’elemento oggettivo: provia- mo a fare riferimento quindi a tutti quei discorsi fatti sul Part Of Speech (parte del discorso) in ambito NLP, per poter capire quale parte di periodo rappresenta la parte soggettiva e quale la parte oggettiva dell’analisi. Que- sto problema per niente banale ha visto molti ricercatori studiare alcune possibilit`a: Hatzivassiloglou e Wiebe (2000) diedero una prima analisi al fenomeno perseguendo l’obiettivo di giudicare se la parte di un commento fosse soggettiva o no attraverso gli aggettivi che comparivano nel commen- to; attraverso molti progetti, essi definirono il detecting della soggettivit`a di un commento attraverso caratteristiche chiave , legate al detecting di questi aggettivi. Ma nel caso in cui devo interpretare un commento neutrale, nel quale dunque non riscontro questi aggettivi, come faccio a capire che effet- tivamente `e un commento neutrale e quindi una parte soggettiva, invece che una parte oggettiva? Cio`e, come faccio a distinguere un commento neutrale da una parte oggettiva (quindi una parte che non riguarda un opinione), se in entrambi i casi non ho aggettivi a cui fare riferimento? Ecco dove ripren-
  • 45. CAPITOLO 3. SENTIMENT ANALYSIS E IA 35 diamo per filo e per segno il discorso svolto nel secondo capitolo: abbiamo bisogno di allargare i soggetti del discorso; non possiamo generalizzare tutta la problematica del detecting delle varie parti di un commento attraverso il collegamento con singoli aggettivi, singole word, ma abbiamo il bisogno di avere la possibilit`a di riconoscere parti intere di un discorso, tradurre periodi, per poter effettivamente avere una precisione alta e un ambiguit`a relativamente bassa. Ecco ancora una volta l’importanza di avere modelli basati su un intero corpus, ed ecco l’importanza di avere approcci NLP in grado di generalizzare e allargare il discorso: POS Tagging, Part of Speech, sono tutte tecniche che non abbiamo descritto in maniera dettagliata, ma di cui abbiamo capito il senso e il significato in relazione al loro sviluppo: `e proprio in questo contesto che queste tecniche verranno utilizzate a basso livello, andando a gestire le caratteristiche chiave della Sentiment. E’ im- portante, a titolo di esempio, capire anche che l’interpretazione di periodi, di parti del discorso, ci permettono di fare classificazione dei commenti, e quindi ogni documento analizzato fa parte di una certa materia soggettiva: in questo modo, algoritmi di ricerca sul mercato potranno lavorare con docu- menti che fanno tutti parte di un certo argomento, facilitando di gran lunga queste ricerche, velocizzando il lavoro di sviluppo all’interno dell’azienda, e ridefinendo anche il ruolo del customer-care, che pu`o effettivamente runtime capire valutazioni, critiche, problemi dei singoli utenti e andare a risolvere questi problemi nella maniera pi`u efficiente possibile. La Sentiment Analy- sis, la cui modellazione definitiva `e ancora in fase di cantiere, rappresenta senz’altro uno degli spiragli futuri dell’Intelligenza Artificiale applicata nel contesto dell’economia data-driven, che deve maturare in ambito aziendale.
  • 46. 36 CAPITOLO 3. SENTIMENT ANALYSIS E IA
  • 47. Capitolo 4 Sentiment Analysis e Twitter Andiamo in questo capitolo conclusivo a descrivere il fenomeno Sentiment Analysis all’interno di Twitter, illustrando e valutando due diverse tipo- logie di modelli proposti nell’affrontare questo tipo di tecnica, criticando costruttivamente i pregi e i difetti di questi modelli. 4.1 Il ruolo della Sentiment Analysis in Twit- ter In questa prima sezione andiamo a ripercorrere brevemente la storia della Sentiment Analysis in relazione allo sviluppo dei suoi modelli all’interno di Twitter, dopo aver contestualizzato l’ascesa di questo Social Network nella nostra societ`a. Questa analisi getter`a le basi ai due modelli che presenteremo nelle successive sezioni di questo capitolo. 4.1.1 Contesto di Twitter e prospettive Twitter `e un servizio gratuito di social networking e microblogging, creato nel marzo 2006 dalla Obvius Corporation di San Francisco, ed `e ad oggi una delle rete sociali pi`u usate di tutto il mondo. Principale antagonista del colosso Facebook, `e utilizzata da milioni di utenti che ogni giorno la usano per condividere e visualizzare le informazioni pi`u disparate: opinioni, informazioni, commenti, e molto altro. Il social network `e strutturato in maniera tale che `e caratterizzato dalla pubblicazione di brevi messaggi, de- nominati “tweets“, che possono contenere opinioni, immagini, riferimenti e link multimediali; `e possibile seguire un gruppo di utenti oppure venire se- guiti, attraverso i gruppi sociali “Followers“ e “Following“, definiti per ogni utente del servizio. Twitter nasce come servizio di comunicazione unilatera- le, in cui un utente scrive e un altro legge, ma nel tempo ha stabilito anche una sorta di “conversazione“: attraverso un apposito tag (@) `e possibile menzionare un altro utente, e attraverso un altro tag(#) `e possibile creare un topic, un argomento, un dibattito inerente a una qualsiasi tematica: il
  • 48. 38 CAPITOLO 4. SENTIMENT ANALYSIS E TWITTER Figura 4.1: Simbolo di Twitter: `e in questo servizio che troviamo il territorio migliore per fare Sentiment Analysis concetto di hashtag all’interno di Twitter `e fondamentale per lo sviluppo della Sentiment Analysis su questo servizio. 4.1.2 Sentiment Analysis in Twitter Considerando gli enormi numeri di Twitter, come i pi`u di 200 milioni di utenti iscritti, tra cui ovviamente anche svariate aziende e marchi noti, ol- tre 500 milioni di tweets scambiati ogni giorno e poco meno di 6000 tweets ogni secondo, `e facile intendere che c’`e un enorme potenziale informativo in questa mole di dati: sicuramente sar`a molto difficile estrapolare, inter- pretare questi dati, considerando la loro quantit`a. In relazione al concetto espresso nel precedente capitolo, questi dati possono essere visti al giorno d’oggi come la valvola che definisce la realt`a, e interpretare queste informa- zioni significa interpretare la realt`a: in particolare, attraverso la Sentiment Analysis, interpretiamo le opinioni degli utenti relative a un topic, forum, argomento. Twitter e i Social Network in generale infatti sono ottimi am- bienti per condurre indagini di vario tipo, proprio grazie alla semplicit`a del loro funzionamento: l’utente pu`o in ogni momento scrivere ci`o che gli pas- sa per la mente, e grazie alla condivisione tematica, in Twitter l’utente si ritrova a interagire con parenti e/o colleghi, e inoltre pu`o esprimere opi- nioni e valutazioni inerenti a un certo topic o a certi prodotti all’interno del loro contesto, scambiando opinioni con altri utenti sui medesimi argo- menti. Da queste opinioni personali possono uscire senz’altro informazioni utili a determinare il grado di soddisfacimento dei clienti; la novit`a `e che queste informazioni, se tradotte e interpretate con sistemi ad hoc, possono essere maneggiate in maniera real-time, facilitando il lavoro di indagine e velocizzando le decisioni dell’azienda sul mercato: pi`u veloci, pi`u completi, pi`u profitti. Con precise API (che `e possibile scaricare online), `e possibile
  • 49. CAPITOLO 4. SENTIMENT ANALYSIS E TWITTER 39 recuperare i Tweet, e dopodich`e, attraverso sistemi in grado di utilizzare e implementare quelle tecniche di NLP di cui abbiamo parlato prima, siamo effettivamente in grado di interpretare commenti e fare detecting delle opi- nioni espresse dagli utenti. Ora che abbiamo interiorizzato il perch´e sia cos`ı importante sviluppare tecniche di NLP in relazione a questo fenomeno di Sentiment Analysis all’interno di Social Network come Twitter, facilitando la supremazia e il controllo di un’azienda sul mercato, sviluppando analisi predittiva e velocizzando tempi decisionali relativi alle opinioni degli utenti, dobbiamo valutare criticamente in quale maniera ad alto livello approcciar- ci a questo fenomeno: quali vantaggi mi pu`o dare un approccio semantico a differenza di uno probabilistico, o viceversa? Quale potrebbe essere il modello giusto per definire la Sentiment Analysis, che tuttora rimane una tecnica che non viene definita attraverso un modello univoco, ma con svaria- ti approcci? Il nucleo di queste valutazioni `e da trovare nelle prossime due sezioni, in cui illustreremo le caratteristiche di due approcci di Sentiment Analysis su Twitter, uno classico (analisi semantica), e uno invece relativo a una ricerca svolta nel 2014, probabilistico e molto pi`u moderno. 4.2 Sentiment Analysis semantica in Twitter L’approccio semantico che caratterizza attraverso alcuni modelli la Senti- ment Analysis in Twitter parte da una certa direzione di ricerca: ci pre- occupiamo di identificare, all’interno di Twitter (ma il discorso vale anche per altri tipi di blog, forum, etc.), quali sono le peculiarit`a semantiche da aggiungere a un modello di identificazione semantica, come ad esempio il ruolo di hashtag, di ripetizioni di carattere, emoticon: ci preoccupiamo di trovare un nuovo set di caratteristiche che derivino dalla rappresentazione concettuale semantica delle entit`a che appaiono nei tweets. Queste caratte- ristiche fanno riferimento ai concetti semantici che rappresentano le entit`a estratte dai tweets. La ragione per la quale un approccio semantico di que- sto tipo parte proprio da questa operazione sta nel fatto che certe entit`a e concetti tendono ad avere una pi`u forte consistenza con sentimenti positivi e negativi: conoscere queste relazioni ci aiutano senz’altro a determinare la polarit`a e i sentimenti semantici relativi alle entit`a, alzando di gran lunga la precisione e l’accuratezza dell’indagine. L’obiettivo principale che dob- biamo sempre avere in testa infatti `e quello di ricercare la miglior precisione e accuratezza nell’interpretazione di queste entit`a: conoscendo i loro legami semantici, siamo di gran lunga avvantaggiati all’interno degli algoritmi di NLP. Esistono diversi tool che sono in grado di estrapolare queste entit`a e interpretare i dati in questo modo: AlchemyAPI, Zemanta e OpenCa- lais. Nel lavoro proposto da Hassan, He [6], andiamo ad analizzare proprio attraverso un eseprimento l’efficienza di questi tool e il miglioramento del- l’accuratezza grazie ai modelli semantic-purpose che li caratterizzano, in relazione a tre diversi data-set forniti in input:
  • 50. 40 CAPITOLO 4. SENTIMENT ANALYSIS E TWITTER • Stanford Twitter Sentiment Corpus(STS): Dataset che `e formato da 60K tweets casuali, caratterizzati da emoticon, alcune negative e al- cune positive; • Health Care Reform (HCR): Dataset che `e formato da commenti contenenti l’hashtag # HCR (riforma della salute), dove sono stati eliminati commenti neutrali ma solamente raccolti trend positivi e negativi • Obama-McCain Debate (OMD): Dataset che `e formato da tutti quei tweets inerenti allo scontro per le presidenziali USA tra Obama e McCain: anche qui sono stati eliminati commenti neutrali o misti. Dopo aver definito pi`u o meno le caratteristiche del nostro data-set che abbiamo in ingresso, andiamo ora a definire la strada per applicare una metodologia di approccio semantica al problema della traduzione di questi dati (massimizzando la precisione e l’accuratezza dell’indagine Sentiment). Come detto prima, i concetti semantici delle entit`a che vengono estrapo- lati dai tweets possono essere usate per misurare la correlazione generale tra gruppi di entit`a (ad es: l’insieme dei prodotti Apple), con una polarit`a data; ma dobbiamo capire a questo livello, che l’analisi semantica non va solamente a descrivere le entit`a visibili dal tweet in questione, ma si prefigge di andare oltre, stabilendo tutte quelle connessioni semantiche che fan s`ı di riuscire a costruire legami tra entit`a in grado di descrivere la polarit`a anche di entit`a non ancora mai incontrate, ma che fanno parte di un certo gruppo semantico. Esempio lampante: se della frase “Finally, I got my iPhone!“ , noi riusciamo a estrapolare semanticamente la parola iPhone, che da sola non esprime essenzialmente una polarit`a, ma che sapendo che `e collegata direttamente al gruppo “Prodotti Apple“, e che questi prodotti sono stati classificati in generale ricchi di polarit`a positive (su algoritmi e stime pro- babilistiche), allora viene associato generalmente il termine iPhone a un trend positivo: ecco il cuore dell’analisi semantica e del modello proposto in questo documento, dove abbiamo la ricerca di caratteristiche semantiche in grado di approcciarsi con la Sentiment Analysis. Quindi, oltre ad avere i data-set in ingresso nello spazio originale di in- put, nell’analisi semantica abbiamo bisogno di un informazione aggiuntiva che riguarda le relazioni contestuali semantiche delle entit`a: come le inse- riamo nella nostra analisi? Facciamo riferimento a due metodi, aumento e interpolazione. Con il metodo dell’aumento, noi andiamo a inserire nello spazio input tutti quei concetti e tutte quelle caratteristiche semantiche, aumentando di gran lunga la grandezza del vocabolario e del corpus in ge- nerale: anche se ci`o, come accennato prima, pu`o essere un fattore positivo (pi`u termini nel corpus, pi`u machine learning), in relazione alla Sentiment Analysis ci rendiamo conto che la precisione pu`o diminuire di gran lunga, e aver utilizzato approccio semantico non ci `e servito quasi a nulla. Per questo viene molto meglio utilizzare il metodo dell’interpolazione; non an-
  • 51. CAPITOLO 4. SENTIMENT ANALYSIS E TWITTER 41 Figura 4.2: Schema del cuore dell’analisi semantica di un tweet diamo direttamente ad aggiungere tutti quei concetti semantici all’inizio della nostra analisi (in input), ma andiamo a definire attraverso una formu- la precisa la regola sotto la quale devono essere trovati e modellati questi concetti (runtime), che riguardano concetti semantici, sequenze di Part Of Speech, argomenti di sentiment; le API che dovranno implementare questo approccio dovranno essere molto elaborate, ma almeno in questo modo non perdiamo nulla in quanto precisione e accuratezza dell’analisi. In partico- lare, riprendendo i data-set illustrati precedentemente, applicando questi due metodi e anche un terzo, il replacement, che consiste semplicemente nel rimpiazzare l’entit`a di un tweet con il suo valore semantico, riscontriamo ci`o che viene illustrato nella tabella in figura. Interpretando questo schema, possiamo fare valutazioni critiche di vario tipo: concludiamo in generale che `e bene investire in un’analisi semantica quando l’azienda o un marchio vuole interpretare, con una precisione alta (magari facendo dipendere dei costi di manutenzione, sviluppo, in relazione Figura 4.3: Schema tabella data-set
  • 52. 42 CAPITOLO 4. SENTIMENT ANALYSIS E TWITTER a questi dati), anche un numero minore di tweet; ma ci rendiamo conto che il limite grosso sar`a implementare sistemi in grado di gestire, oltre la mole di dati provenienti dalla realt`a, anche tutte quelle connessioni semantiche di cui dobbiamo tenere traccia nel processo di interpretazione delle opinioni. 4.3 Sentiment Analysis probabilistica in Twit- ter: modello basato sul corpus A questo punto, dopo aver mostrato rapidamente un modello di approc- cio semantico alla Sentiment Analysis su Twitter, cercando di dare le basi per effetture analisi critiche inerentemente a quest’approccio, andiamo a valutare una metodologia duale, riprendendo anche concetti descritti gi`a nel secondo capitolo dell’elaborato: approccio statistico-probabilistico. Va- lutiamo un modello che investe questo approccio proponendo un modello portato avanti da ricercatori e ingegneri italiani(Vanzo,Croce, Basili) [12], che cercano di allargare il discorso e definire un modello basato sul corpus, e non sul singolo dato,tweet. Molti degli articoli scientifici, tecnici, inerenti alla Sentiment Analysis (periodo 2012-2015), sono stati molto incentrati sul- l’idea che il sentimento degli utenti fosse una funzione di un singolo tweet. Sulla questione di ridurre il sentimento a una funzione possiamo essere pi`u o meno d’accordo, ricordando che l’approccio probabilistico prevede proprio l’utilizzo di funzioni per descrivere frequenze relative, per trovare stati e eventi ed essere in grado di dare un’interpretazione ai dati del linguaggio naturale. Ma capiamo che ci possono essere molti svantaggi a ridurci all’a- nalisi di un solo tweet: questo perch´e in realt`a il tweet, che pu`o essere stato filtrato ovviamente da algoritmi ad hoc, `e un elemento di un contesto pi`u ampio, uno scenario di cui fa parte (ad esempio di un topic comune); perch´e gettare via l’informazione del contesto che comunque siamo sempre in grado di reperire, pensando che non ci serva a niente? Con questo modello capia- mo l’importanza di riuscire ad associare modelli non a singoli tweet, ma ad interi contesti di cui i tweet fanno parte: quello che viene cercato di fare `e di delegare il problema del riconoscimento e dell’interpretazione della polarit`a attraverso una classificazione che sta sopra un flusso di tweets. In quale modo riusciamo a fare questo, e soprattutto perch´e capiamo che utilizzare un approccio probabilistico su un singolo tweet sia poco preciso? (Obietti- vo fisso: accuratezza e precisione). Capiamo con un semplice esempio che l’interpretazione della polarit`a di un tweet pu`o essere molto ambigua, se non viene messa in relazione al contesto, allo scenario da dove viene fuori. Valutiamo il tweet “Sono d’accordo con te riguardo le sostituzioni“, ine- rentemente al topic inerente una partita di calcio specifica (linkata con il simbolo dell’hashtag #): con un’analisi sommaria, potremo quasi associare una polarit`a positiva a questo commento; ma, ricostruendo lo scenario e il contesto( qualche tweets precedente), capiamo che magari questo tweet `e di risposta a un tweet negativo (in disaccordo con le sostituzioni): ecco
  • 53. CAPITOLO 4. SENTIMENT ANALYSIS E TWITTER 43 l’impossibilit`a di delegare un approccio statistico a un singolo tweet. Per riuscire a svincolarci da questo problema, cerchiamo di porci un duplice obiettivo: per prima cosa, arricchiamo la rappresentazione contestuale di un tweet recuperando anche l’informazione dello scenario, argomento, di cui fa parte, e come seconda cosa introdurre una nuova classificazione pi`u complessa che lavora su un’intera sequenza di tweet(e non un singolo dato). Per fare questa classificazione complessa abbiamo un solo metodo: ridefini- re il ruolo di un vettore di interpretazione, che inizialmente era in grado di collegare una singola entit`a, tweet, ad un topic, ma che in questo contesto rivaluta le sue caratteristiche; il vettore `e unico ma sviluppa la rappresen- tazione delle entit`a in modo autonomo. Senza andare tanto in profondit`a a questo argomento, diciamo semplicemente che sfruttando la ridefinizione del SVM e l’allargamento del modello a investire tutto il contesto risulta la potenza moderna di questa tecnica, che trova nell’approccio probabilistico uno strumento magari non precisissimo, ma di cui gli studi stanno arrivan- do proprio a una precisione elevata, uno strumento sicuramente affidabile e di cui la traduzione `e poco onerosa a livello computazionale, tecnologico. Per concludere, in questo secondo scenario, ridefiniamo il vettore SVM che contiene diverse rappresentazioni di entit`a: in questo modo, ricostruiamo dal singolo tweet un contesto intero, attraverso ovviamente strumenti e for- mule basso livello, che vengono implementati da tecniche gi`a analizzate nel capitolo secondo; a livello di precisione non siamo al massimo, ma siamo in grado abbastanza velocemente di gestire tutti i dati provenienti dalla realt`a.
  • 54. 44 CAPITOLO 4. SENTIMENT ANALYSIS E TWITTER
  • 55. Conclusioni Durante il percorso trattato all’interno di questo documento, il mio obiettivo `e stato quello di mostrare i collegamenti che uniscono due mondi (intelligen- za artificiale e economia data-driven), che in apparenza crescono e maturano singolarmente, ma che a un certo punto vengono uniti per l’ascesa di nuove, fondamentali tecniche analitiche, come la Sentiment Analysis. Nell’ultimo capitolo capiamo l’importanza di definire modelli per questa tecnica: siamo in una realt`a nuova, dominata da dati che costituiscono la realt`a stessa, e interpretare questi dati significa interpretare l’intero contesto sociale moder- no: per questo motivo `e fondamentale dare una concretizzazione e sfruttare i vantaggi di una tecnica come la Sentiment Analysis, che si prefigge l’am- bizioso obiettivo di andare a ridefinire l’intero mondo del customer-care. Abbiamo valutato che approccio semantico e approccio statistico, che sono le basi di traduzione del linguaggio naturale in generale, applicati in questo contesto risentono degli stessi effetti che subiscono in un contesto non data- driven, e quindi possiamo valutare attraverso i punti forti e i punti deboli la riuscita o meno di questi approcci. In generale, essendo la Sentiment Analysis ancora in fase di cantiere come tecnica, non esiste l’approccio o il modello migliore di altri: semplicemente, possiamo fare delle valutazioni e accettare alcuni limiti a differenza di altri, utilizzando un contesto se- mantico o probabilistico, limiti che sapevamo gi`a esistere a livello teorico di traduzione del linguaggio. Noi non cambiamo nulla della teoria riguar- dante le tecniche di NLP (secondo capitolo del trattato): semplicemente prendiamo tutto il blocco NLP, definito prima come mediatore in un piano orizzontale all’interno del primo capitolo, e definito poi verticalmente nel secondo capitolo attraverso tutti i suoi piani di astrazione, e lo inseriamo in questo contesto data-driven, dopo aver definito nel terzo capitolo cosa implica una concezione dell’economia e del contesto sociale dominata dai dati e dal software. Il quarto capitolo `e il cuore di questa analisi, e vedia- mo che mettendo il blocco NLP in un contesto nuovo, moderno, dinamico, andiamo a descrivere nuove tecniche, e soprattutto legandoci alle nuove in- frastrutture informatiche, come i Social Network, andiamo a ridefinire il mercato intero, legandoci alle opinioni degli utenti e gestendo una nuova tecnica che ridefinisce questo ambito. Dobbiamo trovare ancora il modello migliore per descrivere questa nuova tecnica in Twitter: ma, in generale, abbiamo capito che (soprattutto nell’approccio probabilistico), conviene le- garci a un intero contesto, a un intero scenario, e non al singolo tweet, per
  • 56. 46 CAPITOLO 4. SENTIMENT ANALYSIS E TWITTER andare a descrivere quelle caratteristiche semantiche che facilitano l’ascesa della precisione e dell’accuratezza di un analisi di opinioni. Infine, questo trattato fornisce un ampio respiro verso il futuro e verso una ridefinizione del ruolo dell’Ingegnere Informatico all’interno dell’azienda, con la nascita di fondamentali nuovi mestieri: il Software non `e pi`u argomento di nicchia e delegato in uno spazio virtuale, esso esce dai computer ed entra nel mondo reale (attraverso devices), non andiamo pi`u quindi a mettere il reale nel virtuale (come nei primi siti web anni ’90), ma facciamo l’esatto contrario, andando a popolare il mondo reale di software. Una volta gli esperti del settore siti-web erano i Web Analytics, ma ora che il software entra dentro la realt`a e viviamo nuove tecnologie, avremo App Analytics per esempio, esperti di social business e social intelligence (basti pensare al mining delle immagini caricate sui Social Media usato per fini pubblicitari), predictive analytics (in grado di monitorare il comportamento di un cliente e anti- cipare le sue mosse), e infine data-scientist(esperti dell’interpretazione dei dati che compongono la realt`a). Tutte queste professioni stanno maturan- do grazie all’inserimento del Software all’interno della realt`a: ridefiniamo il ruolo dell’Ingegnere Informatico all’interno dell’azienda proprio perch´e, se l’azienda vuole primeggiare sul mercato, e il mercato `e popolato da dati e codice, allora significa che l’azienda deve essere in grado di interpretare que- sto codice, che non `e pi`u fine a s`e stesso, ma diventa il territorio per fare pi`u in generale Business Analysis. Grazie all’abilit`a di utilizzare pi`u linguaggi di programmazione, unita all’abilit`a di gestire database, e rimanendo nel nostro caso grazie all’importanza della conoscenza di tecnologie IA, l’Inge- gnere Informatico `e l’unica figura aziendale in grado di saper interpretare questi dati, e quindi la realt`a. Essere in grado di cambiare velocemente strategie e adattarsi a nuovi scenari tecnologici sar`a l’arma vincente per ogni azienda sul mercato moderno. Per essere padroni sul mercato, occorre essere padroni sulla realt`a; per essere padroni sulla realt`a, occorre essere padroni sui dati; per essere padroni sui dati, occorre essere padroni delle tecnologie informatiche.
  • 57. Ringraziamenti Vorrei spendere due parole per ringraziare tutte le persone che mi hanno sostenuto in questo percorso molto impegnativo ma estremamente gratifi- cante e che non mi hanno mai fatto mancare il proprio appoggio. In particolare, dedico questa tesi a tutta la mia famiglia e parenti, a mia mamma Cinzia, mio babbo Franco e mio fratello Andrea, che amo con tutto me stesso e da cui ho ricevuto un costante sostegno in questo difficoltoso ma soddisfacente percorso universitario, con un fortissimo sostegno morale ed economico per tutta questa fase di studio. Ringrazio di cuore la mia fidanzata Giulia, che arricchisce le mie giorna- te, che mi `e stata vicino sempre e soprattutto in questo ultimo periodo di studio-lavoro, non facendomi mai mancare il suo enorme affetto. Ringrazio tutti i miei amici, i pi`u intimi e meno, sia i compagni di corso universitario che mi hanno fatto compagnia in questi anni, facendomi ma- turare come ragazzo prima e come studente poi, e ovviamente tutti i miei amici di Pesaro, che sono il sale della mia vita. Ringrazio infine il mio relatore Andrea Roli e il mio correlatore Federico Chesani, che mi hanno aiutato a sviluppare bene questo trattato e han- no sempre mostrato enorme disponibilit`a, e che insieme ad altri docenti di Cesena mi hanno saputo far appassionare ad argomenti entusiasmanti e veramente interessanti, offrendomi anche la possibilit`a di poter cercare autonomamente la mia strada per il futuro, verso un ricco e nuovo scenario lavorativo. Con la speranza di proseguire il mio percorso di studi con la scuola Magi- strale, mando un abbraccio a tutti coloro che mi vogliono bene. GRAZIE! Giovanni Ciandrini
  • 58. 48 CAPITOLO 4. SENTIMENT ANALYSIS E TWITTER
  • 59. Bibliografia [1] JAVA API ON BABELNET: http://babelnet.org. [2] Pang B. and Lee L. Opinion mining and sentiment analysis. 2008. [3] G. Berruto. Corso Elementare di Linguistica Generale. Utet Universit`a, 2006. [4] Accoto C. Reality mining: dai big data alla social intelligence, le nuove professioni della data-driven economy. 07/05/2015. Universit`a di Ingegneria e Scienze Informatiche, Cesena. [5] Fiore E. Aspetti e problematiche del parser del linguaggio naturale, 2000. http://www.di.unipi.it/cappelli/seminari/fiore1.pdf. [6] Hassan and He. Semantic sentiment analysis of twitter. 11-15/11/2012. The 11th International Semantic Web Conference (ISWC 2012), Boston, USA. [7] Zelle J. and Tou Ng H. Corpus-based approaches to semantic interpre- tation in natural language processing. AI Magazine Volume 18 Number 4 (AAAI), 1997. [8] Karen Sparck Jones. Natural language processing: A historical review. 2001. [9] Schutze H. Manning D.C. Foundations of Statistical Natural Language Processing. The MIT press, 1999. [10] Navigli R. Natural language processing: Introduction. 27/04/2015. Universit`a di Bologna. [11] S. Russell and P. Norvig. Artificial Intelligence: A Modern Approach. Prentice Hall, 3rd edition, 2009. [12] Croce D. Vanzo A. and Basili R. A context-based model for sentiment analysis in twitter. 2014. Dipartimento di Enterprise Engineering, Universit`a di Tor Vergata, Roma.