ELIZA is an early natural language processing computer program created from 1964 to 1966 at the MIT Artificial Intelligence Laboratory by Joseph Weizenbaum. Created to demonstrate the superficiality of communication between man and machine, Eliza simulated conversation by using a 'pattern matching' and substitution methodology that gave users an illusion of understanding on the part of the program, but had no built in framework for contextualizing events. Directives on how to interact were provided by 'scripts', written originally in MAD-Slip, which allowed ELIZA to process user inputs and engage in discourse following the rules and directions of the script. The most famous script, DOCTOR, simulated a Rogerian psychotherapist and used rules, dictated in the script, to respond with non-directional questions to user inputs. As such, ELIZA was one of the first chatterbots, but was also regarded as one of the first programs capable of passing the Turing Test.
ELIZA's creator, Weizenbaum regarded the program as a method to show the superficiality of communication between man and machine, but was surprised by the number of individuals who attributed human-like feelings to the computer program, including Weizenbaum’s secretary. Many academics believed that the program would be able to positively influence the lives of many people, particularly those suffering from psychological issues and that it could aid doctors working on such patients’ treatment. While ELIZA was capable of engaging in discourse, ELIZA could not converse with true understanding. However, many early users were convinced of ELIZA’s intelligence and understanding, despite Weizenbaum’s insistence to the contrary.
Joseph Weizenbaum’s ELIZA, running the DOCTOR script, was created to provide a ‘parody’ of “the responses of a non-directional psychotherapist in an initial psychiatric interview” and to “demonstrate that the communication between man and machine was superficial”. While ELIZA is most well known for acting in the manner of a psychotherapist, this mannerism is due to the data and instructions supplied by the DOCTOR script. ELIZA itself examined the text for keywords, applied values to said keywords, and transformed the input into an output; the script that ELIZA ran determined the keywords, set the values of keywords, and set the rules of transformation for the output. Weizenbaum chose to make the DOCTOR script in the context of psychotherapy to “sidestep the problem of giving the program a data base of real-world knowledge,” as in a Rogerian therapeutic situation, the program had only to reflect back the patient’s statements. The algorithms of DOCTOR allowed for a deceptively intelligent response, that deceived many individuals when first using the program.
Weizenbaum named his program ELIZA after Eliza Doolittle, a working-class character in George Bernard Shaw’s Pygmalion. According to Weizenbaum, ELIZA’s ability to be “incrementally improved” by various users made it similar to Eliza Doolittle, since Eliza Doolittle was taught to speak with an upper-class accent in Shaw’s play. However, unlike in Shaw’s play, ELIZA is incapable of learning new patterns of speech or new words through interaction alone. Edits must be made directly to ELIZA’s active script in order to change the manner by which the program operates.
Weizenbaum first implemented ELIZA in his own SLIP list-processing language, where, depending upon the initial entries by the user, the illusion of human intelligence could appear, or be dispelled through several interchanges. Some of ELIZA’s responses were so convincing that Weizenbaum and several others have anecdotes of users becoming emotionally attached to the program, occasionally forgetting that they were conversing with a computer. Weizenbaum’s own secretary reportedly asked Weizenbaum to leave the room so that she and ELIZA could have a real conversation. Weizenbaum was surprised by this, later writing, “I had not realized… that extremely short exposures to a relatively simple computer program could induce powerful delusional thinking in quite normal people.”
In 1966, interactive computing (via a teletype) was new. It was 15 years before the personal computer became familiar to the general public, and three decades before most people encountered attempts at natural language processing in Internet services like Ask.com or PC help systems such as Microsoft Office Clippy. Although those programs included years of research and work, ELIZA remains a milestone simply because it was the first time a programmer had attempted such a human-machine interaction with the goal of creating the illusion (however brief) of human-human interaction.
At the ICCC 1972 ELIZA met another early artificial intelligence program named PARRY and had the first computer only conversation. While ELIZA was built to be a "Doctor" PARRY was intended to simulate a patient with schizophrenia.
Weizenbaum originally wrote ELIZA in MAD-Slip for the IBM 7094, as a program to make natural language conversation possible with a computer. To accomplish this, Weizenbaum identified five “fundamental technical problems” for ELIZA to overcome: the identification of critical words, the discovery of a minimal context, the choice of appropriate transformations, the generation of responses appropriate to the transformation or in the absence of critical words and the provision of an ending capacity for ELIZA scripts. Weizenbaum solved these problems in his ELIZA program and made ELIZA such that it had no built in contextual framework or universe of discourse. However, this required ELIZA to have a script of instructions on how to respond to inputs from users.
ELIZA starts its process of responding to an input by a user by first examining the text input for a ‘keyword’. A ‘keyword’ is a word designated as important by the acting ELIZA script, which assigns to each keyword a precedence number, or a RANK, designed by the programmer. If such words are found, they are put into a ‘keystack’, with the keyword of the highest RANK at the top. The input sentence is then manipulated and transformed as the rule associated with the keyword of the highest RANK directs. For example, when the DOCTOR script encounters words such as “alike” or “same”, it would output a message pertaining to similarity, in this case “In what way?”, as these words had high precedence number. This also demonstrates how certain words, as dictated by the script, can be manipulated regardless of contextual considerations, such as switching first-person pronouns and second-person pronouns and vice versa, as these too had high precedence numbers. Such words with high precedence numbers are deemed superior to conversational patterns, and are treated independently of contextual patterns.
Following the first examination, the next step of the process is to apply an appropriate transformation rule, which includes two parts, the “decomposition rule” and the “reassembly rule”. First, the input is reviewed for syntactical patterns in order to establish the minimal context necessary to respond. Using the keywords and other nearby words from the input, different disassembly rules are tested until an appropriate pattern is found. Using the script’s rules, the sentence is then ‘dismantled’ and arranged into sections of the component parts as the “decomposition rule for the highest ranking keyword” dictates. The example that Weizenbaum gives is the input “I are very helpful” (remembering that “I” is “You” transformed), which is broken into (1) empty (2) I (3) are (4) very helpful. The decomposition rule has broken the phrase into four small segments, that contain both the keywords and the information in the sentence.
The decomposition rule then designates a particular reassembly rule, or set of reassembly rules, to follow when reconstructing the sentence. The reassembly rule then takes the fragments of the input that the decomposition rule had created, rearranges them, and adds in programmed words to create a response. Using Weizenbaum’s example previously stated, such a reassembly rule would take the fragments and apply them to the phrase “What makes you think I am (4)” which would result in “What makes you think I am very helpful”. This example is rather simple, since depending upon the disassembly rule, the output could be significantly more complex and use more of the input from the user. However, from this reassembly, ELIZA then sends the constructed sentence to the user in the form of text on the screen.
These steps represent the bulk of the procedures which ELIZA follows in order to create a response from a typical input, though there are several specialized situations that ELIZA/DOCTOR can respond to. One Weizenbaum specifically wrote about was when there is not a keyword. One solution was to have ELIZA respond with a remark that lacked content, such as “I see” or “Please go on.”. The second method was to use a “MEMORY” structure, which recorded prior recent inputs, and would use these inputs to create a response referencing a part of the earlier conversation when encountered with no keywords. This was possible due to Slip’s ability to tag words for other usage, which simultaneously allowed ELIZA to examine, store and repurpose words for usage in outputs.
While these functions were all framed in ELIZA’s programming, the exact manner by which the program dismantled, examined, and reassembled inputs is determined by the operating script. However, the script is not static, and can be edited, or a new one created, as is necessary for the operation in the context needed (thus how ELIZA can “learn” new information). This also allows the program to be applied in multiple situations, including the well-known DOCTOR script, which simulates a Rogerian psychotherapist, but also a script called “STUDENT”, which is capable of taking in logical analysis parameters and using it to give the answers to problems of related logic.
Weizenbaum's original MAD-SLIP implementation was re-written in Lisp by Bernie Cosell. A BASIC version appeared in Creative Computing in 1977 (although it was written in 1973 by Jeff Shrager). This version, which was ported to many of the earliest personal computers, appears to have been subsequently translated into many other versions in many other languages.
Another version of Eliza popular among software engineers is the version that comes with the default release of GNU Emacs, and which can be accessed by typing
M-x doctor from most modern emacs implementations.
ELIZA influenced a number of early computer games by demonstrating additional kinds of interface designs. Don Daglow wrote an enhanced version of the program called Ecala on a DEC PDP-10 minicomputer at Pomona College in 1973 before writing the computer role-playing game, Dungeon (1975).
Lay responses to ELIZA were disturbing to Weizenbaum and motivated him to write his book Computer Power and Human Reason: From Judgment to Calculation, in which he explains the limits of computers, as he wants to make clear in people's minds his opinion that the anthropomorphic views of computers are just a reduction of the human being and any life form for that matter. In the independent documentary film Plug & Pray (2010) Weizenbaum said that only people who misunderstood ELIZA called it a sensation.
The Israeli poet David Avidan, who was fascinated with future technologies and their relation to art, desired to explore the use of computers for writing literature. He conducted several conversations with an APL implementation of ELIZA and published them – in English, and in his own translation to Hebrew – under the title My Electronic Psychiatrist – Eight Authentic Talks with a Computer. In the foreword he presented it as a form of constrained writing.
There are many programs based on ELIZA in different programming languages. In 1980 a company called "Don't Ask Software" created a version called "Abuse" for the Apple II, Atari, and Commodore 64 computers, which verbally abused the user based on the user's input. Other versions adapted ELIZA around a religious theme, such as ones featuring Jesus (both serious and comedic) and another Apple II variant called I Am Buddha. The 1980 game The Prisoner incorporated ELIZA-style interaction within its gameplay. George Lucas and Walter Murch incorporated an Eliza-like dialogue interface in their screenplay for the feature film THX-1138 in 1969. Inhabitants of the underground future world of THX would retreat to "confession booths" when stressed, and initiate a one-sided Eliza-formula conversation with a Jesus-faced computer who claimed to be "Omm". In 1988 the British artist and friend of Weizenbaum Brian Reffin Smith created and showed at the exhibition 'Salamandre', in the Musée du Berry, Bourges, France, two art-oriented ELIZA-style programs written in BASIC, one called 'Critic' and the other 'Artist', running on two separate Amiga 1000 computers. The visitor was supposed to help them converse by typing in to 'Artist' what 'Critic' said, and vice versa. The secret was that the two programs were identical. GNU Emacs formerly had a
psychoanalyze-pinhead command that simulates a session between ELIZA and Zippy the Pinhead. The Zippyisms were removed due to copyright issues, but the DOCTOR program remains.
ELIZA has been referenced in popular culture and continues to be a source of inspiration for programmers and developers focused on Artificial Intelligence. It was also featured in a 2012 exhibit at Harvard University titled "Go Ask A.L.I.C.E", as part of a celebration of mathematician Alan Turing's 100th birthday. The exhibit explores Turing's lifelong fascination with the interaction between man and computer, pointing to ELIZA as one of the earliest realizations of Turing's ideas.Using Java, and based very closely on Weizenbaum's published description of the program: Eliza
Using Z80 assembly language on the TI-83 Plus: ticalc.org
Trans-Tex Software has released shareware versions for Classic Mac OS and Mac OS X
doctor.el (circa 1985) in Emacs lisp: http://www.cs.cmu.edu/Groups/AI/areas/classics/eliza/emacs/doctor.el. Current version.
Source code in Tcl: http://wiki.tcl.tk/9235
Source code in BASIC: http://www.atariarchives.org/bigcomputergames/showpage.php?page=20
Used in AGT: Automatic Goblin Therapist: World of Warcraft add-on
Written in TDBS for the Kakadu Konnection BBS in Darwin Australia and widely distributed to other TBBS bulletin boards in 1989.
Source code in Guile Scheme: chatter
Lisp reimplementation (apparently based on the Apple II Basic version)jeffshrager.org
online Prolog demo complete with source code pws_dem4
Editing source code, Darius Steighler brings a new version of Eliza.
Perl CPAN Module Chatbot::Eliza
Python Eliza implementation: eliza
Go library: go-eliza
Google Home ("includes code from elizabot"). Video of Eliza talking to Eliza on Google Home -