2016-12-02 3 views
0

私は、2つのLUISアプリケーションをLuisRecognizersとして使用してクライアントの意図を推測するボットを持っています。私の質問は、ボットがなぜ最低スコアを持つインテントに応答するのかです。私はこれを二重にチェックし、手動でスコアをLuisダッシュボードでチェックすると、IntentAは0.92、IntentBはスコア1になります。また、同じ入力をbotframeworkに渡すと、スコアが低いIntentAで応答します。何か不足していますか? 私はintentThreshold、recognMode、またはrecognOrderを使って遊んだりしようとしましたが、これはすべてドキュメントに記載されていますが、より良い結果は得られませんでした。ボトムスコアが低いスコアのインテントで返答する

+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でそれを上書きすることができますがそのメカニズムの詳細(intetntのスコアを記録することによって)。 あなたが見ることができるように、最高点は決定点で選択されます。 また、あなたが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は現時点でモデルを正しく公開していなかったため、私が行った変更をキャッチしなかったため、訓練されたモデルはダッシュボードで完全に機能しましたが、

私は翌日、ダッシュボードとボットフレームワークの両方ですべてを正しく公開しました。

関連する問題