【问题标题】:Making custom slots using Regex in amazon Lex在 amazon Lex 中使用 Regex 制作自定义插槽
【发布时间】:2018-02-15 13:04:29
【问题描述】:

我想制作自定义插槽,只要这些条目遵循某种正则表达式模式,就可以接受任何和所有条目,例如:任意数量的字母或数字,但中间没有空格。谁能告诉我amazon lex是否有办法实现它? 另外,如果我想获取某种类型的数据,例如电子邮件 ID,但又想让用户选择提供任意数量的电子邮件 ID(多个),那么该怎么做。

我是 Amazon Lex 的新手,如有任何建议,我将不胜感激。

【问题讨论】:

  • 您必须在 Lambda 函数中处理这两件事。让 Lex 尽可能地获取您想要的数据,然后您的正则表达式将进一步处理插槽,甚至是来自您的 Lambda 函数的整个用户输入。征求建议通常会因为问题太宽泛而被关闭。所以四处搜索,尝试一下,如果遇到问题,再回来提出更具体的问题。

标签: amazon-lex


【解决方案1】:

在 Lex 控制台中的 intent 中创建一个 slot,但不要按要求打勾,并将任何类型指定为 slot type
现在在 lambda 代码中,首先将插槽设置​​为 null,然后使用正则表达式解析 inputText 并将正确的值分配给插槽。

这样你的两个问题都会得到解决。
希望能帮助到你。如果您遇到任何问题,请告诉我们。

【讨论】:

  • 设置任何插槽类型时我面临的问题是信息无法很好地识别。例如:对于意图:更改 slot1:a slot2:b,如果我说将 a 更改为 b,Lex 将 slot1:a 识别为 b,并请求 slot2。
  • @KanikaAgarwal 我不明白,请你举个合适的例子和用例。
  • 如果我的用例是在数据库中进行更改。为此,我正在使用 lex 聊天机器人。这是一个示例命令:||用户:在数据集中将 foo 更新为 bar。|| bot : 你想更新什么?||用户:酒吧||机器人:意图:更新; slot1: foo 到 bar ;插槽 2:酒吧;准备履行|| ................................您看到我的问题了吗?
  • @KanikaAgarwal slot1 应该只包含 foo 而不是 foo to bar,这可以通过 Lex 控制台和正则表达式方式完成。即使它在slot1 中捕获foo to bar,您也可以从中提取foo,并且您已经从slot2 获得bar
  • 我怎么能用 Lex 控制台的方式来做呢?我有大约 10 种类型的意图,我得到了这个错误,其中大多数在一个插槽中捕获了多个单词(当我只想要一个单词时) )。谢谢你的所有建议
猜你喜欢
  • 1970-01-01
  • 2017-11-08
  • 2017-10-06
  • 1970-01-01
  • 2018-10-26
  • 1970-01-01
  • 1970-01-01
  • 2018-06-04
  • 1970-01-01
相关资源
最近更新 更多