Dialogflow es 正确识别号码
我有一个意图,我可能会说“转移4到Bob”,它将此标识为“转移到Bob” 另外,我可能会说“将10转移到Bob,它将此标识为”将102 Bob转移到word,并在上一个数字的末尾将其视为2Dialogflow es 正确识别号码,dialogflow-es,Dialogflow Es,我有一个意图,我可能会说“转移4到Bob”,它将此标识为“转移到Bob” 另外,我可能会说“将10转移到Bob,它将此标识为”将102 Bob转移到word,并在上一个数字的末尾将其视为2 让API.AI正确识别这些部分的最佳方法是什么,这样4就不是for,to就不是2了?您提到您正在使用Google平台上的操作。这意味着语音识别——将用户所说的翻译成文本的过程——在数据到达API.AI之前就已经发生了 你所遇到的问题是,谷歌上的操作错误地将一些数字识别为单词,例如,four变成了for 因为这
让API.AI正确识别这些部分的最佳方法是什么,这样4就不是for,to就不是2了?您提到您正在使用Google平台上的操作。这意味着语音识别——将用户所说的翻译成文本的过程——在数据到达API.AI之前就已经发生了 你所遇到的问题是,谷歌上的操作错误地将一些数字识别为单词,例如,
four
变成了for
因为这发生在-API.AI之前,并且与-API.AI分开,所以您将无法修复错误识别
下面,我将解释如何在API.AI中解决这个问题。然而,也值得思考的是,如何使您的会话设计尽可能健壮,从而减少此类问题造成问题的可能性
提高稳健性的一种方法是将数字标记为API.AI中的必需参数,以便在由于识别错误而未检测到该数字时提示用户。在这种情况下,对话框将如下所示:
用户:给我四杯拿铁
应用程序:当然,四杯拿铁就要来了
用户:拿铁给我
应用程序:你想要多少
用户:四个
应用程序:当然,四杯拿铁就要来了
不管怎样,这里有一个解决方法可以帮助您从错误识别中恢复:
当你说“say”时,你的意思是你在API.AI之上使用语音识别(例如,与谷歌助手一起使用)?我们正在使用Google Home,它将此信息传递给API.AI。另一个例子是,如果我们订购咖啡,我们说“给我4杯拿铁”,它将返回为给我拿铁。我们尝试了一些系统实体,例如制作4杯a@sys.number和拿铁,以及一个自定义实体,但也尝试了sys.unit-information大约“4杯拿铁”,希望它能提取4作为数量,拿铁作为单位,但也没有运气。对于重量或长度等非传统单位的东西,建议采用什么方法提取数量和另一个值作为单位?比如,你会如何解析“买4把伞”或“买30个苹果”,它们不是传统的单位 { "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" }