質問応答アプリケーションを作る!こんにちは、スマートソリューションセンターの「たーぼう」です。質問応答Androidアプリケーションを作成しましたのでご紹介していきたいと思います。Cloudのそれぞれのサービス説明については、割愛いたします。それぞれ、こちらのリンクから製品情報についてご覧ください。今回は、クレスコの採用情報に関する質問に対して、応答するアプリケーションを作成しました。APIサービスを作成し、Androidアプリケーションと組み合わせることで、実現することができました。Classifier(NLC)とDialogを使用しました。全体的なイメージはこんな感じです。Classifier(前編)の記事で語られていますので、参考にしてください。Dialogについては、あらかじめ定義した会話モデルに応じて回答を返してくれるサービスです。Cloudに、Dialogのデモサイトがありますので、そちらを利用してみるとイメージしやすいかもしれません。今回の特徴Androidアプリケーションと通信する為のサーバサイドのアプリケーション開発は行いません。データベースも利用しませんでした。よって、NLC、Dialogの各Watsonサービスを呼び出してその結果を判断して画面に表示するAndroidアプリケーションのみ、プログラミングをしました。”クレスコの採用情報である”という意図を分類し、分類した意図を基に予め定義した回答を答えるだけです。お気づきかと思いますが、Watsonサービスは以下のような使い方になります。Dialogにお任せお任せといっても、Watsonサービスを利用するにはトレーニングデータを作成して学習させる必要がありますので、サーバサイド側の作業が全く無くなるわけではありません。システムのフローAndroidアプリ、NLC、Dialogの各Watsonサービスを組み合わせたフローは次の通りです。NLCとDialogのトレーニングデータ作成したトレーニングデータ以下の通りです。採用の何に対する質問なのか?を分類するデータ(Career)<Dialogへのトレーニングデータ>会話シナリオIDに紐づいた回答を定義した対話モデルデータ各トレーニングデータの中身(一部)とデータ間の紐づき関係は次の通りです。できあがりこれまでWatsonサービスに与えるトレーニングデータを中心に記載してきましたがAndroidアプリケーションを、これらのWatsonサービスと繋ぎ合わせることで最終的に出来上がったアプリケーションは以下のものになりました。関係の無い質問に対して応答するなど、会話のバリエーションに幅を持たせるにはそのバリエーションに応じて、トレーニングさせるデータも膨らんでいくと思います。まとめ質問応答のシステムを作るにあたり、わざわざWatsonサービスと通信さないで実現することも可能でしょう。今回Watsonサービスを利用することで、今までであればプログラム側で条件分岐を組み合わせて行ってきたものが、Watsonに学習させることで対応できてしまうというところが、一つポイントになると感じています。機械学習のトレーニングデータの作成のコツについてはもっと勉強が必要ですね。勉強して、記事を書かせてもらいます。最後まで読んでいただいた方、感謝いたします。ありがとうございました。