NLU-提取与实体相关的字符串

时间:2018-06-30 21:32:14

标签: amazon-lex rasa-nlu watson-nlu

是否可以在任何NLU(例如RASA或Lex)中获取实体的属性字符串? 这是一个例子: “请确保提醒我有关完成项目的事情

让我提醒我一下REGEX-如何提取后者? 我说的是NLU透视图(而不是幼稚的字符串操作)。

会像这样的输出 {   目的:“ remind_me”   价值:“关于完成项目” }

1 个答案:

答案 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中提供了完整的用户话语。这对您自己进行解析和验证非常有用。