I want to build a chatbot which can diagnose an illness depending upon the symptoms which are given to it. I want to show you an example scenario of how it should work;

Application - A , User - U

A) Hello, What is your symptom?

U) Headache

A) How long do you have this symptom? ( System will list possible choices to the user)

U) 3 Months

A) Do you also have photo-affinity? ( System will provide simple "Yes-No-I don't" know choices)

U) Yes



A) According to your symptoms, you have "migraine".

There are several applications which work in that manner like "Ada Health", "YourMD" and so on.

I want you to show me a way, give me a kick starter where to start. Are there any resources helpful about this topic?

Can you describe briefly, how one would build such a system in terms of machine learning and data science?

After my questions, I want you to show you my way of thinking about how this system can be built. Please give your comments about it as well

Let's say we have a database and there are symptoms - disease wives. Here is the example;

enter image description here

  • Once the user enters a symptom to the system, my algorithm is going to find all of the matched diseases from the database, e.g., "headache" is the entered symptom by the user and the matched diseases with this initial symptom are "migraine", "flu", "cold", "tumor", etc...
  • After that, all of the symptoms which are connected with these new diseases are added to the question queue, e.g., for "flu" match, new questions about "flu" disease will be asked to the user like "Do you have also sneeze?"
  • While the user continues to answer questions, the positive symptoms which user has will be recorded. At the end of the question-answer phase, all of the symptoms which are recorded are going to be used in our machine learning model as the input features.

Does that way of thinking hit the right notes? Thanks in advance for all of the answers.

  • $\begingroup$ You have already tagged your question with decision-trees. What stops you from building a decision tree model based on your database and program your bot to, start the questions based on the root node and follow the path through the tree to leaf according to the given answers? $\endgroup$
    – Arsak
    Apr 11, 2019 at 8:45
  • 1
    $\begingroup$ I think that a bayesian approach, using the probability of the sympton to occur is each disease in your dataset would probably work nicely too. Decision trees would also work well. Check this tutorial $\endgroup$ Apr 11, 2019 at 13:08
  • $\begingroup$ people.dbmi.columbia.edu/~friedma/Projects/DiseaseSymptomKB/… This is above dataset which will be helpful in case $\endgroup$
    – Dee K
    Dec 5, 2019 at 13:42
  • $\begingroup$ On researchgate there is a ton of papers that did exactly this. This was quite a popular research topic in the last several years. $\endgroup$
    – georg-dev
    Dec 5, 2019 at 23:12

2 Answers 2


We built the symptom checker with AI API endlessmedical.

We provide free to download for any use source code of entire symptom checker here:


Have fun!

  • 1
    $\begingroup$ Link to source code is dead. Its giving a 404 error $\endgroup$
    – abggcv
    Jul 26, 2023 at 20:32

Google Dialogflow is an end-to-end, build-once deploy-everywhere development suite for creating conversational interfaces for websites, mobile applications, popular messaging platforms, and IoT devices.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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