Cognitive Computing with IBM Watson
上QQ阅读APP看书,第一时间看更新

Creating a set of conversational intents

The first thing we need to do is identify the set of intents we want to support in this conversational agent. An intent is just an action that the end user may express, and that we want the application to support. Identifying the set of intents is actually pretty straightforward and can be derived from virtually any existing banking web application. 

This is a pretty common example of a typical set of actions you can perform on a banking application:

Here is the list of banking services that you might find on the Web:

  • ACCOUNTS: Information on what accounts you have, and their balances, along with other information about the account
  • MESSAGES: Where you would receive any notifications from the bank
  • FUNDS TRANSFER: Enables you to move money between your own accounts
  • MEMBER TO MEMBER: Supports transferring money from your account to someone else's account within the same banking institution
  • EXTERNAL ACCOUNT: Enables you to link accounts that you have at other institutions
  • ACTIVITY CENTER: Gives you a summary of the transactions that have been performed recently on your accounts
  • LOAN PAYOFF QUOTE: Tells you how much you will need to pay off one of your loans
  • PAY BILLS: Enables you to initiate an online bill payment
  • BILLPAYER SETUP: Lets you set up the billing information for any bills you may want to pay online in the future
  • MOBILE DEP ENROLL: Walks you through the steps for making online deposits to your account with your smartphone

A more complete banking application will enable you to do a number of other things, but this is a pretty good starting set. 

So now, we can return to the conversation service and finish setting up the banking workspace:

Enter the name of the workspace—we'll call it Banking Application in this example—and then press Create:

We need to create a set of intents that we can derive from the set of actions that we outline above from our Banking web application. 

Press the Add intent button:

We'll add the Accounts intent in the Intent name (you don't have to prefix the name with a #—that is done automatically by the tool), and then press the Create intent button:

You now need to train Watson to recognize how people express this intent. Consider that people have different ways of saying things. You can certainly test yourself, using all of the different ways you can think of asking about your account balance. However, remember that, in all likelihood, whatever you think of, someone else will think of a different way to ask the same thing. It is often useful to consult recordings of what people have said in live situations, if you have access to such information. But the beauty of Watson is that it learns pretty quickly, so even just giving it a few examples will probably be enough for it to understand most variations. And if it doesn't, you can always go back later and train Watson further by providing some more examples of things it's getting wrong.

We'll begin with the following examples:

  • What is my account balance?
  • How much do I have in Checking?
  • How much money do I have?
  • What is my current balance?
  • How much savings do I have?

Enter each example for the intent:

It may not be obvious, but every time you enter a new example, Watson begins training on that example. If you press the Try it button in the upper-right corner, you may catch Watson doing that training:

Go ahead and press the Try it button. That will open a side panel on the right of your window. Once Watson has completed training (which should only take a few seconds), you can enter some text at the bottom of that panel:

Try something such as How much do I have? If Watson has done its job properly, it should recognize that as being an #Accounts intent, and will report so in a response message that looks like this:

Actually, at this point, Watson is likely to assume just about anything you tell it that is similar to this is likely to be about the #Accounts intent as it hasn't been taught anything else—not until you enter examples for the other intents. For example, if you enter What's the beef? it's likely to think you're asking about your account balance. That said, other more extreme differences, such as I want a Taco, are likely to be recognized as irrelevant.

When you're done entering examples for the #Accounts intent, press the back-button:

This will take you back to the main Intents page where you can enter the other Intents, and corresponding examples:

When entering an Intent name, it cannot contain spaces (or a number of other special characters). So for something such as Funds Transfer you can replace the space with a dash to look something like Funds-Transfer.

When you've finished, go back to the Try it panel and test Watson on how well it is able to understand the intent of your utterances, as in the following screenshot:

If Watson gets it wrong—for example, maybe you think the What do I have left? utterance expresses the intent to pay off a loan, but Watson understands it to be an Account inquiry:

You can correct Watson by pressing the down button on the intent, and making it the intent you believe it should have been:

This will cause Watson to add that test example to the training data for #Loan-Payoff-Quote, and retrain to recognize that better in the future: