Trattamento
Automatico del
Linguaggio Naturale
(1)
Cristina Bosco
Informatica applicata alla
comunicazione multimediale
2014-2015
Di cosa parleremo
-
definizione di NLP e MT
problemi e sottoproblemi
approcci
valutazione
Definizione
Con Trattamento Automatico del Linguaggio
Naturale (TAL) o il suo equivalente inglese
Natural Language Processing (NLP) o
Linguistica Computazionale
si indica quella parte dell’Intelligenza Artificiale
che si occupa specificamente del linguaggio
umano distinguendolo, grazie al termine
NATURALE, dai linguaggi di programmazione o
della logica.
Origini di NLP
Uno dei primi problemi che si è cercato di
trattare con il computer è quello della
traduzione automatica da una lingua ad
un’altra, in inglese Machine Translation (MT).
Ma a causa delle difficoltà emerse nello sviluppo
di sistemi di MT, ci si è rivolti ad approfondire i
problemi del linguaggio naturale anche in
modo indipendente dalla MT.
Brevissima storia di NLP e MT
- Anni ’30: si costruiscono le 2 prime macchine di
MT
- 1949: memorandum “On Translation”
- Anni ‘50-’60: si sviluppano i primi sistemi di MT
- Anni ‘60: la MT riceve molte critiche
- 1966: viene stilato il rapporto ALPAC
- Dopo il 1966: nascono NLP e CAT
- Fine ‘900: si ricomincia a lavorare a MT
NLP: i problemi
L’approfondimento dello studio del linguaggio
ha portato i ricercatori a scoprire una grande
varietà di problemi ad esso sottostanti. Noi
parleremo in particolare di:
- ambiguità nel linguaggio naturale
- variabilità e costante evoluzione del linguaggio
naturale
- differenze tra lingue, che possono richiedere
algoritmi parzialmente diversi, e che
impattano fortemente sui sistemi di MT.
NLP: esiste una GU?
Se fosse possibile ritrovare, al di là delle
differenze, una condivisione di principi tra le
diverse lingue ed una struttura basilare
comune a tutti i linguaggi, allora si potrebbero
trattare tutte le lingue con approcci e sistemi
simili.
Ma esistono principi comuni a tutte le lingue?
Secondo la teoria della Grammatica Universale
(GU) proposta da Noham Chomsky, questi
principi esistono.
NLP: esiste una GU?
La GU è una teoria linguistica secondo la quale i
principi della grammatica sono condivisi da
tutte le lingue, e sono innati in tutti gli esseri
umani.
Chomsky propose questa teoria per spiegare
l’acquisizione del linguaggio in presenza di
stimoli limitati: come può il bambino imparare
così bene la sua lingua madre e in così poco
tempo?
NLP: esiste una GU?
Chi parla fluentemente una lingua sa quali
espressioni sono accettabili nella propria
lingua e quali espressioni sono inaccettabili.
L'enigma chiave è capire come chi parla riesce
a comprendere le restrizioni del proprio
linguaggio, dal momento che le espressioni
che violano tali restrizioni non vengono
percepite durante l'apprendimento, né
vengono indicate come tali.
NLP: esiste una GU?
Lo stimolo offerto a chi apprende non contiene
prove che un'espressione appartenga alla
classe di frasi grammaticalmente scorrette e le
espressioni scorrette non vengono proposte a
chi apprende la lingua. La GU conterrebbe le
restrizioni su come è fatto il linguaggio che
portano chi apprende a non poter
generalizzare le regole in modo illecito.
NLP: esiste una GU?
L'idea di regole universali è presente già nel
pensiero di Fancesco Bacone e dei grammatici
speculativi che postulavano regole universali
alla base di tutte le grammatiche, e sta alla
base di molte teorie filosofiche del XVII secolo.
NLP: esiste una GU?
Secondo Sampson le teorie sulla GU non sono
refutabili in quanto le generalizzazioni
grammaticali alla base della GU sono
speculazioni sulle lingue esistenti, e non
valutazioni predittive sulle possibilità di una
lingua. La povertà dello stimolo si spiega
osservando che chi apprende un linguaggio
può ipotizzare da solo le restrizioni
grammaticali notando l'assenza di una certa
classe di espressioni.
NLP: esiste una GU?
Come vedremo più avanti, esistono approcci alla
MT che presuppongono l’esistenza di una
sorta di GU, ma si sono rivelati in pratica non
realizzabili.
E vedremo che si è rivelato molto difficile anche
pensare di descrivere completamente una
lingua tramite regole.
Sono queste delle prove empiriche del fatto che
non esiste una GU?
NLP: suddivisione in sottoproblemi
Il compito che NLP deve affrontare è quello di
COMPRENDERE IL LINGUAGGIO NATURALE.
Vista la sua difficoltà, si suddivide tale compito
in sottocompiti più semplici in cui occorre solo
una parziale comprensione del linguaggio:
- Information Extraction
- Information Retrieval
- Machine Translation
- Sentiment Analysis e Opinion Mining
- …
NLP: suddivisione in sottoproblemi
Anche quando si vuole affrontare il compito di
COMPRENDERE IL LINGUAGGIO NATURALE,
grazie a delle astrazioni lo si gestisce come
composto da più compiti da affrontare
separatamente:
- morfologia
- sintassi
- semantica
- pragmatica
NLP: suddivisione in sottoproblemi
Ad ogni livello di astrazione si risolvono diversi
problemi ed in particolare:
- trattamento delle ambiguità
- rappresentazione adatta ai sistemi di NLP
- acquisizione e utilizzo di conoscenza
linguistica linguistica nei sistemi di NLP
NLP: approcci
Mettendo insieme la definizione di Informatica
(= scienza che studia gli algoritmi per risolvere
problemi) con quella di NLP, risulta chiaro che
NLP si occupa di progettare gli algoritmi
necessari a trattare in modo automatico il
linguaggio naturale.
Nel corso degli anni si sono studiati algoritmi
che seguono approcci diversi ai problemi di
NLP, e in particolare approcci basati su regole
e approcci basati su corpora di dati linguistici.
NLP: approcci
L’applicazione di un algoritmo che segue
l’approccio basato su regole anziché quello
basato su corpora ha degli effetti significativi
su:
- come si costruisce il sistema di NLP
- quale conoscenza serve al sistema
- come deve essere acquisita la conoscenza
- come deve essere valutato il risultato prodotto
dal sistema
NLP: valutazione
Una importante attività legata ai sistemi di NLP è
quella che riguarda la valutazione.
L’obiettivo della valutazione è sempre quello di
scoprire fino a che punto le prestazioni del
sistema di NLP sono vicine a quelle offerte da
un essere umano che svolge lo stesso
compito.
Si tratta quindi di una valutazione insieme
qualitativa e quantitativa, che è molto
importante per decidere se un sistema è
pronto per essere utilizzato o dove si deve
NLP: valutazione
L’idea della valutazione nasce contestualmente
all’idea di Intelligenza Artificiale e resta
presente in tutta la storia dell’NLP.
Turing per primo richiama l’attenzione sulla
valutazione proponendo il famoso test che
porta il suo nome.
Il rapporto ALPAC propone la prima valutazione
“formale” della MT.
Tutte le volte che si costruisce un sistema di NLP
si deve dimostrare che produce i risultati
attesi.
NLP: riassumendo
Ci concentreremo su:
- cosa significa comprendere il linguaggio
- cosa è l’ambiguità e perché ci interessa
- come si può rappresentare il linguaggio
- come si può trattare il linguaggio
Cosa significa comprendere il linguaggio
naturale?
Comprendere un linguaggio naturale significa
essere in grado di associare UNA SOLA
interpretazione ad ogni espressione di tale
linguaggio.
Dove con espressione si intende: parola,
sintagma, frase …
Human Language
Understanding
• Si basa su una complessa conoscenza
grammaticale e lessicale
• È supportata da una almeno altrettanto ampia
conoscenza del mondo
• Insomma ... comprendere l’informazione
codificata nel linguaggio richiede una quantità di
conoscenza e competenza
Livelli di struttura linguistica
La complessità del linguaggio umano è tale
che si è soliti assumere diversi livelli di
astrazione per descriverlo ed analizzarlo.
Questa assunzione è fondamentale per il
NLP e per qualunque elaborazione
automatica del inguaggio.
Livelli di struttura linguistica
• fonetico: suoni del parlato, come vengono
prodotti, come vengono percepiti
• fonologico: la struttura grammaticale dei
suoni e del sistema sonoro
Ogni lingua ha delle convenzioni in base alle
quali certi suoni e certe composizioni di lettere
sono accettabili ed altri no:
ca / tcha / ça
taogt / gatto
Livelli di struttura linguistica
• morfologico: come le sotto-unità delle
parole si combinano per formare la parola
* remangia vs mangiare
* silavare vs lavarsi
Livelli di struttura linguistica
• sintattico: come le parole si combinano per
formare la frase
In italiano:
* bianco Giorgio il vuole pane
* Vuole bianco Giorgio pane il
Giorgio vuole il pane bianco
Ma in toba batak:
Manjaha buku guru
i
legge
libro maestro il
Livelli di struttura linguistica
• semantico (lessicale e proposizionale): che cosa
significa ogni parola e come i significati delle parole
si combinano per formare il significato della frase
* la macchia invisibile crede nel cielo
* idee verdi senza colore sognano
furiosamente
Livelli di struttura linguistica
• pragmatico: in che modo i significati delle
frasi sono utilizzati per manifestare gli scopi
comunicativi degli esseri umani all’interno del
contesto e della situazione di enunciazione
- La casa è la prima che trovi svoltando a destra
dopo il teatro
- La prima notte di San Silvestro del nuovo
millennio
- Questo è bello
Problemi
Oltre alla molta conoscenza che il NLU richiede,
il principale problema del NLP è la pervasiva
ambiguità del linguaggio a tutti i livelli di
analisi.
Noi vedremo in modo specifico i livelli
morfologico e sintattico, che sono quelli
maggiormente interessanti dal punto di vista
della traduzione.
Cosa è l’ambiguità?
Quando una frase contiene una ambiguità non è
possibile darne una (SOLA) interpretazione.
Perchè ci interessa l’ambiguità?
Gli esseri umani hanno una quantità di
conoscenza grazie alla quale
non percepiscono
molte delle ambiguità che invece una
macchina trova nel linguaggio.
Ambiguità morfologica
Trans-categoriale:
-
“Tutti hanno un TELEFONINO e a chi
TELEFONINO non si capisce”
- PESCA nome (il frutto, lo sport)
verbo (lo sport, l’estrazione, ...)
aggettivo (il colore)
Ambiguità semantica lessicale
brucia (bruciare, 3a persona, ind. pres., intr.):
- La carta brucia (“è un combustibile”)
- La casa di Mario brucia (“ha preso fuoco”)
- Il peperoncino brucia (“è piccante”)
- La minestra brucia (“è troppo calda”)
- La gola brucia (“causa dolore fisico”)
- La condanna brucia (“causa dolore mentale”)
Ambiguità sintattica
Può essere indipendente dall’ambiguità
morfologica: “Giorgio vide un uomo nel
parco con il telescopio”
Può causare ambiguità semantica: “Giorgio
vide un uomo con un telescopio”
Può essere relativa alle relazioni
grammaticali: “Chi uccise il poliziotto?”
Ambiguità sintattica
Può essere locale, nel senso che una parte della
frase ammette diverse analisi, ma solo una di
queste analisi è valida per la frase intera:
“I soldati, avvertiti del pericolo ...
..., condussero il raid di mezzanotte.”
“I soldati, avvertiti del pericolo ...
... i cittadini, condussero il raid di
mezzanotte.”
Ambiguità sintattica
Può essere globale ed anche irrisolvibile se la
frase completa ammette più analisi tutte
valide:
“La vecchia porta la sbarra”
Ambiguità semantica
Può essere determinata dall’ambiguità presente
ad altri livelli, e può dipendere dai
quantificatori:
- Ogni uomo ama una donna
= per ogni singolo uomo, esiste una
singola donna che egli ama
= esiste una sola singola donna che ognuno
degli uomini (preso singolarmente) ama
E sottoproblemi
Per gestire le difficoltà che la comprensione del
linguaggio nel suo complesso comporta, si
scompone il compito (task) del NLP in vari
sottoproblemi (subtasks) relativamente
indipendenti e consistenti con i livelli di analisi
identificati a livello teorico.
Analisi morfologica
Si analizza ogni parola PRESA SINGOLARMENTE
e se ne esplicitano le caratteristiche
grammaticali:
- categoria grammaticale della parola (Part of
Speech tagging), come nome, verbo,
aggettivo, ecc.
- Lemmatizzazione o ricerca delle radici, come
“vedere” per “vidi”, “rosso” per “rossi”, ecc.
Analisi morfologica
Deve essere chiarito cosa si intende per parola
PRESA SINGOLARMENTE ovvero si deve
affrontare la tokenizzazione del testo:
- mangiamelo è una singola parola o sono tre?
- della è una singola parola o sono due?
- e la punteggiatura?
• Es.: la morfologia di CANI è
CANE (lemma), NOME COMUNE (categoria
grammaticale), MASCHILE (genere),
SINGOLARE (numero)
• Es.: la morfologia di DORMÌ è
DORMIRE (lemma), VERBO (categoria
grammaticale), INDICATIVO (modo), PASSATO
REMOTO (tempo), 3 (persona), SINGOLARE
(numero)
Analisi morfologica
Un esempio di analisi morfologica di una frase
1. la (IL ART DEF F SING)
2. storia (STORIA NOUN COMMON F SING)
3. non (NON ADV NEG)
4. educa (EDUCARE VERB MAIN IND PRES 3 SING)
5. a (A PREP MONO)
6. nulla (NULLA NOUN COMMON M SING)
E se la parola è ambigua? Un esempio di analisi
possibile:
1. la (IL ART DEF F SING)
2. pesca (PESCA NOUN COMMON F SING)
pesca (PESCARE VERB MAIN IND PRES 3 SING)
pesca (PESCARE VERB MAIN IMP PRES 2 SING)
3. non (NON ADV NEG)
4. è (ESSERE VERB MAIN IND PRES 3 SING)
5. un (UN ART INDEF M SING)
6. frutto (FRUTTO NOUN COMMON M SING)
Analisi sintattica
Riguarda le informazioni a livello dell’intera frase
e si può impostare secondo due modelli teorici:
- riconoscimento della struttura sintagmatica
della frase, cioè dei sintagmi e del modo in cui
si compongono tra di loro
- riconoscimento della struttura relazionale della
frase in cui gli interi sintagmi o le singole parole
sono legate tra di loro
Analisi sintattica
La struttura sintagmatica:
- in cosa consiste
- come si rappresenta
Analisi sintattica: sintagmi
La struttura sintagmatica della frase, detta anche
struttura a costituenti rappresenta la suddivisione
della frase in sottounità più piccole e così via
procedendo in ordine gerarchico:
La frase è un sintagma composto (e.g.) da sintagma
nominale + sintagma verbale.
Il sintagma verbale è composto (e.g.) da verbo +
sintagma nominale.
Il sintagma nominale è composto da articolo +
sintagma nominale … ecc.
Analisi sintattica: sintagmi
La struttura sintagmatica della frase si
rappresenta tradizionalmente con degli alberi,
perchè sono le strutture che meglio consentono
di mostrare un ordinamento gerarchico di
elementi.
Quindi il risultato prodotto su una frase da un
sistema di analisi sintattica, detto PARSER, è un
albero sintattico o albero di derivazione.
Analisi sintattica: sintagmi
Analisi sintattica: sintagmi
E se la frase contiene ambiguità sintattiche?
Una frase ambigua permette più di una analisi
sintattica, quindi verranno costruite più
strutture per la stessa frase.
Esempio: “Giorgio vide l’uomo dentro il parco
con il telescopio”
Analisi sintattica: sintagmi
Analisi sintattica: sintagmi
L’albero di derivazione corrisponde alla
seguente interpretazione della frase
ambigua:
Giorgio vide l’uomo, Giorgio lo vide dentro il
parco, Giorgio lo vide utilizzando il telescopio
Analisi sintattica: sintagmi
Analisi sintattica: sintagmi
L’albero di derivazione corrisponde alla
seguente interpretazione della frase
ambigua:
Giorgio vide l’uomo, Giorgio lo vide dentro il
parco, il parco che ha il telescopio
Analisi sintattica: sintagmi
Analisi sintattica: sintagmi
L’albero di derivazione corrisponde alla
seguente interpretazione della frase
ambigua:
Giorgio vide l’uomo, l’uomo che stava
dentro il parco, e Giorgio lo vide
utilizzando il telescopio
Analisi sintattica: sintagmi
Analisi sintattica: sintagmi
L’albero di derivazione corrisponde alla
seguente interpretazione della frase
ambigua:
Giorgio vide l’uomo, l’uomo che stava
dentro il parco, il parco che ha il telescopio
Analisi sintattica: sintagmi
I quattro alberi di derivazione non esauriscono
tutte le possibili strutture che si possono
costruire per la frase.
In questo esempio l’ambiguità è determinata
dalla presenza di sintagmi preposizionali che
possono essere agganciati praticamente a
qualunque altro sintagma.
Analisi sintattica
La struttura relazionale:
- in cosa consiste
- come si rappresenta
Analisi sintattica: relazioni
La struttura relazionale, detta anche struttura a
dipendenze, mostra in che rapporto stanno tra
loro le parole della frase tramite le cosiddette
relazioni grammaticali o di dipendenza.
In “il cane dorme” cane è il SOGGETTO del verbo
dorme.
In “Mario sovente mangia banane” sovente è un
modificatore del verbo mangia, mentre banane è
l’oggetto del verbo mangia.
Analisi sintattica: relazioni
La struttura a dipendenze della frase si
rappresenta tradizionalmente con degli alberi,
perchè sono le strutture che meglio consentono
di mostrare le relazioni sugli archi che legano le
parole.
Quindi il risultato prodotto su una frase da un
sistema di analisi sintattica, detto PARSER, è un
albero sintattico a dipendenze.
Analisi sintattica: relazioni
Es.: la sintassi della frase “Giorgio ama Maria”
ama
SUBJ
Giorgio
OBJ
Maria
Analisi sintattica: relazioni
Es.: la sintassi della frase “Balzac non perse mai
la sua inclinazione per la speculazione.”
Analisi sintattica: relazioni
Es.: la sintassi della frase “Galli laeti in castra
pergunt”
Analisi sintattica: relazioni
Es.: la sintassi della frase
“Cicero consul
coniurationem
Catilinae
detexit”
Analisi sintattica
Qualunque sia la rappresentazione adottata per la
sintassi, non si risolve il problema dell’ambiguità.
Molto sovente le ambiguità del linguaggio
naturale non sono percepite dagli esseri umani.
Questo ha indotto gli studiosi di NLP a credere
che trattare il linguaggio naturale fosse molto
più semplice di quello che si è poi rivelato.
Analisi sintattica
Un esempio concreto di come l’ambiguità
sintattica non viene percepita?
Io mangio le fragole con la panna.
Quante diverse strutture sintattiche posso
costruire?
mangio
A)
Io
le fragole
con la panna
?
mangio
B)
Io
le fragole
con la panna
Io mangio le fragole con la panna.
Nessun essere umano sceglierebbe la B ed
aggancerebbe il sintagma preposizionale con
la panna al sintagma verbale mangio, invece
che al sintagma nominale le fragole.
Eppure la struttura B è assolutamente sensata
dal punto di vista sintattico se si prescinde da
qualunque considerazione semantica.
mangio
A)
le fragole
Io
B)
?
con il cucchiaio
mangio
con il cucchiaio
Io
le fragole
Infatti, in altri casi, come
Io mangio le fragole con il cucchiaino.
la struttura B verrebbe naturalmente scelta,
agganciando il sintagma preposizionale con il
cucchiaino al sintagma verbale mangio, invece
che al sintagma nominale le fragole.
Inoltre, la presenza di ambiguità é
proporzionale alla lunghezza della frase.
3 (7): List the sales of products in 1973
10 (8): List the sales of products produced in 1973
28 (13): List the sales of products produced in
1973 with the products in 1972
455 (14): List the sales of products produced in
1973 with the products produced in 1972
Il problema dell’ambiguità provocata dalla
presenza dei sintagmi preposizionali è uno
dei più classici e difficili per i sistemi di NLP.
Alcuni esperimenti hanno dimostrato che
scegliere dove agganciare il sintagma
preposizionale è un compito difficile anche
per gli esseri umani.
Sicuramente i risultati dimostrano che lo è
molto di più per i sistemi di NLP.
Un esperimento sull’ambiguità sintattica provocata
dall’aggancio del sintagma preposizionale
- applicazione di un analizzatore sintattico (parser)
ad un corpus di 13 milioni di parole
- rilevazione delle associazioni lessicali, i.e. cooccorrenze di nomi o verbi con determinate
preposizioni, ES. “to” in abbinamento con “send”
nel contesto “send NP to …”
NB: il parser, non può risolvere le ambiguità
strutturali e produce parti sconnesse di strutture
sintattiche da cui è estratta l’associazione lessicale
Vengono estratte 2.500.000 associazioni
lessicali, di cui oltre 200.000 ambigue
Si applica il modello probabilistico Lexical
Association score:
LA(v,n,p) = log2 x (P(verb_attach p |
v,n)/P(noun_attach p | v,n))
cioè si cattura la frequenza con cui certi nomi
e verbi co-occorrono con certe preposizioni
e la si rappresentata con il modello LA
Lo stesso task di aggancio del sintagma
preposizionale viene svolto:
automaticamente con l’approccio corpusbased lessicalizzato (modello LA) >>> errore
del 20%
separatamente da 2 giudici umani >>> errore
del 12-15%
automaticamente con approcci strutturali:
right association >>> errore del 33%
minimal attachment >>> errore del 67%
L’esperimento dimostra che
1)Il task dell’aggancio del sintagma
preposizionale è difficile
2)Il task non può essere affrontato con
successo grazie a regolarità di tipo morfologico
e sintattico, quindi non esiste una regola che ci
consenta di risolverlo
3)Una certa regolarità esiste, ma solo a livello
statistico e probabilmente legata alla
semantica delle parole coinvolte nella struttura
Questo esperimento è stato determinante per
la definizione degli approcci basati su corpora
Se le regolarità del linguaggio non possono
essere formalizzate in regole, non vuol dire che
non esistono.
Come il linguaggio stesso, le regole che lo
governano sono complesse e hanno molte
varianti, per cui diventa molto difficile
descriverle e il metodo più sensato per farlo
sembra essere la statistica.
Scarica

NLP-2015-1-