Node.js LUIS Bot无法在用户话语中找到实体
我正在使用Node.js LUIS Bot无法在用户话语中找到实体,node.js,azure,botframework,azure-language-understanding,Node.js,Azure,Botframework,Azure Language Understanding,我正在使用EntityRecognizer查找用户话语中存在的实体。下面是您可以找到的官方NotesApp示例。 当我发送LUIS intent中存在的话语时,我在控制台中获得null值。例如:创建名称注释。Title其中注释。Title是实体(注释的标题) 我不确定这里的问题是什么,因为它调用匹配语句上的对话框,但无法找到实体或实体 下面的代码应该在控制台中打印标题 .matches('Note.Create', [(session, args, next) => {
EntityRecognizer
查找用户话语中存在的实体。下面是您可以找到的官方NotesApp
示例。
当我发送LUIS intent中存在的话语时,我在控制台中获得null
值。例如:创建名称注释。Title
其中注释。Title
是实体(注释的标题)
我不确定这里的问题是什么,因为它调用匹配语句上的对话框
,但无法找到实体
或实体
下面的代码应该在控制台中打印标题
.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...
}])
首先,正如Ezequiel Jadib在评论中提到的,请检查您是否已经发布了它
其次,如果你的LUIS应用程序仍然无法正确识别实体(或意图),你可以标记更多的话语或改进你的LUIS应用程序的性能
此外,LUIS不可能在所有场景中都是100%智能的,对于某些特定场景,我们可以在我们的代码逻辑中处理它,正如我们可以在下面的代码片段中找到的,如果它没有检测到任何注释,它将提示输入title。title
从LUIS传递的实体,当LUIS应用程序无法从用户的查询/话语中识别或检测到note.title
实体时,这为我们提供了另一种获取注释标题的方法 您在这里遇到的主要问题是您正在使用的注释标题未被LUIS
识别为note.title
实体。要解决这个问题,您必须对LUIS进行训练,了解其中一些值
如下图所示,在添加Note域后的plainLUIS
应用程序中,您的发言符合当前意图,但标题未被识别
因此,转到注释。创建意图,添加您的话语,并将新标题注释标记为注释.title
实体
训练应用程序,瞧
你是否培训并发布了LUIS应用程序?@EzequielJadib是的,我有,它识别了意图,但没有识别实体。你在发送什么信息?@EzequielJadib我在发送-“Note.Title是我要创建的新便笺”所以你在发送“Note.Title”?但这是实体的名称,你应该发送一些与该实体相关的值,如“创建我最喜欢的便笺”或“我想创建标题购物列表便笺”不,没有帮助,我对应用程序进行了多次培训,并在LUIS中测试了这些话语,但没有运气。每次更改后,我都会将应用程序部署到生产槽中。我还在Azure Web App Bot中重新检查了我的LUIS ID。一切似乎都很好。我得到了意图,但没有被识别的实体。你试着去做吗?还是使用?这将提高您的LUIS应用程序的性能。是的,它起作用了!。非常感谢。虽然我以前做过同样的事情,但我没有在批量测试面板中测试话语。无论如何,感谢您的指导。但是,当我专门为User.Title实体标记“sarthaksfirstnote”时,它只映射到sarthaksfirstnote,当我说除sarthaksfirstnote之外的任何内容时,它仍然存在同样的问题。我已经添加了一个短语列表,但没有运气。