如何将实体与LUIS中定义的单词列表进行匹配

时间:2016-09-26 19:28:01

标签: botframework microsoft-cognitive luis

我正在使用LUISCognitive Services Emotion API合作,对8种情绪进行排名(愤怒,蔑视,厌恶,恐惧,快乐,中立,悲伤,惊讶)。

在我的LUIS模型中,我将'Emotion'定义为一个实体并训练模型。

LUIS正确识别情感实体,但我仍然坚持如何将其映射到情感API所处理的8个定义的单词(愤怒,蔑视,厌恶,恐惧,快乐,中立,悲伤,惊讶)。 / p>

例如,如果我发送“谁是这里最悲伤的人”,它将返回此

"entities": [{
  "entity": "saddest",
  "type": "Emotion",
  "startIndex": 11,
  "endIndex": 17,
  "score": 0.967470348
}]

但是如何使用LUIS或任何其他API将“悲伤”映射到“悲伤”?

2 个答案:

答案 0 :(得分:0)

我不完全确定你的情况是什么,所以我的回答可能有些偏差。

根据您的描述,我了解您想要在实体类型和Emotion API的情感类别之间创建映射。我要做的是在LUIS中创建8种不同的实体类型,例如Emotion_Anger,Emotion_Sadness等,然后训练模型,使其分别识别这些实体类型。对于您的示例,假设您正确训练了LUIS模型,预期结果将是

"实体":[{   "实体":"最悲伤",   "输入":" Emotion_Sadness ",   " startIndex":11,   " endIndex":17,   "得分":0.967470348 }]

然后,您可以轻松地将实体类型Emotion_Sadness映射到悲伤类别。

答案 1 :(得分:0)

我通过创建一个名为emotion的单个实体来实现这一目标,该实体使用情感API使用的名称(愤怒,蔑视等)为8种情绪中的每一种都有一个子实体。

Emotion entity with 8 child entities

然后我训练LUIS使用话语来区分每种情绪(子实体),现在LUIS返回这样的内容,以回应像#34这样的最快乐的问题" (注意我使用的术语是“最快乐的而不是快乐'这就是孩子的实体”)

  "entities": [
    {
      "entity": "happiest",
      "type": "emotion::happiness",
      "startIndex": 11,
      "endIndex": 18,
      "score": 0.9464528
    }
  ]

使用此回复,我能够确定使用实际名称而不是话语中的文字识别出哪些儿童情绪。