Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 当多个意图的得分高于默认阈值时,意图处理程序不工作_Node.js_Botframework_Azure Language Understanding - Fatal编程技术网

Node.js 当多个意图的得分高于默认阈值时,意图处理程序不工作

Node.js 当多个意图的得分高于默认阈值时,意图处理程序不工作,node.js,botframework,azure-language-understanding,Node.js,Botframework,Azure Language Understanding,当多个LUIS意图的得分高于默认阈值(0.1)时,不处理高得分意图。例如,我收到的是路易斯的回复: "entities": [], "intents": [ { "intent": "Good", "score": 0.38138606327968266 }, { "intent": "Not Good", "score": 0.14239219383059437 }, { "intent":

当多个LUIS意图的得分高于默认阈值(0.1)时,不处理高得分意图。例如,我收到的是路易斯的回复:

"entities": [],
  "intents": [
    {
      "intent": "Good",
      "score": 0.38138606327968266
    },
    {
      "intent": "Not Good",
      "score": 0.14239219383059437
    },
    {
      "intent": "getInfo1",
      "score": 0.058470389996233038
    },
    {
      "intent": "getInfo3",
      "score": 0.052354321946208544
    },
    {
      "intent": "End Conversation",
      "score": 0.051956717501244802
    },
    {
      "intent": "getInfo2",
      "score": 0.049671852402879912
    },
    {
      "intent": "getInfo4",
      "score": 0.04166953247839323
    },
    {
      "intent": "getInfo5",
      "score": 0.032684937293639832
    },
    {
      "intent": "getInfo6",
      "score": 0.027630602530947044
    },
    {
      "intent": "getInfo7",
      "score": 0.027075797198458249
    }
  ],
  "query": "iam good",
  "topScoringIntent": {
    "intent": "Good",
    "score": 0.38138606327968266
  }
}
我相信下面的意图正在陷入某种冲突,因为它们的得分都大于0.1。 我尝试为相应处理程序的
triggerAction
添加
intentThreshold
参数。然而,这是没有用的

{“意图”:“好”,“分数”:0.38138606327968266},{“意图”:“不” 良好,“得分”:0.14239219383059437}

代码示例

//BOT REST end point
var server = restify.createServer(options);
server.listen(config.port,function() {
    console.log('%s listening to %s', server.name, server.url);
});

var connector = new builder.ChatConnector({
    appId: config.BOTFRAMEWORK_APPID, 
    appPassword: config.BOTFRAMEWORK_APPSECRET
});
server.post('/test', connector.listen());

var bot = new builder.UniversalBot(connector);
var recognizer = new builder.LuisRecognizer(config.model);

bot.recognizer(recognizer);

bot.dialog("/",[function(session){
  if(utilities.isEmpty(session.userData.name)) {
    // Greetings
    builder.Prompts.text(session,prompt.greeting_text);
    }else {
          session.beginDialog("/beginConversation");
    }
  },
  function(session,results){
    session.userData.name = results.response;
    console.log("username :"+ session.userData.name);
    session.beginDialog("/beginConversation");
}]);
// beginConversation
bot.dialog("/beginConversation", function(session){
  builder.Prompts.text(session,"Hello "+session.userData.name+"! "+prompt.conversation_begin_text);
});

// userGood
bot.dialog("/userGood", function(session){
  session.userData.isHappy = true;
  builder.Prompts.text(session,prompt.user_good_response_text+" "+prompt.address_query_text);
}).triggerAction({
  matches: "Good",
  intentThreshold:0.20
});
// userBad
bot.dialog("/userBad", function(session){
  session.userData.isHappy = false;
  builder.Prompts.text(session,prompt.user_bad_response_text+" "+prompt.address_query_text);
}).triggerAction({
  matches: "Not Good",
  intentThreshold:0.20
});
对话流程:

用户:嗨,机器人:来自机器人的问候!请告诉我你的名字

用户:John Doe

机器人:你好,约翰·多伊!你好吗

用户:我很好

我认为应该始终触发对应于最高得分意图的意图处理程序。bot应基于此意图处理程序进行响应

但是,尽管将
triggerAction
intentThreshold
参数显式设置为不同的阈值,但由于多个意图超过默认意图阈值,因此没有响应

我做错什么了吗


SDK版本:3.8.4

您是否培训过您的LUIS模型识别非单词“Iam”?您在LUIS应用程序中使用了哪些训练数据来确定什么是“好”与“不好”?7个意图“getInfo1”-“getInfo7”的目的是什么?如果您所要做的只是让用户在“好”和“不好”之间进行选择-您可以通过选择提示轻松完成这一点,而无需使用LUIS@NilsW我没有训练LUIS识别“Iam”。然而,这只是我想在这里举的一个例子。我看到每当intent分数小于0.5时,就不会调用处理程序。另外,关于从
getInfo1
getInfo7
的7个意图,这些意图是为了解决多个与功能相关的查询,因为预期bot将解决与产品相关的查询。谢谢你的输入。你训练你的路易斯模型识别非“Iam”这个词了吗?您在LUIS应用程序中使用了哪些训练数据来确定什么是“好”与“不好”?7个意图“getInfo1”-“getInfo7”的目的是什么?如果您所要做的只是让用户在“好”和“不好”之间进行选择-您可以通过选择提示轻松完成这一点,而无需使用LUIS@NilsW我没有训练LUIS识别“Iam”。然而,这只是我想在这里举的一个例子。我看到每当intent分数小于0.5时,就不会调用处理程序。另外,关于从
getInfo1
getInfo7
的7个意图,这些意图是为了解决多个与功能相关的查询,因为预期bot将解决与产品相关的查询。谢谢你的意见。