Assignment 3
This is an individual assignment.
This assignment is marked out of 75 points, 65 points come from the parts
outlined below, and 10 points come from an in-class activity.
Due Date
March 14, 2014, 3:30PM.
Programming Features (Min: 30 points, Max: 50 points)
For this assignment, you will take the output of your group's A2 and continue
development with it by adding extra features. That means, clone your A2 team
repository and work on your own repository from here on.
In this assignment, we will use a "buffet" setup for developing your program.
Select any feature(s) from the list below to work on. If you have suggestions,
bring it up with the instructor and it can be added to the list with an
appropriate number of points.
- 5 points: Make a simple GUI so that the user is typing into a
nicer interface and can view a recent history of the conversation.
- 2 points: Add an extra topic to your agent's repertoire. Ensure
this topic has similarities with the original topic. For example, if your
original topic is volleyball, you may want to add basketball as a second
topic.
- 3 points: Add a feature that enables your agent to give at least
5 different reasonable responses when the user enters something outside the
two topics.
- 5 points: Add a feature that enables your agent to handle
spelling mistakes of the words that your agent is supposed to recognize.
Do not hardcode your solution. Develop a general feature you can use
for all the words your agent has, rather than hardcoding a bunch of possible
mistakes people could make. For example, use the Porter Stemmer, or some
other pre-established algorithm.
- 10 points each: Use of language toolkits, incorporate feature
to improve your conversation's flow:
- Synonym recognition - WordNet (you'll need a Java API to it)
- POS tagging - Stanford toolkit, OpenNLP
- Named entity recognition - Stanford toolkit, OpenNLP
- Phrasal - Stanford toolkit
- Coreference Resolution - Stanford toolkit, OpenNLP
- Sentiment analysis tools - Stanford toolkit
- 15 points: Conversation with another agent (built by a student
in this class) via sockets
Note: if you do features that aren't on this list, you may not get any points for it!
Important Note: The number of points associated with each feature is to
indicate the maximum number of points you could get for that feature.
The quality of the feature will still need to be assessed upon submission.
Documentation (30 points)
You are to submit the following for your system:
- 2 points: README file in your repository describing what you've
done. If you've cloned your A2, you are likely to just add onto the README
in this case. If you've changed a lot since A2, you will have to rewrite the
README so it reflects your current submission.
- 5 points: At the end of your README file, include:
- a list of each feature you programmed for this assignment
- for each item on that list, explain briefly how you used that
feature to improve your agent's conversation or your overall system
- for each explanation, give a snippet of a conversation that
demonstrates your feature
- 3 points: Provide a Level 0 DFD for your system with
description.
- 5 points: Provide a Level 1 DFD for your system with
description.
- 5 points: Submission of your GitHub repository. Graph showing
different features developed on a separate branch and the commits made in
the repository.
- 5 points: Include sample output in your project report. Have one
dialogue (at least 30 turns) that show a good or feasible conversation --
ensure your new features are demonstrated!
Document a list of limitations of your program, and have at least two short
dialogues that show when your agent is not able to handle the conversation
properly.
- 5 points: Based on your system, include a list of at least 5
features that you can extract from your code or design that can be shared
with others as an API.
Presentation (5 points)
This will be done *after* the due date.
A 60 to 90 second video of your assignment showing:
- A brief description of your program's conversational topic
- Each feature you've programmed and how you used it to improve either
the conversation or the overall system (since A2)
- A description of your DFDs
- You should narrate and/or provide subtitles
Evaluation Criteria
- 30-50 points: For all chosen programming features listed above.
- 30 points: For all the documentation listed above.
- 5 points: Video submission
(due by 11:59pm 03/16 on Connect).
What to Submit
Put all your documentation into one report and submit it as a PDF (on
Connect). Be sure to include the URL to your repository for this assignment in
the report.
Be sure to include your full name in your README file.