Introduzione
What magical trick makes us intelligent?
The trick is that there is no trick.
The power of intelligence stems from our vast diversity,
not from any single, perfect principle.
M. Minsky
Queste frasi sono tratte dal celebre libro The Society of Mind [5] (la
societ a della mente
1
) di Marvin Minsky
2
, uno dei \pionieri" nel campo
dell’Intelligenza Arti ciale (IA) . Una possibile traduzione di questa cita-
zione potrebbe essere: Quale magico trucco ci rende intelligenti? Il trucco
e che non vi e alcun trucco. Il potere dell’intelligenza deriva dalla nostra
enorme diversit a, non da nessun singolo, perfetto principio. .
Nel suo libro, Minsky spiega la teoria che svilupp o agli inizi degli anni
’70 insieme a Seymour Papert
3
presso il MIT Arti cial Intelligence Lab
4
e
che rappresenta la prima descrizione comprensibile della teoria della strut-
tura mentale e del suo sviluppo. In tale teoria Minsky pone l’accento sulla
1
Traduzione italiana a cura di G. Longo: M. Minsky, La societ a della mente , volume
10 di Biblioteca Scienti ca , Adelphi, 4
a
ed., 1989.
2
Marvin Lee Minsky (New York City, 9 agosto 1927), informatico e scienziato
statunitense specializzato nel campo dell’intelligenza arti ciale.
3
Seymour Papert (Pretoria, 1 marzo 1928), matematico, informatico ed educatore
sudafricano.
4
MIT (Massachusetts Institute of Technology) Computer Science and Arti cial
Intelligence Laboratory. Sito Web: http://www.csail.mit.edu/.
1
Introduzione 2
rappresentazione della conoscenza e sul problema ad essa connesso del supe-
ramento del formalismo nora a disposizione e di liberarsi dalle costrizioni
dei vecchi sistemi, contribuendo cos a porre gran parte delle basi teoriche
dell’IA moderna.
Una delle principali attivit a dell’IA odierna e rappresentata dal Natural
Language Processing (NLP). Il NLP si occupa dell’estrazione di informazio-
ni semantiche da espressioni del linguaggio umano, scritte o parlate. Questa
disciplina sta subendo un rapido sviluppo dovuto soprattutto al forte in-
teresse mostrato dal mondo accademico e da quello industriale in questa
direzione.
All’interno del NLP si possono individuare alcuni task, tra i quali com-
pare il problema della Clause Identi cation (CI) , cio e l’ identi cazione
delle proposizioni. La CI consiste nell’estrazione delle proposizioni (clau-
se) da una frase e costituisce una delle fasi necessarie nell’elaborazione del
linguaggio naturale, in quanto consente di suddividere una frase nei suoi
elementi costituenti, necessari per l’analisi successiva. Ad esempio la frase
\Il gatto che ho visto e un persiano e mangia pesce." viene suddivisa come
segue:
((Il gatto (che ho visto) e un persiano) e (mangia pesce).)
dove ciascuna coppia di parentesi aperta-chiusa racchiude un insieme di
elementi che formano una clause, individuando cos la struttura gerarchica
della frase.
La presente tesi di laurea si colloca appunto nell’ambito della CI, infatti
descrive dettagliatamente il lavoro di studio, progetto e realizzazione di un
modello di clause identi cation, applicato alla lingua italiana. L’obiettivo
del lavoro svolto e stato quello di implementare il modello basandosi su
tecniche di Machine Learning e avvalendosi il meno possibile di \regole" e
di intervento umano.
Introduzione 3
In letteratura sono proposte varie metodologie per a rontare la CI, che
sono state analizzate cercando di individuarne i vantaggi e gli svantaggi.
In particolare e stato analizzato il modello che ha vinto la competizione
CoNLL-2001 [2], il quale risulta fra quelli con prestazioni migliori per la
lingua inglese ed e basato sull’uso di Perceptron e dell’algoritmo AdaBoost.
L’architettura del modello descritto in questa tesi si basa invece su di
una nestra di token per predire l’etichetta del token considerato. Le eti-
chette previste codi cano l’inizio, la parte intermedia e la ne di una clause,
oppure una clause costituita da un solo elemento. Per attribuire l’etichetta
ai token e stato utilizzato un classi catore basato su Support Vector Machine
(SVM) che usa come ingresso delle feature che descrivono i token presenti
nella nestra, oltre a informazioni globali sulla frase e sulle clause ottenute
dalle predizioni precedenti e ettuate nella scansione della frase. Sono sta-
te valutate con gurazioni di feature di erenti, cercando di migliorare il pi u
possibile le prestazioni per la lingua italiana.
Le prestazioni riguardano l’identi cazione delle clause complete e sono
state valutate mediante accuracy, precision, recall e F-measure. La con gu-
razione migliore ha permesso di ottenere una F
=1
’ 78%
5
, che e allineata
con i risultati disponibili per la lingua inglese, anche se inferiore al miglior
risultato riportato nel lavoro citato in precedenza.
La motivazione principale di questo lavoro e il futuro inserimento del
modulo implementato all’interno di una piattaforma per il NLP che prevede
l’analisi di frasi in ingresso in varie fasi, di cui quella considerata si colloca
ad un livello intermedio.
La piattaforma linguistica di NLP e stata progettata da QuestIT
6
, un’a-
zienda spin-o dell’Universit a degli Studi di Siena a stretto contatto con il
Dipartimento di Ingegneria dell’Informazione (DII) della medesima univer-
sit a. Questa complessa applicazione dovr a o rire come servizio principale
5
Si intende la F-measure de nita dal CoNLL-2001 (vedi paragrafo 4.3.2).
6
QuestIT S.r.l. Sito Web: http://www.quest-it.com/, e-mail: [email protected].
Introduzione 4
il Question Answering (QA), che e uno dei grandi sogni dell’IA. La piat-
taforma avr a infatti come scopo primario quello di rispondere in maniera
automatica e precisa a domande poste dagli utenti in linguaggio naturale in
italiano, attraverso una risposta singola o multipla sul tema richiesto.
Tale software potrebbe supportare l’attivit a di un motore di ricerca su
Web, o avere una funzione locale di ltro all’interno di una serie di docu-
menti, in modo da fornire una presentazione alternativa e puntuale dei dati.
Questo consentirebbe alle aziende di ottenere una maggiore qualit a delle
informazioni trovate e di ridurre i tempi di ricerca, consentendo di raggiun-
gere nozioni pi u precise senza correre il rischio di trovare dati non pertinenti
all’argomento cercato.
Struttura della tesi
Di seguito viene illustrato brevemente il contenuto dei vari capitoli di cui si
compone l’elaborato di tesi:
Capitolo 1: questo capitolo tratta il Natural Language Processing e come
e strutturata la piattaforma linguistica in relazione ad esso. Viene ini-
zialmente spiegato il problema generale facendo anche riferimento alla
linguistica computazionale. Segue poi un approfondimento sulle fasi
principali di cui il NLP si compone, ponendo particolare enfasi sulle
parti necessarie per la successiva comprensione del livello di Clause
Identi cation.
Capitolo 2: in questo capitolo si va a de nire il problema della Clause Iden-
ti cation e si parla delle proposizioni. Vengono illustrati gli approcci
al NLP presenti in letteratura. In questa ultima sezione del capitolo
vengono analizzati alcuni approcci su PoS Tagging e Chunking e pi u
in dettaglio approcci sulla CI, riferendosi soprattutto al lavoro di X.
Carreras e L. M arquez accennato nell’Introduzione.
Introduzione 5
Capitolo 3: il terzo capitolo e dedicato alle tecniche di Machine Lear-
ning tipicamente utilizzate per fare NLP e alle misure utilizzate per
giudicare le prestazioni dei vari modelli.
Capitolo 4: questa e la parte fondamentale della tesi, infatti qui viene de-
scritta tutta la parte di progetto e implementazione del modulo di CI
da inserire nella piattaforma linguistica. La prima sezione vede una
descrizione dei dati disponibili e la costruzione dei dataset. Nella se-
conda sezione si illustra invece la struttura della piattaforma, parlando
dell’implementazione dei vari livelli, dando anche qui maggiore impor-
tanza ai moduli dai quali il livello di CI dovr a dipendere. A seguire
la parte sull’implementazione vera e propria del livello di CI. Viene
quindi spiegata l’applicazione delle misure delle prestazioni (descritte
nel Capitolo 3) al caso speci co, viene approfondita la metodologia
adottata e tutte le fasi implementative, ovvero i vari tipi di model-
li realizzati accompagnati dall’idea e le motivazioni di ognuno e dai
risultati ottenuti, nonch e da commenti su tali risultati e dagli e etti
prodotti sulla classi cazione. L’ultima sezione del capitolo presenta un
riassunto dei risultati ottenuti e un confronto con i modelli analizzati
in letteratura.
Conclusioni: nell’ultimo capitolo sono tratte le conclusioni sul lavoro svol-
to ed enunciati i possibili sviluppi del progetto e le idee fondamentali
che non sono state messe in pratica per motivi di tempo.
Capitolo 1
Natural Language Processing
Il Natural Language Processing (NLP), o elaborazione del linguaggio na-
turale, e inteso come un insieme di tecniche e strumenti dedicati all’analisi
e alla processazione del linguaggio usato comunemente, cio e il linguaggio
naturale appunto.
Il linguaggio naturale pu o essere espresso in vari modi: scritto, parlato
o a gesti.
Come campo interno all’Intelligenza Arti ciale, il NLP ha come scopo
ultimo quello di riuscire a comprendere il linguaggio cos come lo fanno gli
esseri umani fra di loro. Risulta ovvio che questo e un problema molto
complesso, anche perch e le frasi in linguaggio naturale non hanno sempre
un senso univoco. Inoltre esse dipendono dalle caratteristiche intrinseche
della lingua.
Al ne di sempli care l’elaborazione complessiva, il NLP e suddiviso in
tre fasi fondamentali:
Analisi lessicale. Scomposizione di un’espressione linguistica in elementi
atomici, detti token. Nel caso del linguaggio naturale scritto, essi sono
rappresentati da parole, segni di punteggiatura, cifre, ecc.
6
1. Natural Language Processing 7
Analisi sintattica. Organizzazione ordinata dei token in una struttura
sintattica.
Analisi semantica. Assegnazione di un signi cato alla struttura sintattica
e quindi all’espressione linguistica in questione.
Risolvere tutte queste fasi e un processo di cile che presuppone che in
qualche modo lo strumento automatico che le esegue riesca a capire le regole
del linguaggio.
1.1 Linguistica computazionale
Il NLP e spesso riferito con il nome di Linguistica Computazionale (Com-
putational Linguistics). La linguistica computazionale e in realt a la di-
sciplina riguardante l’utilizzo di strumenti informatici per l’elaborazione
del linguaggio umano, mentre il NLP ne rappresenta l’elaborazione vera
e propria.
La linguistica computazionale comprense sia la statistica allo studio del
linguaggi naturali sia l’informatica. Gli studiosi che se ne occupano so-
no infatti un gruppo misto di: linguisti, informatici, esperti in intelligenza
arti ciale, psicologi cognitivi e logici.
1.2 Passi dell’elaborazione
Ritornando all’elaborazione rappresentata dal NLP, si pu o osservare che le
fasi fondamentali viste all’inizio possono essere suddivise in una maniera pi u
comune nel campo informatico. Questi passi pi u speci ci sono anche detti
livelli del NLP, e sono descritti di seguito.
1. Natural Language Processing 8
1.2.1 Tokenization
Come suggerisce il nome, la Tokenization e la suddivisione del testo in una
serie di unit a \indivisibili" che sono i token. Essi possono essere:
un’entit a morfo-sintattica (una parola essa, \word form");
un segno di punteggiatura oppure un carattere speciale (es.: &, @, %);
un numero.
1.2.2 Part-of-Speech Tagging
Il Part-of-Speech Taggin, spesso abbreviato con PoS Tagging, e il problema
di assegnamento alle parole del testo di un’etichetta morfologica (\part of
speech") che pu o essere un verbo, un nome, un pronome, un aggettivo, un
aggettivo, un avverbio, una preposizione, una congiunzione o un’intergiun-
zione.
Ciascuna di queste classi indica il ruolo che parola assume all’interno
della frase.
1.2.3 Chunking
Il Chunking (o Shallow Parsing) e l’analisi della frase che identi ca le costi-
tuenti, dette chunk (sintagmi nominali, verbali, preposizionali), senza per o
speci carne la struttura interna, n e il loro ruolo nella frase.
Un chunk e formato da uno o pi u elementi (token) adiacenti.
1.2.4 Clause Identi cation
Spiegata in dettaglio nel capitolo successivo.