我正在使用EntityRecognizer
来查找用户话语中的entities
。我正在关注您可以找到here的官方NotesApp
示例。
当我发送LUIS意图中存在的话语时,我在控制台中获得null
值。例如:create a note of name Note.Title
其中Note.title
是Entity
(注释标题)。
我不确定这里有什么问题,因为它在匹配的话语上调用了dialog
但却无法找到Entities
或Entity
。
以下代码应在控制台中打印标题。
.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...
}])
答案 0 :(得分:1)
您遇到的主要问题是LUIS
Note.Title
实体无法识别您正在使用的音符标题。要解决此问题,您必须为这些值中的某些值训练LUIS
。
正如您在下图中所示,在添加Note域后的普通LUIS
应用中,您的话语达到当前意图但标题未被识别
请转到Note.Create
意图,添加您的话语并将新标题注释标记为Note.Title
实体。
训练应用程序并瞧!
答案 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
实体时,这为我们提供了另一种获取注释标题的方法/发声。