Page 1

qwertyuiopasdfghjklzxcvbnmqwert yuiopasdfghjklzxcvbnmqwertyuiopa sdfghjklzxcvbnmqwertyuiopasdfghj Dal Piano del Discorso alla Generazione Superficiale con SimpleNLG

klzxcvbnmqwertyuiopasdfghjklzxcv bnmqwertyuiopasdfghjklzxcvbnmq Interazione Uomo-Macchina II a.a 2007-2008

Giovanni Caputo

wertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopas dfghjklzxcvbnmqwertyuiopasdfghjk lzxcvbnmqwertyuiopasdfghjklzxcvb nmqwertyuiopasdfghjklzxcvbnmqw ertyuiopasdfghjklzxcvbnmqwertyui opasdfghjklzxcvbnmqwertyuiopasdf ghjklzxcvbnmqwertyuiopasdfghjklz


INDICE I NDICE .......................................................................................................... 2 1

I NTRODUZIONE ( ESTRATTO DA B UILDING A PPLIED N ATURAL L ANGUAGE

G ENERATION S YSTEM ) .................................................................................. 4 1.1

L’ USO DI NLG ...................................................................................... 4

1.2

A NALISI DEI REQUISITI

1.3

A RCHITETTURA E COMPONENTI DI SISTEMI DI NLG .................................. 8 1.3.1

1.4

E SPECIFICHE DEL SISTEMA

.................................. 6

Task di NLG ................................................................................. 8

T EXT P LANNING .................................................................................. 12 1.4.1

Determinazione dei contenuti ...................................................... 12

1.4.2

Discorse planning ....................................................................... 13

1.5

P IANIFICAZIONE DI FRASI .................................................................... 13 1.5.1

Aggregazione .............................................................................. 13

1.5.2

Lexicalization ............................................................................. 14

1.5.3

Referring exspresssion generation ............................................... 15

1.6

R EALIZZAZIONE

2

L IBRERIE .......................................................................................... 17

2.1

W ORD N ET .......................................................................................... 17

LINGUISTICA

.............................................................. 15

2.1.1

Introduzione e definizioni ............................................................ 17

2.1.2

Relazioni Semantiche .................................................................. 17

2.1.3

Organizzazione di WordNet ......................................................... 18

2.1.4

Uso ............................................................................................ 19

2.2

X ERCES ............................................................................................. 19

2.3

S IMPLE NLG ....................................................................................... 20

3

R EALIZZAZIONE

3.1

P IANO DEL DISCORSO .......................................................................... 22

3.2

P SEUDO A LGORITMO PER

SUPERFICIALE ..........................................................

22

LA GENERAZIONE DEL TESTO MEDIANTE

ESPLORAZIONE DEL PIANO DEL DISCORSO RAPPRESENTATO IN

DPML ...... 24

Indice 2/29


3.3

R ISULTATO ........................................................................................ 24

3.4

A RCHITETTURA DEL SISTEMA ............................................................... 25 3.4.1

Dettaglio .................................................................................... 25

3.5

M ETODI PIÙ

IMPORTANTI REALIZZATI ...................................................

3.6

S OLUZIONI REALIZZATE ....................................................................... 27

3.7

S VILUPPI F UTURI ................................................................................ 28

4

B IBLIOGRAFIA ................................................................................... 29

Indice 3/29

27


Introduzione (estratto da Building Applied Natural Language Generation System)

1 INTRODUZIONE (ESTRATTO DA BUILDING APPLIED NATURAL LANGUAGE GENERATION SYSTEM)

NLG è il sottocampo di intelligenza artificiale e di linguistica computazionale che si occupa della costruzione di sistemi informatici in grado di produrre testi comprensibili in inglese o in altre lingue umane da parte a partire da rappresentazioni di informazioni non linguistiche del linguaggio naturale. Sistemi di

generazione

combinano

la

conoscenza

sul

linguaggio

e

sul

dominio

automaticamente per produrre documenti, relazioni, messaggi di aiuto, e di altri tipi di testi.

1.1 L’uso di NLG Applicazioni dell’NLG L'utilizzo più comune della tecnologia di generazione del linguaggio naturale è quello di creare sistemi che presentano informazioni alle persone in una rappresentazione che sia facile da comprendere. In molti casi, tuttavia, queste rappresentazioni di informazioni esigono una notevole quantità di dati da interpretare. Ciò significa che vi è spesso si ha la necessità di sistemi che possono presentare questi dati in una forma comprensibile a utenti

non esperti. Quando la migliore presentazione dei dati è in inglese,

spagnolo, cinese, o qualche altro linguaggio umano, la tecnologia NLG può essere utilizzata per costruire il sistema di presentazione. Ad esempio, tecniche di NLG può essere utilizzato per: generare previsioni del tempo testuali a partire da rappresentazioni di mappe grafiche, sintetizzare i dati statistici estratte da un database o un foglio di lavoro, spiegare informazioni mediche in modo semplice al paziente, descrivere una catena di ragionamento

Introduzione (estratto da Building Applied Natural Language Generation System) 4/29


Introduzione (estratto da Building Applied Natural Language Generation System) effettuato da un sistema esperto, e produrre risposte a domande su un oggetto descritto in una base di conoscenze. Molte persone trascorrono gran parte del loro tempo alla produzione di documenti. Un medico, ad esempio, può trascorrere una significante parte del suo tempo scrivendo lettere di rinvio o altri documenti di routine; mentre, un programmatore può spendere così tanto tempo alla scrittura della documentazione del codice, alla descrizione di programmi logici, a recensioni, e così via, come alla scrittura del codice stesso. Strumenti che aiutano queste persone a produrre rapidamente documenti possono notevolmente migliorare sia la produttività che il morale. Quando le tecniche di NLG sono appropriate? Si deve tenere presente che in sistemi basati su tecniche di NLG non sono sempre il modo migliore per la piena esigenza del cliente. Per esempio, in alcuni casi, le informazioni che devono essere consegnate possono essere presentate graficamente migliore, piuttosto che con il testo scritto. In altri casi il testo è la migliore presentazione. Quale approccio è più appropriato, in una determinata circostanza, dipende da una serie di fattori, tra cui il tipo di informazioni da comunicare, il numero di variazioni necessari nei testi da produrre, e il volume di testo da essere prodotto. Testo vs Grafica In molte situazioni, immagini, diagrammi schematici, mappe e grafici possono essere utilizzate per comunicare informazioni in modo più efficace ed efficiente del semplice testo. Gli sviluppatori di software devono di esaminare quali tra il testo, la grafica, o entrambi sono il modo migliore per rappresentare le esigenze di informazione dell’utente. Non principi per decidere se le informazioni devono essere presentate attraverso il testo scritto, e quando dovrebbe essere presentato graficamente. Questo, invece, dipende dal tipo di informazioni da rappresentare e dall'esperienza delle persone a cui il documento è destinato. Dal punto di vista pratico, un buon modo per determinare quali modi tra il testo e la grafica devono essere utilizzati è quello di esaminare i documenti esistenti utilizzati per presentare le informazioni. Questo modo non è infallibile, perché non Introduzione (estratto da Building Applied Natural Language Generation System) 5/29


Introduzione (estratto da Building Applied Natural Language Generation System) vi è alcuna garanzia che il modo utilizzato sia il modo migliore possibile. In alcuni casi la scelta non è dettata da mezzo, ma piuttosto di requisiti giuridici, da convenzioni. Ad esempio, l'uso di grafica non sarà un'opzione se il materiale deve essere consegnato tramite televideo o attraverso un lento collegamento a internet.

1.2 Analisi dei requisiti e specifiche del sistema Il primo passo nella costruzione di qualsiasi tipo di sistema software, tra cui i sistemi di generazione di linguaggio naturale, è quello di eseguire una analisi di requisiti e, da questo, produrre un primo sistema di comunicazione specifico. In generale, si è visto che la metodologie, di software engineering,

di sviluppo

iterativo e prototipizzazione sembri funzionare meglio per i sistemi di NLG rispetto al tipo di modello a cascata. Questo perché la tecnologia è ancora relativamente immatura e, quindi, è difficile prevedere in anticipo tutte le implicazioni dei requisiti di progettazione o di decisioni. Di seguito è descritto un approccio ad un'analisi dei requisiti in cui lo sviluppatore utilizza un esempio di dati di input e output associati a testi per descrivere agli utenti il sistema che si propone di costruire. Questa collezione di ingresso e di uscita dei dati si chiama corpus. Un buon corpo è anche una risorsa molto utile per l'acquisizione di conoscenze specifiche, per la progettazione di moduli di NLG. Assemblaggio una primo Corpus Testi di Otput Il primo passo nella realizzazione di un corpus, alla base dell'analisi dei requisiti, è quello di creare un primo corpus scritto da un autore umano e, nel caso, associare i rispettivi input. Nella misura del possibile, il corpus dovrebbe coprire l'intera gamma dei testi che dovrà essere prodotta dal sistema NLG, compresi casi tipici. Se non esistono esempi di testi scritti da un autore umano, la strategia migliore è spesso di chiedere a esperti di dominio di scrivere esempi adeguati di testi di output. Per le successive analisi di tali testi, può essere molto utile registrare l'esperto

‘thinking aloud’,

mentre scrive alcuni di questi testi. Creare un corpus di testi target

Introduzione (estratto da Building Applied Natural Language Generation System) 6/29


Introduzione (estratto da Building Applied Natural Language Generation System) In molti casi, lo sviluppatore di sistema NLG desidera modificare il contenuto del corpus iniziale. Ciò può accadere per molti motivi.Può essere tecnicamente impossibile o eccessivamente oneroso,

generare automaticamente il testo nel

corpus iniziale, perché spesso le richieste di input dei dati non è disponibile in una forma utilizzabile. I testi devono essere visualizzati in modo ottimale, e quindi possono essere modificati. In tali casi, lo sviluppatore del sistema NLG potrebbe voler suggerire miglioramenti ai testi. Questo naturalmente deve essere discusso con gli utenti e gli esperti di dominio, per avere la certezza che non ci siano vincoli o convenzioni di cui lo sviluppatore non è a conoscenza.Gli esperti possono suggerire vari testi corrispondenti agli stessi dati in ingresso. Conflitti tra gli esperti sono, purtroppo, un evento comune in molti esercizi di acquisizione di conoscenze. In molti casi, con i conflitti

possono essere risolti semplicemente,

chiedendo agli esperti qual è il testo migliore per un certo dato di input. Il risultato di tutti questi cambiamenti è un insieme di testi che sarà generato in output dal sistema di NLG.Può richiedere una notevole quantità di sforzo costruire un corpus di testo di destinazione con la quale sia gli sviluppatori che gli utenti si sentano a proprio agio. Tuttavia, questo è tempo ben speso, e un buon corpus rende molto più facile sviluppare un buon sistema NLG. Analisi del contenuto informativo del Corpus Testi Un passo importante per la creazione del corpus è l'analisi delle informazioni di contenuto dei testi nel corpus iniziale. In particolare, lo sviluppatore deve individuare le parti dei testi del corpus dell’ autore umano che non sono disponibile per il sistema di NLG. L’analisi delle informazioni richiede la classificazione di ogni frase di un corpus di testo in una delle seguenti categorie: •

Testo immutabile:

frammento di testo che è sempre presente nella

produzione testi. Come per esempio fasi di ringraziamento. •

Dati disponibili direttamente: testo che presenta informazioni che sono disponibili direttamente in una base di dati o in una base di conoscenza.

Dati computable:

testo che presentano informazioni che possono essere

derivate dai dati di input tramite un sistema di calcolo o ragionamento. Introduzione (estratto da Building Applied Natural Language Generation System) 7/29


Introduzione (estratto da Building Applied Natural Language Generation System) •

Dati non disponibili: testo che presenta informazioni che non sono presenti o non derivabili dalla dati di input.

Documenti

testuali che presentano dati disponibili direttamente non pongono

particolari problemi dalla prospettiva delle informazioni, anche se ovviamente essi presentano altre difficoltà nei sistemi NLG . Nei testi che presentano dati computati, devono essere prese delle decisione. I testi che presentano dati non disponibili causano la maggior parte dei problemi. Essi sono, ovviamente, sono impossibile generare: non importa quanto sofisticato sistema di NLG.

1.3 Architettura e componenti di sistemi di NLG Una volta realizzato un corpus di testi di obiettivo, e prodotto altri requisiti di analisi dei documenti, lo sviluppatore può iniziare la progettazione del sistema di NLG.

1.3.1 Task di NLG Il compito di un sistema di generazione di linguaggio naturale può essere definito come la mappatura di alcuni dati di input ad un output di testo. Tuttavia, come con la maggior parte dei processi di calcolo, è utile decomporlo in un certo numero sottocompiti più semplici. Nei sistemi di generazione automatica di testo, la natura di questa decomposizione è una delle principali differenze tra i sistemi NLG e i sistemi basati su stampa a unione. Tuttavia, nella generazione in linguaggio naturale ci sono sei tipi di attività che devono essere realizzate nel corso della trasformazione dei testi di input in testi di output. Questo non significa che un sistema NLG abbia necessariamente, sei moduli; la maggior parte dei sistemi computazionali utilizza un architettura in cui un modulo svolge al contempo diversi compiti. Queste sei attività di base sono i seguenti.

Content Determination

Introduzione (estratto da Building Applied Natural Language Generation System) 8/29


Introduzione (estratto da Building Applied Natural Language Generation System) Il processo nel quale si decide quali informazioni dovranno essere comunicate nel testo. Questo processo è descritto con creazione di una serie di messaggi o fonti di basi di dati di input; questi messaggi sono gli oggetti dei dati utilizzati nei successivi processi di generazione. Sia il processo di creazione del messaggio che il contenuto del messaggio sono dipendenti dall’applicazione. In generale, il processo di generazione del messaggi è costituito dal filtro o dal riassunto di dati di input. I messaggi creati sono espressi in un qualche linguaggio formale e sono distinti da ENTITA, CONCETTI E RELAZIONI nel dominio.

Discourse Planning La pianificazione del discorso è il processo creazione della struttura e dell’ordinazione dei messaggi da trasmettere. Un testo non è solo un raccolta casuale di informazioni: le informazioni sono presentate in un particolare ordine, e di solito vi è un struttura sottostante alla presentazione. Una buona strutturazione può dare un testo molto più facile da leggere. Il risultato della pianificazione del discorso è di solito un rappresentato come una struttura ad albero, in cui i nodi foglia dell’ albero sono i singoli messaggi, e i nodi intermedi specificano in che modo i messaggi sono raggruppati e correlati tra loro. Le decisioni di raggruppamento prese nella struttura avrà un impatto sulla determinazione della frase e del paragrafo. In alcuni casi, i nodi intermedi possono specificare le relazioni tra i loro figli. Sentence Aggregation L’aggregazione di frasi è il processo di raggruppamento dei messaggi in un insieme di frasi. L’aggregazione non è sempre necessaria,

ogni messaggio può essere

espresso in una frase, ma in molti casi una buona aggregazione può migliorare la leggibilità di un testo. In linea di principio, le tecniche di aggregazione possono essere usate per creare paragrafi e altre strutture di alto livello come le frasi. Lexicalization

Introduzione (estratto da Building Applied Natural Language Generation System) 9/29


Introduzione (estratto da Building Applied Natural Language Generation System) La lessicalizzazione è il processo che consiste nel decidere quali parole o frasi specifiche devono essere scelte per esprimere concetti e relazioni di dominio che appaiono nei messaggi. In molti casi lessicalizzazione può essere fatta con una banale di codifica: una determinata parola o una frase per ogni concetto di dominio o di relazione. In alcuni casi, tuttavia, la fluidità può essere migliorata, consentendo a sistemi di NLG di variare i termini utilizzati per esprimere un concetto o di relazione, sia per raggiungere

varietà

o

per

ottenere

sottili

distinzioni.

Lessicalizzazione

è

particolarmente importante, ovviamente, quando il sistema NLG produce testi in più lingue. Referring Expression Generation Ha il compito di selezionare parole o frasi per identificare le entità di dominio. Questo processo è strettamente correlato alla lessicalizzazione, dal momento che ha come obiettivo di produrre forme linguistiche che identificano elementi di dominio. Tuttavia, a differenza della lessicalizzazione, di solito è formalizzato come un task di discriminazione, in cui il sistema ha bisogno di comunicare informazioni sufficienti a

distinguere un entità di dominio da altre entità. Questo richiede

generalmente tenere conto di fattori di contesto, tra cui in particolare il contenuto di precedenti comunicazioni con l'utente generalmente denominato storia del discorso. Linguistic Realisation Processo di applicazione delle regole della grammatica per produrre un testo che è sintatticamente, morfologicamente, e ortograficamente corretto. Arnchitettura NLG Ci sono molti modi di costruzione di un sistema che esegue i compiti descritti. Il più semplice approccio è quello di costruire un modulo separato per ciascun compito. In tale architettura, il primo modulo decide quali messaggi inserire nel testo, il pianificatore del discorso organizza questi messaggi in un discorso struttura albero, e così via.

Introduzione (estratto da Building Applied Natural Language Generation System) 10/29


Introduzione (estratto da Building Applied Natural Language Generation System) All'altro estremo, i moduli possono non essere necessariamente separati, ma ogni compito viene rappresentato come un insieme di vincoli o assiomi. Questi vincoli, poi, vengono inseriti in un constraint-solver generale o in theorem-prover il cui compito è quello di determinare alcune soluzioni che massimizzano il maggior numero di vincoli. Da un punto di vista pragmatico, comunemente l’architettura oggi applicata nei sistemi di NLG composta da tre fasi: Pianificazione del

Testo: Questa fase combina le parti di determinazione del

contenuto la pianificazione del discorso. Questo perchè in molte applicazioni reali, può essere difficile separare queste due attività. Pianificazione di frasi: combina fase di aggregazione, lessicalizzazione, e referring expression generation. Questa combinazione non è universalmente accettata nel campi di NLG ,altri sostengono che la lessicalizzazione dovrebbe essere accompagnate da realizzazione linguistica. Rappresentazione intermedia Una volta che l'architettura generale di un sistema

NLG è stata decisa, l'altro

principale problema è quello di progettare come gli input e gli output delle diverse fasi devono essere rappresentati. L’input iniziale per il sistema è, naturalmente, dipendente dalla piattaforma, e la produzione finale è il testo. Tuttavia, lo sviluppatore NLG deve anche specificare cosa la rappresentazione interna passa alla fase di pianificazione del testo, e dalla frase fase di pianificazione alla fase di realizzazione linguistica. Text plans D solito rappresentati come alberi in cui nei nodi foglia sono specificati i singoli messaggi, e nei nodi intermedi mostrano come i messaggi sono concettualmente raggruppate.

Questi

raggruppamenti

impongono

i

vincoli

del

campo

di

applicazione della frase. Ci sono diversi modi di rappresentare i messaggi nei nodi foglia che formano un testo del piano, tra cui formule logiche e modelli. Probabilmente la più comune strategia applicata negli attuali sistemi di NLG è quella di rappresentarle come messaggi nella forma più simile possibile a quello utilizzata per la rappresentazione dei piani di frase, che ci rivolgiamo al di sotto. Sentence plans

Introduzione (estratto da Building Applied Natural Language Generation System) 11/29


Introduzione (estratto da Building Applied Natural Language Generation System) Una grande varietà di meccanismi e notazioni per sentence plans sono stati proposti e utilizzati in letteratura, di cui le più comuni sono probabilmente i template e quella

che

chiamata

Abstract

Sentential

Representations.

I

template

di

rappresentazione le rappresentano come Frasi standard, i secondi invece, specificano il contenuto delle parole per esempio nomi, verbi, aggettivi e avverbi, e come essi sono correlati.

1.4 TextPlanning 1.4.1 Determinazione dei contenuti Il task Questo processo determina quali informazioni devono essere comunicati con il testo a partire da dati di imput, data base o basi di conoscenza che forniscono informazioni sul dominio. Il molte applicazioni è determinato anche dal modello utente e dalle interazioni precedenti che l’utente ha avuto con il sistema NLG. Questo processo è difficile da generalizzare perché dipende molto dal obiettivo dell’applicazione. Approcci di ragionamento in profondità Molte ricerche hanno suggerito che la determinazione dei contenuti deve essere formalizzata in termini di ragionamento. I sistemi NLG potrebbero usare la tecnica del plan recognition per determinare quale piano sta seguendo l’utente e poi analizzarlo per determinare di quali informazioni ha bisogno l’utente. Approcci a dominio specifico Attuali sistemi NLG basano la determinazione dei contenuti su regole acquisite da esperti del dominio. Il risultato a volte è meno flessibile dell’approccio con ragionamento in profondità, ma è più semplice da implementare. Ci sono anche altri vantaggi come ad esempio è più semplice produrre documenti generati dal computer che sono simili a documenti esistenti prodotti dall’uomo. Questo processo di lavoro a regola è molto simile a problemi di acquisizione della conoscenza. Introduzione (estratto da Building Applied Natural Language Generation System) 12/29


Introduzione (estratto da Building Applied Natural Language Generation System)

1.4.2 Discorse planning Il task Ha l’obbiettivo di produrre la struttura del messaggio a partire del processo di determinazione dei contenuti in un testo coerente. Mentre la determinazione dei contenuti usa conoscenza su la conoscenza di quali informazioni devono essere comunicate, la pianificazione del discorso usa la conoscenza su come questi messaggi devono essere organizzati nel testo. L’output di questa fase è il text plan che è un albero con le caratteristiche già descritte in precedenza. Approcci basati su schemi Per i sviluppatori di sistemi a domini limitati è semplice adottare approcci a domini specifici. Questo è spesso il caso che il testo richiesto deve essere conforme a strutture con un numero piccolo di pattern che sono determinati da un’attenta analisi del corpus dei testi obbiettivi e dall’ascolto degli esperti del dominio.

1.5 Pianificazione di frasi 1.5.1 Aggregazione Il task L’obbiettivo di questo processo è combinare due o più messaggi in una frase, ricevendo in imput un piano di testo strutturato ad albero e produce come output un nuovo piano di testo dove i nodi foglia sono combinazioni di messaggi che eventualmente formulano una frase. I sistemi di aggregazione devono decidere sia quali messaggi aggregare per formare ogni frase e sia quali meccanismi sintattici devono essere usati per combinare messaggi. Le possibili strategie di aggregazioni sono: •

Non aggregazione: trasformare ogni singolo messaggio in una frase utilizzando però processi per utilizzo di pronomi;

Combinare due messaggi usando proposizioni relative;

Combinare due messaggi con le congiunzioni;

Introduzione (estratto da Building Applied Natural Language Generation System) 13/29


Introduzione (estratto da Building Applied Natural Language Generation System) •

Combinare più messaggi usando congiunzioni e proposizioni relative.

Sebbene l’aggregazione no cambia le informazioni contenute nel testo, contribuisce alla leggibilità e alla fluidità.

Tipi di aggregazione di frasi Ci sono diversi tipi di aggregazioni di frasi: •

Congiunzione semplice:la più semplice forma di aggregazione che usa connettivi per produrre piani di frase che comunicano più di un messaggio;

Ellissi: se due messaggi aggregati sono costituiti da una parte comune può essere eliminata la parte ripetuta;

Set formation: se i messaggi raggruppati sono identici ad eccezione di una singola parte, si può sostituire con un singolo piano di frase che contiene congiunzioni.

In alcuni casi può essere necessario aggiungere cue words com ad esempio “also” o “as well” per aumentare la fluidità dove l’aggregazione è possibile ma non è eseguita. Creazione di regole di aggregazione appropriate L’aspetto più difficile dell’aggregazione è decidere quali tra le numerose aggregazioni devono essere seguite. Altre volte si cerca di determinare quali tipi di aggregazione sono presenti nel corpus e quindi si propongono regole che risultano simili a quelli sviluppati nei sistemi NLG.

1.5.2 Lexicalization Questa fase ha l’obbiettivo

di scegliere le parole da usare per descrivere un

particolare concetto o entità del dominio. Un testo lessicamente povero potrebbe essere non capito e i lettori hanno bisogno di pensare per estrarre il significato. Il più comune modello utilizzato è quello che converte un grafo, dove i nodi sono concetti e relazioni del dominio, in un grafo con parole e relazioni sintattiche. I più Introduzione (estratto da Building Applied Natural Language Generation System) 14/29


Introduzione (estratto da Building Applied Natural Language Generation System) comuni sviluppi di questa tecnica sono: scegliere differenti parole per un unico concetto per aggiungere varietà al testo, selezionare differenti parole per identificare concetti in contesti differenti, selezionare differenti parole in base a parametri stilistici (formale e informale).

1.5.3 Referring exspresssion generation Questo processo è comunemente considerata come compito di una descrizione con obbiettivo di includere informazioni nella descrizione per consentire l’ascoltatore a identificare in modo inequivocabile l’entità. La quantità di informazioni necessarie per farlo dipenderà dal contesto attuale del discorso. Le questioni sollevate a questo task sono: •

Introduzione iniziale attraverso l’utilizzo del nome dell’oggetto ,se

è un

nome, è descrivere la locazione fisica dell’oggetto; •

Pronomi: l’uso di pronomi e in particolare l’interpretazione degli stessi è stata molto studiata in precedenza. Un semplice algoritmo è quello di usare un pronome per riferirsi a un’entità se questa è stata menzionata in una clausola precedente e non c’è nessun altra entità nella clausola precedente a cui il pronome potrebbe riferirsi.

Descrizione: un semplice ma utile algoritmo è quello di includere nella descrizione un sostantivo che descrive l’oggetto e se necessario aggiungere aggettivi per distinguere l’oggetto obbiettivo da tutti gli altri oggetti menzionati nel discorso.

1.6 Realizzazione linguistica Il task Il

task

della

realizzazione

linguistica

è

quello

di

creare

frasi

corrette

grammaticalmente per comunicare messaggi. Il realizzatore è il modulo dove è codificata la grammatica del linguaggio naturale. Alcuni semplici esempi della conoscenza morfologica e sintattica sono: Introduzione (estratto da Building Applied Natural Language Generation System) 15/29


Introduzione (estratto da Building Applied Natural Language Generation System) •

Regole sulla formazione del verbo: il più semplice passo del processo di generazione e specificare il tempo e la forma di frase ;

Regole di accordo: l’inglese richiede che alcune parole siano di essere in accordo con loro ad esempio singolare-plurale;

Regole sintattiche per i pronomi: regole sintattiche richiedono l’uso di pronomi nelle frasi.

Il processo di realizzazione linguistica è considerata a volte come l’inverso di un processo parsing dei sistemi del linguaggio naturale. Un popolare approccio alla realizzazione linguistica ha il suo fondamento nella ricerca come sistema funzionali linguistici o ancora su grammatiche basate sulla teoria text-meaning. Quest’ultimo fa uso di grammatiche dipendenti e divide il processo di realizzazione in più fasi: •

Deep

syntacting

component:

aggiunge

parole

specificando

relazioni

sintattiche tra loro; •

Componente sintattica superficiale;

Componente morfologica;

Componente grafica che aggiunge la punteggiatura;

Formattatore che converte il risultato in HTML, RTF o ASCII.

Alcuni sistemi NLG non eseguono la realizzazione sintattica; infatti il processo di determinazione dei contenuti specifica direttamente i messaggi come modello di testo. Questo approccio ha senso solo quando si ha limitata variabilità sintattica dei testi. Ad esempio, se tutte le frasi che devono essere generate sono in tempo presente, allora non vi è alcuna necessità di realizzare un complesso meccanismo che può generare frasi in altri tempi. Un altro vantaggio è che per gli esperti di dominio, i modelli sono di solito più facili da capire.

Introduzione (estratto da Building Applied Natural Language Generation System) 16/29


Librerie

2 LIBRERIE 2.1 WordNet 2.1.1 Introduzione e definizioni Wordnet è un sistema lessicale basato sulle teorie psicolinguistiche della memoria lessicale umana, realizzato presso il Cognitive Science Laboratory della Princeton University da un gruppo di psicologi e linguisti coordinati dal professor Gorge A. Miller. WordNet non è semplicemente un dizionario di lingua inglese; esso infatti divide l’insieme delle parole in quattro categorie : nomi, verbi, aggettivi e avverbi. Ogni categoria è organizzata in insiemi di sinonimi che rappresentano un determinato concetto; tali insiemi sono inoltre collegati da diversi tipi di relazioni semantiche. La caratteristica principale di WordNet è il suo tentativo di organizzare le informazioni lessicali delle parole in base al significato delle parole stesse e non alla loro forma (lemma). Ogni parola è l’associazione tra la sua forma (il modo in cui viene scritta), chiamata “word form ” o lemma, e il significato che essa esprime, chiamato “wordmeaning”. La corrispondenza tra il lemma delle parole ed il significato che esprimono viene rappresentato nella matrice lessicale, in cui le righe riportano i “word meaning” e la colonne le “word form”. La corrispondenza tra lemmi e significat i è di t ipo molt i a molt i, infatti esistono lemmi che hanno più significati e significati che possono essere espressi da più lemmi.

2.1.2 Relazioni Semantiche Wordnet è organizzato mediante relazioni di tipo semantico ossia relazioni tra insiemi di sinonimi e relazioni di tipo lessicale. La relazione più importante in Wordnet è senz’altro la sinonimia, visto che essa è alla base della costruzione della matrice lessicale. La relazione di antonimia associa ad un termine il suo contrario. Un concetto rappresentato dal synset {x, x’, …} è un iponimo del concetto Librerie 17/29


Librerie rappresentato dal synset {y, y’, …} se può essere costruita una frase del tipo An x is a (kind of) y . La relazione di iponimia/iperonimia , chiamata anche relazione ISA, è transitiva e simmetrica. Un altro tipo di relazione semantica importante per i lessicografi è la relazione di meronimia/olonimia, detta anche relazione parte-tutto; essa si applica solo alla categoria dei nomi. Un concetto rappresentato da un synset {x, x’, …} è un meronimo del concetto {y, y’, …} se può essere costruita una frase del tipo: A y has an x (as a part) oppure An x is a part of y. La relazione Implicazione (entailment) può essere utilizzata solo per i verbi: un verbo x implica y se x non può essere fatto senza che y sia o sia stato fatto. Questo tipo di relazione non è simmetrico, infatti se x implica y , non è vero il contrario, tranne nel caso in cui i due verbi siano sinonimi. Anche la relazione causale (cause to) si applica solo alla categoria dei verbi. La relazione causale lega due verbi, uno che produce una causa, che chiameremo per motivi di brevità C, e uno che “riceve” un effetto, che chiameremo E. La relazione di similarità è tipica della categoria degli aggettivi, questo tipo di similarità è simile alla sinonimia. La relazione di pertinenza può essere applicata alla categoria degli aggettivi (la relazione inversa “derived from adjective” viene applicata agli avverbi). La relazione participiale (participle) è tipica della categoria degli aggettivi; un aggettivo di questo tipo è un aggettivo che deriva da un verbo. La relazione

Attributo (attribute) può essere applicata alle categorie dei nomi e

degli aggettivi; attributo è il nome per cui uno o più aggettivi esprimono un valore. Il nome weight è un attributo a cui gli aggettivi light e heavy danno un valore. La relazione Coordinato, non

è di tipo semantico, due nomi o due verbi sono

coordinati se hanno lo stesso iperonimo, cioè se sono la specializzazione dello stesso concetto.

2.1.3 Organizzazione di WordNet WordNet organizza in modo diverso le categorie:

Librerie 18/29


Librerie - i nomi sono organizzati mediante gerarchie di generalizzazione/specializzazione basate sulla relazione semantica di iperonimia/iponimia; - i verbi sono organizzati tramite varie relazioni di implicazione; - infine aggettivi e avverbi sono organizzati in iperspazi N-dimensionali.

2.1.4 Uso Proprio per questo motivo è semplice riconoscere nomi propri, come quelli di città oppure di persona. Infatti i nomi propri di città o comunque di luoghi specifici sono tutti iponimi(contrario di iperonimi) dei lemmi “city”, “region ” etc che a loro volta sono iponimi al lemma “location”. SimpleNLG non riesce a decidere, in base al complemento, quale tipo di preposizione usare, in quanto non è ne un pianificatore ne ‘comprende’ o consente di gestire esplicitamente il tipo di complemento che vogliamo realizzare. Ho quindi realizzato un riconoscitore di locazioni, nomi di città riconoscendolo se il lemma ha come iperonimo il lemma “city” oppure “region”.

2.2 Xerces Xerces

è

un

parser

XML

scritto

in

Java

dalla

Apache

Foundation.

Xerces permette di effettuare parsing di documenti XML secondo le metodologie SAX e DOM. All'interno del package possiamo trovare infatti le due classi SAXParser e DOMParser

che

permettono

di

parsare

documenti

secondo

le

rispettive

metodologie. Vediamo quindi un semplice esempio, utilizzando DOMParser

String xmlFile = "filedaparsare.xml"; DOMParser parser = new DOMParser(); try { parser.parse(xmlFile); } catch (SAXException e) { e.printStackTrace(); } catch (IOException ee) { ee.printStackTrace(); } Document document = parser.getDocument();

Librerie 19/29


Librerie

In questo modo abbiamo dentro la variabile "document" il nostro documento. Tutte

le

informazioni

del

file

xml

sono

sate

mappate

in

memoria.

Ora dobbiamo soltanto andarle a cercare esplorando l'albero che è stato generato. Per fare ciò dobbiamo pensare ad un metodo ricorsivo che esplora l'albero. Di seguito trovate un esempio di metodo

private void leggi(Node node, int numLevelsDeep) { int type = node.getNodeType(); if (type == Node.ELEMENT_NODE) { System.out.print("\n"+node.getFirstChild().getNodeValue()); } NodeList children = node.getChildNodes(); if (children != null) { for (int i=0; i<children.getLength(); i++) { leggi(children.item(i), numLevelsDeep+1); } } }

In

questo

modo

stampiamo

i

valori

di

tutti

i

nodi

dell'albero.

Xerces supporta nella versione attuale la specifica XML 1.0, XML Schema, DOM2 e

SAX2.

Per

ulteriori

informazioni

sono

disponibili

i

seguenti

link

http://xml.apache.org/dist/xerces-j/ http://xml.apache.org/xerces-j/

2.3 SimpleNLG Si tratta di un realiser di una grammatica inglese relativamente ristretta, implementato come libreria Java. È in grado di effettuare realizzazioni linguistiche e strutturali. È stato specificatamente creato per applicazioni che richiedono una conversione dei propri dati in testo naturale. SimpleNLG non sceglie i termini da utilizzare nel testo. Si occupa però della creazione di frasi grammaticalmente corrette. SimpleNLG solleva il programmatore dalla gestione delle operazioni più ripetitive che coinvolgono la generazione del Librerie 20/29


Librerie linguaggio naturale come, ad esempio: • Ortografia: inserisce gli spazi giusti tra frasi e paragrafi. Gestisce correttamente la punteggiatura (es: “I stayed in Washington D.C.” invece di “I stayed in Washington D.C..”). Si occupa inoltre di formattare correttamente le liste (“Marco, Giuseppe, and Diego.”). •

Morfologia: coniuga i verbi al tempo desiderato, gestendo i verbi irregolari. Utilizza la forma del verbo corretta in base alla persona del soggetto.

Grammatica: permette di concatenare automaticamente in modo corretto i blocchi logici contenenti i termini definiti dall’utente.

Per generare del testo naturale, SimpleNLG mette a disposizione delle classi che modellano: -

Paragrafi

-

Frasi

-

Verbi

-

Complementi diretti e soggetti

-

Complementi indiretti

Librerie 21/29


Realizzazione superficiale

3 REALIZZAZIONE SUPERFICIALE 3.1 Piano del discorso Il piano del discorso è indipendente dalle caratteristiche dell’apparecchiatura sulla quale verrà realizzato, dalla lingua e dalla modalità di output. La sua traduzione in un messaggio (in linguaggio naturale rappresentato attraverso varie forme) viene realizzato in due fasi: •

Generazione delle struttura: si stabilisce l’organizzazione del messaggio in paragrafi o ‘pagine’, capitoli , sezioni;

Generazione linguistica: si rende ogni parte del messaggio nelle forma voluta, eventualmente arricchendo con un linguaggi di mark-up.

Quindi si parte da un piano del discorso rappresentato attraverso un file xml (DPML) che rispecchia la struttura retorica del piano del discorso. La RST definisce in che modo le diverse parti di un testo in linguaggio naturale possono essere correlate fra loro. Permette di descrivere un testo mediante la sua decomposizione gerarchica in parti (‘segmenti di testo’) correlate da ‘relazioni retoriche’. I segmenti di testo correlati hanno ruoli diversi: • il Nucleo (N) rappresenta il segmento più importante • il satellite (S) integra il contenuto del nucleo; • il modo in cui il satellite integra il nucleo è definito dal nome di una relazione retorica; • l’ordinamento di nucleo e satellite non è rigidamente definito; • gli schemi sono ricorsivi: un brano del testo che è nucleo o satellite in una RR può essere a sua volta decomposto in parti che svolgono il

ruolo di

nucleo e satellite e sono legati da un’altra RR.

Realizzazione superficiale 22/29


Realizzazione superficiale

<?xml version="1.0"?> <DPML> <goal name="Describe" term="flowers" RR="Joint"> <goal name="Describe" term="Type°(flowers)" RR="Contrast" > <communicative_act name="Inform" term="Type(cyclamens#dahlias,bulbplants)" type="N" ></communicative_act> <communicative_act name="Inform" term="Type(rose,scrubs)" type="S" ></communicative_act> </goal> <goal name="Describe" term="Florire°(flowers)" RR="Contrast"> <communicative_act name="Inform" term="Season(dahlias#rose, ,summer)" type="N"></communicative_act> <communicative_act name="Inform" term="Season (cyclamens, ,winter)" type="S"></communicative_act> </goal> </goal> </DPML>

Il file xml (DMPL) del piano deve rispecchiare il seguente DTD(Document Type Definition). <!DOCTYPE DPML[ <!ELEMENT DPML (goal)> <!ELEMENT goal (communicative_act*,goal*)> <!ATTLIST goal name CDATA #REQUIRED term CDATA #REQUIRED RR CDATA #REQUIRED > <!ELEMENT communicative_act (#PCDATA)> <!ATTLIST communicative_act name CDATA #REQUIRED term CDATA #REQUIRED type (S|N) #REQUIRED > ] >

Lo scopo di un Document Type Definition è quello di definire le componenti ammesse nella costruzione di un documento XML. Il termine non è utilizzato soltanto per i documenti XML ma anche per tutti i documenti derivati dall'SGML (di cui peraltro XML vuole essere una semplificazione che ne mantiene la potenza riducendone la complessità) tra cui famosissimo è l'HTML. In SGML, un DTD è necessario per la validazione del documento. Anche in XML, un documento è valido se presenta un DTD ed è possibile validarlo usando il DTD. Tuttavia XML permette anche documenti ben formati, ovvero documenti che, pur essendo privi di Realizzazione superficiale 23/29


Realizzazione superficiale DTD, presentano una struttura sufficientemente regolare e comprensibile da poter essere controllata.

3.2 PseudoAlgoritmo per la generazione del testo mediante esplorazione del piano del discorso rappresentato in DPML Siano T: RST tree; u, c: nodes; NLG (T, u) begin if Foglia(u, T) then {visualizza la frase associata all’atto linguistico} else begin {visualizza il frammento linguistico associato la tag RR del nodo u} c:= Primogenito (u,T); NLG(T, c); while not (UltimoFratello(c,T) do begin c:= SuccessivoFratello(c,T); NLG(T,c) end end end L’agorimto è stato relizzato nella classe Dpml2NLG nel metodo elabora.

3.3 Risultato Ogni volta che l’applicazione viene eseguita lo stesso piano viene tradotto in maniera differente; attraverso la scelta di sinonimi, in modo casuale, da WordNet. Ecco alcuni esempi:

T HE CYCLAMENS AND D AHLIA PINNATAS ARE BULB PLANTS , WHILE THE ROSES IS BUSH . T HE DAHLIAS AND ROSEBUSHES BLOSSOM ON SUMMER , WHILE THE CYCLAMENS BLOOMS ON WINTER .

T HE C YCLAMEN PURPURASCENSES AND D AHLIA PINNATAS ARE BULB PLANTS , WHILE THE ROSES IS SCRUB .

T HE D AHLIA PINNATAS AND ROSES BLOOM ON SUMMER , WHILE

THE CYCLAMENS BLOOMS ON WINTER .

T HE CYCLAMENS AND D AHLIA PINNATAS ARE BULB PLANTS , WHILE THE ROSES IS SCRUB . T HE DAHLIAS AND ROSEBUSHES BLOSSOM ON SUMMER , WHILE THE C YCLAMEN PURPURASCENSES BLOSSOMS ON WINTER .

Realizzazione superficiale 24/29


Realizzazione superficiale Di seguito un’altro esempio di utilizzo che tiene conto di aspetti che analizzeremo successivamente: scelta del complemento opportuno, attraverso la disambiguazione del complemento. Inform : Arrive(flight, , Denver, 22pm)

T HE FLIGHT COMES TO D ENVER AT 22 PM . T HE FLIGHT ARRIVES TO D ENVER AT 22 PM .

3.4 Architettura del sistema Conoscenza LingRealization

Dpml2NLG

Dominio

DPML WordNet

API Xerces

DBLEssico

At to Co municat ivo

API WordNet

SimpleNLG

3.4.1 Dettaglio Il sistema Dpml2NLG riceve in input il piano del discorso in formato DPML. Prima di tutto controlla che sia valido(rispetta il DTD) e ben formato , successivamente applica l’algoritmo precedentemente

riportato per la generazione del testo

mediante esplorazione del piano del discorso. A questo punto ogni nodo foglia, che riporta l’atto comunicativo viene analizzato dal LingRealization. Questo si occupa di estrarre dall’atto comunicativo, espresso in forma logica, le parti della frase: soggetto, verbo, complemento diretto, complementi diretti. Il verbo è rappresentato dal predicato, il primo argomento del predicato rappresenta il soggetto (se ci sono più soggetti separati dal carattere ‘#’) , il secondo argomento opzionale rappresenta il complemento diretto, e i successivi rappresentano gli altri complementi indiretti. Realizzazione superficiale 25/29


Realizzazione superficiale Una volta riconosciuti gli elementi della frase, questi vengono convertiti in una o più parole del linguaggio. Il DBLessico ha al suo interno una mappatura degli elementi che possono essere letti nell’atto comunicativo con l’offset di una definizione di WordNet( e quindi una lista di sinonimi associati). Es: private private private private private private private private private private private

static static static static static static static static static static static

long long long long long long long long long long long

isA=2579744; season=290759; cyclamens=11925803; dahlias=11792720; scrubs= 8323572; rose= 12451976; summer =15038062; winter =15038594; arrive=1987643; flight= 8107191; denver= 8937997;

Vediamo cosa ad esempio è associato al verbo flower sul dizionario semantico WordNet identificato dalla parola ‘season’ nel piano del discorso: {00290759} <verb.change> bloom#1, blossom1#1, flower#1 -- (produce or yield flowers; "The cherry tree bloomed")

Il primo numero rappresenta l’offset della definizione, successivamente sono elencati rispettivamente il tipo, i sinomi, la definizione ed esempi di frase. Quindi attraverso l’uso di SimpleNLG viene composta, in modo opportuno la frase. Il package DBLessico si occupa, anche, della scelta della preposizione opportuna da associare ad un complemento indiretto. La conoscenza del domnio ha il ruolo di interfacciarsi con il database che contiene informazioni relative a tutto il domnio. Anche se presente nell’architettura, negli esempi qui realizzati non viene utilizzato ma è stata comunque implementata una metodo per il riconoscimento dei funtori.

Realizzazione superficiale 26/29


Realizzazione superficiale

3.5 Metodi più importanti realizzati

dammiSynset: restiuisce i sinset di una parola per un certa Part's Of Speech: verbo, nome, agettivo e avverbio. getSynonyms: restituisce i sinomini di un certo offset(che identifica il significato di una parola) con un particolare POS. getLemmas: restituisce i lemmi di un sinset Hypernyms: estrae la gerarchia degli iperonimi del significato "sense" isTimePeriod: restituisce vero se una certa parla ha il senso di periodo, come per esempio ‘winter’ e ‘ summer’ a cui associare la preposizione ‘on’; avrà senso di periodo se ha come iperonimo l’oggeto time_period(non solo al primo livello). isLocation: restituisce vero se stringa in input identifica una cittào una regione: ha come iperonimo l’oggeto ‘city’ o ‘region’ isHour: restituisce vero se la stringa in inpu identifica un orario.

3.6 Soluzioni realizzate •

Algoritmo per la generazione del testo mediante esplorazione del piano del discorso rappresentato in DPML o Conversione dell’atto comunicativo in frase o Realizzazione di subordinazione (nucleo + satellite ) specificando due SSPhrase e aggiungendo la ‘cue’ phrase alla seconda: la subordinata.

Mapping atto comunicativo in forma logica e input per simpleNLG o Il verbo è rappresentato dal predicato, il primo argomento del predicato rappresenta il soggetto (se ci sono più soggetti separati dal carattere ‘#’) , il secondo argomento opzionale rappresenta il complemento diretto, e i successivi rappresentano gli altri complementi indiretti. o Riconoscimento di funtori tra gli argomenti

Realizzazione superficiale 27/29


Realizzazione superficiale •

Uso di sinonimi o Mappatura degli elementi leggibili dal piano con l’offset di una definizione di Wordnet che identifica quindi una serie di sinonimi

Disambiguazione dei complementi per la scelta della preposizione corretta o Uso di wordnet e del verbo per identificare il tipo di complemento e quindi determinare quale preposizione utilizzare. Tipi di disambiguazioni realizzate: 

isLocation:

riconoscendolo se il lemma ha come iperonimo “city”

oppure “region”. Se quindi viene usato un verbo del tipo ‘arrive’ o un suo sinonimo, questo implica che si vuole realizzare il complemento di moto a luogo e quindi scelgo la preposizione “to” 

isHour:

riconosco se il complemento è un orario, allora uso la

preposizione “at” 

isTimePeriod:

riconoscendolo se il lemma ha come iperonimo

“time_period" quindi usare come preposizione “on”. Es. “on winter”.

3.7 Sviluppi Futuri •

Scelta adeguata degli articoli per i soggetti

Scelta opportuna dei sinonimi in base all’utente o Uso di sinonimi più o meno specialistici del dominio in base al tipo di utente

Selezionare dal DB del domimio le informazioni necessarie come definito dal funtore tra gli argomenti del predicato

Realizzazione superficiale 28/29


Bibliografia

4 BIBLIOGRAFIA

Bibliografia 29/29

Piano Discorso-Generazione Superficiale-SimpleNLG  

Generazione del testo mediante esplorazione del piano del discorso rappresentato in DPML; Mapping atto comunicativo in forma logica e input...

Read more
Read more
Similar to
Popular now
Just for you