[JAVA] Allons-y avec Watson Assistant (anciennement Conversation) ① Introduction Quelle est l'idée et l'intention de comprendre l'application interactive?

Cible

Même sans aucune connaissance, nous vous amènerons au point où vous pouvez créer Slack Bot et Line Bot à l'aide de Watson.

[Mis à jour le 6 juin 2019] Ce message a été écrit à l'époque de Watson Conversation, le prédécesseur de Watson Assistant, et bien que les captures d'écran soient encore anciennes, les idées et les opérations de base de Watson Assitant Ne change pas, veuillez donc le lire comme le dernier environnement. </ font>

■ Je voudrais aborder les points suivants.

** ① Introduction à la réflexion, création de compte ** ← Cet article ② Méthode de conception du flux de dialogue en utilisant "Réservation d'hôtel" comme exemple ③ Utilisation du contexte, utilisation pratique de diverses fonctions non mentionnées dans le didacticiel ④ Comment créer un lien avec la logique Java ⑤ Créez un chat bot avec Watson + Java + Slack

__ Je pensais tout écrire en une seule fois, mais c'est trop long, je vais donc séparer les articles. __

Pour des gens comme ça

J'ai lu des articles sur Watson Assistant (anciennement Watson Conversation), lu API DOC et essayé des exemples, mais j'écris pour ceux qui ne comprennent pas vraiment.

Quand je l'ai touché pour la première fois, je ne l'ai pas vraiment compris.

Quoi faire

Prenons un système tel que Slack ou LINE où Java est le lien entre le front-end et Watson, et Watson est en charge du traitement du langage naturel et du dialogue.

kiso00.png

Comment créer Slack Bot et Line Bot est décrit dans ↓, donc la partie principale de cet article est Watson.

Qu'est-ce que Watson Assistant (anciennement Watson Conversation)?

Watson Assistant (anciennement Watson Conversation) est un service qui vous permet de concevoir et de réaliser facilement un flux de dialogue avec des utilisateurs comme un chatbot.

Il a l'avantage de pouvoir gérer les langues naturelles de manière flexible, mais il convient fondamentalement à ceux qui peuvent ** diriger le dialogue ** (cela s'appelle ** basé sur des règles **).

Essayez de programmer un dialogue avec une réponse simple

Considérons d'abord un dialogue qui n'utilise pas Watson Assistant (anciennement Watson Conversation).

L'outil utilisé ici est l'instruction if.

【réservation d'hôtel】 Créons une scène de ** réservation d'un hôtel ** avec une déclaration if.

Que se passe-t-il lorsque l'utilisateur dit ** "Je souhaite réserver une chambre" ** Est-ce que c'est comme ça?

String inputText="Je veux réserver une chambre";

if(inputText.contains("Réservation")){
return "Compris. C'est une réservation de chambre!"
}

Si le mot-clé «réservation» était dans le texte, j'ai deviné l'intention que «cette personne souhaite faire une réservation».

Cependant, l'utilisateur peut dire ** "Je veux prendre une chambre" **, donc je soutiendrai cela aussi.

String inputText="Je veux prendre une chambre";

if(inputText.contains("Réservation") || inputText.contains("je veux avoir")){
return "Compris. C'est une réservation de chambre!"
}

Mais ici l'utilisateur a dit ** "Je souhaite annuler ma réservation de chambre" **. Si vous gardez la logique ci-dessus, elle sera ** réservée **, alors j'ai précipité les étapes suivantes.

String inputText="Je souhaite annuler ma réservation de chambre";

if((inputText.contains("Réservation") || inputText.contains("je veux avoir")) && !inputText.contains("Annuler")){
return "Compris. C'est une réservation de chambre!"
}

De cette façon, l'instruction if devient compliquée ...

Je n'ai pas l'intention de nier que cela signifie (si l'opération de phrase) lui-même, Au fur et à mesure que le texte devient plus complexe et plus nombreux, cela s'avère difficile.

Selon les personnes, un peu de soin peut être apporté à l'analyse morphologique et à la décomposition en parties. Vous pouvez faire une analyse de branchement, mais dans tous les cas, c'est très bien.

Ensuite, Watson Assistant (anciennement Watson Conversation) examinera comment cela peut être fait facilement.

Watson Assistant (anciennement Watson Conversation) Les bases de la réflexion sur le dialogue

Étape 1. Classification d'intention

Même dans Watson Assistant (anciennement Watson Conversation), la partie qui ** devine l'intention à partir du texte ** est Identique au programme ci-dessus.

Cependant, il n'est pas nécessaire pour le développeur de créer et de juger la logique de ** si la "réservation" est incluse ou non dans une partie de la phrase ** comme dans l'instruction if ci-dessus.

Tout ce que vous avez à faire est d'énumérer les phrases que l'utilisateur est susceptible de dire et de laisser Watson s'en souvenir (apprendre) comme indiqué ci-dessous.

** "Je souhaite réserver une chambre" ** ** "Je veux prendre une chambre" **

Ensuite, lorsque les phrases énumérées ci-dessus arrivent, dites-leur de les classer comme ** "réservation de poste vacant" **, et Watson les ** apprendra **. ** Intention ** s'appelle ** Intent ** dans Watson.

kiso_g01.png

Après avoir appris, Watson jugera ** "réservation de poste vacant" ** même si des phrases ** similaires ** viennent. (La probabilité est exprimée par un score numérique.)

Les phrases telles que ** «Je veux faire une réservation» ** et ** «Puis-je obtenir une chambre?» ** sont correctement interprétées comme ** Réservation de vacance **.

kiso_g02.png

Maintenant, le processus de détermination de l'intention à partir de cette ** phrase ** Puisque les phrases saisies avec une certaine intention sont ** classées ** dans une certaine catégorie C'est ce qu'on appelle la ** classification d'intention **.

Cette ** classification d'intention ** est parfois appelée ** compréhension de l'intention **, mais contrairement aux humains **, les machines (Watson) ne peuvent pas comprendre le sens et l'intention de phrases comme les humains ** Par conséquent, le nom ** classification ** est plus approprié.

Cette ** capacité à classer les phrases naturelles ** est l'une des technologies de base de Watson Assistant (anciennement Watson Conversation). (Le traitement interne de Watson est supposé faire ** word2vec ** - comme des choses et utiliser diverses connaissances)

Cette technologie peut également être utilisée seule, et un service appelé Natural Language Classifier (NLC) est disponible. Je vais.

Natural Language Classifier (NLC) se traduit par ** classifier en langage naturel **, qui est une dénomination correcte sans exagération.

Étape 2. réponse

Considérons maintenant la réponse.

Qu'est-ce qu'une réponse?

Continuant avec l'exemple d'un hôtel,

** Utilisateur "Je souhaite réserver une chambre" ** ** Compteur "Quand êtes-vous sûr?" **

Cette ** "Quand êtes-vous sûr?" ** devient la ** réponse **.

kiso02.png

Lorsque vous recevez une phrase classée ** Réservation de vacance **, la réponse est de savoir comment la retourner. Le concepteur du flux de dialogue décidera comment le renvoyer.

Cette ** réponse ** elle-même n'a pas le traitement intellectuel propre à Watson, Le texte de la réponse (autre que le texte peut être sorti) est retourné selon les règles définies par le concepteur de flux de dialogue.

Flux de dialogue continu

Comme le montre la figure ci-dessous Pour résumer les étapes 1 et 2, ・ Classer les phrases d'entrée en ** intention ** ・ ** Réponse ** à ** intention ** selon les règles établies Ce sera.

L'idée de base est de créer un dialogue en combinant la classification d'intention de l'étape 1 et la réponse de l'étape 2 en un seul ensemble et en connectant plusieurs réponses.

kiso03.png

Créer un compte

Créez un compte maintenant et utilisez Watson Assistant (anciennement Watson Conversation).

Créez un compte Bluemix

--Accéder à Bluemix Créez un compte Bluemix en accédant aux éléments suivants pour utiliser Watson Assistant (anciennement Watson Conversation) https://console.ng.bluemix.net/

--Suivez l'écran et entrez les informations requises

setup1.png

  • Pour la première fois, vous pouvez utiliser un essai gratuit.

setup2.png

  • Appuyez sur le menu en haut à gauche de l'écran après avoir créé un compte setup3.png

-Sélectionnez ** Service ** setup4.png

-Sélectionnez ** Watson ** setup5.png

-Sélectionnez ** Créer un service Watson ** setup6.png

-Sélectionnez ** Conversation ** setup7.png

--Faites défiler l'écran setup8.png

  • Assurez-vous que ** Gratuit ** est sélectionné dans votre plan tarifaire et sélectionnez ** Créer ** Cela créera le service Watson Assistant (anciennement Watson Conversation).

setup9.png

Pour des plans gratuits

--1 000 requêtes API par mois --Jusqu'à 3 espaces de travail --Jusqu'à 25 intentions

  • Cloud public partagé

Cependant, cela suffit pour un flux de dialogue simple.

À propos, Watson lui-même fonctionne sur WDC (Watson Developer Cloud), pas sur Bluemix.

  • ** Sélectionnez l'onglet Informations d'identification du service ** step10.png

  • Vérifiez ** nom d'utilisateur, mot de passe ** dans la case ci-dessous. Ceux-ci seront nécessaires plus tard lors de l'appel de l'API Watson à partir de Java, etc. (Peut être vérifié à tout moment)

step11.png

―― Créons tout de suite un espace de travail.

Sélectionnez l'onglet ** Gérer ** et sélectionnez ** Lancer l'outil ** pour ouvrir l'écran de l'espace de travail

step12.png

-Sélectionnez ** Créer ** pour créer un nouvel espace de travail.

En gros, un espace de travail peut être considéré comme un flux de dialogue.

En passant, avec le plan gratuit, vous pouvez créer jusqu'à 3 espaces de travail par service. Créer un espace de travail pour les réservations d'hôtel

step13.png

―― À présent, vous êtes prêt à commencer la conception interactive. step14.png

La suite est ici. ** Allons-y avec Watson Assistant (anciennement Watson Conversation) ② Faites un chatbot de réservation d'hôtel **

Recommended Posts

Allons-y avec Watson Assistant (anciennement Conversation) ① Introduction Quelle est l'idée et l'intention de comprendre l'application interactive?
Allons-y avec Watson Assistant (anciennement Conversation) ④ Comment créer un lien avec la logique Java
C'est parti avec Watson Assistant (anciennement Conversation) ② Faire un chatbot de réservation d'hôtel
Allons-y avec Watson Assistant (anciennement Conversation) ⑤ Créez un chatbot avec Watson + Java + Slack
Qu'est-ce que JSP? ~ Connaissons les bases de JSP !! ~