=Paper=
{{Paper
|id=None
|storemode=property
|title=ProgramD_TV!
|pdfUrl=https://ceur-ws.org/Vol-860/paper4.pdf
|volume=Vol-860
|dblpUrl=https://dblp.org/rec/conf/aiia/CaponiFV12
}}
==ProgramD_TV!==
ProgramD_TV!* Una chatbot estesa Emiliano Caponi, Irene Fabrini, Andrea Vanzo Ingegneria Informatica Laurea Magistrale Università di Tor Vergata1 Abstract. Le Chatbots sono applicazioni che simulano il dialogo intelligente con esseri umani. Il paradigma di realizzazione più utilizzato è l’approccio Stimolo-Risposta (S/R). Lo Stimolo è un insieme di frasi attese dalla chatbot, la Risposta sono le frasi restituite all’utente. Spesso tale approccio limita le potenzialità dell’interazione: la chatbot risponde solo quando la frase sottomessa dall’utente corrisponde ad una delle frasi attese. L’obiettivo del lavoro è il “rilassamento” di S/R attraverso due approcci: la semantica relazionale (relazione semantica tra parole) e la semantica distribuzionale (correlazione statistica tra parole). Attraverso tali meccanismi, la chatbot può rispondere anche in presenza di forte similarità tra la frase di input ed una frase attesa, mantenendo ancora coerenti le risposte. L’adozione di questi approcci permette, quindi, di migliorare le prestazioni base della chatbot. Keywords: NLP, dialogo, semantica 1 Introduzione Tra le applicazioni più diffuse dell’elaborazione del linguaggio naturale ci sono l’estrazione e la manipolazione di informazioni. Tra le altre, ci siamo interessati all’analisi e sviluppo delle Chatbots che hanno il compito di simulare il dialogo e l'interazione tra un essere umano ed un agente. Rendere più efficaci tali sistemi ne permetterebbe l’inserimento in applicazioni industriali di diverse tipologie. Uno dei paradigmi più utilizzati per realizzare una Chatbot è lo Stimolo-Risposta (S/R). Lo Stimolo è rappresentato dall’insieme delle frasi che sono attese dalla chatbot, mentre la Risposta è l’insieme delle frasi che la chatbot ritorna al partner della comunicazione. Negli anni si sono sviluppati diversi linguaggi e piattaforme utili allo sviluppo delle chatbot. Le tecnologie prese in esame in questo lavoro sono l’AIML 2 (Artificial Intelligence Markup Language) e ProgramD 3 . L’AIML si presenta come estensione del linguaggio XML e la sua * Estensione di ProgramD da parte di studenti di Tor Vergata (TV) 1 Corso di Intelligenza Artificiale tenuto dalla Prof. M.T. Pazienza, definizione del tema progettuale da parte del prof. F. M. Zanzotto, tutoraggio del dot. A. Turbati 2 http://www.alicebot.org/TR/2001/WD-aiml-1.0.1-20011018-005.html 3 http://aitools.org/Program_D adfa, p. 1, 2011. © Springer-Verlag Berlin Heidelberg 2011 caratteristica è proprio la codifica del paradigma (S/R). Gli stimoli sono elementi Pattern, mentre le risposte corrispondono ad elementi Template. ProgramD è la piattaforma utilizzata nel lavoro che permette l’implementazione degli standard AIML attraverso il linguaggio Java. Talvolta il paradigma S/R utilizzato da AIML- ProgramD può essere limitante nell’interazione tra utente e chatbot a causa della rigidità del paradigma stesso: la chatbot risponde solo nel caso di perfetta corrispondenza (matching) tra la frase di input ed uno degli elementi Pattern AIML. Data la variabilità lessicale dei linguaggi naturali, un concetto è espresso attraverso diverse forme frasali, che la chatbot non sempre è in grado di riconoscere. Per superare tale limitazione, si è cercato di identificare un approccio alternativo che è stato oggetto della nostra attività progettuale. L’idea di base è perciò quella di sostituire il semplice pattern-matching con un approccio basato sulla valutazione della similarità tra termini presenti nello stimolo e quelli presenti nella risposta. In questo modo, il successo di una interrogazione non sarà dipendente dalle forme superficiali, ma guidato dal valore di similarità. 2 Metodologie utilizzate L’obiettivo generale del lavoro è quello di estendere ProgramD attraverso l’utilizzo sia della semantica su dizionari strutturati che della semantica distribuzionale con l’intento di estendere il paradigma S/R implementato da ProgramD. 2.1 Semantica relazionale su dizionari strutturati: EuroWordNet Nella semantica relazionale: due parole w1 e w2 sono correlate semanticamente se sono in una qualsiasi relazione tra: iperonimia, sinonimia, antonimia... Tali relazioni sono implementate in risorse quali dizionari strutturati o thesauri. Nel progetto si utilizza EuroWordNet4 per l’italiano che è un database multilingue con reti di parole (wordnet) per alcune lingue europee. Gli EuroWordNet sono strutturati nello stesso modo del WordNet per l'inglese (Princeton WordNet)5. 2.2 Semantica distribuzionale La semantica distribuzionale considera come due parole w1 e w2 co-occorrono all'interno della stessa frase o di una finestra prestabilita in fase di progetto, considerando la loro distribuzione. In particolare, si sfrutta la Latent Semantic Analysis (LSA) che permette di estrarre e rappresentare il significato delle parole statisticamente, da un vasto insieme di documenti. LSA analizza le relazioni tra un insieme di documenti e i termini che essi contengono producendo un insieme di concetti (o topic) relativi ai documenti e ai termini. LSA assume che parole che sono 4 http://www.ilc.cnr.it/viewpage.php/sez=ricerca/id=820/vers=ita 5 G. A. Miller, R. Beckwith, C. Fellbaum, D. Gross, and K. Miller, «Introduction to WordNet: An On- line Lexical Database,» International Journal Lexicography, pp. 235-244, 1990. vicine di significato occorreranno vicine nel testo (co-occorrenza). La matrice di partenza è una matrice termini per documenti, estratta da un corpus. Attraverso una trasformazione matriciale (SVD – Singular Value Decomposition, produce una approssimazione della matrice di partenza con rango minore), si estraggono nuove dimensioni (topic) che catturano meglio il contenuto informativo della matrice di partenza. 3 Descrizione ProgramD_TV Gli elementi essenziali di ProgramD sono: 1) Core: modulo che permette di configurare tutti gli elementi per l’esecuzione della ChatBot; 2) Parser: effettua l’analisi dei file AIML ed XML; 3) Graph: contiene elementi quali Nodemapper e Graphmaster che hanno il compito di implementare il pattern S/R; 4) Multiplexor: ha il compito di gestire i flussi di input e di output; 5) Shell: l’interfaccia grafica che permette l’interazione Utente/Chatbot. Nella figura 1 si può vedere una schematizzazione della struttura associata a ProgramD. Fig. 1. Overview architettura ProgramD Il modulo preso in esame è il Graph ed in particolare l’elemento GraphMaster, che ha il compito di costruire l’albero delle frasi attese dalla Chatbot e gestire il meccanismo di matching responsabile della navigazione. La costruzione dell’albero è un’operazione semplice: a partire da un elemento radice fittizio, le parole presenti nel file AIML corrispondono ai nodi dell’albero mentre i Template sono gli elementi foglia. Un elemento Pattern è un percorso tra l’elemento radice ed un nodo che precede gli elementi foglia. L’operazione di matching è anch’essa molto intuitiva. Data una frase di input composta da N parole: w1, w2, …, wN la condizione di matching è soddisfatta se sarà presente in un qualsiasi percorso dell’albero la sequenza w1, w2,…wN. Questa breve descrizione sulla operazione di matching mostra i limiti del paradigma S/R cioè deve essere presente nell’albero la sequenza w1, w2,…wN senza poter ragionare in termini di similarità semantica tra la parola wi dell’input e wn presente nel nodo. Per superare questo limite è stato arricchito ognuno dei nodi del Graphmaster con i synset associati alla parola wn presente indipendentemente dalla categoria sintattica del termine in esame. Questo semplice approccio rappresenta la BASELINE del lavoro. Per fare ciò è stata implementata una libreria che, sfruttando le interfacce e la libreria JMWNL6 (Pazienza M.T., A. Stellato, A. Tudorache, 2008), utilizza il lessico strutturato di EuroWordNet (Pazienza M.T., A. Stellato, A. Tudorache, 2008). Ogni termine appartenente al pattern AIML analizzato da ProgramD viene espanso mediante EuroWordNet andando così a formare un insieme di termini sinonimi piuttosto che un termine singolo. In questo modo, durante la fase di matching sarà possibile catturare anche frasi che contengano termini sinonimi a quelli già presenti nel file AIML. Per valutare tale approccio sono state implementate tre metriche di similarità: 1. LCH (Leacock C., M. Chodorow, 1998) trova il più corto path tra due concetti e scala questo valore con la massima lunghezza del path trovata nella gerarchia is-a della tassonomia nella quale occorre: dove è la lunghezza del path più breve tra due concetti e D è la massima profondità della tassonomia. 2. WUP (Wu Z. and M. Palmer, 1994) trova la profondità del LCS (Least Common Subsumer) dei concetti e la scala con la somma delle profondità dei concetti individuali (la profondità di un concetto è la sua distanza dal nodo radice): dove N, N1 e N2 sono le distanze tra nodo root e LCS, concetto c1 e concetto c2 rispettivamente. 6 forniteci dal gruppo ART di Tor Vergata: http://art.uniroma2.it/ 3. PATH (Pedersen T., S. Patwardhan, J. Michelizzi, 2004) è una metrica di similarità baseline definita come: dove path è il percorso più breve tra il concetto c1 e concetto c2. Con queste tre metriche si calcola la similarità tra la parola in input wi e le parole wp dei pattern AIML dello stesso livello. Fra tutti i valori che superano un certo valore di threshold, viene scelto quello massimo, che evidenzia quindi un valore maggiore di similarità. Proseguirà, quindi, il matching per il nodo associato al valore scelto. Si è scelto di utilizzare LCH come metrica di similarità, fissando il threshold ad 1.8 a fronte dei test eseguiti. Per utilizzare anche aspetti di semantica distribuzionale si è usata una matrice LSA (Latent Semantic Analysis) formata da 31779 termini per 250 topic, creata utilizzando una finestra di 3 parole per il contesto destro e 3 parole per il contesto sinistro a partire da un corpus di documenti estratti da Wikipedia 7 fornitaci dal gruppo ART 8. Per calcolare la similarità tra la parola in input wi e la parola wp dei pattern AIML si è utilizzata la cosine similarity: sim(wi , wp) = wi * wp / | wi | * | wp | tra i vettori della matrice LSA corrispondenti a wi e wp. Anche in questo caso, tra tutti i valori che superano una certa soglia (0.7), si sceglie quello massimo. Il nuovo spazio vettoriale (le dimensioni sono i topic ed i vettori i termini) sarà utilizzato per valutare la correlazione semantica tra termini con metriche di similarità tra vettori. 4 Testing Per il testing è stato utilizzato come file di riferimento Religione.aiml9 in lingua italiana ed appartenente al Package AIML Maria. Questo file consiste di 133 coppie Pattern/Template. Il testing è basato sul confronto tra le risposte della Chatbot con quelle previste da un essere umano e consiste nelle seguenti operazioni: 7 Il corpus è sviluppato dalla comunità WaCky ed è disponibile nel sito web: http://medialab.di.unipi.it/Project/QA/wikiCoNLL.bz2 8 http://art.uniroma2.it/ Si ringraziano i dottorandi D. Croce e D. Previtali per aver condiviso i dati (Croce D., D. Previtali, 2010). 9 http://aitools.org/Free_AIML_sets#Italian_AIML_.28Maria.29 1) costruzione del Testing Set (TS); 2) annotazione manuale del TS (Gold Standard); 3) confronto tra le risposte della Chatbot e quelle del Gold Standard. Nella fase 1 si sono generate 174 domande in lingua italiana sull’argomento religioso. Per la fase 2 è stato utilizzato un approccio di plausibilità della risposta; pertanto si considerano 3 annotatori che selezionano per ogni domanda, le 3 risposte più plausibili. Si fa presente che questo è un approccio restrittivo che può limitare l’identificazione di risposte esatte tra quelle fornite dal sistema. Per gestire l’agreement tra gli annotatori si è utilizzata la K-Fleiss Statistics (Fleiss I. J., 1971), una metrica utile a stabilire quanto le annotazioni sono tra di loro concordanti e molto flessibile sia alla presenza di annotatori multipli che di multi-classificazione. Tuttavia nel testing, la classificazione è stata binaria (Risposte Rilevanti/Non Rilevanti). Nella fase 3 è eseguito il testing, i cui risultati sono visibili nella tabella 1. Come si può vedere nella prima riga sono presenti i 4 approcci differenti utilizzati. I valori all’interno della tabella rappresentano perciò, per ogni approccio, rispettivamente: Numero di domande a cui la chatbot non riesce a rispondere diviso il numero totale di domande sottomesse Numero di domande a cui la chatbot risponde in modo corretto diviso il numero totale di domande sottomesse Numero di domande a cui la chatbot risponde in modo errato diviso il numero totale di domande sottomesse ProgramD BASELINE BASELINE + BASELINE + (senza (espansione METRICHE DI LSA estensioni) EuroWordNet) SIMILARITÀ Non Riponde 145/174 126/174 126/174 114/174 Risposte Corrette 19/174 29/174 29/174 37/174 Risposte Errate 10/174 19/174 19/174 23/174 TOT. 174/174 174/174 174/174 174/174 Table 1. 5 Analisi dei risultati e conclusioni L’obiettivo proposto era quello di migliorare la capacità di riconoscere, da parte di una chatbot, un concetto espresso in modo variabile attraverso diverse forme frasali. Dai dati di testing (tabella 1) si evince che si è riusciti ad avere un miglioramento di circa il 6% con l’espansione tramite EuroWordNet (BASELINE). In questo caso, la chatbot risponde a 19 domande in più rispetto a ProgramD senza estensioni, di cui 9 errate e 10 corrette. Con la seconda estensione sono state ottenute le stesse prestazioni della precedente a causa del vincolo temporale: la chatbot deve rispondere entro un certo intervallo di tempo, allo scadere del quale la risposta viene considerata errata. L’ultima modalità usata è quella che dà i risultati migliori, infatti viene incrementata la percentuale di risposte corrette dell’ 11%. In questo caso, l’incremento di decisioni, rispetto a ProgramD semplice, è stato di 31 risposte, di cui 13 errate e 18 corrette. Nel confronto tra i due approcci (BASELINE e BASELINE+LSA), l’introduzione di LSA permette 12 decisioni in più, con 4 errori commessi. L’incremento di risposte errate è dovuto a due fattori: il rischio di errore maggiore nel rispondere a più domande la creazione del Test Set mediante una annotazione restrittiva (come già analizzato nella sezione 4 Testing) Tali risultati permettono di pensare con fiducia ad applicazioni industriali. Inoltre un possibile sviluppo futuro potrebbe essere quello di prevedere un approccio che utilizzi la similarità semantica su base ontologica, in modo da poter sfruttare non solo la distanza tra i concetti, ma anche i valori delle proprietà tra loro in comune. 6 Referenze Croce D., D. Previtali. (2010). Manifold Learning for the Semi-Supervised Induction of FrameNet Predicates: An Empirical Investigation. In Proceedings of the 2010 Workshop on GEometrical Models of Natural Language Semantics (p. 7-16). Sweden: Association for Computational Linguistics. Fleiss I. J. (1971). Measuring nominal scale agreement among many raters. Psychological Bulletin, 378-382. Leacock C., M. Chodorow. (1998). Combining local context and WordNet similarity for word sense identification. In C. Fellbaum, WordNet: An electronic lexical database (p. 265–283). MIT Press. Pazienza M.T., A. Stellato, A. Tudorache. (2008). A Bottom-up Comparative Study of EuroWordNet and WordNet 3.0, Lexical and Semantic Relations. In K. C. Nicoletta Calzolari (Conference Chair) (A cura di), LREC. Marrakesh: European Language Resources Association (ELRA). Pazienza M.T., A. Stellato, A. Tudorache. (2008). JMWNL: An extensible multilingual library for accessing wordnets in different languages. In K. C. Nicoletta Calzolari (Conference Chair) (A cura di), LREC. Marrakesh: European Language Resources Association (ELRA). Pedersen T., S. Patwardhan, J. Michelizzi. (2004). WordNet::Similarity - Measuring the Relatedness of Concepts. In Demonstration Papers at HLT-NAACL 2004 (p. 38-41). Boston, Massachusetts: Association for Computational Linguistics. Wu Z. and M. Palmer. (1994). Verb semantics and lexical selection. In 32nd Annual Meeting of the Association for Computational Linguistics (p. 133–138). Las Cruces, New Mexico.