AIML e teoria dei chatbot – Terza parte

AI, INTELLIGENZA ARTIFICIALE, TUTORIAL

TAG <think>

Supponiamo di volere fare delle azioni di configurazione in AIML  ma non vogliamo che il sistema dia feedback all’utente. In tal caso possiamo usare il tag <think> che consentirà al bot di eseguire delle operazioni in “background”. Facciamo un esempio per capire meglio il concetto.

<category> 
<pattern>MI CHIAMO *</pattern>
<template>Che bel nome! 
<set name="nome"><star/></set>
</template> 
</category>

Nell’esempio precedente all’input

utente : mi chiamo Domenico

il bot risponderà

bot: Che bel nome! Domenico

e verrà settata la variabile name=”nome”

ma se usassimo  il tag <think>  il risultato sarebbe leggermente diverso.

<category> 
<pattern>MI CHIAMO *</pattern>
 <template>Che bel nome! 
  <think><set name="nome"><star/></set></think>
</template> 
</category>

in questo secondo esempio quando l’utente scriverà

utente : mi chiamo Domenico

il bot risponderà

bot: Che bel nome!

e verrà settata la variabile name=”nome”

In definitiva possiamo usare sempre il tag <think> all’interno del template per rendere le operazioni di configurazione AIML silenti all’utente.

 TAG <random> : risposta causale

E’  possibile configurare il bot  affinché ad uno  stesso stimolo possa rispondere casualmente e fornire pertanto risposte diverse. Per ottenere questo risultato si può usare  l’elemento random, all’interno del quale i vari responsi sono contenuti in elementi <li>:

<category>
 <pattern>ARRIVEDERCI</pattern> 
  <template> 
    <random> 
     <li>A presto.</li> 
     <li>Salve.</li>
     <li>Arrivederci.</li> 
    </random> 
  </template> 
</category>

 TAG <that> : risposta correlata

Come probabilmente , avrete già notato i tag AIML fino ad ora analizzati ci consentono di scrivere  delle regole atomiche che non tengono in considerazione della storia del dialogo.  Questo limite viene in parte superato con l’uso dei tag <that> e <topic>.  Il tag <that> consente al bot di selezionare una regola e di fornire una riposta  in base a quella  precedente  mentre con il tag <topic>  è possibile attivare un sottoinsieme di regole incorporate all’interno del contesto/topic configurato dinamicamente. Proviamo a capire questi due tag con degli esempi.

<category> 
<pattern>ripeti quello che hai detto</pattern> 
<template>certo ho detto : <that/></template> 
</category>

Con l’esempio precedente posso usare il <that/>  vuoto come variabile per recuperare l’ultima risposta del bot, ma una categoria può, però, essere condizionata dalla  risposta  precedente. Vediamo come sia possibile nell’esempio seguente:

<category>
<pattern>COSA INTENDI</pattern> 
<that>SAI QUALCOSA CHE DOVREI SAPERE</that> 
<template>Intendo che mi hai nascosto qualcosa!</template> 
</category>

In questo caso si ipotizza che il sistema di dialogo sia arrivato a un punto in cui ha dato, come esito, una frase come: «Sai qualcosa che dovrei sapere?». Quindi, l’interlocutore esterno ha risposto con: «Cosa intendi?». A questo punto, il sistema di dialogo trova la corrispondenza con il modello «COSA INTENDI», ma subordinatamente al fatto che il contesto, ovvero il responso precedente, sia quello che è stato effettivamente, allora dà l’esito che si vede nell’esempio. Quindi, qui, l’elemento that contenuto in category serve a definire uno stimolo subordinato a un responso precedente.

<<AIML e teoria dei chatbot – Seconda parte

AIML e teoria dei chatbot – Quarta parte >>

Se vuoi farmi qualche richiesta o contattarmi per un aiuto riempi il seguente form

    Comments