追記(2016.09.10)
[Watson] Dialog Serviceの廃止について
http://qiita.com/y_some/items/de4cdea1b60d36243c0d
はじめに
今年に入って日本語化されたWatsonサービスの一つ、Dialog。
Dialogで何ができるかというと、以下の画像で一目瞭然。
Watsonと連続的に対話ができるサービスです。
これの元は公式のquick demoというもので、Dialogを体験することができますが、残念ながら英語での対話しかできません(2016年6月5日現在)。
Dialogを使うには対話シナリオが定義されたDialogXMLファイル(Dialog XML files)の作成が必要になります。
Watsonと日本語で対話しようと思ったら、当たり前ですが、日本語のDialogXMLファイルが必要です。
上記quick demoのDialogXMLファイルがGithubにリポジトリが公開されていましたので、その一部を自力で日本語化して動作させたのが上記画像です。(動作させているアプリについては後述)
Dialogの公式ドキュメントはすべて英語で、ネットに出ている情報も多くありません。
私も取っ掛かりに苦労していますが、ここまでの作業を「初めの一歩」として公開します。
作業手順
概要
DialogサービスはAPIで提供されており、UIを持ちません。
UIで動作させるには、何らかのアプリが必要です。
公式のアプリとして「Dialog tool」というものが公開されています。
Dialog toolを使うと、DialogXMLファイルをブラウザから簡単にアップロードでき、さらにブラウザ上で対話のテストができます。
上記は私が作成した対話シナリオをDialog toolによって動作させた画像です。(自作のアプリではありません)
Dialog toolのリポジトリはGithubに公開されており、Bluemix上に簡単にデプロイすることができます。
本稿では、Dialog toolをBluemixにデプロイし、日本語化したquick demoのDialogXMLファイルをアップロードし、対話テストするところまでの手順をご紹介します。
手順1.Bluemixのアカウント取得
まだアカウントを持っていない方は、こちらの記事を参考に取得してください。
手順2.Dialog toolをBluemixにデプロイ
2-1) こちらからDialog toolのGithubリポジトリにアクセス
2-2)「Deploy to Bluemix」をクリック
2-3)以下のような画面に遷移するので「LOG IN」をクリック
2-4)以下のようにデプロイ先が表示されます。
ここで注意すべきは「REGION」です。
こちらの記事にもある通り、Bluemixは3か所のREGION(地域)が選択でき、一つのアカウントでどの地域のデータセンターも利用可能です(2016年6月現在)。
どのREGIONにデプロイしたのか覚えておかないと、「あれ?どこいっちゃった?」となりますので注意してください。
地域の切り替えはBluemixダッシュボードのアカウント設定で行います。
2-5)「DEPLOY」をクリックするとデプロイが開始されます。しばらく時間がかかります。
2-6)成功すると以下のような画面になりますので、「VIEW YOUR APP」をクリックすると、Dialog toolが起動します。
以下がDialog toolの実行画面です。
上段の「Work with Dialogs」でXMLファイルをアップロードします。
下段の「Have a conversation」で対話のテストを行います。
Bluemixダッシュボードを見ると、今回の操作によってDialogサービスとDialog toolアプリケーションが同時に登録されたことがわかります。
手順3.DialogXMLファイルのアップロードとテスト
3-1)quick demoにアクセス
3-2)「Fork on Github」をクリック →Githubのリポジトリへ
3-3)「Clone or Download」-「DownloadZIP」を選択し、PCにリポジトリをダウンロード
3-4)ZIPを解凍すると「Dialogs」フォルダに「pizza_sample.xml」というファイルがあります。これがデモのDialogXMLファイルです。
3-5)XMLファイルの"LANGUAGE"エントリを"ja-JP"に修正します。
3-6)今回はその他、何か所か適当に和訳しただけです。(笑)
3-7)あとは、Dialog toolの実行画面で、以下のような流れでシナリオのテストを行います。
(1)「Name」欄にDialogのシナリオを一意にする名前を入力します。
(2)「ファイルを選択」をクリックし、当該XMLファイルを指定します。
(3)「Upload」ボタンをクリックします。
(4)少々待つとDialogが生成され、以下のようなボックスが現れます。
これをクリックするとWatsonとの対話が始まり「Type a respolse」欄でレスポンスを入力します。
(5)うまく動作しなかったら、XMLを修正し、「delete」ボタンでボックスを削除して(1)からやり直します。
次のステップ
quick demoのDialogXMLファイルを見ると、いろいろなXMLタグがあります。
DialogXMLファイルはコーパス(文例データ)やコーチングデータ(教師データ)というよりは、むしろスクリプトに近いものです。
各種XMLタグを理解する方法は、今のところ公式ドキュメントのElement index(英語)を読み解くしかないようです。
quick demoの動作と対比しながら読むとよさそうです。
DialogAPIの呼び出し方法は、API Referenceで確認することができます。
APIの呼び出しはそれほど難しくなさそうですので、自分なりのDialogシナリオが自由に書けるようになったら、
- Natural Language ClassifierやRetrieve and Rankと組み合わせてみる
- iOSのチャットアプリを作って連携させてみる
- WebAPIを作ってLINEのBOT APIと連携させてみる
など、いろいろ面白そうなことができそうですが、まずはここまでということで…