Elaborazione del linguaggio
naturale
Maria Teresa PAZIENZA
a.a. 2015-16
Intelligenza Artificiale e NLP
Il linguaggio è un meccanismo di comunicazione il cui
tramite è il testo o il discorso.
Una macchina sarà considerata veramente intelligente solo
quando sarà in grado di elaborare il linguaggio naturale
come fa un umano. (test di Turing)
L’ingegneria è interessata, oltre che alla creazione di nuova
conoscenza, anche alla creazione di sistemi per ottenere
gli obiettivi desiderati.
I sistemi ingegnerizzati devono essere conformi a specifici
criteri di adeguatezza (es. criteri legati all’esecuzione di
processi in un certo tempo ed in un certo spazio)
Analisi del linguaggio naturale
multimedialità /
multimodalità
parlato
scritto
tecnologie del linguaggio
tecnologie
della conoscenza
Elaborazione del linguaggio naturale
I metodi, le tecniche, i tools, e le applicazioni
relativamente alla modellizzazione dell’uso
del linguaggio naturale costituiscono le
tecnologie del linguaggio naturale
(ingegneria del linguaggio naturale)
Ingegneria del linguaggio naturale
Sistemi per l’elaborazione del linguaggio naturale
Sviluppo di algoritmi per il parsing, la generazione, e la
acquisizione di conoscenza linguistica
Indagine su complessità spaziale e temporale di tali algoritmi
Progettazione dei linguaggi formali computazionalmente utili
(es. grammatiche e formalismi lessicali) per codificare
conoscenza linguistica
Indagine su architetture software appropriate
Considerazioni sui tipi di conoscenza non linguistica che
vengono utilizzati per la comprensione del linguaggio
naturale
Problematiche di integrazione in sistemi applicativi più ampi
Elaborazione del linguaggio naturale
Un programma conta il numero di bits, bytes e linee in
un file testo: quando deve contare le “parole” dello
stesso file di testo, allora è necessario che abbia
conoscenza di ciò che significa essere una “parola”.
Sono necessarie varie tipologie di conoscenza linguistica
per elaborare un testo nella sua completezza oltre a
conoscenza eventuale sul contesto (applicativo)
Elaborazione del linguaggio naturale
morfologia
La morfologia fornisce informazioni su le forme
possibili per ogni parola del linguaggio ed il loro
comportamento. Inoltre riconosce le variazioni
delle parole singole.
di, del, della, delle,…
casa, case, casetta, …
capostazione, capistazione, …
la, le, lo, gli, …
la, lo, li, …
Elaborazione del linguaggio naturale
sintassi
La sintassi contiene la conoscenza necessaria per
spiegare come sequenze di parole possano non
aver alcune senso a dispetto di altre sequenze che
contengono invece esattamente, e nell’ordine
corretto, le stesse parole.
La FIAT produce autovetture
La autovetture produce FCA
Elaborazione del linguaggio naturale
semantica
Per capire il significato di una frase, oltre alla conoscenza
delle parole e della struttura sintattica, è necessario
avere
• conoscenza del significato di ogni parola componente
la frase (semantica lessicale) e
• conoscenza di come queste componenti si combinino
per formare significati più larghi (semantica
composizionale)
Elaborazione del linguaggio naturale
pragmatica
L’uso appropriato di espressioni di cortesia, o di stile
a sottolineare la volontà di essere cortese
(amareggiato, contrariato, affabile, benaugurale,
volitivo, …) sono descritte dalla pragmatica.
La strutturazione corretta dei termini in risposta ad
una domanda all’interno di una conversazione
richiede conoscenza della struttura del discorso.
Elaborazione del linguaggio naturale
In sintesi la conoscenza del linguaggio necessaria per la
comprensione dei testi si articola in 5 distinte categorie:
Morfologia: scomposizione delle parole in unità minime di
significato (dogs=dog+s)
Sintassi: definizione delle relazioni strutturali tra le parole
Semantica: attribuzione del significato delle espressioni
Pragmatica: studio di come il linguaggio è usato per raggiungere
un obiettivo (usi/convenzioni linguistiche)
Analisi del discorso: identificazione delle relazioni tra unità
linguistiche più ampie della singola frase
Elaborazione del linguaggio naturale
L’elaborazione di un testo prevede l’attivazione di tool
con conoscenza linguistica per l’analisi delle singole
componenti e la risoluzione di possibili
interpretazioni ambigue in ciascuna delle singole
fasi.
Un testo è ambiguo se esistono più strutture linguistiche
alternative che possono essere generate durante le
fasi di analisi (non-determinismo)
L’ambiguità è il motivo per cui le macchine non
riescono ad elaborare completamente il linguaggio
naturale.
Elaborazione del linguaggio naturale
Problema dell’ambiguità
La vecchia porta la sbarra
Esistono più interpretazioni di questa frase
•
•
una vecchia signora trasporta una sbarra
una vecchia porta sbarra una signora
Ambiguità
Una vecchia porta la sbarra
1-una
2-vecchia
3-porta
4-la
5-sbarra
articolo
aggettivo/sostantivo
sostantivo/verbo
articolo/pronome
sostantivo/verbo
Proliferazione degli alberi sintattici
Assegnazione di più di un significato alla frase
Ambiguità
Fare
Un
Piano
Fare un piano
verbo
articolo
sostantivo/avverbio/aggettivo
Assegnazione di più di un significato alla frase
Fare
costruire, progettare, ideare
Piano
pianoforte, progetto, piano d’azione, piano
dell’edificio
Word-sense disambiguation (lexical disambiguation) ,
Context analysis
Fare un piano (di corsa)
Ambiguità
La palla di Maria era arrivata davanti ai piedi di
Mario. Lui le diede un calcio.
L’auto verde è arrivata sul tavolo del Ministro dei
Trasporti.
Assegnazione di più di un significato alla frase
• risoluzione dell’anafora (def.: il riferirsi di una parola,
solitamente un pronome, a una o più parole precedenti diz. De Mauro)
• conoscenza di dominio
• senso comune
Ambiguità
Il fiume scorre veloce nel suo alveo
Il traffico scorre veloce nella strada principale
Giovanni ama Maria
Giovanni ama i racconti d’avventura
Assegnazione di più di un significato alla frase
metafora (def.: figura retorica che consiste nel trasferire il significato di una
parola o di un’espressione dal senso proprio a un altro figurato che abbia
con il primo un rapporto di somiglianza – diz. De Mauro)
Ambiguità
L’auto verde è arrivata sul tavolo della Presidenza del
Consiglio
C’è acqua in frigo?
Assegnazione di più di un significato alla frase
• metafora
• nomi propri
• terminologia
• modello del mondo
• senso comune
Ambiguità
Mario guardò la ragazza con la minigonna
Mario guardò la ragazza con la cartella
Mario guardò la ragazza con il binocolo
Mario guardò la ragazza con il collega
Mario guardò la ragazza con sospetto
• strutture argomentali dei verbi
• contesto
• senso comune
Ambiguità
Il significato di una frase non è dato solo dal
significato delle parole
Si richiede la conoscenza delle regole che governano:
• il significato con cui le parole sono combinate,
• l’ordine con cui compaiono,
• i legami che le legano ad altri termini all’interno ed
all’esterno della frase.
E’ spesso necessario fare delle inferenze ed avere una
conoscenza del mondo.
Perché l’ambiguità è un problema?
Lo spazio di ricerca: esplosione combinatoriale
Sostanzialmente l’ambiguità aumenta il numero delle
possibili interpretazioni delle espressioni in linguaggio
naturale da controllare. L’esplosione combinatoriale deriva
dal dover moltiplicare le analisi per ciascuna diversa
interpretazione.
Es. Supponiamo che ciascuna parola di una frase di 10
parole possa avere 3 interpretazioni: il numero totale delle
interpretazioni della frase sarebbe
3*3*3*3*3*3*3*3*3*3= 59049
Perché l’ambiguità è un problema?
Ambiguità locale - globale
Ambiguità globale:
“Giovanni conosce molte più ragazze di Mario”
Ambiguità locale:
“anche se lui ne conosce molte”
Ambiguità locale significa che una parte della frase può
avere più di una interpretazione
Ambiguità globale significa che l’intera frase può avere
più di una interpretazione
Perché l’ambiguità è un problema?
Ambiguità locale - globale
L’ambiguità locale si può talvolta risolvere con
l’analisi sintattica
es. The old trains …
…the young
…left the station
(1)
(2)
La sintassi permette di disambiguare che train nella
frase 1 è verbo e nella frase 2 è sostantivo
Perché l’ambiguità è un problema?
Ambiguità locale - globale
L’ambiguità globale richiede un’analisi semantica e
pragmatica
es. Vidi il Gran Canyon volare a New York (1)
Vidi il Boeing 747 volare a New York (2)
Il significato delle due frasi viene disambiguato perché
sappiamo cosa può volare e cosa no (semantica).
In particolari circostanze le interpretazioni possono
cambiare (pragmatica)
Tipi di ambiguità
Ambiguità categoriale
(1)Time is money (sostantivo)
(2)Time me on the last lap (verbo)
L’analisi sintattica aiuta ad identificare la categoria
corretta
(3) Time flies like an arrow
Esistono 5 possibili analisi sintattiche per questa frase
dove time può essere sostantivo, verbo, aggettivo
Tipi di ambiguità
Word-sense ambiguity
Una parola ha diversi significati (sensi)
(1) The battery was charged with jump leads
(2) Thief was charged by PC Smith
(3) The lecturer was charged with students recruitment
L’analisi sintattica aiuta a disambiguare:
charged with, charged by
L’analisi semantica aiuta a disambiguare
jump leads , student recruitment
Tipi di ambiguità
Ambiguità strutturale
“Metti la scatola sul tavolo dalla finestra nella cucina”
Possibili interpretazioni
(1)Metti la scatola (una scatola specifica, quella sul
tavolo ) dalla finestra nella cucina
(2)Metti la scatola sul tavolo (un tavolo specifico) dalla
finestra nella cucina
Problema della ambiguità proposizionale (in assenza di
punteggiatura)
Tipi di ambiguità
Ambiguità referenziale
“Dopo che ebbero finito l’esame gli studenti e i professori
lasciarono l’aula”
Possibili interpretazioni
(1) gli studenti finirono l’esame
(2) gli studenti ed i professori finirono l’esame
(3) gli studenti ed i professori lasciarono l’aula
Situazioni attese (usando i frame)
(1) Giovanni diede a Marco un regalo e lui ringraziò
Tipi di ambiguità
Ellissi
Frasi incomplete dove non è chiaro il termine mancante.
“Giovanni aveva studiato molto e superò l’esame. Anche
Mario”
(1)Mario aveva studiato molto
(2)Mario superò l’esame
(3)Mario aveva studiato molto e superò l’esame
Elaborazione del linguaggio naturale
L’elaborazione del linguaggio naturale
richiede la descrizione di un modello del
mondo.
Gran parte del significato non risiede
all’interno delle parole, per cui il sistema di
NLP deve avere la conoscenza del senso
comune, o un modello del mondo usato da
chi ha scritto il testo!
E’ sempre necessario capire tutto?
Giovanni ha comprato una Punto dal
concessionario.
Chi ha venduto una Punto? Il concessionario
Giovanni ha regalato un anello alla sua
fidanzata.
Cosa ha avuto in dono la fidanzata di Giovanni?
Un anello.
Applicazioni possibili
Fornire spiegazioni a chi le chieda, anche per
telefono (call center)
Calcolare la valutazione di un servizio attraverso il
commento espresso da un utente (opinion mining)
Capire il testo di una pagina web e decidere a chi
possa interessare (semantic web)
Tradurre la pagina di un quotidiano
Capire il testo di un giornale/libro e costruire un
sistema esperto a partire da questa conoscenza
Generare risposte o testo libero per documentazione
……
Ruolo della sintassi
La sintassi:
1.identifica il ruolo delle parole in una frase
2.descrive come le parole sono raggruppate in
classi dette POS (part-of-speech)
3.mostra come le parole sono collegate tra
loro all’interno di una frase
4.spiega come le parole sono collegate ad
altre all’interno di più frasi.
POS / tag lessicali
Sono riconosciute almeno 8 classi principali:
noun, verb, adverb, pronoun,
article, preposition, conjunction,
participle
che permettono di associare un significato alla
parola cui si riferiscono. Sapere se una parola è un
pronome o un nome ci permette di riconoscere la
tipologia di altre parole vicine alla prima.
Sono utili anche per le applicazioni (es. IR)
POS / tag lessicali
Le POS si dividono in due categorie:
open class (con un numero imprecisato, ed in
continua evoluzione, di elementi)
closed class (con un numero fisso di elementi)
function words (parole corte e usate
frequentemente che assumono un ruolo
importante in una grammatica)
Come rappresentiamo la sintassi?
Lista
“Sue hit John”
[s, [np, [proper_noun, Sue] ],
[vp, [v,hit] ,
[np, [proper_noun, John]]
Parse tree
Un modo di mostrare la struttura di un frammento di
linguaggio (slide successiva)
Grammatica
Una grammatica descrive quali sono le strutture
ammesse in un linguaggio e divide una frase in
simboli terminali
Regole di riscrittura
sentence -> noun phrase, verb phrase
noun phrase -> noun
noun phrase -> determiner, noun
verb phrase -> verb, noun phrase
Grammatica
Transition network
(come attraversare una frase con strutture idonee)
They are cooking apples parse tree
“
They are cooking apples parse tree
Mario ama il calcio top-down strategy
1. S
2. S -> np, vp
3. S ->prpn, vp
4. S ->Mario, v, np
5. S ->Mario, ama, np
6. S ->Mario, ama, det, n
7. S ->Mario, ama, il, n
8. S ->Mario, ama, il, calcio
Va bene se esistono simboli terminale alternativi per
ciascuna parola (lessico)
Va male se esistono regole alternative per una frase
Mario ama il calcio bottom-up strategy
1. Mario ama il calcio
2. Prpn, ama , il, calcio
3. Prpn, v, il, calcio
4. Prpn, v, det, calcio
5. Prpn, v, det, n,
6. Np, v, det, n
7. Np, v, np
8. Np, vp
9. S
Va bene se esistono regole alternative per una frase
Va male se esistono simboli terminali alternativi per
ciascuna parola
Strategie di ricerca
• Depth first
Attiva le regole una per volta e torna indietro se
fallisce (facile da programmare, richiede poca
memoria, va bene se il parse tree è profondo)
• Breadth first
Attiva tutte le regole insieme (può essere più veloce,
l’ordine con cui appaiono le regole non è
rilevante, va bene se il parse tree è piatto)
Prolog per scrivere grammatiche
Una semplice grammatica
s --> np vp
np --> det n
np --> det adj n
vp --> v np
dove
s sentence “the cat ate the big fish”
np noun phrase “the cat”
vp verb phrase “ate the big fish”
det determiner “the”
n noun “cat”
v verb “ate”
adj adjective “big”
Prolog per scrivere grammatiche
Si può usare il Prolog per esprimere grammatiche facendo
corrispondere una regola Prolog a ciascuna regola della
grammatica; es:
sentence (S) :noun_phrase (NP), verb_phrase (VP), append (NP,VP,S).
noun_phrase (NP) :determiner (D), noun(N), append (D,N,NP).
noun_phrase (NP) :determiner (D), adj(A), noun (N), append (D,A,AP),
append (AP,N,NP).
verb_phrase (VP) :verb (V), noun_phrase (NP), append (V,NP,VP).
…….
Prolog per scrivere grammatiche
…
determiner ([D]) :member (D,[the,a,an]).
noun ([N]) :member (N,[cat, dog, mat, meat, fish]).
adj ([A]) :member (A,[big, fat, red]).
verb ([V]) :member (V,[ate, saw, killed, pushed]).
Parser
Il parser è un algoritmo che usa una grammatica e un
lessico per riconoscere la struttura di una frase. L’input è
la frase da analizzare, l’output è una qualche
rappresentazione della struttura della frase.
Lessico
Il lessico mostra a quale simbolo terminale (simbolo che
non può essere ulteriormente suddiviso) appartiene una
parola del linguaggio; es.:
Eat= verbo
Duck=noun
Duck=verbo
Prolog per analizzare frasi parser
s( sentence(NP,VP)) --> np(NP), vp(VP).
np(noun_phrase(NP))
-->prpn(PN)
np(noun_phrase (D,N) -->det (D), n(N).
np(noun_phrase (D,A,N)-->
det(D),adjs(A),n(N).
adjs(adjective_phrase(A)-->adj(A).
adjs(adjective_phrase(A,AJ))-->
adj(A),adjs(AJ).
…
Prolog per analizzare frasi parser
…
vp(verb_phrase (V)) --> v(V).
vp(verb_phrase(V,NP))--> v(V),np(NP).
det(determiner(X))
-->
[X],{member(X,[a,an,the])}.
n(noun(X))
-->
[X],{member(X,[woman, food])}.
prpn(proper_noun(X)) -->
[X],{member(X,[john,sue,bill])}.
adj(adjective(X))
-->
[X],{member(X,[red,fat,new])}.
v(verb(X))
-->
[X],{member(X,[eats,likes,works])}.
Fornire informazioni ad un utente
Information retrieval
Information extraction
Question answering
Summarization
Textual entailment
….
Information extraction – J. R. Hobbs
“An information extraction system is a
cascade of transducers or modules that, at
each step, add structure and often lose
information, hopefully irrelevant, by
applying rules that are acquired manually
and/or automatically”.
Estrazione di informazione da testi
L’estrazione di informazione da testi, IE
(information extraction) è un processo di
elaborazione che riceve in input testi e produce
in uscita, come risultato dell’elaborazione, dati
non ambigui in un formato predefinito.
Questi dati possono essere usati immediatamente,
oppure possono essere conservati in una base di
dati per analisi ed applicazioni successive.
IE versus IR
L’information retrieval IR ricerca testi e li presenta all’utente
L’information extraction IE analizza testi e presenta all’utente solo
quelle informazioni cui egli è interessato (xxx informazioni
rilevanti xxx)
I sistemi di IE sono più costosi e richiedono maggiore conoscenza
(knowledge-intensive); inoltre sono specifici per un particolare
dominio ed applicazione. Nell’ipotesi di avere a disposizione
grandi volumi di dati (domain document collection - corpora), i
sistemi di IE diventano più efficienti di quelli di IR
Problemi per l’IE
Il linguaggio naturale è:
Flessibile (modi diversi per affermare lo
stesso fatto)
Ambiguo (la stessa affermazione può avere
più significati)
Dinamico (vengono create nuove parole ed
assegnati nuovi sensi a vecchie)
IE tasks
MUC Message Understanding Conference
Tradizionalmente si riconoscono 5 diversi task di IE:
NE Named Entity recognition (ricerca e classificazione di
nomi, luoghi, etc)
CO Coreference Resolution (identifica relazioni di
identità tra entità nei testi)
TE Template Element construction (aggiunge
informazioni descrittive ai risultai del NE usando le CO)
TR Template Relation construction (ricerca relazioni tra
entità TE)
ST Scenario Template production (fa corrispondere i
risultati del TE e TR negli specifici eventi di scenario
Performance dei task IE
La performance dei task di IE dipende in maniera diversa
da:
Testo (tipo di testo in analisi: articoli di giornale, email,
documenti web, …)
Dominio (argomento generale dei corpora, es: notizie
finanziarie, domande di lavoro, offerte commerciali, …)
Scenario (il particolare tipo di evento a cui è interessato
l’utente del sistema di IE, es: fusione di compagnie,
curricula, descrizione di un prodotto, …)
Se si cambia la domanda di informazione ed il corpus di
partenza, le performance del sistema possono cambiare.
Named Entity recognition - NE
Vengono riconosciuti tutti i nomi di persone, luoghi,
organizzazioni, date, quantità di denaro.
“Il 18 maggio 2006 il presidente Ciampi ha votato
nel Senato come senatore a vita.”
“Le azioni della FIAT ieri hanno subito un ulteriore
calo alla Borsa di Milano : le perdite dell’azienda
sono dell’ordine di qualche milione di euro.”
Named Entity recognition - NE
Vengono riconosciuti tutti i nomi di persone,luoghi,
organizzazioni, date, quantità di denaro.
“Il 18 maggio 2006 il presidente Ciampi ha votato
nel Senato come senatore a vita.”
“Le azioni della FIAT ieri hanno subito un ulteriore
calo alla Borsa di Milano: le perdite dell’azienda
sono dell’ordine di qualche milione di euro.”
Named Entity recognition - NE
Le performance del task di NE sono molto
alte (più del 90%) e paragonabili a quelle
umane (difficoltà nel mantenere costanza di
decisione nel tempo e su collezioni di
documenti di grandi dimensioni )
Coreference resolution - CO
Vengono identificate nei testi relazioni di identità tra
entità (sia identificate dal NE, che referenze
anaforiche ad esse).
Task meno utile a sé stante ma importante per
applicazioni; identificare, e collegare in un
ipertesto, tutte le occorrenze di una specifica
istanza in un documento e in più documenti.
Performance della CO basse (circa 60%) e
dipendenti dal dominio.
Coreference resolution - CO
“Oggi il nuovo Presidente della Repubblica Italiana è
entrato nel pieno delle sue funzioni”
“ Giorgio Napolitano ha ricevuto una scolaresca
come primo atto da presidente della Repubblica;
come ha avuto modo di dire loro, la qualificazione
culturale dei giovani deve costituire un impegno
per i responsabili della nazione. Lui si impegnerà
in questa direzione.”
Template Element production - TE
Come risultato delle attività di NE e CO, il sistema
di IE diventa consapevole delle NE e delle loro
descrizioni. Ciò rappresenta un primo livello di
template (il cosiddetto template element).
L’insieme dei template elements può essere
considerato come una prima base di conoscenza a
cui il sistema accede per ottenere informazioni sui
principali concetti di dominio, così come essi sono
stati riconosciuti nel testo.
La performance del task è circa 80%, l’umano circa
90%.
Template Element production – TE
(old slide…)
ORGANIZZAZIONE 123456789-1
ORG_NAME
ORG_ALIAS
ORG_TYPE
ORG_PLACE
ORG_COUNTRY
FIAT
Fiat
Gruppo
Torino
Italia
Scenario template extraction - ST
L’estrazione del template di scenario rappresenta la
sintesi delle attività di task diversi, soprattutto
l’identificazione di alcuni template elements che
sono in relazione tra loro.
Ciò rappresenta un evento (scenario) collegato al
dominio in esame. I valori riconosciuti vengono
usati per riempire il template di scenario.
Scenario template extraction - ST
TEMPLATES ST:
<TEMPLATE> :=
DOC_NR: “ 56 “
CONTENT: <SUCCESSION EVENT 56-1>
<SUCCESSION EVENT 56-1>:=
SUCCESSION_ORG: <ORGANIZATION 56-1>
POST:
“executive vice president ”
IN_AND_OUT:
<IN_AND_OUT 56-1>
<IN_AND_OUT 56-1>
VACANCY REASON: OTH_UNK
Scenario template extraction - ST
<IN_AND_OUT 56-1>:=
IO_PERSON:
NEW STATUS:
ON_THE_JOB:
<PERSON 56-2>
OUT
NO
<IN_AND_OUT 56-1>:=
IO_PERSON:
NEW STATUS:
ON_THE_JOB:
OTHER ORG:
REL_OTHER_ORG:
<PERSON 56-1>
IN
NO
<ORGANIZATION 56-2>
OUTSIDE_ORG
Scenario template extraction - ST
TEMPLATES TE:
<ORGANIZATION 56-1>:=
ORG_NAME:
ORG_ALIAS:
ORG_DESCRIPTION:
ORG_TYPE:
ORG_LOCALE:
ORG_COUNTRY:
“Burns Fry Ltd.”
“Burns Fry”
“this brokerage firm”
COMPANY
Toronto CITY
Canada
<ORGANIZATION 56-2>:=
ORG_NAME:
ORG_ALIAS:
ORG_DESCRIPTION:
ORG_TYPE:
“Merrill Lynch Canada Inc.”
“Merrill Lynch”
“a unit of Merrill Lync & Co.”
COMPANY
Scenario template extraction - ST
<PERSON 56-1>:=
PER_NAME:
PER_ALIAS:
PER_TITLE:
“Donald Wright”
“Wright”
“Mr.”
<PERSON 56-2>:=
PER_NAME:
“Mark Kassirer”
Architettura di un sistema di IE
Un sistema di IE può essere costituito dai seguenti moduli
fondamentali:
Text Zoner,
Pre-processor,
Filter,
Pre-parser,
Parser,
Fragment Combiner,
Semantic Interpreter,
Lexical Disambiguation,
Coreference Resolution o Discourse Processing,
Template Generator.
Architettura di un sistema di IE
Text Zoning
Questo modulo prende un testo e lo divide in
frammenti.
Pre-processor
Vengono localizzati gli estremi delle frasi ed
identificata, per ciascuna di esse, una sequenza di
item lessicali (parole e POS)
Filter
Vengono eliminate le frasi irrilevanti (frasi prive di
item rilevanti per l’applicazione) per ottenere testi
brevi da elaborare
Architettura di un sistema di IE
Pre-parser
Vengono riconosciute strutture frasili minime (frasi
nominali, verbi con ausiliari, termini composti,…)
per semplificare il compito del parser successivo.
Parser
Partendo da sequenze di item lessicali (frammenti) si
produce un albero sintattico dell’intera frase.
Fragment Combination
Si ricombinano gli alberi sintattici dei frammenti
Architettura di un sistema di IE
Semantic Interpretation
Dall’albero sintattico si produce una struttura
semantica, una forma logica o un frame evento. Si
produce anche una prima disambiguazione lessicale.
Lexical Disambiguation
Si passa da una struttura semantica con predicati
ambigui o generali ad una con predicati specifici e
non ambigui.
Co-reference resolution
Questo modulo risolve le coreferenze per entità
elementari (pronomi, frasi nominali, anafora).
Architettura di un sistema di IE
Template Generation
Tutte le strutture semantiche generate dalle
precedenti elaborazioni del linguaggio naturale
sono usate per produrre il template finale per
l’utente solo nel caso in cui gli eventi
riconosciuti abbiano una rilevanza per l’utente
maggiore della soglia prefissata.
Question/Answering - Q/A
I sistemi di Q/A forniscono l’indicazione del brano
che contiene la risposta ad una richiesta dell’utente
(non rispondono direttamente).
5 W (who, which, where, when, why)
Necessità di identificare preliminarmente le aree di
interesse per l’utente (classi di domande) per
finalizzare ad esse la struttura della conoscenza
del sistema
Architettura sistemi di Q/A
Question
Question
Analysis
Information
Retrieval
Answer
Answer
Extraction
Answer
Merging
Architettura sistemi di Q/A
Possono esserci loops
Non tutti i sistemi di Q/A aderiscono a questa
architettura
Domande complesse (Quale delle sorelle
Carlucci è entrata in politica?)
Q/A in domini aperti o in domini chiusi
Question/Answering - Q/A
Answer type: la classe di oggetti coinvolti dalla domanda;
in genere sono strettamente collegati alle classi di NE
riconosciute.
Question focus: proprietà od entità sottesa dalla domanda
(In quale città c’è il Colosseo?)
Question topic: l’oggetto o l’evento cui attiene la
domanda (es: “Qual è l’altezza del monte Everest?”, il
focus è l’altezza, il topic è il monte Everest)
Candidate passage: un qualunque brano testuale (dalla
frase all’intero documento) ritrovato in fase di ricerca
Candidate answer: nel contesto della domanda, una
piccola quantità di testo dello stesso tipo dell’answer
Question/Answering - Q/A
Risorse comunemente usate:
Algoritmi di apprendimento automatico
Gazeteers
NE taggers
Part of Speech taggers
Parsers
Wordnet
Stopword list
Terminologie di dominio
….
Question/Answering - Q/A
Domande capziose
“Chi sono i 5 uomini più ricchi del mondo?”
“Qual è l’attrice più famosa?
“Chi disse la celebre frase: Il dado è tratto?”
Summarization
Text summarization
Il processo di selezione delle informazioni più importanti da
una o più sorgenti di informazione per produrre una
versione trasversale per un particolare utente o task.
Estratto
Sommario consistente interamente di materiale copiato
dall’input
Abstract
Sommario di cui parte del contenuto non è presente
nell’input (categorie, parafrasi del contenuto, etc.)
Summarization – funzionalità
Sommari indicativi
Forniscono una funzione di riferimento per selezionare
documenti per una lettura più approfondita
Sommari informativi
Coprono tutte le informazioni salienti del documento
sorgente con un certo dettaglio
Sommari valutativi
Valutano l’argomento della sorgente esprimendo il
punto di vista del sistema sulla qualità del lavoro
dell’autore
Textual entailment
Il textual entailment esprime una relazione tra
• un testo coerente T e
• una espressione linguistica detta ipotesi H
Si dice che T entails H (T->H)
se il significato di H può essere inferito dal significato di T
“Yahoo acquired Overture”
entails
“Yahoo owns Overture “
Textual entailment
Funzione di entailment e(T,H)
È una funzione probabilistica che mappa la coppia T-H con
un valore tra 0 ed 1 ed esprime la confidenza con cui un
giudice umano o un sistema automatico può valutare la
relazione esistente tra T ed H.
Paraphrase
L’ipotesi esprime un fatto uguale a quello espresso dal
testo (Yahoo acquired Overture, Yahoo bought
Overture)
Strict entailment
La frase contiene più fatti tra cui uno può essere inferito
dall’altro (Yahoo acquired Overture, now Yahoo owns
Overture)
Argomenti trattati
• Sistemi per l’elaborazione del linguaggio naturale
• Morfologia, sintassi, semantica, prgmatica, analisi del
discorso
• Ambiguità del linguaggio naturale (diverse forme di
ambiguità con diverse modalità di soluzione)
• Applicazioni del TAL/NLP (information extraction –
IE, Question/Answering – Q/A, summarization, textual
entailment)
Scarica

Elaborazione del linguaggio naturale