在我们的漫游器中,我们有几种意图。在其中一种意图中,我们具有以下示例话语:
I {injuryType} my {bodyPart}
因此它与I broke my leg
之类的东西匹配。
然后,出于另一个目的,我们为bodyPart
提供了一个带有以下示例话语的插槽:
I broke my {bodyPart}
我们遇到的问题是,当bodyPart
提示用户并且他说I broke my leg
时,它不仅切换到其他位置,而且还切换到另一个意图。
有没有办法表明空位话语应该优先于意图话语?
答案 0 :(得分:1)
不幸的是,我们没有一种方法可以明确地迫使Lex保持在插槽值匹配范围内,而不能尝试在意图级别进行匹配。
根据我在此问题上的经验(这种情况经常发生,所以这是一种持续的平衡行为),当您有意图时,广告位值 do 优先于意图说话。具有良好的漫游器结构(“意图模式”)时,似乎仅在广告位值找不到完美匹配时才检查意图话语。但是,Lex 可能每次都进行检查,并仅提供最佳匹配,在您的情况下,由于变量较少,将成为意图。
实际上,我们对此只有一种控制形式,即我们如何设置意图,话语,slotTypes和slotType值。
以下是一些建议:
我在#3上获得的成功最少,在#1和#2上获得的最大成功。
就像我说的那样,考虑到意图的结构,不同意图中可能的slotType值,输入匹配的任何重叠以及自然语言的用户体验,这一直是一种持续的平衡行为。您将不得不牺牲一种自由/结构来赋予另一种自由/结构。