是否可以在任何NLU(例如RASA或Lex)中获取实体的属性字符串? 这是一个例子: “请确保提醒我有关完成项目的事情”
让我提醒我一下REGEX-如何提取后者? 我说的是NLU透视图(而不是幼稚的字符串操作)。
会像这样的输出 { 目的:“ remind_me” 价值:“关于完成项目” }
答案 0 :(得分:3)
这是在Lex中的操作方法的描述。
根据您的示例:
用户:“请确保提醒我有关完成项目的信息”
这是用户输入,也称为话语。
首先,您创建一个意图。您可以像以前一样命名:remind_me
然后,您为Lex提供意图表达,或用户说来触发该意图的短语。也许像这样:
"remember this for me"
"make a reminder"
"can you remind me about something"
"please remind me"
那些只会触发意图,然后您可以要求用户记住信息。
您要存储在Lex中的任何值称为 Slot Value ,因为它保存在 Slot 中,该值基本上只是Alexa和Lex的“变量”一词。 '。
您可以将广告位命名为:reminder
如果您的意图被触发,那么您合法槽位并询问用户:
“好的,您想让我提醒您什么?”
通过提供您认为用户可能说出的所有语音变体,您可以“教” Lex听什么,只需将 SlotName 放在花括号中即可。 {} 在发声中,他们很可能会说出要存储在广告位中的单词或短语。
"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 Function Input Event and Response Format
请注意,Lex甚至在inputTranscript
中提供了完整的用户话语。这对您自己进行解析和验证非常有用。