AI Zone Admin Forum Add your forum

NEWS: survey on 3000 US and UK consumers shows it is time for chatbot integration in customer service!read more..

Distinguishing between similar questions

I am trying to write some clever patterns to distinguish these two kinds of questions:

Is there anything else I can help you with?
Anything else you want to discuss?
Any other issues you want to talk about?


What else can you tell me about it?
What else is going on with your back?

It seems like there is an implied “is/are” in the first group and a “what” in the second group? Are those the keys for distinguishing between these kinds of questions?



  [ # 1 ]

I’m not sure how these questions differ in category or handling. The “what” questions lightly presume that there is something else to specify (just as “Why/when/where/how were you talking?” implies that you were talking), whereas the “anything” questions ask IF there is something else, and feature a relative clause.

Practically, “some/any/thing + else/other” equals “what else” in my view.

(Is there) anything else (that) I can help you with?
What else (is there that) I can help you with?

How would you want to respond to these questions differently?


  [ # 2 ]

In the second, there is a topic in focus. In the first, the topic has been exhausted.


  [ # 3 ]

Our students are taught to open the encounter with something like “In addition to your back pain, is there anything else you want to discuss during the visit? To which the Virtual Patient (bot) might say “I seem to have to get up a lot at night to go to the bathroom”. Similarly the students are taught to end the encounter with “I hope we have covered everything. Is there anything else you want to discuss?”

These are in contrast to the second types of questions which often follow up on a topic. So, the student might say “Tell me about your back pain” and the VP responds “I hurt my back lifting a couch”. The student then responds “What else can you tell me about it?”. “It’s a sharp pain in the middle of my back”. This can occur several times in a variety of topics.

So yes, there is a topic (back pain) in focus for the second one but there is also likely a topic in focus (either ~introductions or ~closure) for the first one as well. And the students jump around quite a bit so so we might not still be in the exact topic. It is still probably an interesting topic but I find that we often do poorly on this aspect of the dialogue so I was looking for some clever ways to write the patterns or other ways to keep these straight.



  [ # 4 ]

I have used different patterns when the log is empty (or just a few volleys). It is flushed after that time.
You might want to load closure only after intros or some set amount of volleys.


  [ # 5 ]

That sounds promising, but I am not sure how to load a topic after some initial volleys.

This could be helpful with other things like:

“Do you have any questions before we get started?” in ~introductions


“Do you have any questions for me?” in ~closure.



  [ # 6 ]

I am not sure how you would do it in chatscript, maybe Bruce can lead you in the right direction.
When I use it, I either initialize a counter and increment it after each volley, or check the length of the log.
Maybe all of these need to go in a macro topic that includes both and directs it based on the length of the conversation.


  [ # 7 ]

while “topics” cannot be loaded on the fly, one can dynamically read things like JSON data, which in turn can have a field which is a pattern and a field which is an output, and you can execute the pattern and the output in script. Kore.AI defines entire bots as json data to be read in when that bot is called for


  [ # 8 ]

I don’t know if this will help. But referring back to your original post, think about what the rejoinders would be if the bot said these things.

The first group is Yes/No questions, whereas the 2nd group is thing/list questions.

Sometimes when I’m trying to work out a dialog, it helps to reverse roles and think how you would react if the computer asked you these things.

This gives a way to think how the bot should react to the original questions. “what else” could be more than one thing. “is there anything” sort of points to a yes/no though there are combinations that might be both.


  [ # 9 ]

Playing dumb here [actually not playing smile] why not just use the “what” versus “is” that you observed?


  [ # 10 ]

And to expand on Bruce’s comment (I work for Kore), we have quite an involved process to evaluate how to process any input.
- we evaluate that against a set of words/patterns associated with intents in a “bot” (e.g. “pay bill”, “book flight”),
- we post the input to an external ML based system,
- we check against a set of static rules in topics (e.g. ~keywordless),
- we test against the current rejoinder.

From all of that we decide what is the best course to take, which could be to continue on the current rejoinder path, or switch to a new intent, or just answer a one-off question. That decision making is dynamic, e.g. the barrier to starting an intent when not in one is lower than switching from a current task into a new one, or we may just remember the new intent and come back to it later when we’ve finished the current one.

I am just listing this to show that with a custom CS control script then you can do anything, you don’t have to stay within the traditional topic system.


  [ # 11 ]

Hi Andy,

I sent you a message through this site but wasn’t sure it got through. If not, I can shoot you an email.


Doug Danforth

(.(JavaScript must be enabled to view this email address))


  login or register to react