ELIZA - A Study of Natural Language Eliza is a program designed to make natural language communication between Man and machine possible. Whether or not it successfully achieves this will be answered by the user. Eliza was originally written by Joseph Weizenbaum and described in his paper appearing in "The Communications of the Association of Computing Machinery" in 1966. The appearance of Weizenbaum's paper prompted much discussion in computing circles. Many believed Weizenbaum had crossed a barrier into the understanding of human speech, others recognized eliza to be nothing more than a clever trick. Amusing anecdotes surfaced about people who had used eliza. Some people unknowingly used the program, believing their computer terminal to be connected to that of another employee - with humourous results! Weizenbaum added an option to the program which channeled people's responses to a large file, which Weizenbaum was able to later read and muse over. Weizenbaum's secretary, who claimed that she entered personal and confidential information to the program, demanded that he remove this option. It is often claimed that to explain is to explain away - and nowhere is this maxim truer than in a program such as eliza. The user, initially bemused be eliza's apparent ability to "understand" speech, quickly moves it to the "I-could-have-done-that" basket. To help you with this transition, here is a brief description of eliza. Eliza first prints a greeting message, and while this is being read by the user, reads from a large data file termed the 'script'. The script consists of two types of dictionaries - templates and keywords. Each template consists of a standardized sentence, followed by a number of optional responses. For example : ---snap--- he is % *how long has he been %? *is your mother also %? *do you want to be % also? ---snap--- where the % symbol may match any number of words. For example "he is very dead" may draw the response "is your mother also very dead?". If eliza is unable to match the user's input sentence with any of the standard sentences (templates), it attempts to match each word in the input sentence with a list of keywords. Each keyword has associated with it a number indicating the importance attached to finding that keyword in the input sentence. A typical keyword sequence may be : ---snap--- perhaps 4 *you are being indecisive *you are still being indecisive. I warned you *you seem to lack self confidence ---snap--- If eliza fails to match both templates and keywords, it relies on what the user has previously typed - keeping a "history" of keywords and using these to prompt the conversation if it gets "bogged down". All very simple really! The implementation of eliza on display for Uniday in the Department of Computer Science is running on a Digital Corporation VAX-11/750 under the Unix version 4.2BSD operating system. It is written in the 'C' programming language and reads from a thirty six thousand character script, comprising eighty templates and two hundred and twenty keywords. By modifying the standard script and increasing the priority of keywords such as 'uniday', 'computer', 'america' and 'cup', eliza can be made to give the impression of "understanding" current events. Any questions regarding eliza or the Department of Computer Science in general will be gratefully received. Chris McDonald