Watson Conversationを使って会話を行うチャットボットを作成する

Published: 2017年9月3日 by tomsato

概要

Watson Conversationを使って会話を行うチャットボットを作成する
会話の内容としては、好きなゲームを聞かれたら「スプラトゥーン」と答えるだけの内容とする

そもそもWatsonが何かというのはこちらを参考にする

IBM Watson入門の入門 デモを試してWatsonがどんなものかのイメージを掴む

また次回の記事ではLINEボットの会話の返信をWatsonで行うまでの流れをまとめる
その時にNode-REDを使うのでNode-REDを使う前提で話を進める

従って以前作成したNode-REDの記事で
IBM BluemixでNode-REDのアプリケーションを作成するところまでは行っておくことを前提としておく

Node-RED入門の入門

Watsonが会話の返信内容をどのように作成するのか気になっているだけの人は
このまま読み進めるだけでわかるようにしておきます

作成するまでの流れとしてはWatson Conversation APIのサービスを立ち上げた後に
「Intents」「Entities」「Dialog」を設定して学習をさせていく

学習方法について

「Intents」と「Entities」で学習させた後に「Dialog」を使って会話フローを組み立てていく

この3つはチャットボットで最低限の会話ができるようにするために必要な設定である

項目 説明
Intents 問いかけの分類
Entities 質問に置ける目的語の中身 (チワワやブルドッグを「犬」と分類させるための用語)
Dialog 対話のフローを設計する

今回は具体的にいうと

Intents
「#挨拶」がどんなものが想定されるか(こんにちは、おはよう、おっはーなど)
「#好きなゲーム」はどう聞かれるか(どんなゲームが好き?何のゲームが好き?など)

**Entities
** 「@game」という項目で、遊びや娯楽をゲームと分類させる

**Dialog
** 会話の最初に「#挨拶」(こんにちは、おはようとか)が来た場合に「ようこそ、何が聞きたい?」と返答してその後に

「#好きなゲーム」が聞かれた場合に「私はスプラトゥーンが好きです」と返答する(好きな娯楽は?など「@game」で設定した単語でも反応する)

という会話フローを設定させる

作成手順

準備

Watson Conversation APIを追加する

https://console.bluemix.net/catalog/ より「Conversation」をクリック

以下のように入力して「作成」を押す

Node-REDのアプリケーションでConversationを使用するにはNode-REDのアプリケーションを再ステージすることが必要で再ステージしますか?と聞かれるので再ステージする

その後作成したサービスのページに遷移して「Launch tool」をクリックする

Conversation Toolが起動が起動するので「Create」から新規にワークスペースを作成する

Warkspaceの名前はとりあえず「LineBot」とした

この後は「Intents」「Entities」「Dialog」の3つの設定が必要になる

Intents

「Intents」タブより「Create new」より作成開始

最低5つの例文が必要なので以下のように入力

Entities

「Entities」タブより「Create new」で作成開始

Dialog

「Dialog」タブより「Create」で作成開始

問いかけの分類としてIntentsで設定したものを記述して返答する内容を記述している

図を見てわかるように、挨拶をした後に好きなゲームについて聞かれた場合のみ返答するフローとしている

また「anything_else」は質問の意図を理解できなかった時にその他の回答を用意するためのもの

右上のチャットアイコンを開くと会話を試すことができる

Share

最近の投稿

NetlifyのSplit TestingとFunctionsについて使い方をまとめる Split TestingはGitHubのブランチをベースにしたA/Bテストを行うための機能のことで、FunctionsはNetlifyでAWS Lambdaを使うことができる

NetlifyとはHTMLなどの静的コンテンツのみで構成されたWebサイトを閲覧できる形で配信するWebサービス GitHubやBitbucket、GitLabなどと連携して使うことができて、リポジトリにプッシュすることで自動でCI/CDを行うことができる、無料枠が豊富で独自ドメインを設定可能

WordPressからJekyll(GitHub Pages)に移行した手順をまとめる。 お金的な事情や使いやすさなどの理由で無料のJekyll+GitHub Pagesに移行した。JekyllとはMarkdown等から静的ページを生成する静的サイトジェネレータ

Scala開発のためにScalaらしさをまとめる 言語設計者の設計思想を元にScalaらしさについてまとめる オブジェクト指向と関数型の融合について

StorybookとはUI開発環境を提供するツール React、React Native、Angular、Vueなどをサポートしている ユーザーは独立した開発環境でコンポーネントを個別に作成して挙動の確認をテストできたり、コンポーネントを一覧にしてカタログ化できるので他の人に紹介する時に使えたりする

カテゴリ一覧

タグ一覧