2016-12-02 1 views
0

나는 클라이언트 의도를 추측하기 위해 LuisRecognizers로 두 개의 LUIS 응용 프로그램을 사용하는 봇을 보유하고 있습니다. 내 질문은 왜 로봇이 가장 낮은 점수를 가진 의도에 응답 하는가? 나는 이것을 두 번 확인하고 수동으로 Luis 대시 보드를 통해 점수를 확인하면 다음과 같은 것을 받았습니다. 점수 0.92의 IntentA와 점수 1의 IntentB. 그리고 내가 botframework를 통해 동일한 입력을 전달하면 점수가 낮은 IntentA로 응답합니다. 내가 놓친 게 있니? intentThreshold, recognMode 또는 recognizeOrder를 사용하여 게임을 시도했지만 더 좋은 결과는 얻지 못했습니다.낮은 점수로 의도 된 Botframework 응답

+0

유, 바로 Node.js를 사용하고 있습니까? LUIS와 어떤 URL을 사용하고 있습니까? –

+0

자네 말이 맞아, 내가 Node.js를이 URL을 사용하고 https://api.projectoxford.ai/luis/v2.0/apps – jano

답변

1

당신이 생각하는 경우 기능 "의 최고의 목적은"와 같은 구현 볼 수있는 C# code of BotFramework 다음이를 테스트하려면

protected virtual IntentRecommendation BestIntentFrom(LuisResult result) 
{ 
    return result.Intents.MaxBy(i => i.Score ?? 0d); 
} 

, 당신이보고, 당신의 LuisDialog에서 그것을 대체 할 수 있습니다 메커니즘의 세부 사항 (intetnts 점수 기록). 에서 볼 수 있듯이 결정 포인트에서 최대 점수가 선택됩니다. 또한, 당신은 NodeJs에서 루이스 인식기를 찾을 수 있습니다 루이스에서 응용 프로그램 모델이 존재하는 경우

다시
LuisRecognizer.recognize(utterance, model, (err, intents, entities) => { 
       if (!err) { 
        result.intents = intents; 
        result.entities = entities; 

        // Return top intent 
        var top: IIntent; 
        intents.forEach((intent) => { 
         if (top) { 
          if (intent.score > top.score) { 
           top = intent; 
          } 
         } else { 
          top = intent; 
         } 
        }); 
        if (top) { 
         result.score = top.score; 
         result.intent = top.intent; 

         // Correct score for 'none' intent 
         // - The 'none' intent often has a score of 1.0 which 
         // causes issues when trying to recognize over multiple 
         // model. Setting to 0.1 lets the intent still be 
         // triggered but keeps it from trompling other models. 
         switch (top.intent.toLowerCase()) { 
          case 'builtin.intent.none': 
          case 'none': 
           result.score = 0.1; 
           break; 
         } 
        } 
        cb(null, result); 
       } else { 
        cb(err, null); 
       } 
      }); 

C# 코드와 같은, 인식기는 최대 점수를 choosees. 따라서이 문제는 클라이언트에서 발생하지 않습니다. 따라서 고객에게 제공되는 LUIS의 JSON 응답을 고려해야합니다.

0

LUIS 대시 보드에서 모델을 게시 해 보셨습니까? LUIS가 현재 내 모델을 올바르게 게시하지 않았기 때문에 동일한 문제가 발생했기 때문에 변경된 사항을 파악하지 못했기 때문에 교육받은 모델은 대시 보드에서 완벽하게 작동했지만 게시되지는 않았습니다.

나는 다음날 시도하고, 모두 제대로 대시 보드와 botframework 모든 것을 공개했다.