1
$\begingroup$

For a project at my university I have to develop a simple chatbot. Since I am new to machine learning, it should be really simple and work like a customer support. The chatbot has to recognize about 10 intents related to some really simple topic. For example I thought that it could give information about a party, so the questions would be something like "Where is the party?, When does the party start? How much does the entry cost?"

The chatbot should classify the question, and out of the classification it should give back a prepared answer. If it cannot assign the question to the one of the 10 intents, it should do nothing or just answer that it does not understand the question. The same may happen if the question has spelling mistakes.

So it should be really simple, but be programmed with the deep learning approach.

My question is, how much data should I have, to train this bot to assign questions to the intents? Would I be able to generate the data by my own, if I reformulate each question on, lets say 20 ways? Or do I have to feed the algorithm with a very large amount of data, even for such simple task?

$\endgroup$
  • $\begingroup$ The ubuntu diaglog corpus is a good starting point for validating your theory - dataset.cs.mcgill.ca/ubuntu-corpus-1.0 download the data, run your deep learning models and you will be able to guestimate on whether it is possible for your use case or not... $\endgroup$ – Vivek Kalyanarangan Nov 16 '17 at 10:45
  • $\begingroup$ You have three requirements: (1) develop a chatbot (2) should be programmed with deep learning approach (3) should be really simple. Are all of them actual requirements for your project, as set by your tutor/course? I ask because there are different projects maybe better and easier to implement either for chatbot goal or deep learning goal. The "should be really simple" goal is likely to fail if you try to implement a chatbot using NLP via deep learning, especially if you are new to machine learning. $\endgroup$ – Neil Slater Nov 16 '17 at 12:08
1
$\begingroup$

Crowdsource your results.

Your problem is very similar to writing Amazon Alexa skills. Creating intents, utterances and slots for Alexa skills. One of the recommended methods for developing this section of Alexa skills is to simply ask your friends and peers how they would go about asking for a given outcome. Crowdsourcing your inputs will give you some robust results because other people may think quite differently than you. I would recommend hopping into whatever Slack/Discord/chat channels you belong to and asking there. There may be more formal sources for such information out there but I am not directly aware of them.

| improve this answer | |
$\endgroup$
0
$\begingroup$

Your question says about classification of questions in 10 different intents/classes.

In my opinion it depends whether which algorithm you are using to classify the data. The one thing that matters is uniform distribution of data in every intent will definitely be helpful. You can try following Python libarary which might help you to with classification of intent (Even it supports entity extraction). https://github.com/RasaHQ/rasa_nlu

| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.