4. テスト実行
さて、ヒントとフォーマッタの設定が完了したので動作の確認をしてみましょう。Interaction Consoleを表示させると、ダイアログ上に新しくFormat Usingという項目が表示され、そこに登録したフォーマッタの名前"html"が表示されます。複数のフォーマッタを登録した場合はここで切り替えてそれぞれの動作をテストすることができます。
まずは、次の操作候補が表示されるかを試します。エージェント・ネットワークをロードした直後の状態で、このエージェント・ネットワークが認識できない語彙、たとえば「こんにちは」と入力してみます。入力は理解できませんでしたが「関連性の高い情報・・・検索」と表示されこのシステムが「検索」という機能を持っているということがユーザーに通知されます。
続けて「検索」と入力するとこんどは「関連性の高い情報・・・検索 レストラン」と表示されます。これはCommand「検索」ではObject「レストラン」が使用できるということを表示しています。次に「レストラン」といれると、Field「エリア」に対して定義した必須値チェックのヒントメッセージが出力されます。
エリアを指定してくださいとのことなので「..赤坂」と入力します。必須値を満たしているので、サービスプロバイダでデータベース検索が実行され結果が出力されました。Display Property Fileで定義したように店名、エリア、ジャンル、星の順に一覧が出力されます。
Objectレストランに結びついているエリア以外のFieldを利用可能な検索条件としてヒント出力して欲しいところですが、残念ながら今回使用したフォーマッタ「com.dejima.core.io.HTMLPresentationFormatter」ではFieldに対する操作対象の提示ヒントを表示することができません。フォーマッタを通さないXML出力の場合はFieldに対する操作対象の提示ヒントが出力されます。このヒントを表示するにはカスタムフォーマッタの開発が必要となりますが、これについてはまた別の機会に解説をしたいと思います。
5. おわりに
Answers Anywhereの推論ヒントと出力フォーマッタでユーザーをナビゲートする機能を加えることで、自然言語入力のシステムでよく指摘される何を入力したらよいかわからないという課題を解決できることが理解していただけたのではないかと思います。
次回はAnswers Anywhereのデータ連携機能について解説をする予定です。この機能を使うと、今はテキストファイル中に固定値として持っているエリア名やジャンルなどのマスタ系のデータを、データベースと連携して動的に参照することができるようになります。お楽しみに。
推論ヒントの機能については各エージェントの発火状況の統計を記録しておき、それを推論の重みに使うようなことも検討中です。これにより現在は全てのユーザーに同じように出力されるヒントをパーソナライズして提示することができるようになります。この機能についてはAnswers Anywhereの将来のリリースで提供を予定しています。