I am trying for a couple of days to make a chatbot that replaces those boring psychological surveys. So basically, I want my chatbot to ask the user a predefined set of questions, and the user to respond freely to them and in the end I will be able to compute a score based on his responses.
To give you an example, take the depression test PHQ-9. It has 9 questions and for every question, the response options are the same (PHQ-9 test: PHQ-9 Depression Test Questionnaire | Patient ).
So far I tried to use slots, forms and entities in different ways for storing the responses, but I can’t quite get it right, so I was wondering if there is some other way to do that.
I would love some tips or guidance for my problem on what is the best way to implement something like this for any given set of questions and responses.
Well I am not exactly sure how am I supposed to implement the intents part, considering the fact that every question will have the same response pool. Let’s say I have 10 questions in the domain as " responses" to be asked by the bot for the form and for every question I have a different slot to be filled, but the thing is I can’t implement different intents with the same training data but different entity name because of conflicts.
Also, because it is the same training data for every intent that is required for the questions, sometimes the entity extracted is assigned to another slot than the current one that must be filled (for example, if I answer the first question, the entity extracted is assigned to the 6th slot instead of the first one).