Eliza is an early
natural language processing
program that was created by Joseph Weizenbaum
at MIT in the 1960s. In this journey into software engineering, we’ll attempt to create a
faithful replica of the original Eliza from scratch, armed with nothing more than
Weizenbaum’s original paper
as a guide. Along the way, we’ll learn some important concepts about software engineering.
Each step of this journey consists of a starter C# program that you expand by adding code to it,
and a finished solution. (In reality, each step’s starter program is nothing but the previous
step’s solution.) You should wait until you’ve finished fleshing out the starter app
before peeking at the solution. But do take a look at the finished solution and
compare it to the app you wrote.
The journey
- Getting started - a skeleton app (2019.01.12)
- Stepwise refinement - aka “How to eat an elephant” (2019.01.12)
- Thinking objectively (object oriented programming) (2019.01.12)
- Getting Eliza to talk - the first Pattern (2019.01.12)
- Adding more patterns (2019.01.13)
- A better way to select a response (2019.01.19)
- Creating a pattern class hierarchy (2019.01.24)
- Adding all format free patterns (2019.01.24)
- Introducing complex patterns (2019.01.26)
- The first complex pattern (2019.01.26)
- Fleshing out DecompAssemblyRule (2019.01.27)
- Adding more complex patterns (2019.02.15)
- Beefing Up DecompReassemblyRule (2019.03.22)
- Making Eliza more human (2019.09.11)
- Making Eliza testable (2019.10.26)
- Almost there! (2019.10.28)
- Improving Eliza's responses (2020.03.02)
- Logging (2020.04.12)
- Love and hate (2020.05.16)
More to come...
|