7 Resolving incomplete requests through disambiguation

 

This chapter covers

  • Incomplete user requests: what they are, why they happen, and how and why you complete them
  • Disambiguation: what it is, why it's important, and how and when to implement its different approaches
  • Why dialog management is needed to accommodate users' different mental models
  • Code samples for disambiguation, multi-turn dialogs, and using webhooks

In human conversations, people are basically only as clear as they think they need to be, no more, no less. People assume their listener is following, so they take shortcuts which lead to incompleteness. Or they’re vague, which leads to ambiguity. In human dialog, as we’re sure you know, this happens all the time. When they’re not clear, the listener might ask for clarification. Or, the listener “fills in the blanks” in their head. Sometimes they’re correct, sometimes there’s misunderstanding. The same situation happens in VUI dialogs, which is why ambiguity resolution is one of the most important topics in voice development.

7.1 Incomplete requests

Take another look at some of the sample fully specified user utterances in chapter 6:

  • “Get a table at Nana's Kitchen tonight at 7 o'clock for six people.”
  • “Pay 240 dollars and 63 cents on my credit card bill from my checking account.”
  • “Who played the character Natasha in the 1956 movie version of War and Peace?”
  • “Play Enter Sandman by Metallica from Spotify in the living room.”

7.1.1 Reaching completeness through dialog management

7.2 Ambiguous requests

7.3 Disambiguation methods

7.3.1 Logic-based assumptions

7.3.2 Yes/No questions

7.3.3 A/B sets

7.3.4 Static lists

7.3.5 Dynamic lists

7.3.6 Open sets

7.3.7 Menus

7.4 Testing on the device to find and solve issues

7.4.1 Two big lessons

7.5 Webhooks 1: Toward code independence

7.5.1 Fulfillment and webhooks

7.5.2 Webhook overview

7.5.3 Webhook in depth

7.5.4 Contexts, context parameters and follow-up intents

7.6 What’s next

7.7 Summary