插槽话语优先于意图话语

问题描述 投票:1回答:1

在我们的机器人中,我们有几个意图。在其中一个意图中,我们有以下示例话语:

I {injuryType} my {bodyPart}

所以它匹配像I broke my leg这样的东西。

然后,在另一个意图中,我们有一个bodyPart的插槽,带有以下示例话语:

I broke my {bodyPart}

我们遇到的问题是当用户被bodyPart提示并且他说I broke my leg时,而不是只填充插槽,它正在切换到另一个意图。

有没有办法表明插槽话语应该优先于意图话语?

amazon-lex aws-lex
1个回答
1
投票

不幸的是,我们没有办法明确强制Lex保持在插槽值匹配范围内,而不是尝试在意图级别匹配。

根据我对这个问题的经验(它发生了很多,所以这是一个恒定的平衡行为),当你处于意图时,插槽值确实优先于意图话语。使用良好的机器人结构(“意图模式”),当插槽值找不到完美匹配时,似乎只检查意图话语。但是,Lex可能每次都检查两次并简单地提供最佳匹配,在您的情况下,由于一个较少的变量,这将是意图话语。

我们实际上只有一种形式的控制,我们如何设置意图,话语,slotTypes和slotType值。

以下是一些建议:

  1. 重新考虑意图的设置并寻找两个意图太相似并且可以合并为单个意图的可能性。
  2. 评估话语和slotType值之间的相似性,并简单地删除一个支持另一个。
  3. 尝试加强slotType值列表,例如:“break”,“broken”,“broken”,“braked”等(甚至拼写错误)

我在#3方面最不成功,而在#1和#2方面最成功。

就像我说的那样,考虑到意图的结构,不同意图中可能的slotType值,输入匹配的任何重叠以及自然语言用户体验,它一直是一个恒定的平衡行为。你将不得不牺牲一些自由/结构,为另一个人提供更多的自由/结构。

© www.soinside.com 2019 - 2024. All rights reserved.