CS 4705 Homework 1

Due: 1 Oct 2002 (See submission procedure.)


  1. Today's natural language interfaces (20 points).

    Experiment with
    Babelfish (a machine translation system) and Ask Jeeves (a search engine). For each application:
    1. Find five utterances/queries where the application does not behave naturally (i.e., as you would expect if it fully understood the natural language utterance/query you typed in).
    2. For each case, explain why the application is not doing the right thing. Identify whether there is lexical, syntactic, semantic, discourse or world knowledge that the application appears to be missing, and that would be needed to "do the right thing."
  2. Implement your own ELIZA. (60 points total)

    Do Jurafsky and Martin 2.2, staying in the psychotherapy domain. Your program should operate in two modes: interactive (STDIN) or taking input from an ascii file of user sentences like these. We will run a test file as well.

    Please submit source, executable, and a README file describing what your program does, what general classes of behavior it handles, what if any tools you have used (e.g. a NP chunker) and how to run it.

    1. (10 points) Provide rules such that for a given user input, there is more than one option (as in the example on pp. 32-33 of J&M.)
    2. (20 points) When more than one rule can apply, select a rule at random.
    3. (30 points) The original ELIZA had a "memory" mechanism. When no pattern matched the input, it said "Tell me more about X", where X was some topic that the user mentioned earlier in the dialogue; i.e., X was something that appeared in an input that the user typed in previously. Add such a history mechanism to your program.
    4. (20 points extra credit) Implement some interesting additional feature that makes your Eliza an improvement over the online Eliza
  3. Jurafsky & Martin 2.1 (15 points)
  4. Jurafsky & Martin 2.4 (15 points)
  5. Jurafsky & Martin 2.5 (15 points)
  6. Jurafsky & Martin 2.6 (15 points)
  7. Exercise 7: (70 points total)

Using the FSA's you've just designed, write a program that puts XML-like tags around time and date specifications. For example: