1

是否有可能在任何 NLU(例如 RASA 或 Lex)中获得实体的属性字符串?这是一个例子:“请务必提醒我完成项目

假设我将提醒我作为正则表达式 - 我如何提取后者?我说的是 NLU 视角(而不是天真的字符串操作)。

想要像 { Intent:"remind_me" Value:"about getting the project done" } 这样的输出

4

1 回答 1

3

以下是如何在 Lex 中执行此操作的描述。

从你的例子:

用户:“请务必提醒我完成项目”

这是用户输入,也称为Utterance

首先,您创建一个Intent。你可以像以前一样命名它:remind_me

然后,您向 Lex 提供intent-utterances或用户会说以触发该意图的短语。也许,像:

"remember this for me"  
"make a reminder"  
"can you remind me about something"  
"please remind me"  

这些只会触发意图,然后您可以要求用户记住要记住的信息。

您想要存储在 Lex 中的任何值都称为Slot Value,因为它保存在Slot中,这基本上只是 Alexa 和 Lex 对“变量”的称呼。

您可以将插槽命名为:reminder

如果您的意图被触发,那么您会引出 Slot并询问用户:

“好吧,你想让我提醒你什么?”

您通过提供您认为用户可能会说的所有话语变体来“教”Lex 要听什么,并且只需将SlotName放在花括号{}中,在他们可能说出您的单词或短语的地方想存储在Slot中。

"remind me about {reminder}" 
"please remember {reminder}" 
"make sure to remind me {reminder}"

这些甚至可以是意图表达,因此您reminder无需通过问题来获取价值。

然后 Lex 将准确地为您提供您正在寻找的内容以及更多内容,我将简化 Lex 为您创建的 JSON:

}
    "currentIntent": {
        "name": "remind-me",
        "slots": {
            "reminder": "about getting the project done"
        }
   },
   "inputTranscript": "please make sure to remind me about getting the project done"
}

要查看完整格式,请参阅Lex Lambda 函数输入事件和响应格式

请注意,Lex 甚至在inputTranscript. 这对于进行自己的解析和验证非常有用。

于 2018-07-01T05:49:55.190 回答