2017-09-17 3 views
1

Actuellement, nous utilisons le service NLC (Watson Natural Language Classifier) ​​pour obtenir l'intention d'une question d'un utilisateur. Mais la configuration et la maintenance de NLC deviennent de plus en plus difficiles, alors il se demandait s'il serait possible d'obtenir seulement l'intention de la question de l'utilisateur en utilisant la section Watson Conversation, seulement l'intention et non la réponse du dialogue du service.pouvons-nous récupérer seulement l'intention en utilisant la conversation watson?

Répondre

2

L'intention fait partie de la réponse de la conversation. Si vous définissez le paramètre alternate_intents=true, les 10 premières intentions sont renvoyées.

Vous obtiendrez toujours le reste de la charge utile, mais vous pouvez l'ignorer. Je recommande de créer un nœud de dialogue avec une condition de true et rien d'autre. Cela permettra d'éviter les erreurs SPEL lorsque vous ne trouvez pas un noeud correspondant.

Votre réponse ressemblera à ceci.

{ 
    "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": [ "" ] 
    } 
} 

Tout ce dont vous avez besoin est le json_response['intents']. Aussi, si vous ne vous souciez que de l'intention, vous n'avez pas besoin de renvoyer le contexte.


Juste pour ajouter à cela. NLC et Conversation utilisent deux modèles d'apprentissage très différents.

  • NLC utilise "confiance relative"
  • Conversation utilise "confiance absolue"

Dans le cas d'un parent, toutes les confidences des objets trouvés ajoutera à 1. En termes simples, NLC automatiquement suppose que la réponse ne peut être que dans les intentions qui lui ont été données.

Pour Absolute, les confidences ne concernent que cette intention. Cela signifie que la conversation peut comprendre que ce que vous dites ne soit pas dans la formation qui lui a été donnée. Cela signifie également que votre liste d'intention peut revenir vide.

Alors ne paniquez pas si quelque chose qui vous donnait 90% auparavant vous donne maintenant 60%. Ils ne font que marquer différemment.