Eliza / Doctor: Difference between revisions

From XPUB & Lens-Based wiki
No edit summary
No edit summary
Line 1: Line 1:
Famous "mother of all chatbot" programs by [[wikipedia:Joseph Weizenbaum|Joseph Weizenbaum]]. The original project comprises in fact two parts, a generic engine for producing / conducting interactive dialogues and the "DOCTOR" script, which contained rules that parodied a "Rogerian" psychologist, employing mirroring technique to converse with its user as a patient. Weizenbaum published the combined work in [http://web.stanford.edu/class/linguist238/p36-weizenabaum.pdf Computational Linguistics: ELIZA--A Computer Program For the Study of Natural Language Communication Between Man and Machine]. The article includes extensive aspects of the implementation in addendum form.  
Famous "mother of all chatbot" programs by [[wikipedia:Joseph Weizenbaum|Joseph Weizenbaum]]. The original project comprises in fact two parts, a generic engine for producing / conducting interactive dialogues and the "DOCTOR" script, which contained rules that parodied a "Rogerian" psychologist, employing mirroring technique to converse with its user as a patient. Weizenbaum published the combined work in [http://web.stanford.edu/class/linguist238/p36-weizenabaum.pdf Computational Linguistics: ELIZA--A Computer Program For the Study of Natural Language Communication Between Man and Machine]. The article includes extensive aspects of the implementation in addendum form.  


The original program was written in a [https://en.wikipedia.org/wiki/SLIP_(programming_language) MAD-SLIP], a language developed by Weizenbaum at the [https://en.wikipedia.org/wiki/MIT_Computer_Science_and_Artificial_Intelligence_Laboratory MIT Artifical Intelligence Laboratory] in the 1960s. A faithful implementation was made in the 1990s by Charles Hayden in the Java language and included in the CD-ROM insert of the MIT Press publication: [http://www.newmediareader.com/ The New Media Reader]. Norber Landsteiner has made a [https://www.masswerk.at/elizabot/ 2005 implmentation in Javascript] that runs (as of 2020) in a web browser and appears based it seems on the original ACM publication.
The original program was written in a [https://en.wikipedia.org/wiki/SLIP_(programming_language) MAD-SLIP], a language developed by Weizenbaum at the [https://en.wikipedia.org/wiki/MIT_Computer_Science_and_Artificial_Intelligence_Laboratory MIT Artifical Intelligence Laboratory] in the 1960s. A faithful implementation was made in the 1990s by Charles Hayden in the Java language and included in the CD-ROM insert of the MIT Press publication: [http://www.newmediareader.com/ The New Media Reader]. Norber Landsteiner has made a [https://www.masswerk.at/elizabot/ 2005 implmentation in Javascript] that runs (as of 2020) in a web browser and appears based it seems on the details from the publication.


== Rules ==
== Rules ==

Revision as of 10:38, 11 October 2020

Famous "mother of all chatbot" programs by Joseph Weizenbaum. The original project comprises in fact two parts, a generic engine for producing / conducting interactive dialogues and the "DOCTOR" script, which contained rules that parodied a "Rogerian" psychologist, employing mirroring technique to converse with its user as a patient. Weizenbaum published the combined work in Computational Linguistics: ELIZA--A Computer Program For the Study of Natural Language Communication Between Man and Machine. The article includes extensive aspects of the implementation in addendum form.

The original program was written in a MAD-SLIP, a language developed by Weizenbaum at the MIT Artifical Intelligence Laboratory in the 1960s. A faithful implementation was made in the 1990s by Charles Hayden in the Java language and included in the CD-ROM insert of the MIT Press publication: The New Media Reader. Norber Landsteiner has made a 2005 implmentation in Javascript that runs (as of 2020) in a web browser and appears based it seems on the details from the publication.

Rules

(from Charles Hayden's Java implmentation)

How Eliza Works

All the behavior of Eliza is controlled by a script file.
The standard script is attached to the end of this explanation.

Eliza starts by reading the script file.  Because of Java security, it
must be on the same server as the class files.  Eliza then reads a line at
a time from the user, processes it, and formulates a reply.

Processing consists of the following steps.
First the sentence broken down into words, separated by spaces.  All further
processing takes place on these words as a whole, not on the individual
characters in them.
Second, a set of pre-substitutions takes place.
Third, Eliza takes all the words in the sentence and makes a list of all
keywords it finds.  It sorts this keyword list in descending weight.  It
process these keywords until it produces an output.
Fourth, for the given keyword, a list of decomposition patterns is searched.
The first one that matches is selected.  If no match is found, the next keyword
is selected instead.
Fifth, for the matching decomposition pattern, a reassembly pattern is
selected.  There may be several reassembly patterns, but only one is used
for a given sentence.  If a subsequent sentence selects the same decomposition
pattern, the next reassembly pattern in sequence is used, until they have all
been used, at which point Eliza starts over with the first reassembly pattern.
Sixth, a set of post-substitutions takes place.
Finally, the resulting sentence is displayed as output.


Other similar (but not complete) eliza implementations: