【问题标题】:How to train a NLP when there is same key word is repeating in "LUIS" and "QNA Makers" using dispatcher使用调度程序在“LUIS”和“QNA Makers”中重复相同关键字时如何训练 NLP
【发布时间】:2020-02-25 14:33:13
【问题描述】:

以下是我的问题: 当我问问题 2 时,我在 LUIS 和 QnA 制造商中训练了如下示例话语,它正在从 LUIS 中获得最高得分意图,我如何在这些类型的场景中训练 LUIS 和 QnA? 路易斯发言: 1.我的费用状况如何 等等

QNA 发言: 2.如何为我的费用提出问题 等等

【问题讨论】:

    标签: bots azure-language-understanding


    【解决方案1】:

    在不了解您的应用的情况下,我认为问题在于您如何使用 LUIS 和 QnA。 LUIS 应该用于根据话语检测用户的意图。在这种情况下,两个示例话语都是关于“费用”的。如果模型的结构和训练正确,LUIS 会检测到这一点并返回“费用”意图。

    返回的意图将指示将实际问题引导至哪个知识库,从而返回对所提出问题的响应。

    至于流程,您可以通过多种方式构建它。主要是为了秩序。

    您可以将其构建为一系列瀑布步骤。第一步是解析 LUIS 中的响应,第二步是根据 LUIS 响应从 QnA 返回答案。在此示例中,我说“你好”,LUIS 将其识别为“问候”意图。当该意图被返回并匹配时,该语句被传递给 QnA,它返回“问题”响应:'Hi!'。

    希望有帮助!

    async luisStep ( stepContext ) {
      if ( stepContext.context.activity.text ) {
        const stepResults = stepContext.context.activity.text.toLowerCase();
    
        await stepContext.context.sendActivity( `You said: ${ stepResults }` );
    
        const recognizerResult = await this.recognizer.recognize( stepContext.context );
        let intent = await LuisRecognizer.topIntent( recognizerResult );
    
      if ( intent ) {
          await stepContext.context.sendActivity( `Luis recognized: ${ intent }` );
          return stepContext.next( recognizerResult );
        } else {
          await stepContext.context.sendActivity( 'No LUIS intent was found.' );
          return stepContext.next( recognizerResult );
        }
      } else {
        await stepContext.context.sendActivity( 'Moving to the QnA step' );
        return await stepContext.next();
      }
    }
    
    async qnaStep ( stepContext ) {
      const resultDetails = stepContext.result;
      const topScoringIntent = stepContext.result.luisResult.topScoringIntent;
    
      if ( topScoringIntent.intent === 'Greeting' ) {
        let qnaResults = await this.qnaMaker.getAnswers(stepContext.context);
    
        if(qnaResults[0]) {
          stepContext.context.sendActivity(`QnA response: ${qnaResults[0].answer}`)
        }
    
        return { status: DialogTurnStatus.waiting };
      } else {
        await stepContext.context.sendActivity( 'There was an error retrieving QnA results.' );
      }
      return await stepContext.next();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-13
      • 1970-01-01
      • 1970-01-01
      • 2018-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多