I am looking for an non-ML method for two chat bots to communicate to each other about a specific topic. I am looking for an "explainable AI" method, as opposed to a "black-box" one (like a neural network).


The easiest non-ML way would be to use a finite state machine. You could model various states of your conversation topics, and certain utterances of your bots could advance the bot's internal model along different paths. The complexity depends on the complexity of the topic.

You can then enhance the transitions with probabilities, and later move on towards ML by transforming it into an HMM.

However, even simple topics will probably lead to fairly complex state machines. But you should be able to keep track of what is going on in your conversation nevertheless.

Update: just to make it a bit clearer, I was thinking along the lines of having states for particular stages in the conversation. You could either have one model for the whole conversation, or one per participant.

Initially, there would be a state 'greeting'. Possible transitions would be to a further state 'greeting' (the response of the person who has been greeted), or that could be skipped to states such as 'statement', 'question', etc. 'Question' would have transitions to 'answer', 'ignore question', 'counter/clarification question' etc. The level of detail depends on your application.

| improve this answer | |
  • $\begingroup$ Thank you! Do you mean similar to dialogflow but without the ML part? Should I code the dialogue with python or do you know any libraries? $\endgroup$ – greensquare Jan 5 '19 at 8:44
  • $\begingroup$ It doesn't really matter, any language will do. $\endgroup$ – Oliver Mason Jan 7 '19 at 9:21

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.