ユーザーからスマートスピーカーやチャットボットを利用したいと求められた際に、バックエンドである対話システムの仕組みの全てを自前で作ろうとするのは非効率だ。既に、対話システムを開発するために便利なサービスやフレームワークが多数登場している。まずはこれらのフレームワークを有効に使って開発するとよい。

大きく2種類のフレームワークがある

 フレームワークは大きく「自然言語理解(意図推定)サービス」と「対話設計サービス」の2つに分けられる。

対話システムに利用できるフレームワークの種類
対話システムに利用できるフレームワークの種類
[画像のクリックで拡大表示]

 前者の自然言語理解(意図推定)サービスは、対話システムの構築に必要な部品、意図推定や固有表現抽出の機能をAPIとして提供するサービスである。主なサービスとしては、米Amazon Web Servicesの「Amazon Lex」、米IBMの「IBM Watson NLC」、米Microsoftの「LUIS (Language Understanding Intelligent Service)」、NTTドコモの「自然対話エンジン」などが挙げられる。

 これらは意図推定などの基本機能だけを提供するサービスのため、対話システム全体の設計が別途必要となる。システム構築に必要なミドルウエアなどの部品をサービスで提供するPaaSのような位置付けと考えると分かりやすいだろう。

 注意したいのは、抽出できる固有表現の種類はサービスによってばらつきがあること。仮にあらかじめ機械学習をさせずに使い始めると、抽出してほしい固有表現を思うように抽出できないことがある。このような場合、固有表現抽出の精度を高めるために大量の学習データを別途用意しなければならない。海外のフレームワークでは言語に依存しない実装方式のサービスが多く、日本語の固有表現抽出に最適化されたサービスはほぼ無いのが実情だ。

 自然言語理解(意図推定)サービスをPaaSとすれば、対話設計サービスはSaaSに近い存在である。意図推定、固有表現抽出に加えて、対話アプリケーションの設計支援など、対話システムを構築するための要素をひと通りそろえる。サービスの例としては、インターメディアプランニングの「Repl-AI」、hachidoriの「hachidori」や筆者が所属するTISの「DialogPlay」などが挙げられる。

 対話設計サービスでは、ユーザーがどんな発話をしたときにどんな処理を実行するのかを決めたり、対話シナリオを設計したりする作業を、全てWebブラウザー上で実施する。プログラミングなしで対話システムを構築できるわけだ。

対話シナリオを設計する画面
対話シナリオを設計する画面
TISの「DialogPlay」の例を示した
[画像のクリックで拡大表示]

 半面、設計できる内容は、利用するサービスの仕様による制限を受ける。UIとして利用できるチャットクライアントアプリの選択肢が限られる場合がある点も注意したい。