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

How to match an entity to a defined list of words in LUIS

我正在使用 LUIS to work with the Cognitive Services Emotion API 对图像进行 8 种情绪排名(愤怒、轻蔑、厌恶、恐惧、快乐、中性、悲伤、惊讶)。

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

LUIS 正确地识别了情绪实体,但我仍然坚持如何将其映射到情绪 API 所使用的 8 个定义词(愤怒、蔑视、厌恶、恐惧、幸福、中性、悲伤,惊喜)。

例如,如果我发送 "who is the saddest person here",它将 return 这个

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

但是如何使用 LUIS 或任何其他 API 将 'saddest' 映射到 'sadness'?

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

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

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

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

我自己实现了这一点,方法是创建一个名为 emotion 的实体,该实体使用情绪 API 使用的名称(愤怒、蔑视等)为 8 种情绪中的每一种都有一个子实体。

然后我训练 LUIS 使用话语区分每种情绪(子实体),现在 LUIS returns 像这样响应 "who is the happiest one" 之类的查询(注意我使用了术语 'happiest' 而不是 'happiness' 这是子实体)

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

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