我们可以使用沃森谈话只检索意图吗?

时间:2017-09-17 12:57:19

标签: watson-conversation watson

目前,我们正在使用Watson Natural Language Classifier服务(NLC)来获取用户问题的意图。但是配置和维护NLC变得越来越困难,所以想知道是否有可能只使用Watson Conversation部分获得用户问题的意图,只是意图不是来自服务的对话响应。

1 个答案:

答案 0 :(得分:2)

意图来自对话回复的一部分。如果设置参数alternate_intents=true,则返回前10个意图。

您仍将获得剩余的有效负载,但您可以忽略它。我建议创建一个条件为true的对话节点,而不是其他任何东西。这将在未找到匹配节点时阻止SPEL错误。

您的回答看起来像这样。

{
  "alternate_intents": true,
  "context": { 
    "conversation_id": "6c256e10-ba3b-4d2b-84fc-740853879d4f",
    "system": { 
      "_node_output_map": { "True": [0] },
      "branch_exited": true,
      "branch_exited_reason": "completed",
      "dialog_request_counter": 1,
      "dialog_stack": [ { "dialog_node": "root" } ],
      "dialog_turn_counter": 1
    }
  },
  "entities": [],
  "input": { "text": "test" },
  "intents": [
      { "intent": "intent1", "confidence": 1.0 },
      { "intent": "intent2", "confidence": 0.9 },
      { "intent": "intent3", "confidence": 0.8 },
      { "intent": "intent4", "confidence": 0.7 },
      { "intent": "intent5", "confidence": 0.6 },
      { "intent": "intent6", "confidence": 0.5 },
      { "intent": "intent7", "confidence": 0.4 },
      { "intent": "intent8", "confidence": 0.3 },
      { "intent": "intent9", "confidence": 0.2 },
      { "intent": "intent10", "confidence": 0.1 }
  ],
  "output": {
    "log_messages": [],
    "nodes_visited": [ "True" ],
    "text": [ "" ]
  }
}

您需要引用的只是json_response['intents']。此外,如果您只关心意图,则无需继续发回上下文。

只是添加到此。 NLC和Conversation使用两种截然不同的学习模型。

  • NLC使用“相对信心”
  • 会话使用“绝对信心”

在Relative的情况下,所有项目的置信度将加起来为1.通常情况下,NLC会自动假设答案只能在给出的意图中。

对于绝对,信心仅涉及该意图。这意味着会话可以理解您所说的内容可能不属于已经提供的培训。这也意味着你的意图列表可以回空。

所以不要惊慌,如果之前给你90%的东西现在给你60%。他们的得分不同。