Dialoghi al calcolatore

Programmi come Eliza e Splotch sono quanto di meno intelligente e pensante possa esistere: tecnicamente sono definiti FST (Finite State Transducers) o Trasduttori a Stati Finiti, non fanno altro che sostituire blocchi di frasi per costruire altre frasi di senso compiuto. Questi programmi vengono utilizzati spesso come risponditori automatici di e-mail. Ad esempio, a frasi come “I have discoverd a new bug in …”, possono rispondere “Yes, I do not have the time to fix … , now”. Tutto sta ad addestrare il trasduttore con un numero sufficiente di regole.

Per gioco, ho implementato HALDO, una versione estremamente semplificata di Eliza per farne un “maggiordomo virtuale”.

La conversazione che segue è tratta da un dialogo che ho svolto con HALDO (le frasi “umane” sono precedute da >>) :

Piacere di fare la tua conoscenza
>> ciao haldo
ciao carlo, piacere di conoscerti
>> devo scrivere un articolo su di te
  da fastidio a qualcuno ?
>> no, assolutamente
pazienza ...
>> volevi che desse fastidio a qualcuno ?
non saprei ...
>> insomma, vuoi che io scriva un articolo su di te ?
non saprei ...
>> preferisci pensarci ?
perche' me lo chiedi ?
>> perché non voglio darti fastidio
puo' essere che non voglio darmi fastidio , secondo te ?
>> dipende solo da te
dipende tutto dal contesto
>> vogliamo raccontare la storia dei programmi fatti come te
trovi una sezione di link dedicata allo shareware nel nostro sito
>> si, ma io voglio raccontare come sei fatto e con quali tecniche
ok
>> inoltre, l'articolo sarà corredato da una sezione scritta in java
puoi rivolgere a carlo delle domande
in merito a java
manda una mail a cconsoli@iol.it

>> lo sai chi sono ?
boh !
>> sono io carlo
l'importante e che tu sia sempre te stesso
>> io sono la persona che ti ha scritto
l'importante e che tu sia sempre te stesso
>> la persona che ti ha scritto sono io
non saprei ...
>> non ti fidi di me ?
come mai mi fidi di te  ?
>> lo sai che sei ancora un pò sgrammaticato ?
non saprei ...
>> che ore sono ?
sono le 19 e 48 del 14 Novembre
>> dove sei ?
perche' ti interessa se sono  ?
>> non mi interessa se sei, ma dove
come mai ti interessa se sono ma dove  ?
>> perché ripeti sempre quello che dico ?
puo' essere che ripeti sempre quello che dico , secondo te ?
>> direi di si
ok
>> che tempo fa a londra ?
fa freddo, anche se non c'e' piu' la mezza stagione
>> eh, già, no ci sono più gli inverni come una volta
pazienza ...
>> oggi è tutto fatto con le polverine
Tanto nello stomaco si mischia tutto !
>> hai ragione, poco importa se il mangiare è genuino
I ricchi hanno sempre ragione ...
>> ed i poveri sono sempre gli ultimi
Ai soldi bisogna sempre dare del Lei !
>> i giovani d'oggi non hanno più il senso del denaro
Sono i tempi che sono cambiati, non i giovani ...
>> oggi come oggi, se non hai la casa al mare, non sei nessuno

 

Il programma risponde in tre fasi:

1.      Identifica i segni di interpunzione in esclamativi o interrogativi

2.      Scambia la prima con la seconda persona dei verbi che conosce (es. dar_mi <-> dar_ti) ed i pronomi

3.      Ricerca una parola chiave all’interno della frase e memorizza tutto il resto della frase che segue la parola chiave

4.      Risponde con la frase adatta alla parola chiave trovata

Ad esempio, la trasduzione della frase “sei andato al mare ieri ?”  operata da HALDO passa attraverso le operazioni:

1.      trasforma “sei” in “sono

2.      identifica “sono” come parola chiave e memorizza il resto della frase “andato al mare ieri

3.      risponde con “perché ti interessa se sono“ ed aggiunge il resto della frase “andato al mare ieri

Ottenendo il frammento di conversazione

sei andato al mare ieri ?

perché ti interessa se sono andato al mare ieri ?

Questa operazione può essere ripetuta più volte fino ad ottenere una pseudo-conversazione come quella riportata sopra.

Il dialogo riportato è volutamente lungo per mettere in luce le carenze caratteristiche di una FST. HALDO non è in fatti in grado di capire quando applicare “intelligentemente” le regole di trasduzione. Ad esempio, sostituisce “darti”  in “darmi” quando non ce ne sarebbe bisogno, come ad esempio nella assurda risposta “puo' essere che non voglio darmi fastidio , secondo te ?” all’affermazione “perché non voglio darti fastidio”.

Tuttavia, è interessante notare che, istruendo con cura una FST, è possibile eliminare del tutto queste incertezze nel linguaggio.

E’ possibile infatti aggiungere tutta una rosa di regole che rendono la FST più umana e divertente. Ad esempio, HALDO sa rispondere sul tempo, dare i numeri al lotto, ed ha a disposizione una straordinaria base di conoscenza sui luoghi comuni, evidente nell’ultima parte del dialogo.

Gli usi correnti delle FST sono più rivolti alla costruzione di generatori automatici di interviste, collegati a sistemi esperti di datawarehousing che applicano tecniche sofisticate come quelle del data mining per produrre indagini di mercato.