时段话语优先于意图话语

时间:2019-03-18 13:10:08

标签: amazon-lex aws-lex

在我们的漫游器中,我们有几种意图。在其中一种意图中,我们具有以下示例话语:

I {injuryType} my {bodyPart}

因此它与I broke my leg之类的东西匹配。

然后,出于另一个目的,我们为bodyPart提供了一个带有以下示例话语的插槽:

I broke my {bodyPart}

我们遇到的问题是,当bodyPart提示用户并且他说I broke my leg时,它不仅切换到其他位置,而且还切换到另一个意图。

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

1 个答案:

答案 0 :(得分:1)

不幸的是,我们没有一种方法可以明确地迫使Lex保持在插槽值匹配范围内,而不能尝试在意图级别进行匹配。

根据我在此问题上的经验(这种情况经常发生,所以这是一种持续的平衡行为),当您有意图时,广告位值 do 优先于意图说话。具有良好的漫游器结构(“意图模式”)时,似乎仅在广告位值找不到完美匹配时才检查意图话语。但是,Lex 可能每次都进行检查,并仅提供最佳匹配,在您的情况下,由于变量较少,将成为意图。

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

以下是一些建议:

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

我在#3上获得的成功最少,在#1和#2上获得的最大成功。

就像我说的那样,考虑到意图的结构,不同意图中可能的slotType值,输入匹配的任何重叠以及自然语言的用户体验,这一直是一种持续的平衡行为。您将不得不牺牲一种自由/结构来赋予另一种自由/结构。