<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Emiliano Caponi</institution>
          ,
          <addr-line>Irene Fabrini, Andrea Vanzo</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Ingegneria Informatica Laurea Magistrale Università di Tor Vergata</institution>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2011</year>
      </pub-date>
      <abstract>
        <p>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.</p>
      </abstract>
      <kwd-group>
        <kwd>NLP</kwd>
        <kwd>dialogo</kwd>
        <kwd>semantica</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Tra le applicazioni più diffuse dell’elaborazione del linguaggio naturale ci sono
l’estrazione e la manipolazione di informazioni.</p>
      <p>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
*
1
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
AIMLProgramD 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.</p>
      <p>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</p>
    </sec>
    <sec id="sec-2">
      <title>Metodologie utilizzate</title>
      <p>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</p>
      <sec id="sec-2-1">
        <title>Semantica relazionale su dizionari strutturati: EuroWordNet</title>
        <p>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</p>
      </sec>
      <sec id="sec-2-2">
        <title>Semantica distribuzionale</title>
        <p>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
http://www.ilc.cnr.it/viewpage.php/sez=ricerca/id=820/vers=ita
G. A. Miller, R. Beckwith, C. Fellbaum, D. Gross, and K. Miller, «Introduction to WordNet: An
Online 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</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Descrizione ProgramD_TV</title>
      <p>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.</p>
      <p>Nella figura 1 si può vedere una schematizzazione della struttura associata a
ProgramD.</p>
      <p>
        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
        <xref ref-type="bibr" rid="ref4 ref5">(Pazienza M.T., A. Stellato,
A. Tudorache, 2008)</xref>
        , utilizza il lessico strutturato di EuroWordNet
        <xref ref-type="bibr" rid="ref4 ref5">(Pazienza M.T.,
A. Stellato, A. Tudorache, 2008)</xref>
        . 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.
      </p>
      <p>
        Per valutare tale approccio sono state implementate tre metriche di similarità:
1. LCH
        <xref ref-type="bibr" rid="ref3">(Leacock C., M. Chodorow, 1998)</xref>
        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
        <xref ref-type="bibr" rid="ref7">(Wu Z. and M. Palmer, 1994)</xref>
        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/
dove path è il percorso più breve tra il concetto c1 e concetto c2.
      </p>
      <p>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.</p>
      <p>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 Wikipedia7 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:</p>
      <p>sim(wi , wp) = wi * wp / | wi | * | wp |
tra i vettori della matrice LSA corrispondenti a wi e wp.</p>
      <p>Anche in questo caso, tra tutti i valori che superano una certa soglia (0.7), si sceglie
quello massimo.</p>
      <p>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</p>
    </sec>
    <sec id="sec-4">
      <title>Testing</title>
      <p>
        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
        <xref ref-type="bibr" rid="ref1">(Croce D., D. Previtali, 2010)</xref>
        .
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.
      </p>
      <p>
        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
        <xref ref-type="bibr" rid="ref2">(Fleiss I. J., 1971)</xref>
        ,
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.
      </p>
      <p>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</p>
      <p>Non Riponde
Risposte Corrette
Risposte Errate</p>
      <p>TOT.</p>
      <p>ProgramD</p>
      <p>(senza
estensioni)
145/174
19/174
10/174
174/174</p>
      <p>BASELINE
(espansione
EuroWordNet)
126/174
29/174
19/174
174/174</p>
    </sec>
    <sec id="sec-5">
      <title>Analisi dei risultati e conclusioni</title>
      <p>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.</p>
      <p>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</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <surname>Croce D.</surname>
            ,
            <given-names>D. Previtali.</given-names>
          </string-name>
          (
          <year>2010</year>
          ).
          <article-title>Manifold Learning for the Semi-Supervised Induction of FrameNet Predicates: An Empirical Investigation</article-title>
          .
          <source>In Proceedings of the 2010 Workshop on GEometrical Models of Natural Language Semantics</source>
          (p.
          <fpage>7</fpage>
          -
          <lpage>16</lpage>
          ). Sweden:
          <article-title>Association for Computational Linguistics</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <surname>Fleiss</surname>
            <given-names>I. J.</given-names>
          </string-name>
          (
          <year>1971</year>
          ).
          <article-title>Measuring nominal scale agreement among many raters</article-title>
          .
          <source>Psychological Bulletin</source>
          ,
          <fpage>378</fpage>
          -
          <lpage>382</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <surname>Leacock C.</surname>
          </string-name>
          ,
          <string-name>
            <surname>M. Chodorow.</surname>
          </string-name>
          (
          <year>1998</year>
          ).
          <article-title>Combining local context and WordNet similarity for word sense identification</article-title>
          . In C. Fellbaum,
          <string-name>
            <surname>WordNet:</surname>
          </string-name>
          <article-title>An electronic lexical database</article-title>
          (p.
          <fpage>265</fpage>
          -
          <lpage>283</lpage>
          ). MIT Press.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <surname>Pazienza M.T.</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Stellato</surname>
            ,
            <given-names>A. Tudorache.</given-names>
          </string-name>
          (
          <year>2008</year>
          ).
          <article-title>A Bottom-up Comparative Study of EuroWordNet and WordNet 3.0, Lexical and Semantic Relations</article-title>
          . In K. C. Nicoletta
          <string-name>
            <surname>Calzolari</surname>
          </string-name>
          (Conference Chair)
          <article-title>(A cura di), LREC</article-title>
          . Marrakesh:
          <string-name>
            <surname>European Language Resources Association (ELRA).</surname>
          </string-name>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <surname>Pazienza M.T.</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Stellato</surname>
            ,
            <given-names>A. Tudorache.</given-names>
          </string-name>
          (
          <year>2008</year>
          ).
          <article-title>JMWNL: An extensible multilingual library for accessing wordnets in different languages</article-title>
          . In K. C. Nicoletta
          <string-name>
            <surname>Calzolari</surname>
          </string-name>
          (Conference Chair)
          <article-title>(A cura di), LREC</article-title>
          . Marrakesh:
          <string-name>
            <surname>European Language Resources Association (ELRA).</surname>
          </string-name>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <string-name>
            <surname>Pedersen T.</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Patwardhan</surname>
            ,
            <given-names>J. Michelizzi.</given-names>
          </string-name>
          (
          <year>2004</year>
          ).
          <article-title>WordNet::Similarity - Measuring the Relatedness of Concepts</article-title>
          .
          <source>In Demonstration Papers at HLT-NAACL</source>
          <year>2004</year>
          (p.
          <fpage>38</fpage>
          -
          <lpage>41</lpage>
          ). Boston, Massachusetts: Association for Computational Linguistics.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <string-name>
            <surname>Wu Z.</surname>
          </string-name>
          and
          <string-name>
            <surname>M. Palmer.</surname>
          </string-name>
          (
          <year>1994</year>
          ).
          <article-title>Verb semantics and lexical selection</article-title>
          .
          <source>In 32nd Annual Meeting of the Association for Computational Linguistics</source>
          (p.
          <fpage>133</fpage>
          -
          <lpage>138</lpage>
          ). Las Cruces, New Mexico.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>