LUIS Bot无法在用户话语中找到实体

时间:2018-01-23 06:33:16

标签: node.js azure botframework luis

我正在使用EntityRecognizer来查找用户话语中的entities。我正在关注您可以找到here的官方NotesApp示例。 当我发送LUIS意图中存在的话语时,我在控制台中获得null值。例如:create a note of name Note.Title其中Note.titleEntity(注释标题)。

我不确定这里有什么问题,因为它在匹配的话语上调用了dialog但却无法找到EntitiesEntity

以下代码应在控制台中打印标题。

    .matches('Note.Create', [(session, args, next) => {

        //Resolve and store any Note.Title entity passed from LUIS.
        var intent = args.intent;
        var title = builder.EntityRecognizer.findEntity(intent.entities, 'Note.Title');
        console.log("Title---"+title);

        //extra code ahead...
     }])

2 个答案:

答案 0 :(得分:1)

您遇到的主要问题是LUIS Note.Title实体无法识别您正在使用的音符标题。要解决此问题,您必须为这些值中的某些值训练LUIS

正如您在下图中所示,在添加Note域后的普通LUIS应用中,您的话语达到当前意图但标题未被识别

enter image description here

请转到Note.Create意图,添加您的话语并将新标题注释标记为Note.Title实体。

enter image description here

训练应用程序并瞧!

enter image description here

答案 1 :(得分:0)

首先,正如Ezequiel Jadib在评论中提到的那样,请检查您是否train your LUIS app并发布它。

其次,如果您的LUIS应用程序仍然无法正确识别实体(或意图),您可以标记更多话语或use Phrase lists feature以提高LUIS应用程序的性能。

此外,LUIS在所有情况下都不能100%智能化,对于某些特定情况,我们可以在我们的代码逻辑中处理它,正如我们可以在“Handle the Note.Create intent” section下的代码片段中找到的那样,它会提示标题如果它没有检测到从LUIS传递的任何Note.Title实体,当LUIS应用程序无法从用户的查询中识别或检测Note.Title实体时,这为我们提供了另一种获取注释标题的方法/发声。