Thursday, 29 January 2009
Eliza
Eliza was one of the first AI programs, written by Weizenbaum in 1966. It's the basis of the Emacs Psychotherapist.
It is very basic and simply works on pattern matching. For example:
By formulating some stock rules (and writing the pattern matching code obviously) we get Eliza.
Code is in my GitHub repository as eliza.clj.
Useful functions I found whilst developing this:
It is very basic and simply works on pattern matching. For example:
Pattern: (I need a ?X)
Input: (I need a vacation)
Output: {?X vacation}
By formulating some stock rules (and writing the pattern matching code obviously) we get Eliza.
Code is in my GitHub repository as eliza.clj.
Useful functions I found whilst developing this:
- Declare for forward declarations
- Some - which returns the first non-true value for fn[x] in any sequence e.g.
user> (some (fn [x] (when (> x 0) x)) '(0 -1 -2 -1 0 1 2 3)) ==> 1 - Replace - takes a map of source->replacement and performs replacements
user> (replace '{a,b b,c c,d} '(a b c)) ==> (b c d)
Subscribe to Posts [Atom]