Discussing a topic with others is one of the best ways to demonstrate knowledge about a subject, and to fix it where it is lacking. With careful engineering, computers should be able to take part of that conversation too.
What it does
We built a voice-based study tool that engages users with a set of questions about a topic - to which they respond in natural language. Our tool then evaluates their responses and points out what might be missing.
How we built it
We used Google's Dialogflow to handle intent inference and the flow of conversation. We then deployed the agent onto Google Assistant, which is available on mobile devices. Questions and evaluations are routed to the agent from a python webserver, which uses Facebook's Fasttext word embeddings to score the quality of responses and note where there are errors.
Challenges we ran into
None of us have experience with NLP, so understanding what a good approach was, and then navigating the set of available tools was difficult, and we fully implemented two solutions with poor results before finally settling on Facebook's Fasttext + a custom scoring algorithm. In addition, three of us were not very comfortable with python, and none of us knew much about Dialogflow. There was a lot of learning involved on all sides!
Accomplishments that we're proud of
- Learning about NLP, and implementing our first NLP solution
- Making an actual application that works and that someone can use.
What we learned
- A crash course on word embeddings
- The value of having fun - but we already knew that
What's next for Discourse
Writing a more comprehensive set of questions and answers to inform how we evaluate and modify our approach. It would be best to collaborate with an education company in a specific domain to fine-tune our ideas. It is also important that we polish the interface, maybe as part of our own app.