2017-09-04 7 views
1

IntentDialogsの確率スコア(0-1)を得ることは可能ですか?だから私はボットがその質問に答えることについてどのように自信を持っているのかを知りたいし、それに基づいて特定の行動をしたいと思っています。どうやってやるの?私はQnAMakerといくつかのハードコーディングされたダイアログを使用しています。BotFramework:IntentDialogの確率スコアを取得

サンプルコード:

var qnarecognizer = new cognitiveservices.QnAMakerRecognizer({ 
    knowledgeBaseId: '', 
    subscriptionKey: '', 
    top:4}); 

var intentrecognizer = new builder.IntentDialog(); 

var intents = new builder.IntentDialog({ recognizers: [intentrecognizer, qnarecognizer] }); 
bot.dialog('/', intents); 

intents.matches('qna', [ 
    function (session, args, next) { 
     var answerEntity = builder.EntityRecognizer.findEntity(args.entities, 'answer'); 
     session.send(answerEntity.entity); 
    } 
]); 

intents.matchesAny([/Test/i], [ 
     function (session) { 
      session.send('This is not from QnA Maker.'); 
     } 
]); 

intents.onDefault([ 
     function (session) { 
      session.send('Sorry, I don\'t know that.'); 
     } 
]); 

答えて

2

スコアは、エンティティ自体のプロパティです。以下は、対応するスコアを持つqna回答ごとにユーザーにメッセージを返信することで対応します。

intents.matches('qna', [ 
    function (session, args, next) { 
     args.entities.forEach(function(element) { 
      session.send('score=' + element.score + ':' + element.entity); 
     }, this); 
    } 
]); 
0

あなたはfindBestMatchhereを見つけることができます。あなたが見ることができるように、あなたは以下を使用してマッチを得ることができます:

var matches = EntityRecognizer.findAllMatches(choices, utterance, threshold); 

そして試合のスコアを取得して次のことを好き:

matches[i].score 
+0

EntityRecognizerが定義されていないとエラーが表示されます。私はどこでどのように定義する必要があるのか​​分からない。 – Anish

関連する問題