Dialogflow es 正确识别号码

Dialogflow 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 因为这

我有一个意图,我可能会说“转移4到Bob”,它将此标识为“转移到Bob”

另外,我可能会说“将10转移到Bob,它将此标识为”将102 Bob转移到word,并在上一个数字的末尾将其视为2


让API.AI正确识别这些部分的最佳方法是什么,这样4就不是for,to就不是2了?

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

你所遇到的问题是,谷歌上的操作错误地将一些数字识别为单词,例如,
four
变成了
for

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

下面,我将解释如何在API.AI中解决这个问题。然而,也值得思考的是,如何使您的会话设计尽可能健壮,从而减少此类问题造成问题的可能性

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

用户:给我四杯拿铁

应用程序:当然,四杯拿铁就要来了

用户:拿铁给我

应用程序:你想要多少

用户:四个

应用程序:当然,四杯拿铁就要来了

不管怎样,这里有一个解决方法可以帮助您从错误识别中恢复:

  • 在您的意图中,请提供这些常见错误识别值的示例。突出显示并标记为数字
  • 在控制台中测试您的意图,您将看到“for”现在与值为“for”的“number”实体匹配
  • 在实现webhook中,检查该值的参数,并使用字典将其转换为适当的数字。以下是上述查询的JSON:
  • { “id”:“994c4e39-be49-4eae-94b0-077700ef87a3”, “时间戳”:“2017-08-03T19:50:26.314Z”, “郎”:“恩”, “结果”:{ “来源”:“代理人”, “resolvedQuery”:“给我来杯拿铁”, “行动”:“, “ActionComplete”:错误, “参数”:{ “饮料”:“拿铁”, “number”:“for”//注意:在webhook中将其转换为“4” }, “上下文”:[], “元数据”:{ “意向书”:“0e1b0e72-78ba-4c61-a4fd-A7378034DE1”, “webhookUsed”:“false”, “webhookForSlotFillingUsed”:“false”, “intentName”:“获取饮料” }, “履行”:{ “演辞”:“, “信息”:[ { “类型”:0, “演讲”:” } ] }, “分数”:1分 }, “地位”:{ “代码”:200, “errorType”:“成功” }, “会话ID”:“8b0891c1-50c8-43c6-99c4-8f77261acf86” }
    当你说“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" }