Amazon web services 如何定义接受任何给定值的Lex插槽类型(自定义/内置)?
我有一个插槽名称“备注”。我需要一个插槽类型,它接受用户给这个字段的任何值 亚马逊支持人员以这种方式回答了类似的问题: 发件人: 通过插槽捕获自由格式文本的推荐方法是创建自定义插槽类型,并提供足够具有代表性的示例/培训数据作为插槽值。这将允许Lex从这些示例中学习,并识别更大的集合 所以在你的槽值示例中,你应该添加单个单词,多个单词,甚至整个句子,如果这是你所期望的。这让Lex知道并了解要填充插槽的大量数据。Amazon web services 如何定义接受任何给定值的Lex插槽类型(自定义/内置)?,amazon-web-services,amazon-lex,Amazon Web Services,Amazon Lex,我有一个插槽名称“备注”。我需要一个插槽类型,它接受用户给这个字段的任何值 亚马逊支持人员以这种方式回答了类似的问题: 发件人: 通过插槽捕获自由格式文本的推荐方法是创建自定义插槽类型,并提供足够具有代表性的示例/培训数据作为插槽值。这将允许Lex从这些示例中学习,并识别更大的集合 所以在你的槽值示例中,你应该添加单个单词,多个单词,甚至整个句子,如果这是你所期望的。这让Lex知道并了解要填充插槽的大量数据。 您给出的示例值越多,Lex应该越好 我也遇到了同样的问题,首先我试图提供范围广泛的训练
您给出的示例值越多,Lex应该越好 我也遇到了同样的问题,首先我试图提供范围广泛的训练数据,但每当我键入新的内容时,都无法在Lex中正确捕获 因此,我创建了一个没有任何值的插槽,并且未选中所需的复选框(重要)。然后我启用了
Lambda初始化和验证挂钩
,这样它就进入了对话框codehook
在后端代码中,在DialogCodeHook中,我从
事件['inputTranscript']
中获取用户的输入,并将该值分配给插槽
希望能有所帮助。我已经在lex平台上工作了一年多了。根据我的理解,不可能将自由文本捕获为一个插槽。仅为处理自由文本而添加更多培训数据的方法将使插槽(因此意图)贪婪,并对bot的整体性能产生负面影响。 最好的替代方案(仅在自定义频道的情况下)是使用会话属性从聊天界面传递自由文本,并将预定义文本(插槽中的一个值)作为输入传递给lex;在lambda中编写逻辑以从会话属性捕获自由文本。
如果您需要更清晰的信息,请告诉我。您可以使用亚马逊的
内置插槽类型。字母数字
回答得很好,但根据我的经验,它永远不会起作用。用户可以在备注中写入任何内容,无论您提供多少数据,它仍然无法识别。您是如何做到的?在我的例子中,它显示了一个错误消息“为'enumerationValues'指定的值无效。成员的长度必须大于或等于1”。