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. __
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.
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.
Comment créer Slack Bot et Line Bot est décrit dans ↓, donc la partie principale de cet article est Watson.
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 **).
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.
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.
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 **.
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.
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 **.
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.
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.
Créez un compte maintenant et utilisez Watson Assistant (anciennement Watson Conversation).
--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
-Sélectionnez ** Service **
-Sélectionnez ** Watson **
-Sélectionnez ** Créer un service Watson **
-Sélectionnez ** Conversation **
--Faites défiler l'écran
Pour des plans gratuits
--1 000 requêtes API par mois --Jusqu'à 3 espaces de travail --Jusqu'à 25 intentions
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 **
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)
―― 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
-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
―― À présent, vous êtes prêt à commencer la conception interactive.
La suite est ici. ** Allons-y avec Watson Assistant (anciennement Watson Conversation) ② Faites un chatbot de réservation d'hôtel **
Recommended Posts