alexa - Alexa DateSlot 摩根 vs. 摩根
问题描述
我们正在构建一种德语 alexa 技能,其中我们的一个意图是使用DateSlot
. 如果我们询问某一天的名称(例如 Dienstag、Mittwoch),Alexa 会理解我们的输入并正确地用这一天调用我们的 api。如果我们要求"morgen"
(代表明天),Alexa 理解"morgan"
并且无法将输入映射到日期,因此 Alexa 要求不同的输入。
我们如何确保 Alexa 将我们的语音输入解释为德语单词而不是英语单词?
解决方案
不确定德语与英语的区别,但我们在插槽类型方面遇到了类似的问题。我们最初并不理解槽类型不是输入的有限列表,而是训练值。我们最终使用了 natural 包中的 JaroWinklerDistance 方法。我们列出了预期的插槽类型以尝试匹配并选择最佳匹配。我们的插槽类型适用于汽车品牌、类型和颜色。所以你可以想象我们进来的无效值。
可能您可以通过创建新意图来捕获已知的无效值并进行 natural.JaroWinklerDistance 匹配来做类似的事情。您需要添加更多话语以匹配您的 DateSlot 话语,这些话语期望另一个带有“morgen”的插槽和您错误接收的其他值。然后,根据您的意图处理,检测字符串值并通过您已知的值列表进行匹配。如果发生完全出乎意料的事情,你总是会失败,就像现在当你收到“摩根”时一样。我们必须使用最佳匹配的阈值来确定我们是否使用它。
或者,您可以建立一个您不断获得的项目列表并将它们映射到有效值。我们也有一个预计 1、2、3、4 或 5 的插槽。在开发过程中,我们也得到了 4、2、to 等……我们最终将这些已知值映射到一个列表中,并将它们转换为我们预计。对于这种情况,我们必须翻译的值列表相当有限,但效果很好。
推荐阅读
- c# - 在 VSCode 中使用 TestContext.Datarow 的问题
- vba - excel vba Ubound/Lbound错误
- sass - WebStorm:Foundation 项目不会编译默认的 SCSS 文件
- python - 将 scipy.stats.kde gaussian_kde 函数应用于每个网格单元
- vba - VBA - 如何用列标题替换非零值?
- python - Python - Django - 通用字段模型设计
- javascript - 将 div 移出屏幕
- php - 是否可以使用 PHP 将小写字母转换为大写字母并删除同一函数中的重音符号?
- mysql - SAS EG 中的程序延迟启动
- java - 无法将 JCheckBoxMenuItem 添加到菜单