2007-08 Projects:
Advisor: Jeff Ondich
Meeting time: TTh 10:15-11:55 (Fall/Winter term)
For the past year or so, my family has purchased most of its groceries from a company called Simon Delivers. Each Wednesday night, we make a rough menu for the week. Then my wife, Mary, sits down at her laptop, and I stand between the refrigerator and the pantry. Using the Simon Delivers web tools, Mary adds items to our shopping list, frequently asking questions: how much milk is there? are the pears rotten yet? do we have all the ingredients for pad thai? I jump from pantry to refrigerator to bookshelf, collecting data and making suggestions based on what I see. When we're done, Mary submits the list, and then on Thursday afternoon, the Simon Delivers guy shows up at our front door with his stack of green crates, a comment on the weather, and a derogatory remark or two about the people who packed the crates.
On balance, we find shopping this way to be easier and more pleasant than going to the grocery store. Still, the system could use improvement. The web site remembers what we have purchased in the past, which helps, but it does little to predict what we've run out of or what we might need in the future. What we really want is to be able to speak with somebody more or less omniscient about our groceries, who prompts us to buy the usual stuff and helps us figure out what we need ("you bought soy sauce five weeks ago--are you running low yet?").
Simon Delivers does offer a lot of assistance--a decent search engine, a convenient history, a recommendation system based on our past purchases, etc. But our wildest computer-based grocery shopping dreams (and who doesn't have wild dreams about that?) involve a computer that will speak and plan with us in English. We want to have a conversation like this one:
Computer: What are you having for dinner Thursday night? Mary: Stir-fry chicken and broccoli Computer: Friday? Mary: Meatloaf Computer: You bought four pounds of ground beef last week. Do you need more yet? Jeff: We have two pounds left. Computer: OK. How about Saturday? ... Computer: Here's the list so far. What do you think? Mary: We're having houseguests, so we'll need more milk. Computer: I'll add another gallon of 2-percent milk. Mary: No, they like skim. Computer: OK. I'll add a gallon of skim milk instead of 2-percent. etc.
Some aspects of this dialog are beyond what any existing dialogue systems can really manage, but this gives you the idea of what the two grocery shoppers who live at my house would love to see someday.
For this project, you will develop a natural language text-based planning agent to assist in the preparation of a family's grocery list. Among other things, achieving this goal will require your software to:
For some parts of this system, you will research and select suitable open source tools. Other parts you will write yourselves.
M. McTear. Spoken Dialogue Technology: Toward the Conversational User Interface. Springer Verlag, 2004.
J. Allen, et. al. The TRAINS Project: Natural Spoken Dialogue and Interactive Planning.
NLTK: Natural Language Toolkit is one example of the many freely available natural language processing software tools. There are more listed at http://opennlp.sourceforge.net/.
D. Jurafsky and J. Martin. Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition. Prentice Hall,