Answers.Body: <p>In my view ML does not work very well for conversational AI systems. It is generally alright for intent recognition, so getting what the user wants if they ask a question ("I want to book a flight?", "What is the weather in London?"), but anything after that quickly becomes difficult to handle, especially multi-step conversations that go beyond simple question/answer pairs.</p>
  
  <p>My suggestion would be to plan possible dialogues out as flow charts (more like trees/graphs, as there can be multiple branches at any point), and then write a program that interprets the graph based on user input and gives appropriate replies. You will also want to have some conversational memory to keep track of any information the user has mentioned. That is also tricky to do in a ML system.</p>
  
  <p>For a very simple framework to start off with, have a look at <a href="https://en.wikipedia.org/wiki/ELIZA" rel="nofollow noreferrer">ELIZA</a>. It's half a century old, but you can still use it as a starting point.</p>
  
  <p>(Disclaimer: I work for a company that makes conversational AI systems)</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-08-16T17:12:06.640Z
Answers.Text: With all the work with NMT models, I think weve gotten pretty far! (ofcourse theres alot more to do, but i dont think its worth overlooking)
Answers.UserDisplayName: mshlis
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-08-17T06:46:51.700Z
Answers.Text: I am actually looking to build intent finder, but both ML and programming seems to be same in that context
Answers.UserDisplayName: java_dev
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-08-16T11:16:37.187Z
Answers.LastActivityDate: 2019-08-16T11:16:37.187Z
Answers.UserDisplayName: Oliver Mason
Answers.Body: <p>Sebastian Thrun in one of his online interviews once suggested that he thought that the conversational solution was a combination of both massive machine learning and rules based programming.</p>
  
  <p>The problem in the case of chats is that our expectations are very high which dooms early solutions to failure. For the ML side we require large amounts of data, and while large amounts may be available they are highly biased and unbalanced; they mostly focus on one area (specialized context) and re-use the same sentence formulas over and over again, so the learning finds a comfortable corner case solution and refuses to learn anything else. People are so predictable so they are an unhelpful source of raw data.</p>
  
  <p>One approach might be to use carefully constructed rules to generate the data that ML can learn from, rules that can guarantee broad contextual applicability and sentence construction variation.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-08-18T12:44:55.353Z
Answers.LastActivityDate: 2019-08-18T12:44:55.353Z
Answers.UserDisplayName: Colin Beckingham
Body: <p>I am currently building a chatbot. What I have done so far is, collected possible questions/training data/files and create a model out of it using Apache OpenNLP; the model is able to predict all the questions that are in the training data and fails to predict for new questions.</p>
  <p>Instead of doing all the above, I can write a program that matches the question/words against training data and predict the answer — what is the advantage of using Machine Learning algorithms?</p>
  <p>I have searched extensively about this and all I got was, in Machine Learning there is no need to change the algorithm and the only change would be in the training data, but that is the case with programming too: the change will be in training data.</p>
  
Tags: <machine-learning><natural-language-processing><comparison><chat-bots><question-answering>
Title: What are the advantages of Machine Learning compared to traditional programming for developing a chatbot?
UserDisplayName: java_dev
ThreadText: # What are the advantages of Machine Learning compared to traditional programming for developing a chatbot?
  
  (Asked by: username_0 on 2019-08-16)
  
  I am currently building a chatbot. What I have done so far is, collected possible questions/training data/files and create a model out of it using Apache OpenNLP; the model is able to predict all the questions that are in the training data and fails to predict for new questions.
  
  Instead of doing all the above, I can write a program that matches the question/words against training data and predict the answer — what is the advantage of using Machine Learning algorithms?
  
  I have searched extensively about this and all I got was, in Machine Learning there is no need to change the algorithm and the only change would be in the training data, but that is the case with programming too: the change will be in training data.
  
  **Tags:** machine-learning, natural-language-processing, comparison, chat-bots, question-answering
  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_1 on 2019-08-16. Score: 3
  
  In my view ML does not work very well for conversational AI systems. It is generally alright for intent recognition, so getting what the user wants if they ask a question ("I want to book a flight?", "What is the weather in London?"), but anything after that quickly becomes difficult to handle, especially multi-step conversations that go beyond simple question/answer pairs.
  
  My suggestion would be to plan possible dialogues out as flow charts (more like trees/graphs, as there can be multiple branches at any point), and then write a program that interprets the graph based on user input and gives appropriate replies. You will also want to have some conversational memory to keep track of any information the user has mentioned. That is also tricky to do in a ML system.
  
  For a very simple framework to start off with, have a look at [ELIZA](https://en.wikipedia.org/wiki/ELIZA). It's half a century old, but you can still use it as a starting point.
  
  (Disclaimer: I work for a company that makes conversational AI systems)
  
  > **Comments:**
  > **username_2**: With all the work with NMT models, I think weve gotten pretty far! (ofcourse theres alot more to do, but i dont think its worth overlooking)  
  > **username_0**: I am actually looking to build intent finder, but both ML and programming seems to be same in that context  
  
  ---
  
  ### Answer by username_3 on 2019-08-18. Score: 0
  
  Sebastian Thrun in one of his online interviews once suggested that he thought that the conversational solution was a combination of both massive machine learning and rules based programming.
  
  The problem in the case of chats is that our expectations are very high which dooms early solutions to failure. For the ML side we require large amounts of data, and while large amounts may be available they are highly biased and unbalanced; they mostly focus on one area (specialized context) and re-use the same sentence formulas over and over again, so the learning finds a comfortable corner case solution and refuses to learn anything else. People are so predictable so they are an unhelpful source of raw data.
  
  One approach might be to use carefully constructed rules to generate the data that ML can learn from, rules that can guarantee broad contextual applicability and sentence construction variation.
  
  
  ---
  
  