I'm building a chatbot that would respond to text messages.

Let's say that my chatbot works for customers of an internet provider and it can respond to the following things:

  • Problems:
    • About payment;
    • About internet connection.
  • General requests:
    • Change user's account e-mail;
    • Call for technical assistance.

My question is: what's the data structure that I could use to organize this tree?

  • $\begingroup$ Welcome to Computer Science! A reference request like yours is too broad for Stack Exchange -- you ask for a survey of a whole research area! You need to narrow your focus considerably before a question of reasonable scope appears. Try talking to your advisor(s), search with Google Scholar and check out this guide to better (re)searches on Academia. $\endgroup$ – Raphael Oct 27 '16 at 9:51
  • $\begingroup$ @Raphael maybe it's less broad now. Thanks. $\endgroup$ – juniorgarcia Oct 27 '16 at 10:17
  • 1
    $\begingroup$ Thanks for the edit, that helps! Now: what data structures have you considered? What approaches have you already considered and rejected, and why did you reject them? What properties do you want the data structure to have? You need to tell us what (objective) criteria to use for evaluating possible answers. $\endgroup$ – D.W. Oct 27 '16 at 10:39
  • 1
    $\begingroup$ "what's the data structure that I could use to organize this tree" -- why, a tree? I don't understand the question. $\endgroup$ – Raphael Oct 27 '16 at 11:04
  • 1
    $\begingroup$ "recommended" sounds subjective to me, and subjective questions don't work well here (see our help center). Instead, list what criteria you want to use to judge approaches. What are your requirements? What are you trying to optimize? Then, tell us what approaches you've considered, how you think they fare on those metrics/requirements, and why you've rejected them. Finally, if you want to modify the question, you can't do that by just leaving a comment. You need to either edit the question (but in this case you might not want to invalidate the existing answer) or post a new question. $\endgroup$ – D.W. Oct 27 '16 at 16:25

When Building AI and ML for you Chatbot, you basically have 2 options:

  1. You can use a 3rd party tool which will take care of the AI/Conversational part of the Chatbot.

  2. You can make your own using Machine Learning.Overwhelming, but quite a few developers are choosing to go this route and many companies are trying to democratize Machine Learning.

You can build your own NLP(Natural Language Processing) by using Machine Learning. One of the first things to consider will be the type of model you want to build.

Using an NLP/NLU Platforms: Natural Language Processing (NLP) and Natural Language Understanding (NLU) platforms attempt to solve the problem by parsing language into entities, intents and a few other categories. Different NLP platforms may have different names however the essence is moreso the same.


  • Agents correspond to applications. Once you train and test an agent, you can integrate it with your app or device.

  • Entities: represent concepts that are often specific to a domain as a way of mapping natural language phrases to canonical phrases that capture their meaning.

  • Intents represent a mapping between what a user says and what action should be taken by your software.

  • Actions correspond to the steps your application will take when specific intents are triggered by user inputs. An action may have parameters for specifying detailed information about it.

  • Contexts are strings that represent the current context of the user expression. This is useful for differentiating phrases which might be vague and have different meaning depending on what was spoken previously.

NLP Platforms:

Reference :

| cite | improve this answer | |

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