正确识别数字

时间:2017-07-27 09:44:37

标签: dialogflow

我有一个意图,我可能会说'转移4给鲍勃'并将其识别为'转移给鲍勃'

此外,我可能会说'将10转移到Bob,并将其识别为'转移102 Bob',将字处理为前一个数字末尾的2。

让API.AI正确识别这些部分的最佳方法是什么,因此4不适用于2和不是2?

1 个答案:

答案 0 :(得分:1)

您提到您正在使用Google平台上的操作。这意味着语音识别 - 将用户所说的内容翻译成文本的过程 - 在数据到达API之前发生.AI。

您遇到的问题是Google上的操作错误地将某些数字识别为单词,例如four变为for

因为这发生在API.AI之前 - 并且与API.AI分开,所以您无法修复错误识别。

下面,我将解释如何在API.AI中解决此问题。但是,它也值得考虑如何使您的会话设计尽可能健壮,以便这样的问题不太可能导致问题。

可以提高稳健性的一种方法是将数字标记为API.AI中的必需参数,以便提示用户是否由于识别错误而未检测到。在这种情况下,对话框将如下所示:

  

用户:给我四个拿铁咖啡。

     

App:当然,有四个拿铁咖啡。

     

用户:给我拿铁咖啡。

     

应用:你想要多少?

     

用户:四。

     

App:当然,有四个拿铁咖啡。

无论如何,您可以使用以下方法帮助您从错误识别中恢复:

  1. 在您的意图中,提供这些常被误识别的值的示例。突出显示并将其标记为数字。
  2. User says statements

    1. 在控制台中测试你的意图,你会看到"对于"现在匹配为"数字"有价值的实体" for"。
    2. Console

      1. 在您的履行webhook中,检查此值的参数并使用字典将其转换为适当的数字。这是以上查询的JSON:
      2.     {
              "id": "994c4e39-be49-4eae-94b0-077700ef87a3",
              "timestamp": "2017-08-03T19:50:26.314Z",
              "lang": "en",
              "result": {
                "source": "agent",
                "resolvedQuery": "Get me for lattes",
                "action": "",
                "actionIncomplete": false,
                "parameters": {
                  "drink": "lattes",
                  "number": "for" // NOTE: Convert this to "4" in your webhook
                },
                "contexts": [],
                "metadata": {
                  "intentId": "0e1b0e72-78ba-4c61-a4fd-a73788034de1",
                  "webhookUsed": "false",
                  "webhookForSlotFillingUsed": "false",
                  "intentName": "get drink"
                },
                "fulfillment": {
                  "speech": "",
                  "messages": [
                    {
                      "type": 0,
                      "speech": ""
                    }
                  ]
                },
                "score": 1
              },
              "status": {
                "code": 200,
                "errorType": "success"
              },
              "sessionId": "8b0891c1-50c8-43c6-99c4-8f77261acf86"
            }