[JAVA] Gehen wir zu Watson Assistant (ehemals Conversation). ① Einführung Was ist die Idee und das Absichtsverständnis der interaktiven Anwendung?

Ziel

Wir bringen Sie an den Punkt, an dem Sie mit Watson Slack Bot und Line Bot auch ohne Wissen erstellen können.

[Aktualisiert am 6. Juni 2019] Dieser Beitrag wurde während der Watson Conversation-Ära, dem Vorgänger von Watson Assistant, verfasst. Obwohl Screenshots noch alt sind, sind die grundlegenden Ideen und Operationen von Watson Assitant noch nicht abgeschlossen Ändert sich nicht, lesen Sie es daher bitte als die neueste Umgebung. </ font>

■ Ich möchte Folgendes ansprechen.

** ① Einführung in das Denken, Kontoerstellung ** ← Dieser Artikel ② Entwurfsmethode für den Dialogfluss am Beispiel "Hotelreservierung" ③ Verwendung des Kontexts, praktische Verwendung verschiedener Funktionen, die im Lernprogramm nicht erwähnt werden ④ Verknüpfung mit Java-Logik ⑤ Erstellen Sie einen Chat-Bot mit Watson + Java + Slack

__ Ich dachte, ich würde alles auf einmal schreiben, aber es ist zu lang, also werde ich die Artikel trennen. __ __

Für solche Leute

Ich habe Artikel von Watson Assistant (ehemals Watson Conversation) gelesen, API DOC gelesen und Beispiele ausprobiert, aber ich schreibe für diejenigen, die das nicht wirklich verstehen.

Als ich es zum ersten Mal berührte, verstand ich es nicht wirklich.

Was zu machen

Stellen Sie sich ein System wie Slack oder LINE vor, bei dem Java die Verbindung zwischen dem Front-End und Watson darstellt und Watson für die Verarbeitung und den Dialog in natürlicher Sprache verantwortlich ist.

kiso00.png

Wie man Slack Bot und Line Bot macht, ist in ↓ beschrieben, daher ist der Hauptteil dieses Artikels Watson.

Was ist Watson Assistant (ehemals Watson Conversation)?

Watson Assistant (ehemals Watson Conversation) ist ein Dienst, mit dem Sie auf einfache Weise einen Dialogfluss mit Benutzern wie einem Chatbot entwerfen und realisieren können.

Es hat den Vorteil, dass es flexibel mit natürlichen Sprachen umgehen kann, aber im Grunde ist es für diejenigen geeignet, die den Dialog regieren können (dies wird als regelbasiert bezeichnet).

Versuchen Sie, einen Dialog mit einer einfachen Antwort zu programmieren

Betrachten wir zunächst einen Dialog, in dem Watson Assistant (ehemals Watson Conversation) nicht verwendet wird.

Das hier verwendete Tool ist die if-Anweisung.

【Hotelreservierung】 Lassen Sie uns eine Szene erstellen, in der Sie ein Hotel mit einer if-Anweisung buchen.

Was passiert, wenn der Benutzer sagt ** "Ich möchte ein Zimmer reservieren" ** Ist es wie folgt?

String inputText="Ich möchte ein Zimmer reservieren";

if(inputText.contains("Reservierung")){
return "Verstanden. Es ist eine Zimmerreservierung!"
}

Wenn das Schlüsselwort "Reservierung" im Text enthalten war, vermutete ich die Absicht, dass "diese Person eine Reservierung vornehmen möchte".

Der Benutzer kann jedoch ** "Ich möchte ein Zimmer nehmen" ** sagen, daher werde ich dies ebenfalls unterstützen.

String inputText="Ich möchte ein Zimmer nehmen";

if(inputText.contains("Reservierung") || inputText.contains("Ich will bekommen")){
return "Verstanden. Es ist eine Zimmerreservierung!"
}

Aber hier sagte der Benutzer ** "Ich möchte meine Zimmerreservierung stornieren" **. Wenn Sie die obige Logik beibehalten, wird sie ** reserviert **, daher habe ich schnell Folgendes getan.

String inputText="Ich möchte meine Zimmerreservierung stornieren";

if((inputText.contains("Reservierung") || inputText.contains("Ich will bekommen")) && !inputText.contains("Stornieren")){
return "Verstanden. Es ist eine Zimmerreservierung!"
}

Auf diese Weise wird die if-Anweisung kompliziert ...

Ich beabsichtige nicht, dieses Mittel (wenn Satzoperation) selbst zu leugnen, Da der Text komplexer und zahlreicher wird, stellt sich heraus, dass er nicht einfach ist.

Je nach Person kann ein wenig Sorgfalt darauf verwendet werden, eine morphologische Analyse durchzuführen und in Teile zu zerlegen. Sie können eine Anschlussanalyse durchführen, diese ist jedoch auf jeden Fall sehr gut.

Als nächstes wird Watson Assistant (ehemals Watson Conversation) untersuchen, wie dies einfach durchgeführt werden kann.

Watson Assistant (ehemals Watson Conversation) Die Grundlagen des Dialogdenkens

Schritt 1. Absichtsklassifizierung

Sogar in Watson Assistant (ehemals Watson Conversation) ist der Teil, der ** die Absicht aus dem Text errät ** Gleich wie das obige Programm.

Es ist jedoch nicht erforderlich, dass der Entwickler die Logik ** erstellt und beurteilt, ob "Reservierung" in einem Teil des Satzes ** enthalten ist oder nicht, wie in der obigen if-Anweisung.

Alles, was Sie tun müssen, ist, die Sätze aufzuzählen, die der Benutzer wahrscheinlich sagt, und Watson sie wie unten gezeigt merken (lernen) zu lassen.

** "Ich möchte ein Zimmer reservieren" ** ** "Ich möchte ein Zimmer nehmen" **

Wenn dann die oben aufgeführten Sätze kommen, sagen Sie ihnen, dass sie sie als ** "freie Reservierung" ** klassifizieren sollen, und Watson wird sie ** lernen **. ** Absicht ** heißt in Watson ** Absicht **.

kiso_g01.png

Nach dem Lernen wird Watson ** "Vacancy Reservation" ** beurteilen, auch wenn ein ähnlicher ** Satz kommt. (Die Wahrscheinlichkeit wird durch eine numerische Bewertung ausgedrückt.)

Sätze wie ** "Ich möchte eine Reservierung vornehmen" ** und ** "Kann ich ein Zimmer bekommen?" ** werden ordnungsgemäß als ** Leerstandsreservierung ** interpretiert.

kiso_g02.png

Nun ist der Prozess der Bestimmung der Absicht aus diesem ** Satz ** Da Sätze, die mit einer bestimmten Absicht eingegeben wurden, einer bestimmten Kategorie zugeordnet werden Dies wird als ** Absichtsklassifizierung ** bezeichnet.

Diese ** Absichtsklassifikation ** wird manchmal als ** Absichtsverständnis ** bezeichnet, aber im Gegensatz zu Menschen ** können Maschinen (Watson) die Bedeutung und Absicht von Sätzen wie Menschen ** nicht verstehen ** Daher ist der Name ** Klassifizierung ** angemessener.

Diese ** Fähigkeit, natürliche Sätze zu klassifizieren ** ist eine der Kerntechnologien von Watson Assistant (ehemals Watson Conversation). (Es wird angenommen, dass Watsons interne Verarbeitung ** word2vec ** -ähnliche Dinge tut und verschiedene Kenntnisse nutzt)

Diese Technologie kann auch alleine verwendet werden, und ein Dienst namens Natural Language Classifier (NLC) ist verfügbar. Ich werde.

Natural Language Classifier (NLC) übersetzt in ** Natural Language Classifier **, was eine korrekte Benennung ohne Übertreibung ist.

Schritt 2. Antwort

Betrachten Sie nun die Antwort.

Was ist eine Antwort?

Weiter mit dem Beispiel eines Hotels,

** Benutzer "Ich möchte ein Zimmer reservieren" ** ** Zähler "Wann bist du sicher?" **

Dieses ** "Wann bist du sicher?" ** wird die ** Antwort **.

kiso02.png

Wenn Sie einen Satz erhalten, der als ** Stellenreservierung ** klassifiziert ist, lautet die Antwort, wie Sie ihn zurückgeben können. Der Designer des Dialogflusses entscheidet, wie er zurückgegeben wird.

Diese ** Antwort ** selbst hat nicht die intellektuelle Verarbeitung, die nur Watson bietet. Der Antworttext (außer der Text kann ausgegeben werden) wird gemäß den vom Dialogflussdesigner festgelegten Regeln zurückgegeben.

Kontinuierlicher Dialogfluss

Wie in der folgenden Abbildung gezeigt Um Schritt 1 und Schritt 2 zusammenzufassen, ・ Klassifizieren Sie Eingabesätze in ** Absicht ** ・ ** Reagiere ** auf ** Absicht ** gemäß den festgelegten Regeln Es wird sein.

Die Grundidee besteht darin, einen Dialog zu erstellen, indem die Absichtsklassifizierung von Schritt 1 und die Antwort von Schritt 2 zu einem Satz kombiniert und mehrere Antworten verbunden werden.

kiso03.png

Ein Konto erstellen

Erstellen Sie jetzt ein Konto und verwenden Sie Watson Assistant (ehemals Watson Conversation).

Erstellen Sie ein Bluemix-Konto

  • Zugriff auf Bluemix Erstellen Sie ein Bluemix-Konto, indem Sie auf Folgendes zugreifen, um Watson Assistant (ehemals Watson Conversation) zu verwenden. https://console.ng.bluemix.net/

  • Folgen Sie dem Bildschirm und geben Sie die erforderlichen Informationen ein

setup1.png

  • Zum ersten Mal können Sie eine kostenlose Testversion verwenden.

setup2.png

  • Tippen Sie nach dem Erstellen eines Kontos auf das Menü oben links auf dem Bildschirm setup3.png

-Wählen Sie ** Service ** setup4.png

-Wählen Sie ** Watson ** setup5.png

-Wählen Sie ** Watson Service erstellen ** setup6.png

-Wählen Sie ** Gespräch ** setup7.png

  • Scrollen Sie auf dem Bildschirm nach unten setup8.png

  • Stellen Sie sicher, dass in Ihrem Preisplan ** Kostenlos ** ausgewählt ist, und wählen Sie ** Erstellen ** aus Dadurch wird der Watson Assistant-Dienst (ehemals Watson Conversation) erstellt.

setup9.png

Für kostenlose Pläne

  • 1.000 API-Abfragen pro Monat
  • Bis zu 3 Arbeitsbereiche
  • Bis zu 25 Absichten
  • Gemeinsame öffentliche Cloud

Dies reicht jedoch für einen einfachen Dialogfluss aus.

Watson selbst läuft übrigens auf WDC (Watson Developer Cloud), nicht auf Bluemix.

  • ** Wählen Sie die Registerkarte Service Credentials ** step10.png

--Überprüfen Sie ** Benutzername, Passwort ** im Feld unten. Diese werden später benötigt, wenn die Watson-API von Java usw. aus aufgerufen wird. (Kann jederzeit überprüft werden)

step11.png

――Erstellen Sie sofort einen Arbeitsbereich.

Wählen Sie die Registerkarte ** Verwalten ** und dann ** Werkzeug starten **, um den Arbeitsbereich zu öffnen

step12.png

-Wählen Sie ** Erstellen **, um einen neuen Arbeitsbereich zu erstellen.

Grob gesagt kann ein Arbeitsbereich als Dialogfluss betrachtet werden.

Mit dem kostenlosen Plan können Sie übrigens bis zu 3 Arbeitsbereiche pro Service erstellen. Erstellen Sie einen Arbeitsbereich für Hotelreservierungen

step13.png

――Bis jetzt können Sie mit dem interaktiven Design beginnen. step14.png

Die Fortsetzung ist hier. ** Gehen wir mit Watson Assistant (ehemals Watson Conversation) ② Erstellen Sie einen Chatbot für Hotelreservierungen **

Recommended Posts

Gehen wir zu Watson Assistant (ehemals Conversation). ① Einführung Was ist die Idee und das Absichtsverständnis der interaktiven Anwendung?
Gehen wir zu Watson Assistant (ehemals Conversation). ④ Verknüpfung mit Java-Logik
Gehen wir mit Watson Assistant (ehemals Conversation). ② Erstellen Sie einen Chatbot für die Hotelreservierung
Los geht's mit Watson Assistant (ehemals Conversation) ⑤ Erstellen Sie einen Chatbot mit Watson + Java + Slack
Was ist JSP? ~ Lassen Sie uns die Grundlagen von JSP kennen !! ~