Create a chatbot using NLP techniques learned in class. The chatbot should
be able to carry on a limited conversation in a particular domain using a knowledge base or
knowledge from the web, and knowledge it learns from the user.
You may work alone if you prefer, or you can partner with one other person.
The project has three parts:
1. 100 points: Create a chatbot that can discuss a topic and remember things about the user
2. 50 points: Report and Evaluation
3. 100 points: Peer Reviews
Part 1 Details
100 points: build the chatbot
• Design and build a chatbot. There are a few ways to do this:
o AIML – https://www.chatbots.org/chatbot/a.l.i.c.e/
o ChatScript – https://sourceforge.net/projects/chatscript/
o find others at chatbots magazine – https://chatbotsmagazine.com/
o Google’s DialogFlow – https://cloud.google.com/dialogflow/docs
o Amazon Lex – https://aws.amazon.com/lex/
o Many other options, including writing a bot from scratch
• Maintain a user model within your chatbot system.
You should have a different user model
saved for each user who converses with the bot. The user model should store the user’s
name, personal information it gathers from the dialog, and the user’s likes and dislikes. Add
personalized remarks from the user model to the dialog engine.
• Make sure your project includes NLP techniques learned in class. Examples: parse user
response, use term frequency measures, NER, or information retrieval techniques, or any
techniques we learned in class.
• You can use the knowledge base you developed with your web crawler, or start from scratch
on a knowledge base for this project. An alternative to a static knowledge base is to look-up
information on the web live.
Note: A simple chatbot in a framework like DialogFlow or Amazon Lex will be worth 50/100 points or
less. Similarly, an ML approach that simply changed the intents from the online source will get 50/100
points or less. In order to get the full 100 points you need to incorporate your own code.
Part 2 Details
50 points: Evaluation and report
• Produce a report (no specific format but you’ll need at least 5 pages) for:
• system description, including description of specific NLP techniques you used and how
you used them
• diagram of your dialog tree or logic
• sample dialog interactions
• an appendix for the knowledge base (or live lookup) you created with samples
• an appendix for sample user models that were created
• evaluations of the chatbot and analysis of its strengths and weaknesses. Suggestion: you
could get survey results from people who are not on the team using Likert-style
questions, probably at least 3 questions
Part 3 Details:
100 points: Peer Review
• Students will be randomly assigned to 3 reviewers in a spreadsheet that will be uploaded to
• Students will email their project (or a link to their project) and the report, to their 3 reviewers.
The reviewers don’t grade the report itself but it will help them grade the project.
• Using the Project Peer Review, reviewers review the 3 projects they received. If you do not
receive all 3 projects, just review the projects you received. Your grade for reviewing your peers
depends on the quality of your reviews:
o Justify the grades you give with thorough comments
• Upload your 3 reviews to eLearning.
• Your comments are confidential between you and the instructors, so you can be honest.
How your grade is determined for the chatbot
1. The three peer reviews are averaged as a baseline.
2. Based on past experience, this correlates highly with grades I give without looking at the peer
reviews. It’s the wisdom of the crowd. Some reviewers are strict, some are too lenient, but it
3. Instructors reserve the right to give a higher or lower grade than the review average.