Capitolo Tesi
Transcript
Capitolo Tesi
Augmented Transitions Networks(ATN) In questo primo capitolo, verrà illustrato cos’è un ATN (diagramma di transizione aumentati), utilizzato largamente nella generazione di testi in linguaggio naturale in quanto consente di strutturare frasi la cui espressione può variare a seconda del contesto in cui vengono generate. Farò riferimento soprattutto a come l’ATN viene utilizzato per gestire i dialoghi, in quanto l’applicazione da me realizzata farà riferimento a questo tipo di struttura. Inizialmente introdurrò un po’ di storia, ossia come si è arrivati allo sviluppo di tale modello, quindi parlerò anche degli ASF(automi a stati finiti) e dei RTN(Recursive Transition Net). [1] Dopodiché inizierò a scendere più nel dettaglio e spiegare come viene rappresentato ed usato l’ATN, in particolare per l’utilizzo della generazione di dialoghi. 1.1 Un po’ di storia 1.1.1 Dagli ASF ai RTN In principio, le ATN venivano usate come strumento per l’analisi del linguaggio naturale[2] grazie in particolare agli studi di Woods (1970). Successivamente sono state utilizzate anche per la generazione di tale linguaggio. Tra i primi modelli per la rappresentazione di grammatiche per il linguaggio naturale, troviamo i diagrammi di transizione a stati finiti. In questo modello, gli archi sono etichettati con un simbolo terminale (ad esempio una frase, un atto comunicativo ecc.) il cui input provoca la transizione da uno stato all’altro. Un automa a stati finiti[3] (non deterministico) è caratterizzato dalla quadrupla <Q,§,S,F> su un alfabeto X [2] dove: • Q è un insieme finito di stati; • X insieme rappresentato dall’alfabeto di input dei simboli terminali; • § è la funzione di transizione definita §:QxX -> 2Q; • S è lo stato iniziale; • F è l’insieme degli stati finali Gli stati rappresentano il risultato dell’esecuzione di una transizione nello stato precedente. Ad ogni stato quindi, sono associate delle transizioni che permettono di passare da uno stato all’altro, attraverso appunto la funzione §. Un esempio dovrebbe chiarire meglio il concetto. 2 Figura 1. 1: Esempio di generazione di una frase con ASF Esempio 1.1 Tenendo in considerazione la figura 1.1[1], è possibile generare una frase in linguaggio naturale definita dalle seguenti regole di produzione: S0ÆPRED_NOMINALE PRED_VERBALE PRED_NOMINALEÆArtDet Nome|ArtDet AGGETTIVI Nome|NomeProprio AGGETTIVIÆAggett AGGETTIVI| Aggett PRED_VERBALEÆVerbo PRED_NOMINALE| Verbo Dove S0 rappresenta lo stato iniziale. I simboli scritti in maiuscolo sono i simboli non terminali, mentre quelli scritti in minuscolo sono i simboli terminali ∈ all’alfabeto X. Quindi, ad esempio, le funzione di transizione di S0 sono definite in questo modo: §(S0,ArtDet)={S1} §(S0, NomeProprio) = {S2} E così via. Il linguaggio accettato da questo automa è: L = {NomeProprio | ArtDet Aggett* Nome} {Verbo} {NomeProprio | ArtDet Aggett* Nome } 3 Tale rappresentazione, tuttavia si è dimostrata inadeguata per la rappresentazione e la generazione di frasi, in quanto non riusciva a rappresentare tutte le caratteristiche del linguaggio naturale. Ciò era dovuto in particolar modo all’assenza di meccanismi di memorizzazione (detti pushdown), il quale permettono, oltre che la sospensione di un processo di costruzione di una frase per cominciarne un’altra, di ricordare quanto è stato costruito sino a quel momento, per poterlo adeguare poi alla parte successiva. A questo punto si è pensato di aggiungere meccanismi di ricorsione direttamente ai diagrammi di transizione, etichettando gli archi anche con i simboli non terminali, si aggiunge così la possibilità di richiamare un altro diagramma di transizione, il quale può eventualmente chiamare se stesso, è quindi un diagramma ricorsivo. Il modello risultante è chiamato Recursive Transition Net (RTN), ed è equivalente, per quanto riguarda la capacità generativa, ad un automa a memoria pushdown, permettendo, però maggiore efficienza di espressione ed una struttura più flessibile. Una RTN, ha quindi in aggiunta l’alfabeto dei simboli non terminali V, quindi una RTN è anch’essa una quadrupla <Q,S,§,F> dove: • Q è un insieme finito di stati; • X insieme rappresentato dall’alfabeto di input dei simboli terminali; • V insieme rappresentato dall’alfabeto dei simboli non terminali; • § è la funzione di transizione definita §:Qx(X V) -> 2Q; • S è lo stato iniziale; • F è l’insieme degli stati finali 4 Di seguito, viene illustrato un esempio di RTN. Figura 1. 2: generazione di una frase utilizzando i simboli non terminali [1] Figura 1. 3: sub RTN chiamato dall'RTN principale per la generazione di una frase [1] Esempio 1.2 Come si può vedere in figura 1.2[1], è stato utilizzato lo stesso esempio precedente etichettando però gli archi anche con i simboli non terminali (in questo caso PRED_NOMINALE). Quest’automa prevede che quando nella transizione troviamo il non terminale, viene richiamato un sotto automa (illustrato in figura 1.3 [1]), il quale descrive le produzioni del non terminale chiamante. Quando l’esecuzione del sotto-automa termina, il controllo viene nuovamente passato all’automa chiamante, il quale continuerà a procedere con la propria esecuzione. Questa proprietà di ricorsione caratterizza le RTN dagli NDA. Quindi, gli NDA (automi a stati finiti non deterministici) permettono che una transizione sia fatta da uno stato Si ad uno 5 stato Sk mediante lettura di una singola parola x ∈ X tale che §(Si,X)=Sk. Le RTN invece, permettono che una transizione sia fatta da Si ad Sk mediante lettura di una stringa w ∈ A dove A=(V X) tale che §(Si,A=Sk) dove A, eventualmente, provvederà a chiamare un'altra rete, nell’ambito della quale si leggeranno le singole parole che costituiscono la stringa w. Infine, possiamo così affermare che le RTN, rispetto agli NDA in aggiunta includono che: • v V, un NDA definito da M=<Q,S,§,F> ; • § è definita: §: Qx(X V)Æ2Q. Tuttavia, anche questo modello di RTN mostrava dei limiti quando sorgeva il problema di esprimere frasi che dipendevano dal contesto (frasi in forma passiva, interrogativa, affermativa ecc.). Questi limiti quindi, rendevano le RTN inadeguate se si dovevano rappresentare quelle sottigliezze tipiche del linguaggio naturale. 6 1.1.2 Nascono le ATN Le ATN (Augmented Transiztion Net) sono nate come estensione delle RTN, proprio per superare i limiti visti precedentemente quindi, di conseguenza anche le ATN godono della proprietà di ricorsione, cioè anch’essi possono chiamare delle sub-reti. La caratteristica degli ATN è rappresentata dal fatto che ad ogni arco viene aggiunta una condizione da soddisfare per poter percorrere l’arco stesso, inoltre vengono definite un insieme di azioni da eseguire se l’arco è attraversato e dei registri che memorizzano determinati risultati di percorso. Questa estensione da al modello un grande potere selettivo utile per guidare il parsing1 o la generazione di una frase, a seconda del contesto in cui ogni frammento di frase stessa si trova. I registri associati alle ATN, come ho già accennato, possono contenere diverse informazioni: da frammenti di frase a valori di variabili che condizionano la percorrenza di un arco. Ciò consente di conservare diverse informazioni che altrimenti, dovrebbero essere ricordate implicitamente dallo stato della rete. I registri quindi, possono essere benissimo paragonati alle variabili di un programma, infatti in essi posso memorizzare qualsiasi tipo d’informazione. Vediamo adesso un esempio, il quale tiene conto della figura che segue (figura 1.4[1]). Con quest’esempio si chiarisce meglio come un registro contiene le informazioni e come esse vengono strutturate ed usate nell’elaborazione. 1 Parsing: Analisi e verifica di una frase utilizzando una grammatica G 7 Figura 1. 4: Esempio di ATN con i registri Esempio 1.3 Considerando la figura 1.4, possiamo notare che ad ogni RTN visti precedentemente sono stati aggiunti dei registri che memorizzano le informazioni. In questo esempio, ogni registro può contenere due valori: singolare o plurale (rispettivamente S o P). La transizione lungo questi archi “aumentati” sarà effettuata soltanto se è soddisfatta la condizione specificata nei registri. Quindi, sarà necessario anche un test che controlli se il soggetto è una persona singolare o plurale, nonché la correttezza dei verbi. Ad esempio: If (PRED_NOMINALE == P) then V = plural Grazie al controllo di questa condizione, verrà garantita una corretta generazione della frase. 8 1.2 Struttura delle ATN La specifica formale di un linguaggio che può essere generato dalle ATN è data da Woods sotto forma di grammatica Context-Free estesa. In questa rappresentazione il simbolo “|” indica la situazione di alternativa mentre il simbolo “*” rappresenta costituenti ripetibili arbitrariamente. Una ATN può essere quindi descritta come segue [4]: <ATN> Æ (<arc set> <arc set>*); <arc set> Æ (<stato> <arco>*); <state> Æ nomeStato; <arco> Æ (PUSH <stato> <test> <azione>* <termineAtto> |TST <labelArbitraria> <test> <azione>* <termineAtto> |POP <form> <test>); <azione> Æ ((SETR <registro> <form>) |(SENDR <registro> <form>) |(LIFTR <registro> <form>)) termineAtto Æ (TO <stato> | JUMP <stato>) <form> Æ ((GETR <registro>) |(GETF <caratteristica>) |(BUILDQ <frammento> <registro>) |(LIST <form>*) |(APPEND <form> <form>)) 9 Ogni ATN è un diagramma format da stati uniti tra loro mediante archi. In ogni arco vi è un’etichetta che indica un’azione e/o un test il quale stabilisce quando l’arco può essere attraversato. L’elaborazione comincia con lo stato iniziale e termina fino a quando non si attraversa un arco di tipo POP. Nelle ATN descritte da Woods vengono definiti diversi tipi di archi che possono avere anche funzionalità differenti. Di seguito elenco le funzioni che può assumere un arco: • PUSH: consente di chiamare un'altra ATN, quindi scende di livello; • POP: indica la fine dell’ATN corrente e, eventualmente, consente di ritornare al livello dell’ATN chiamante; • TST: permette di effettuare un test e quindi, di determinare se l’arco deve essere percorso o meno. Le azioni e le form descritte in questo modello permettono di compiere operazioni sui registri e, quindi di costruire la struttura della frase a seconda del loro contenuto. Le tre azioni servono per inizializzare il contenuto del registro al valore indicato da form. Eccole descritte: • SETR: fa in modo che l’inizializzazione sia fatta a livello corrente d’elaborazione; • SENDR: manda informazioni ad un livello più basso d’elaborazione; • LIFTR: usato per ritornare informazioni a livelli più alti d’elaborazione. Le form, come anche le condizioni (test) della rete, possono essere funzioni arbitrarie sul contenuto dei registri. Di seguito ne ho rappresentate qualcuna: 10 • GETR: è una funzione che ritorna il contenuto del registro indicato; • GETF: funzione che determina il valore di una caratteristica specificata per la parola di input corrente (es la prima lettera della parola); • BUILDQ: tramite questa funzione di costruzione, viene presa una lista rappresentante un frammento dell’albero d’analisi i cui nodi hanno specifiche marcature, e restituisce il risultato della sostituzione di tali marcature con il contenuto dei registri indicati; • LIST: questa funzione fa una lista dei valori degli argomenti indicati; • APPEND: funzione che appende due liste per formarne una sola. La costruzione di una frase, quindi viene controllata gestendo in modo opportuno questi diversi tipi di archi e le azioni di manipolazione nel contenuto dei registri, consentendo una grande flessibilità nel definire e ridefinire una frase che può cambiare a seconda del contesto in cui essa viene generata. 11 1.3 ATN usato per la generazione di testi 1.3.1 Il modello TEXT Il modello descritto da Woods è stato esteso utilizzando altri modelli di ATN per effettuare la generazione di testi in linguaggio naturale. L’elaborazione di un modello del genere è divisa in due parti: • Componente strategica il quale determina i contenuti e la struttura del discorso • Componente tattica il quale traduce in uno specifico linguaggio il messaggio costruito con la componente strategica. Esistono sistemi che utilizzano entrambe le componenti e sistemi che includono soltanto la componente tattica, e quindi si limitano solo a generare testo. 1.3.2 Sistemi con componente strategica e tattica Un sistema deve essere in grado di determinare quali informazioni includere nel testo e come organizzarle. E’ stata elaborata una teoria che definisce come organizzare ed elaborare la struttura ed il contenuto di in testo. Un sistema di questo tipo è TEXT [5], studiate da McKeown(1985), il quale ha lo scopo di rispondere a domande, in linguaggio naturale, su frasi contenute in un database. In questo sistema viene definito un modello che guida il processo di generazione su cosa dire in ogni momento. Questo modello rappresenta strategie di discorso, le quali interagiscono con particolari meccanismi detti Focus of attention (focus del discorso), che vincolano le informazioni che hanno bisogno 12 di essere considerate quando si decide cosa dire, indicando quali informazioni si legano meglio col contesto del discorso. Le principali caratteristiche di TEXT sono: • la selezione delle informazioni rilevanti per risposta; • l’integrazione di tecniche retoriche con lo scopo del discorso (ad esempio, fornire una definizione); • i meccanismi di focalizzazione. Figura 1. 5: componenti del sistema TEXT 13 Come si denota dalla figura 1.5 [4], le risposte si ottengono individuando un sottoinsieme della conoscenza di base il quale sia rilevante per la domanda (Determina rilevanza). Questa partizione è l’insieme della conoscenza rilevante. Si seleziona quindi una strategia del discorso il quale codifichi tecniche retoriche che guideranno la selezione delle frasi dall’insieme della conoscenza rilevante. Dopodichè un meccanismo di focalizzazione interagisce con l’uso di strategie retoriche per determinare il contenuto e l’ordine della risposta. Infine il messaggio viene così passato alla componente tattica che provvederà a trasformare il messaggio nella lingua selezionata (ad esempio in italiano). In TEXT, il processo di generazione è guidato dall’uso di schemi che descrivono le proprietà di un oggetto basandosi sulle informazioni presenti nella conoscenza di base del sistema. Tali schemi sono stati implementati usando un formalismo basato su ATN. In questo caso quindi, percorrere un arco equivale a selezionare una frase da includere nella risposta, mentre raggiungere uno stato corrisponde a riempire un periodo dello schema. La differenza principale tra le ATN classiche e quelle usate in TEXT consiste nel controllo delle alternative. Infatti, in TEXT per ogni singolo stato vengono calcolati tutti i possibili stati successivi e viene usata una funzione che seleziona un arco fra tutti quelli disponibili tenendo conto dei vincoli imposti dal focus del discorso (quindi si prendono in considerazione tutti gli archi ma se ne sceglie soltanto uno). Nella figura d’esempio che segue, viene descritto un dialogo tramite le ATN utilizzando lo schema TEXT, quindi ogni arco è labellato con un atto che corrisponde alla proposizione: 14 Figura 1. 6: Dialogo effettuato utilizzando ATN e sotto ATN Nel mio caso specifico, in cui devo rappresentare le ATN che gestiscono l’andamento del dialogo tra un utente ed il PC, utilizzerò gli schemi descritti da TEXT. Le ATN saranno quindi rappresentate da: • NomeATN: name una stringa che indica il nome dell’ATN; 15 • S: {s1, s2,…, sn} l’insieme degli stati del dialogo; • SM: {sm1, sm2,…, smn} l’insieme delle mosse che il sistema può compiere; • UM: {um1, um2,…, umn} l’insieme delle mosse che l’utente può compiere; • ASM: {Si, Sj….} insieme degli stati raggiunti dopo una mossa del sistema; • AUM: {Sh, Sk...} insieme degli stati raggiunti dopo una mossa dell’utente; • IS: {S0} lo stato iniziale del dialogo; • ES: {sm, sp,..} l’insieme degli stati finali del dialogo; • COND: {c1,c2,…,cr} l’insieme delle condizioni associate agli archi; • ACT: {act1, act2,…, actn} l’insieme degli atti comunicativi; Da notare che ASM S AUM S ASM GUM = S. La descrizione di una transizione quindi, sarà del tipo: (sk, (((smh umh) name), cj, pj), sr). 1.3.3 Adattamento all’utente Nel 1988, Paris affronta il problema di adattare il testo generato alla conoscenza o alle esigenze dell’utente a cui è diretto[6]. Verrà analizzato un sistema descritto da Taylor, il quale prevede l’uso degli schemi di TEXT nella quale però, il livello di esperienza o 16 conoscenza dell’utente in un dominio, guida il sistema nella scelta delle frasi che più si adattano all’utente stesso. Attraverso il livello di conoscenza dell’utente sul dominio, il modello di Taylor individua i contenuti da inserire al fine di aiutare l’utente a costruirsi un modello mentale sull’oggetto in questione. Il problema da risolvere è appunto, stabilire che tipo di conoscenza l’utente ha sul dominio. L’analisi di testi in linguaggio naturale suggerisce almeno due tipi di conoscenza: • Conoscenza su specifici argomenti della base di conoscenza • Conoscenza su vari concetti di base. A questo punto viene classificato l’utente come: • Utente esperto: quando ha una grande conoscenza del dominio • Utente non esperto: quando non conosce specifici oggetti della base di conoscenza Un utente però, non è necessariamente esperto o non esperto, infatti la maggior parte degli utenti sta nel mezzo come livello di esperienza. Quindi la conoscenza viene individuata utilizzando dei parametri per indicare ciò che l’utente realmente conosce, in base al valore di questi parametri, si decide se dare o no un’informazione. In termini di strategie di discorso, i testi possono essere caratterizzati: nel caso di utente esperto dal Costituency schema, il quale si presta meglio a definire un oggetto in termini delle sue sottoparti e proprietà. Nel caso di utente inesperto invece, i testi sono caratterizzati dal Process Trace. Secondo questo modello, per generare la descrizione è necessario seguire dei legami causali, i quali uniscono i vari processi contenuti nella base di conscenza riguardanti 17 l’oggetto che si sta descrivendo. Il processo di descrizione si interrompe ogni qualvolta che può essere inclusa un’informazione descrittiva su una sottoparte dell’oggetto appena menzionato (cioè quando si scende nei dettagli dell’oggetto). Per descrivere, invece, un oggetto a degli utenti che hanno un livello di conoscenza misto, si utilizzerà una combinazione delle due strategie. Per determinare quale strategia applicare, all’interno di ognuna di esse si risolvono punti di decisione, in termini di test sul livello di conoscenza dell’utente; in base al risultato del test, si salta o meno alla strategia complementare. Sia la generazione riguardante il costituency schema che il process trace è implementata dall’ATN. Gli archi utilizzati per le ATN di generazione del constituency schema sono queli definiti per TEXT, mentre per il process trace, vengono definiti nuovi archi, i quali indicano come tener traccia della conoscenza per formare un testo. Figura 1.7: Process Trace Come si può notare nella figura di sopra, gli archi appartengono alle seguenti categorie: 18 • Next_Main_Link: indica il legame successivo nel percorso principale • Side_link: effettua un test per valutare se esiste un legame collaterale causato da un particolare evento in quel punto • Attributive: quest’arco viene attraversato solo se è disponibile un’informazione sul concetto appena introdotto • Substep?: utilizzato quando esiste una decomposizione per un concetto. Quindi, percorrendolo viene chiamato un grafo per un particolare sottoprocesso, in cui non sono previste ulteriori decomposizioni. Nel modello di Tailor, l’input include una richiesta di descrizione di un oggetto e, il livello d’esperienza dell’utente viene visto come un insieme di parametri che descrivono il livello di conoscenza e che include una lista di concetti di base e una lista degli oggetti conosciuti. La componente “Textual” del sistema, guardando nella base di conoscenza e, basandosi sul modello utente e le strategie di discorso, decide cosa includere nella descrizione. Il risultato dell’elaborazione di tale componente è una rappresentazione concettuale del contenuto della descrizione. In tale modulo, il processo di decisione è guidato dal “focus” di ogni proposizione e da meccanismi che mantengono traccia di quanto detto fino a quel momento. Infine il generatore superficiale costruisce la frase unificando gli input con una grammatica funzionale per produrre la frase nella lingua che si desidera (ad es. in inglese, in italiano ecc.). La figura 1.8 [4] che segue riassume graficamente il concetto descritto finora: 19 Figura 1.8: Il sistema Tailor In conclusione, il modello d’adattamento all’utente di Tailor adatta appunto, il contenuto del testo generato al grado d’esperienza dell’utente a cui la spiegazione è rivolta. Il limite di questo modello, però è rappresentato dal fatto che tiene conto della conoscenza dell’utente solo per decidere se dare o meno un’informazione senza preoccuparsi di come esprimerla, cioè senza variare lo stile formale del discorso a seconda delle caratteristiche dell’utente. 20