scalability4all / voice-enabled-chatbot

Implementing a voice enabled chatbot which converses with a user via their voice in natural language. Website: https://scalability4all.github.io/
MIT License
38 stars 54 forks source link

[Feature] Intent Detection using classification #1

Open satyammittal opened 5 years ago

satyammittal commented 5 years ago

Currently we are using rule based learning to learn intent.

We need to use supervised learning techniques to create automated intent.

Preferred Steps: a) Add domains in config file b) Each domain has data in [domain].txt c) for now, we will use label classification techniques to separate intent.

References: https://towardsdatascience.com/a-brief-introduction-to-intent-classification-96fda6b1f557 https://mrbot.ai/blog/natural-language-processing/understanding-intent-classification/

himani-agarwal-6 commented 4 years ago

We would like to work on this issue.

tacigomess commented 4 years ago

Hi, I und Karina would like to work on this issue =)

gautamig54 commented 4 years ago

I am interested in working on this issue. Thank you!

Brit7777 commented 4 years ago

Hi, me and my teammate @ujinyoung am applying in RGSoC this year and would like to get assigned to this issue.

Is your feature request related to a problem? Please describe. Currently the system is using rule based learning to learn intents. However, if you use rule-based matching technique, you have analyzed and update the new rules every time a new intent is added which may be a time-consuming task.

Describe the solution you'd like to implement. We wish to work on adding classification techniques for intent separation and implementing automated method for entity creation from sentences. In terms of intent classification, we will create/use the dataset that contains queries and intents (labels). We will clean the query from the dataset by implementing basic preprocessing steps (tokenization/lemmatization/stemming/punctuation removal). After preprocessing, we will convert words into indexes and then feed it into different models ( baseline: Bidirectional GRU, potential models: LSTM, RNN, GRU). A lot of testing will be involved, including hyper-parameter tuning and changing number of layers or loss function. We will ultimately choose a model that achieve the best accuracy.