2016.11.13 Sun |
WatsonAPI紹介①
![データ解析](http://ritsuan.com/wp-content/uploads/2016/08/0bb8401f2c0de04a96c1bbb7dae2d094.jpg)
こんにちは!
最近、産業におけるAI分野の巨塔である、IBM Watson, Google Cloud Platform, Microsoft Azureの3つのプラットホームが、もともと大きかったものがさらに大きくパワーアップしてきました。もはや、AI系のビジネスをやる上で彼らのサービスは無視できない存在となっています。
おそらくこの3つの大体のサービスを使いこなせるスキルがあるだけでも仕事には困らないくらい、企業での需要もあると思います。最近のGoogle翻訳システムが大幅に精度を向上させたこともあり、日本語で最先端技術の開拓も可能になってきたので、これを機に大きく発達したCloud AI システムを勉強し始めるのもよいかと思います。
今日はIBM WatsonのConversationというAPIをご紹介したいと思います。
ちなみに、Watsonという単語には実態はなく、Watson,WatsonAPI,Bluemixあたりはすべて同じもの、つまり、”いろんな種類のシステムの集合体”を指すものと考えていただければよいと思います。
それでは、まず、watsonと検索しましょう。もしくは下記リンクへ飛んでください。
http://www.ibm.com/watson/
![watson](http://ritsuan.com/wp-content/uploads/2016/11/watson.jpg)
この画面に行くと思います。
この画面の右上の人の影をクリックして、Sign inします。
![watson2](http://ritsuan.com/wp-content/uploads/2016/11/watson2.jpg)
Sign inを選択すると、次に、idを入れるように言われるので、まだ、IBMidを取得していない方は、その画面の、”Create an IBMid”を選択し、アカウント作成を行ってください。
次からはアカウント作成が終わった前提で話を続けます。
idとパスワードを入力したら、下記画面になるので、APIsを選択してください。
![watson3](http://ritsuan.com/wp-content/uploads/2016/11/watson3.jpg)
以下のような画面になるので、Servicesを選択ののち、Languageの列にある、Conversationを選択してください。
![watson4](http://ritsuan.com/wp-content/uploads/2016/11/watson4.jpg)
![watson5](http://ritsuan.com/wp-content/uploads/2016/11/watson5.jpg)
![watson6](http://ritsuan.com/wp-content/uploads/2016/11/watson6.jpg)
このような画面になるので、スクロールして、右の方にあるView Demoをクリックしてください。
![watson7](http://ritsuan.com/wp-content/uploads/2016/11/watson7.jpg)
次のような、車の運転画面が下に出てくる画面になります。
![watson8](http://ritsuan.com/wp-content/uploads/2016/11/watson8.jpg)
この画面で、中央のnextまたは×を押すと、デモがスタートします。
![watson9](http://ritsuan.com/wp-content/uploads/2016/11/watson9.jpg)
ここでのwatsonは、対話型アシスタントシステムの体をなしています。
行きたい場所や、食べたいものを言うと、レストランや休憩所を提案してくれます。
英語対応なので、今回は英語で何か入力しましょう。
たとえば, I am hungry. と言ってみましょう。
![watson10](http://ritsuan.com/wp-content/uploads/2016/11/watson10.jpg)
I am hungry.と言ったらDo you have a specific cuisine in mind? と返ってきました。そして、カーナビの部分に、食べ物名と近場のどこで何が食べられるかの店舗地図が表示されました。
ではここで意地悪して、Japanese ramenが食べたいといってみましょう。
![watson11](http://ritsuan.com/wp-content/uploads/2016/11/watson11.jpg)
“It doesn’t look like there are any restaurants that serve Japanese around you. Try saying things like burgers or tacos.”
と返ってきました。この画面上の選択肢しかダメみたいですね。
Japanese foodが食べられない悲しみを言ってみましょう。I am sad.
![watson12](http://ritsuan.com/wp-content/uploads/2016/11/watson12.jpg)
“I see a few nearby restaurants serving tacos,burgers, seafood and pasta. You can select one of these.” と返ってきました。だめですね。意味をわかっていないようです。ちゃんと意味が分かっているのか確かめるために、”Do you understand what I am saying?”と聞いてみましょう。
![watson13](http://ritsuan.com/wp-content/uploads/2016/11/watson13.jpg)
“I’m trained to turn things on or off in the car dashboard,play music and find nearby amenities like restaurants, gas stations and restrooms.”
と返ってきました。彼はなんでもできるわけではなく、できることは、限られているようですね。
実は、このConversationと呼ばれるWatsonAPIは、このような対話型ボットとしては向いていないです。作ってみればわかりますが、このシステムで対話型ボットを作るのは、手作業が多すぎて、相当大変で、オススメできません。軽くさわってみた感じ、銀行での電話窓口や、お問い合わせフォームなど、それなりにどういう問い合わせが来るか想定しうるもので使うのに有効そうです。あまりに使う側の質問や要求にレパートリーがある場合は、別のシステムを使う必要があります。
ちなみに、このシステムを作るためには、
![watson7](http://ritsuan.com/wp-content/uploads/2016/11/watson7.jpg)
この画面まで戻っていただき、”Signup and use in Bluemix”を選択します。
この後でloginを求められるので、もう一度アカウントを作るのではなく、右上の青いloginの部分を選択し、Bluemixに入ってください。Watsonのアカウント=Bluemixのアカウントだと思ってもらってよいです。
![watson14](http://ritsuan.com/wp-content/uploads/2016/11/watson14.jpg)
このような画面になるので、Createを選択してください。
次に以下のような画面が出てきます。
![watson15](http://ritsuan.com/wp-content/uploads/2016/11/watson15.jpg)
ここで、左の中から、”サービス”の中の”Watson”を選択してください。
![watson16](http://ritsuan.com/wp-content/uploads/2016/11/watson16.jpg)
Watsonを選択すると、上のようにでてきます。ここでConversationを選択しましょう。
![watson17](http://ritsuan.com/wp-content/uploads/2016/11/watson17.jpg)
デフォルトでプランは無料になっているので、そのままで、右下の作成をクリックしましょう。すると次のように出てくるので、Launch tool を選択しましょう。
![watson18](http://ritsuan.com/wp-content/uploads/2016/11/watson18.jpg)
この次に、Create workspaceをします。createのボタンをおして、適当な名前、Tokyoなどを入れて、次へ進みましょう。その次のGet startedを押しましょう。
すると次のような画面になります。
![watson19](http://ritsuan.com/wp-content/uploads/2016/11/watson19.jpg)
上にIntentsとEntitiesとDialogがありますが、IntentsでTreeのノードを作成し、Entitiesで、何を同じ意味を持つ言葉とみなすか(たとえばHi!, Hello!を同じ挨拶と認識するなど)。そして、最後にDialogでどのような条件分岐でWatsonが応答するかを決めます。
今回は作りませんが、また次回、実際に条件分岐を作っていこうと思います。
鈴木瑞人
東京大学大学院新領域創成科学研究科 メディカル情報生命専攻 博士課程1年
一般社団法人Bizjapan
東京大学機械学習勉強会