Capitolo B3 ELIZA (in Java) Il primo codice per Eliza, concepito e sviluppato da Joseph Weizenbaum tra il 1964 e il 1966 presso il MIT (Massachusetts Institute of Technology), affrontava il tema dell’interazione con un elaboratore attraverso il linguaggio naturale, permettendo di scambiare quella che poteva sembrare una conversazione tra umani usando frasi comuni in lingua inglese. Non fu il solo programma di questo tipo: un altro esempio, che riscosse ai tempi un buon successo, fu il programma chiamato DOCTOR. Ciò che affascina in Eliza è il fatto che la controparte (in realtà, il software) simula il comportamento di uno psicoanalista di scuola rogeriana, aderente cioè alle tecniche di interazione terapeuta-paziente tipiche di Carl Rogers. Volendo naturalmente grandemente semplificare quella che in realtà è una teoria complessa e articolata, possiamo dire che, secondo le teorie rogeriane, è importante instaurare un dialogo tra medico e paziente in cui possano emergere elementi rassicuranti per quest’ultimo, quali l’empatia o l’interessamento dello specialista per i problemi e le ansie di chi si rivolge a lui per trovare soluzione ai propri conflitti interiori. Non tutti gli approcci della psicoterapia sono uguali: alcune scuole suggeriscono, ad esempio, un rapporto assolutamente distaccato, praticamente muto, da parte dello psicoterapeuta, che è solo testimone di quanto il soggetto in analisi voglia esprimere durante la seduta. Sono attualmente disponibili in rete più versioni di programmi che si basano sugli stessi concetti di base di Eliza, molti dei quali scritti in JavaScript: per molti tra essi sono anche disponibili i sorgenti. L’analisi del codice, che raccomandiamo a livello di esercizio, mostra come con una buona impostazione delle casistiche si possano ottenere risultati del tutto soprendenti, soprattutto per chi non ne conosce la genesi. I programmi qui consigliati prevedono tutti un’interazione in lingua inglese. L’inglese, ricordiamo, è una lingua particolarmente adatta alla generazione di interfacce in linguaggio naturale o semi-naturale, grazie alla quasi totale assenza di flessione dei verbi, la semplice formazione delle forme composte e dei plurali, l’assenza di discriminazione tra maschile e femminile dei sostantivi, oltre a una struttura delle frasi mediamente assai semplice e standardizzata. I programmi che simulano la conversazione con una controparte umana prendono il nome in gergo di chatterbot o chat bot. Per provare a sfidare Eliza, suggeriamo i seguenti link: http://www.manifestation.com/neurotoys/eliza.php3 realizzato da Michal Wallace e George Dunlop in php, mentre il seguente: http://cyberpsych.org/eliza/#.U248sRxrxCc è basato sullo stesso codice del precedente, in una versione in JavaScript con potenziamento delle funzioni realizzato grazie alla cooperazione con Carol Lindemann. Questo file è un’espansione online del corso di Addomine, Pons, Informatica © Zanichelli Editore S.p.A., 2014 [19974] 1 B3 La macchina e il test di Turing ELIZA (in Java) Una diversa versione, ma fondata sugli stessi principi di base, è stata sviluppata da Norbert Landsteiner ed è reperibile al seguente indirizzo di rete: http://blog.oxforddictionaries.com/2012/06/turing-test/ Il sito sopra citato contiene anche una buona analisi introduttiva sui principi fondamentali secondo i quali è costruito il codice che permette al computer di simulare un’interattività con un umano, anche se un utente scaltro riuscirebbe comunque abbastanza facilmente a rendersi conto del trucco. Anche Eliza, quindi, per quanto geniale, non supera il famoso Test di Turing. Questo file è un’espansione online del corso di Addomine, Pons, Informatica © Zanichelli Editore S.p.A., 2014 [19974] 2