我有一个意图,我可能会说'转移4给鲍勃'并将其识别为'转移给鲍勃'
此外,我可能会说'将10转移到Bob,并将其识别为'转移102 Bob',将字处理为前一个数字末尾的2。
让API.AI正确识别这些部分的最佳方法是什么,因此4不适用于2和不是2?
答案 0 :(得分:1)
您提到您正在使用Google平台上的操作。这意味着语音识别 - 将用户所说的内容翻译成文本的过程 - 在数据到达API之前发生.AI。
您遇到的问题是Google上的操作错误地将某些数字识别为单词,例如four
变为for
。
因为这发生在API.AI之前 - 并且与API.AI分开,所以您无法修复错误识别。
下面,我将解释如何在API.AI中解决此问题。但是,它也值得考虑如何使您的会话设计尽可能健壮,以便这样的问题不太可能导致问题。
可以提高稳健性的一种方法是将数字标记为API.AI中的必需参数,以便提示用户是否由于识别错误而未检测到。在这种情况下,对话框将如下所示:
用户:给我四个拿铁咖啡。
App:当然,有四个拿铁咖啡。
用户:给我拿铁咖啡。
应用:你想要多少?
用户:四。
App:当然,有四个拿铁咖啡。
无论如何,您可以使用以下方法帮助您从错误识别中恢复:
{ "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" }