2017-09-17 3 views
1

Derzeit verwenden wir den Watson Natural Language Classifier Service (NLC), um die Frage eines Benutzers zu beantworten. Aber das Konfigurieren und Pflegen von NLC wird schwierig, und so fragte man sich, ob es möglich wäre, nur die Absicht der Benutzerfrage mit dem Watson Conversation-Abschnitt zu bekommen, nur die Absicht, nicht die Antwort des Dialogs vom Dienst.können wir nur die Absicht mit Watson-Konversation abrufen?

Antwort

2

Die Absicht kommt als Teil der Antwort zurück von der Konversation. Wenn Sie den Parameter alternate_intents=true einstellen, werden die Top 10 Intents zurückgegeben.

Sie erhalten immer noch den Rest der Nutzlast, aber Sie können es ignorieren. Ich würde empfehlen, einen Dialogknoten mit einer Bedingung von true und nichts sonst zu erstellen. Dies verhindert SPEL-Fehler, wenn kein übereinstimmender Knoten gefunden wird.

Ihre Antwort wird ungefähr so ​​aussehen.

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

Alles, was Sie benötigen, ist die json_response['intents']. Wenn Sie sich nur für die Absicht interessieren, müssen Sie den Kontext nicht weiter zurücksenden.


Nur um das hinzuzufügen. NLC und Conversation verwenden zwei sehr unterschiedliche Lernmodelle.

  • NLC verwendet "Relative Confidence"
  • Conversation verwendet "Absolute Confidence"

Im Falle Relative alle Vertraulichkeiten Elemente summieren sich auf 1 gefunden In Laiebezeichnungen, NLC automatisch nimmt an, dass die Antwort nur in den Absichten sein kann, die es gegeben wurde.

Für Absolut beziehen sich die Vertraulichkeiten nur auf diese Absicht. Das bedeutet, dass die Konversation verstehen kann, dass das, was du sagst, nicht in dem Training ist, das es gegeben hat. Es bedeutet auch, dass Ihre Absichtsliste leer zurückkommen kann.

Also keine Panik, wenn dir etwas, das dir 90% zuvor gegeben hat, jetzt 60% gibt. Sie bewerten nur anders.

Verwandte Themen