|
HALDO: una implementazione di Eliza in Java HALDO č un applet Java in grado di essere eseguita stand-alone (i.e. come applicazione). In termini tecnici, HALDO č un’istanza della classe ElizaFE che contiene, oltre ai metodi che definiscono le regole di transizione della FST che fa “ragionare” il programma, anche la logica applicativa dell’interfaccia grafica utente. Una descrizione estesa del funzionamento di HALDO richiederebbe uno spazio eccessivo, si illustrano quindi le variabili globali ed i metodi principali utilizzati dal programma. La classe ElizaFe si avvale delle variabili globali seguenti: · UserName: nome dell’utente connesso ·
UserSex:
sesso dell’utente, viene determinato dalle domande che puň rivolgere HALDO
all’utente ·
connected:
vale true se l’utente č
connesso e false viceversa ·
history:
č un array di 10x7 stringhe, contenente la storia delle ultime 10
frasi rivolte ad HALDO ed i dati estratti nel loro processamento. Ogni
riga dell’array contiene nell’ordine la frase di input, l’input con la
persona dei verbi invertita, la parola chiave eventalmente trovata, il
resto della frase che segue la parola chiave ed il punto di fine frase ·
trivia:
contiene la base di conoscenza dei luoghi comuni in cui HALDO tenta di
pescare ricercando parole di almeno 4 caratteri che siano contenute nella
frase di input ·
month:
contiene l’elenco dei mesi in italiano ·
keywords:
contiene l’elenco delle parole chiave e dell’indice di risposta relativo. HALDO reagisce attivando la corrispondente
istruzione case del metodo answer ·
swaps:
contiene l’elenco dei termini da scambiare dalla prima alla seconda persona I metodi della classe ElizaFE · badword_handler: provvede a disconnettere l’utente maleducato · swap_sentence: scambia la prima e la seconda persona di alcuni verbi e pronomi noti nella frase di input · answer: cerca una parola chiave nella frase con i tempi scambiati e produce la risposta relativa. Se non trova alcuna parola chiave, allora se la frase di input č interrogativa risponde vagamente con frasi tipo ”boh!” oppure “perche me lo chiedi ?”. Se questo test fallisce allora ricerca nella base di conoscenza dei luoghi comuni un termine che sia contenuto nella frase di input. E’ in questo punto che vengono attivate risposte tipo "Oggi surgelano tutto !" a frasi contenenti la parola chiave oggi. Se anche questa ricerca fallisce, allora risponde genericamente con frasi tipo “capisco…”. Le frasi di risposta non sono sempre le stesse, ma HALDO si avvale di un generatore di numeri casuale per determinare risposte diversificate. Una delle condizioni di risposta vaga, ad esempio, consente ad HALDO di interrogare l’utente su affermazioni fatte precedentemente, tipo “prima avevi detto: … “. · metodi main, init, action: gestiscono l’interfaccia grafica di HALDO Questa descrizione di HALDO č necessariamente breve, in ogni caso invito i lettori a contattarmi via e-mail, per qualsiasi dubbio o chiarificazione. |