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?
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: 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
intervenire per migliorarlo.
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
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: sintagmi
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.
Es.: la sintassi della frase “Giorgio ama Maria”
Giorgio
ama
Maria
SUBJ OBJ