以下に、本発明の一実施形態に係る情報提供システム1について、図面を参照して説明する。
図1は、入力に対して応答を行うことで知識データを提供する情報提供システム1を含むシステムの概要を示す図である。
ユーザ10は、ユーザ端末100(図1の上部参照)において実行されるWEBブラウザにより表示されている所定のWEBページの入力エリアに、(例えば、キーボードやタッチパネルを用いて)文字列を入力する。ここでユーザにより入力される文字列は、一般的には文章(入力文)の形態であり、例えば、そのWEBページに係るWEBサイトを提供している会社の製品に関する質問等を含み、自然言語によって表現される。以降、ユーザからの入力は便宜上、「入力文」と表現するが、文章の形態でなくてもよく、単語や文章の一部などを包含する、様々な入力文字列を意味する。
ユーザにより入力された文字列は、ユーザ端末100のWEBブラウザによりネットワーク700を介して情報提供システム1に提供される。ここで、ネットワーク700は、例えば、インターネットを含むネットワークである。
情報提供システム1は、ユーザ端末100から文字列を受信すると、この文字列に対応する応答となる文字列(一般的には、応答文)を決定し、それを、ネットワーク700を介してユーザ端末100に送信する。このように、ユーザ10が、文字列をWEBページの入力エリアに入力すると、これに対応した応答(文字列)がWEBページの応答表示エリアに表示される。例えば、ユーザ10が、商品に関する質問をWEBページの入力エリアに入力すると、その質問に対する回答がWEBページの応答表示エリアに表示される。
情報提供システム1は、情報提供サーバ200とサジェストサーバ400を含むように構成される。情報提供サーバ200は、知識データを含む入力応答管理DB300を備え、ユーザ端末100から受信した入力に対応する応答として適した内容の文字列を、この入力応答管理DB300を用いて決定し、応答表示エリア(ユーザ端末100で実行されるWEBブラウザにより表示されるWEBページの応答表示エリア)に当該応答の文字列を表示するよう、ユーザ端末100に応答データを送信する。情報提供サーバ200の機能、及び入力応答管理DB300の内容については、後で詳細に説明する。
また、サジェストサーバ400は、サジェストDB500を備え、ユーザ10がユーザ端末100において文字列を入力する際に、このサジェストDB500を参照して、これまでに様々なユーザ10が入力した文字列に基づいて、ユーザ10が入力する文字列を予測し、入力エリア(ユーザ端末100で実行されるWEBブラウザにより表示されるWEBページの入力エリア)の下側に文字列の候補を表示するよう、ユーザ端末100にデータを送信する。この他、指定された条件に基づいて、これまでにユーザ10から入力された文字列を選択し、WEBページに表示する。サジェストサーバ400の機能、及びサジェストDB500の内容については、後で詳細に説明する。
システム管理者20(20−1、20−2)は、システム管理端末600(図1の下部参照)を介して、情報提供システム1のメンテナンスとテストを行う。例えば、システム管理者20−1は、システム管理端末600−1において実行されるWEBブラウザにより表示されるメンテナンス用のWEBページで所定の操作を行うことにより、情報提供システム1に関するメンテナンス(知識の新規設定、追加設定、及び修正を含む)を行う。また、システム管理者20−2は、システム管理端末600−2において実行されるWEBブラウザにより表示されるテスト用のWEBページで所定の操作を行うことにより、システム管理者20−1により実施された知識の設定やその他のメンテナンスの結果、入力に対して適切な応答が行われるか否かをテストする(すなわち、あたかもユーザ10がユーザ端末100を用いて入力を行い、その入力に対する応答がユーザ端末100に表示される動作をシミュレートする)ことができる。
なお、図1では、メンテナンスをシステム管理者20−1が、テストをシステム管理者20−2がそれぞれのシステム管理端末(600−1、600−2)を用いて行うように表現しているが、これらの操作を、同じシステム管理者が同じシステム管理端末を用いて行うようにしてもよい。また、メンテナンスとテストの操作をさらに細分化するとともに、それらのそれぞれに部署や担当者を割り当て、より多くのシステム管理者によって当該操作を分担して行うようにすることもできる。なお、知識データをメンテナンスし、テストするシステム管理者20は、知識データを扱うスキルを有する知識設定者であることが望ましい。
ここで、情報提供システム1が不特定のユーザに利用可能なものとして提供される場合、ユーザ10としては、WEBサイトを提供する企業や組織(の商品やサービス等)に対して質問等を行う一般ユーザが想定され、ユーザ端末100は、通常、インターネット等に接続可能なユーザ10が所有するPC(パーソナルコンピュータ)等である。また、情報提供システム1を、限定的な範囲で利用されるシステム(例えば、企業内ナレッジ共有システム)として利用することもでき、この場合、ユーザ10は、情報提供システム1に対する正当なアクセス権限を有する特定のユーザとなる。
また、システム管理者20は、情報提供システム1で取り扱う知識データを管理する者であり、情報提供システム1が、企業や組織の商品やサービス等に関する質問を受け付けるシステムとして利用される場合は、通常、その企業や組織の担当者がシステム管理者となる。また、代理店や受託会社が、その企業や組織に代わってシステム管理者となることもある。
図1では、ユーザ10が、WEBサイトの入力エリアに、キーボード等で文字列を入力することで、質問等を情報提供システム1に提供する構成となっているが、情報提供システム1としては、どのような方法・ルートで文字列が入力されてきてもよい。例えば、ユーザ10が音声によって質問を発した場合に、この音声に対して音声認識処理を施して文字列に変換し、当該変換された文字列を情報提供システム1に提供することができる。また、印字された質問事項等をOCR(Optical Character Recognition)によって文字列に変換し、当該変換された文字列を情報提供システム1に提供することもできる。
なお、本実施形態の情報提供サーバ200は、ユーザ端末100やシステム管理端末600において実行されるWEBブラウザとhttp等のプロトコルによってデータ送受信を行い、当該WEBブラウザに所定のWEBページを表示させるように動作するWEBサーバの機能も有している。
また、情報提供サーバ200は、ここでは1つのコンピュータとして示されているが、複数のコンピュータによって同様の機能を分散して実行するよう構成することもできる。また、入力応答管理DB300についても、記憶しているデータを様々な単位で分割し、複数のサイトやコンピュータに分散させることができる。
図2は、本実施形態に係る情報提供システム1により実現される、ユーザ10との間の入力応答のやりとりの形態を例示した図である。
図2(A)に示された入力応答画面110は、ユーザ端末100で実行されるWEBブラウザに表示されたWEBページ(または、WEBページの一部)である。入力応答画面110は、独立した1つのウインドウページとして表示されてもよいし、WEBページの一部分として表示されてもよい。
入力応答画面110は、キャラクタ画像表示エリア111、応答表示エリア112、入力エリア113、送信ボタン114、ページ遷移ボタン115、及びインフォメーション表示エリア116を含んでいる。
キャラクタ画像表示エリア111は、キャラクタ画像を表示する部分であり、入力内容や応答内容等に応じて、キャラクタを変更することができる。例えば、応答内容に応じて、同じキャラクタでも表情を変えて表示するように制御することができる。応答表示エリア112には、情報提供システム1により出力される応答内容が表示される。
入力エリア113は、ユーザ10が質問等の文字列を入力する部分である。送信ボタン114は、ユーザ10が、入力エリア113に文字列を入力した後にこれをマウス等で押下する(本実施形態では、ボタンやリンクをマウス等により押下(クリック)するものとする。以下同じ)。送信ボタン114が押下されると、入力した文字列がhttpといったプロトコルにより、ネットワーク700を介して情報提供システム1に送信される。
ページ遷移ボタン115は、後述する応答時アクションにおいてページ遷移(ページを移動する/開く)が設定されている場合に表示され、このページ遷移ボタン115を押下することによって、設定されているWEBページに遷移する。
インフォメーション表示エリア116は、情報提供システム1により出力される応答内容に付加された追加情報を表示するエリアである。
図2(A)において、ユーザ10は、最初に、この入力応答画面110のWEBページにアクセスする。そうすると、情報提供システム1の情報提供サーバ200は、初期表示として、入力応答画面110の応答表示エリア112に、「いらっしゃいませ。」等の文字列を表示し、インフォメーション表示エリア116に、「商品の特徴は?」や「商品の料金は?」といった文字列をリンク表示するようHTMLデータをユーザ端末100に送信する。
ここで、「商品の特徴は?」や「商品の料金は?」は、情報提供システム1のサジェストサーバ400によって提供されたものである。これらの文字列は、過去に多くの入力があって、その入力に対する応答が成功した(ヒットした)もの(後述の「人気Q」)である。ユーザ10が、インフォメーション表示エリア116に表示された文字列(図2(A)の例では、「商品の特徴は?」、「商品の料金は?」のどちらか)をマウス等によって選択すると、選択された文字列が自動的に入力として情報提供システム1に送信され、その文字列の応答が、応答表示エリア112に表示されることになる。
図2(A)に示すような入力応答画面110が表示された後、図2(B)において、ユーザ10が、入力エリア113に、「どの商品がお薦めですか?」という質問を入力し、送信ボタン114を押下する(なお、以降、図2においては、入力応答画面110のエリアについて、説明に関連するもののみを表示する)。
そうすると、情報提供システム1の情報提供サーバ200は、「本日の売れ筋商品はこちらです。」という回答を、応答表示エリア112に表示する。
次に、図2(C)に示すように、ユーザ10が、入力エリア113に、「商品の到着はいつごろになりますか?」という質問を入力し、送信ボタン114を押下する。そうすると、情報提供システム1の情報提供サーバ200は、「お届けまでの日数ですが、商品詳細に記載してある「配送区分」によって異なります。以下から記載されている内容をお選び下さい。」という回答を、応答表示エリア112に表示する。さらに、インフォメーション表示エリア116に、「区分1」、「区分2」というリンク表示を行う。
ユーザ10は、インフォメーション表示エリア116に表示された文字列(図2(C)の例では、「区分1」、「区分2」のどちらか)を選択すると、選択された文字列が自動的に入力エリア113に入力され、その後、送信ボタン114を押下することによって、この文字列が入力として情報提供システム1に提供され、「区分1」や「区分2」に関する詳細な情報が、情報提供システム1からの応答として応答表示エリア112に表示されることになる。
このようにして、ユーザ10は、ユーザ端末100のWEBブラウザに表示される入力応答画面110を介して、情報提供システム1(の情報提供サーバ200)と「会話」をすることができ、必要な情報を取得するように方向付けることができる。
また、システム管理者20は、情報提供システム1の知識データを洗練させていくことにより、応答表示エリア112やインフォメーション表示エリア116に表示させる情報を好適に選択し、このような段階的な情報の提示によってユーザ10を所定のシナリオに沿って導き、ユーザ10が望む情報を取得できるようにする。
図3は、複数の知識データを用いた入力応答サービスが個別に提供される状況を例示した図である。
ここで、企業Aと企業Bがそれぞれ情報提供システム1による知識データの提供を行っているものとする。企業Aは、WEBサイトA−1において、商品A−1に関するQ&Aコーナーを設け、WEBサイトA−2において、サービスA−2に関するサポートコーナーを設けている。
ユーザ10が、WEBサイトA−1にアクセスして商品A−1に関するQ&AコーナーのWEBページを表示し、そこで質問等を入力して送信すると、httpリクエストは情報提供サーバ200に送信される。情報提供サーバ200は、入力した文字列に基づいて、入力応答管理DB300A−1等を用いて応答データを生成し、それを、ユーザ10のユーザ端末100に送信し、WEBページに応答内容を表示する。ここで、httpリクエストの宛先として<host−name1>が用いられ、商品A−1に関するQ&Aコーナーにおける質問であることは、<ServieID1>により識別される。
同様に、ユーザ10が、WEBサイトA−2にアクセスしてサービスA−2に関するサポートコーナーのWEBページを表示し、そこで質問等を入力して送信すると、httpリクエストは情報提供サーバ200に送信される。情報提供サーバ200は、入力した文字列に基づいて、入力応答管理DB300A−2等を用いて応答データを生成し、それを、ユーザ10のユーザ端末100に送信し、WEBページに応答内容を表示する。ここで、httpリクエストの宛先として<host−name1>が用いられ、サービスA−2に関するサポートコーナーにおける質問であることは、<ServieID2>により識別される。
さらに、企業Bは、WEBサイトB−1において、商品B−1に関するQ&Aコーナーを設けている。
ユーザ10が、WEBサイトB−1にアクセスして商品B−1に関するQ&AコーナーのWEBページを表示し、そこで質問等を入力して送信すると、httpリクエストは情報提供サーバ200に送信される。情報提供サーバ200は、入力した文字列に基づいて、入力応答管理DB300B−1等を用いて応答データを生成し、それを、ユーザ10のユーザ端末100に送信し、WEBページに応答内容を表示する。ここで、httpリクエストの宛先としてホストID<host−name1>が用いられ、商品B−1に関するQ&Aコーナーにおける質問であることは、サービスID<ServieID3>により識別される。
このように、図3の例では、2つの企業(A、B)の知識データを用いた入力応答サービスが、1つの情報提供サーバ200によって運用されており、WEBサイトによって(すなわち、質問の対象によって)異なる知識データ(入力応答管理DB)が用いられる。ユーザ10は、インターネットを検索して上記WEBサイトのそれぞれにアクセスし、そのWEBサイトで、質問等の入力を行えば、その入力に応じた応答が得られる。ユーザ10は、httpリクエストがどのホストに送信され、どの知識データを利用するのかを意識することはない。
例えば、ユーザ10−6が、WEBサイトA−2においてサービスA−2の質問を入力すると、その入力に関する回答は、入力応答管理DB300A−2を用いて求められ、一方、WEBサイトB−1において商品B−1の質問を入力すると、その入力に関する回答は、入力応答管理DB300B−1を用いて求められる。
なお、ここでは、1つの情報提供サーバ200が使用されているが、複数の情報提供サーバ200を用いるように構成することもできる。その場合は、WEBサイト毎に、対応するホストIDを切り換えるように設定する。また、異なるWEBサイトや、異なる商品・サービスに関する質問に対し、共通のサービスIDを設定することによって共通の入力応答管理DB300を用いて応答するようにすることもできる。
図3の例では、WEBサイトA−1、WEBサイトA−2、入力応答管理DB300A−1(サジェストDB500A−1)、及び入力応答管理DB300A−2(サジェストDB500A−2)は、企業Aの管理下にあり、メンテナンスやテストは、企業Aのシステム管理者20−Aが担当する。他方、WEBサイトB−1、及び入力応答管理DB300B−1(サジェストDB500B−1)は、企業Bの管理下にあり、メンテナンスやテストは、企業Bのシステム管理者20−Bが担当する。情報提供サーバ200は、WEBサーバ機能や人工知能エンジンを備えており、これらの内容や設定を管理するのは、当該システムの開発・提供を行う企業である。
次に、図4ないし図6を参照して、ユーザ端末100、及び情報提供システム1の各装置の構成について説明する。図4は、ユーザ端末100の機能ブロック図である。
図4に示すユーザ端末100は、入力制御部101、WEBブラウザ102、及びネットワークI/F(インタフェース)部103を備える。
入力制御部101は、ユーザ端末100に接続されたマウス、キーボード、タッチパネル等の入力装置をユーザ10が操作した場合に、当該操作による信号を入力情報として受信する。WEBブラウザ102は、指定されたWEBページを表示し、入力制御部101により受信された入力情報を、WEBページの入力エリアに送信する。また、ユーザ10の操作(送信ボタンの押下)に応じて、httpリクエストを、ネットワークI/F部103を介してWEBサーバに送信する。
さらに、ネットワークI/F部103を介して、情報提供システム1の情報提供サーバ200等から、応答データを含んだHTMLデータ等を受信すると、それらのデータに基づいてWEBページを表示する(WEBブラウザの表示を更新する)。
ネットワークI/F部103は、ネットワーク700に接続し、情報提供システム1の情報提供サーバ200等との間のデータ送受信を制御する。
図5は、情報提供システム1の情報提供サーバ200の機能ブロック図である。
図5に示す情報提供サーバ200は、入力応答制御部210、知識データ管理部220、設定制御部230、ログ管理部240、WEBアクセス制御部250、及びネットワークI/F(インタフェース)部260を備える。
入力応答制御部210はさらに、入力受信部211、応答内容決定部212、及び応答データ生成部213を含み、知識データ管理部220はさらに、知識設定制御部221、知識メンテナンス制御部222、及びテスト制御部223を含む。
また、情報提供サーバ200は、入力応答管理DB300を備える。入力応答管理DB300は、知識データ310、テスト用データ320、ログデータ330、設定データ340、辞書データ350、HTMLデータ360、及びイメージデータ370を含む。
入力応答制御部210の入力受信部211は、ユーザ10によってユーザ端末100に入力された文字列をネットワーク700、及びネットワークI/F部260を介して、例えば、httpといったプロトコルにより受信する。
入力応答制御部210の応答内容決定部212は、入力受信部211で受信した文字列に基づいて、入力応答管理DB300の知識データ310、辞書データ350等を参照し、対応する応答内容を決定する。
入力応答制御部210の応答データ生成部213は、応答内容決定部212により決定された応答内容を、ユーザ端末100のWEBブラウザで表示されたWEBページに表示するよう応答データを生成し、WEBアクセス制御部250、ネットワークI/F部260、及びネットワーク700を介してユーザ端末100に送信する。
知識データ管理部220の知識設定制御部221は、システム管理者の操作に応じて、知識データの設定を行う。知識データは、基本的には、ユーザによって入力される蓋然性の高い文字列(入力文)と、これに対応する応答の文字列をセットで指定したデータである。設定された知識データは、入力応答管理DB300の知識データ310に格納される。
知識データ管理部220の知識メンテナンス制御部222は、システム管理者の操作に応じて、知識データのメンテナンスを行う。当該メンテナンスでは、入力応答管理DB300のログデータ330を用いて、効果的かつ容易に知識データの修正や追加が行われる。
知識データ管理部220のテスト制御部223は、システム管理者が知識データのメンテナンスを行った後に、メンテナンス後の知識データによって、入力に対して適切な応答が出力されるか否かを、ユーザ端末100での動作をシミュレーションすることによりテストする。当該テストにおける知識データは、入力応答管理DB300のテスト用データ320に格納され、その状態でテストが行われる。知識データに問題がなければ、コンパイルが行われて知識データ310が再作成され、公開される。
設定制御部230は、システム管理者の操作に応じて、図2に示した入力応答画面110の設定や、特定時における応答内容の設定を行う。
ログ管理部240は、ユーザ10のユーザ端末100への入力に対して情報提供サーバ200がどのように応答したかをログとして記録するとともに、システム管理者の操作に応じて、ログを解析して所定のレポートをシステム管理端末600に表示する。ログは、入力応答管理DB300のログデータ330に記憶される。
WEBアクセス制御部250は、ユーザ10の操作に応じてユーザ端末100のWEBブラウザからhttpリクエストが送信されてきた場合に、これを受信・解析して、これに対応するデータを用意し、httpレスポンスとしてユーザ端末100のWEBブラウザに返信する。httpレスポンスとして返信されるデータには、入力応答制御部210の応答データ生成部213で生成された応答データが含まれるほか、入力応答管理DB300のHTMLデータ360、イメージデータ370のデータが含まれる。HTMLデータ360は、WEBページを表示するためのHTMLデータであり、イメージデータ370は、WEBページで表示される画像データや動画データである。
ネットワークI/F(インタフェース)部260は、ネットワーク700に接続し、ユーザ端末100等との間のデータ送受信を制御する。
図6は、情報提供システム1のサジェストサーバ400の機能ブロック図である。
図6に示すサジェストサーバ400は、入力受信部410、サジェスト制御部420、WEBアクセス制御部430、及びネットワークI/F(インタフェース)部440を備える。
サジェスト制御部420はさらに、入力文サジェスト部421、人気Q検索制御部422、及び自動候補Q提供部423を含む。
また、サジェストサーバ400は、サジェストDB500を備える。サジェストDB500は、サジェスト対象データ510、及びヒット数管理データ520を含む。
入力受信部410は、ユーザ10によってユーザ端末100に入力された文字列をネットワーク700、及びネットワークI/F部260を介して、例えば、httpといったプロトコルにより受信する。
サジェスト制御部420の入力文サジェスト部421は、ユーザ10がユーザ端末100に文字を入力するたびに、入力受信部410によってその文字を取得する。その後、その文字を含む入力文のリストを、サジェストDB500のサジェスト対象データ510から取得し、WEBアクセス制御部430、ネットワークI/F部440、及びネットワーク700を介してユーザ端末100に送信する。サジェスト対象データ510には、入力応答管理DB300の知識データ310に含まれる入力文のうち、サジェスト対象として指定された入力文が含まれている。
これによって、ユーザ端末100では、入力エリアにユーザが文字を入力するたびに、その文字を含む入力文が入力エリアの下側に一覧表示される。一覧表示される入力文は、様々なユーザ10が過去に入力した入力文やシステム管理者20が設定した入力文である。
サジェスト制御部420の人気Q検索制御部422は、過去にヒットが多かった入力文のリストを、サジェストDB500のサジェスト対象データ510、ヒット数管理データ520を参照して取得する。ヒット数管理データ520は、サジェスト対象データ510に含まれる入力文がそれぞれ何回ヒットしたか(ユーザ10からの入力に対する応答として採用されたか)を記憶する。
人気Q検索制御部422は、例えば、情報提供サーバ200の応答内容決定部212によって応答内容を決定する際に呼び出され、人気Q検索制御部422により取得された入力文のリストが応答データの一部として挿入される。
サジェスト制御部420の自動候補Q提供部423は、ユーザ10から入力された入力文と、意味的に近い入力文のリストを、サジェストDB500のサジェスト対象データ510を参照して取得する。
自動候補Q提供部423は、例えば、情報提供サーバ200の応答内容決定部212によって応答内容を決定する際に呼び出され、自動候補Q提供部423により取得された入力文のリストが応答データの一部として挿入される。
WEBアクセス制御部430は、ユーザ10の操作に応じてユーザ端末100のWEBブラウザからhttpリクエストが送信されてきた場合に、これを受信・解析して、これに対応するデータを用意し、httpレスポンスとしてユーザ端末100のWEBブラウザに返信する。httpレスポンスとして返信されるデータには、入力文サジェスト部421により取得される入力文のリストが含まれる。
ネットワークI/F(インタフェース)部440は、ネットワーク700に接続し、ユーザ端末100等との間のデータ送受信を制御する。
図7は、ユーザ端末100と情報提供サーバ200との間のAPIについて示す図である。
ユーザ端末100では、ユーザ10から入力が行われると、これが入力制御部101を経由してWEBブラウザ102に提供され、そこでユーザ10の入力を含むデータをURI(Uniform Resource Identifier)が生成され、httpにより送出される。
URIには、図7に示すように、「http://」の後に<host−name>が記述される。これは、図3に示すように、会話エンジンを備えた情報提供サーバ200のホスト名またはIPアドレスである。その後に続く<ServiceID>は、情報提供システム1が提供するサービスを識別するためのIDであり、例えば、図3に示すように、入力応答の対象となる商品やサービスを識別する(すなわち、利用する知識データを選択する)ためのIDである。
また、サジェストサーバ400で提供されるサジェスト機能を利用する場合は、サジェストサーバ400に対応する<host−name>を指定するとともに、サジェスト機能(入力文サジェスト部421が提供する機能、人気Q検索制御部422が提供する機能、自動候補Q提供部423が提供する機能のいずれか)に対応する<ServiceID>を指定する。
<ServiceID>の後には、「?」で接続されたリクエストパラメータが記述される。個々のリクエストパラメータは、「&」で区切られている。ここで、例えば、「format=」の後には、戻り値のフォーマットを指定する。「json」と指定すると、jsonフォーマットになり、「xml」と指定すると、xmlフォーマットになる。
「charset=」の後には、戻り値のエンコードのフォーマットを指定する。例えば、「UTF−8」、「EUC−JP」、「Shift−JIS」といった指定が可能である。「talk_type=」の後には、入力文を情報提供システム1に送信する際の入力文タイプを指定する。例えば、通常入力には「0」を、スタート時には「3」を指定する。また、「talk=」の後には、ユーザ10により入力エリア113に入力された入力文そのものを指定する。
また、「talk_option=」の後には、応答条件の判定で用いられる所定の情報を指定する。例えば、使用しているユーザ端末100の機器に応じて、「device=D0001」や「device=E0001」などである。応答条件の判定で用いるキーワードを一致させれば、どのようなキーワードをどのような用途に用いてもよい。入力文になんらかのメモを付与する場合には、「memo=」の後に、文字列を指定する。このような文字列を使用することによって、例えば、ログデータに、必要な情報を記憶しておくようにすることができる。
また、通常、セッションはユーザ端末100のクッキー情報を利用して保持されるが、クッキーを使用しないよう設定された機器や、クッキーによってセッションを管理しない携帯電話等の場合、URIにセッションの情報を含めるように構成することもできる。
httpリクエストにより、URIに指定された<host−name>にしたがって、URIに含まれるデータが情報提供サーバ200に送信され、入力受信部211はこのデータを受信する。次に、応答内容決定部212が、当該データに基づいて応答内容を決定する。決定された応答内容は、応答データ生成部213によってxmlデータとして生成される(戻り値の指定において「format=xml」の指定がされている場合)。
図7に示すxmlデータにおいては、タグ<value>によって応答データが定義されている。
このxmlデータは、情報提供サーバ200のWEBアクセス制御部250によって、httpレスポンスとしてユーザ端末100のWEBブラウザ102に送信され、WEBブラウザ102において、応答データが表示される。例えば、図2に示すように、入力応答画面110の応答表示エリア112に、タグ<value>によって定義された応答データが挿入され、表示される。
なお、図2に示す入力応答画面110のインフォメーション表示エリア116に情報を表示する場合は、インフォメーション表示エリア116に表示する情報を所定のタグで定義しWEBブラウザ102に送信した後、WEBブラウザ102の方で、このタグの内容を解釈し、インフォメーション表示エリア116に表示するよう制御する。同様に、キャラクタ表示エリアのキャラクタを変更する場合も、所定のタグによって、キャラクタ表示に用いられるイメージデータ等を定義する。
図7には、情報提供サーバ200のホスト名の指定、情報提供システム1が提供するサービスの指定、リクエストパラメータの指定をURIに含めて、ユーザ端末100からのリクエストを情報提供サーバ200に送信する構成が記載されているが、このような構成は一例にすぎない。このほかに、JavaScript(登録商標)を用いるなど、様々な方法を用いて同様の処理を行うことが可能である。
図8は、本実施形態に係る情報提供システム1で利用される入力応答管理DB300の知識データ310の内容を例示する図である。
ユーザ10がユーザ端末100を介して入力する文字列に対して有効な応答を行うために、情報提供システム1の情報提供サーバ200は、知識データ310に蓄積されているデータを用いる。知識データ310には、複数のユニットが含まれる(図8では、ユニット1のみが詳細に記載されている)。各ユニットには、少なくとも1つの比較対象文字列と、少なくとも1つの応答文字列が含まれ、この比較対象文字列と応答文字列は互いに関連づけられているセットである。
比較対象文字列とは、ユーザ10がユーザ端末100から入力してくる入力文と比較される文字列であり、図8には、比較対象文字列Qが3つ(Q1−1、Q1−2、Q1−3)示されている。ここで、「Q」は、質問(Question)の頭文字に対応するように見えるが、これは便宜上の表現であって、比較対象文字列が質問文(疑問文)の形式である必要はない。例えば、単なる単語、肯定文、否定文、挨拶文、その他の様々な形式の文字列であってもよい。
また、比較対象文字列が複数ある場合、1つの比較対象文字列が代表の比較対象文字列(代表Q)となり、残りの比較対象文字列が同義文となる。図8では、Q1−1が代表Qであり、Q1−2、Q1−3が、Q1−1の同義文となる。すなわち、1つのユニットには、同じ意味(同義といえる程度の、きわめて近い意味)の比較対象文がまとめられていることになる。
応答文字列とは、比較対象文字列に(その応答として)対応づけられた文字列であり、図8には、応答文字列Aが2つ(A1−1、A1−2)示されている。ここで、「A」は、答え(Answer)の頭文字に対応するように見えるが、これは便宜上の表現であって、応答文字列が、必ずしも、何かの質問に答えるような形式の文でなくてもよい。単なる単語、疑問文、肯定文、否定文、挨拶文、その他の様々な形式の文字列であってもよい。
比較対象文字列と応答文字列はそれぞれ、1または複数存在し、関連づけられるので、それらの関係は、1対1、1対n、n対1、または、n対nの関係となりうる。
さらに、それぞれの応答文字列に関連づけられる属性(Aの属性)が存在する。Aの属性は、それぞれの応答文字列の属性を表すものであり、図8では、Aの属性として、応答条件が設定されている。応答条件は、どのような条件の場合に、対応する応答文字列が応答として適切かを示すものであり、応答文字列が複数ない場合、応答は一意に決定されるため、必要ない。
比較対象文字列と、これに対応する応答文字列とのセット、及び各応答文字列の属性をまとめたものを「QA」とすると、これに対する属性(QAの属性)が存在する。QAの属性は、例えば、応答時挙動指定情報(B1)と対象有無指定情報(F1)を含む情報により表される。応答時挙動指定情報は、ユーザ10の入力文と比較対象文字列の意味が最も近いものと判断された(ヒットした)場合に、ユーザ10のユーザ端末100に対して、なんらかの挙動(アクション)を設定するものである。対象有無指定情報は、対応する比較対象文字列Qをサジェストの対象とするか否かや、このQAに関するログを取得するか否か等を規定する。また、上述したQAの属性は、比較対象文字列(同義文がある場合は、代表Qと同義文を含むひとまとまりの比較対象文字列)に対応付けられるものであると言うこともできる。
なお、図8では、知識データ310を一体化したデータとして管理するように示したが、少なくとも一部のデータを、その関連性を維持したまま、別のデータとして管理することもできる。例えば、QAを第1のデータとしてまとめて記憶し、それぞれのQAの識別子とともにQAの属性を第2のデータとしてまとめて記憶することができる。
図9は、知識データ310を用いて、入力文に対する応答がどのように決定されるかについて概略的に示した図である。ただし、ここでは、知識データ310内の各ユニットに関し、図8で説明したQAの属性(応答時挙動指定情報と対象有無指定情報)については、表示を省略する。
最初に、図9(A)のケースについて説明する。知識データ310としてユニット1(ユニット1は、図8に示したユニット1と同じ)が与えられている場合に、ユーザ10によって入力文1、入力文2が入力され、入力文1についてQ1−1が最も意味の近い文字列としてヒットし、入力文2についてQ1−3が最も意味の近い文字列としてヒットしたとする(他のユニットは存在しないものとする)。このとき、入力文1に対する応答としてA1−2が表示され、入力文2に対する応答としてもA1−2が表示される。これは、Aの属性である応答条件に関して、入力文1の場合も、入力文2の場合も、A1−2の応答条件を満たしていたことによる。
次に、図9(B)のケースについて説明する。知識データ310としてユニット2(ユニット2は、1つの比較対象文字列(Q2−1)に対して、2つの応答文字列(A2−1、A2−2)が対応している)が与えられている場合に、ユーザ10によって入力文3、入力文4が入力され、入力文3についてQ2−1が最も意味の近い文字列としてヒットし、入力文4についてもQ2−1が最も意味の近い文字列としてヒットしたとする(他のユニットは存在しないものとする)。このとき、入力文3に対する応答としてA2−1が表示され、入力文4に対する応答としてA2−2が表示される。これは、Aの属性である応答条件に関して、入力文3の場合は、A2−1の応答条件を満たし、入力文4の場合は、A2−2の応答条件を満たしていたことによる。
このように、複数の入力文が、同じ比較対象文字列にヒットした場合であっても、応答条件の設定により、それぞれ異なる応答内容が表示される場合がある。
次に、図9(C)のケースについて説明する。知識データ310としてユニット3(ユニット3は、3つの比較対象文字列(Q3−1、Q3−2、Q3−3)に対して、1つの応答文字列(A3)が対応している)が与えられている場合に、ユーザ10によって入力文5が入力され、入力文5についてQ3−2が最も意味の近い文字列としてヒットしたとする(他のユニットは存在しないものとする)。このとき、入力文5に対する応答としてA3が表示される。
図9(D)は最もシンプルなケースである。知識データ310としてユニット4(ユニット4は、1つの比較対象文字列(Q4)に対して、1つの応答文字列(A4)が対応している)が与えられている場合に、ユーザ10によって入力文6が入力され、入力文6についてQ4が最も意味の近い文字列としてヒットしたとする(他のユニットは存在しないものとする)。このとき、入力文6に対する応答としてA4が表示される。
図10は、知識データ310の複数のユニットに8つのユニットが存在すると仮定した場合に、どのようにして応答内容が決定されるかを概略的に示す図である。
なお、この例では、7つのユニットの比較対象文字列のそれぞれに、1つの応答文字列が対応づけられている。また、比較対象文字列にQ1〜Q7の文字が含まれているが、これらは参照のための符号である。同様に、応答文字列にも、便宜上A1〜A7の符号が含まれている。
図10の例では、ユーザ10から入力文として「音が聞こえない」という文が入力されている。情報提供システム1の情報提供サーバ200は、入力受信部211でこれを受信すると、応答内容決定部212において、受信した入力文と、知識データ310に記憶される7つの比較対象文字列(Q1〜Q7)のそれぞれとを比較し、両者の意味の近さを判定する。
ここで、意味の近さとは、文字列や文章間における類似度を表しており、例えば、形態素解析やベクトル空間法を含む様々な既知の方法を用いて2つの文章等の意味的な距離をスコアによって表してきた。本実施形態の情報提供システム1では、このような意味の近さを判定するために、様々な方法を用いることができる。
上記のように、意味の近さを判定した結果、7つの比較対象文字列(Q1〜Q7)について、スコアが決定される。スコアは、例えば、入力文との意味が近いほど高い値が与えられるようになっている。このスコアに応じて、複数のヒットレベルのグループに分類される。例えば、スコアが所定の値の範囲にある場合に、「ヒット(高)」として判定し、それより低いスコアの範囲である場合に「ヒット(低)」、さらに、それより低いスコアの範囲である場合に「無ヒット」と判定される。また、部分ヒットQにヒットした場合には「部分ヒット」に分類され、NGワードを含むものは、スコアに関係なく、「NG」のグループに分類される。
図10では、意味の近さが判定された結果、Q1とQ4については、「ヒット(低)」と分類され、Q2、Q3については、Q1、Q4よりスコアの高い「ヒット(高)」と分類され、Q5〜Q7については、Q1、Q4よりスコアが低く、「無ヒット」として分類される。
そして、このなかで最もスコアの高い(すなわち、入力文に対して最も意味が近い)Q2が最終的に「ヒットした」と判定され、このQ2に対応づけられたA2が応答内容として選択される。すなわち、入力文「音が聞こえない」と比較対象文字列「Q2:音が聞こえないことがある」とが意味として最も近いと判定され、Q2に対応づけられている応答文字列「A2:販売店に相談して下さい」が応答内容として選択される。
Q1〜Q7の比較対象文字列がすべて「無ヒット」と判定された場合、応答内容決定部212は、あらかじめ設定してある、無ヒット時の応答内容が選択される。
この例では、1つの入力文が7つの比較対象文字列と比較されるだけであったが、実際の情報提供システム1では、知識データ310に含まれる数千または数万といったオーダーの比較文字列と比較が行われうる。
図11は、応答内容決定部212により実施される応答内容決定処理を示すフローチャートである。
応答内容決定部212は、入力受信部211からユーザ10により入力された入力文を受け取ると、最初に、ステップS11において、知識データ310から比較対象文字列(Q)を1つ取得する。なお、この例では、受け取った入力文を、知識データ310に記憶されている比較対象文字列のすべてと比較するようにしているが、事前処理や、各比較対象文字列に関係づけられた分類、インデックス、その他の指標等により、処理対象となる比較対象文字列を事前に絞り込むこともできる。
次に、応答内容決定部212は、ステップS12において、入力文と、取得した比較対象文字列(Q)との間の意味の近さを表すスコアを計算する。その後、ステップS13において、計算されたスコアが所定の値以上であるか判定する。
スコアが所定の値以上である場合(ステップS13のYES)、当該スコアとその比較対象文字列(Q)を対応づけて、候補リストに記憶する(ステップS14)。スコアが所定の値以上でない場合(ステップS13のNO)、なにもせずにステップS15に進む。
ステップS15において、応答内容決定部212は、知識データ310に残りの比較対象文字列(Q)があるか否かを判定し、ある場合は(ステップS15のYES)、ステップS11に戻って、ステップS11〜ステップS14の処理を繰り返し、ない場合は(ステップS15のNO)、ステップS16に進む。
ステップS16において、応答内容決定部212は、候補リストに比較対象文字列(Q)があるか否かを判定し、候補リストに比較対象文字列(Q)がある場合(ステップS16のYES)、候補リストのなかで最もスコアの高い(すなわち、入力文と最も意味が近いと判定された)比較対象文字列(Q)を判定し、この比較対象文字列(Q)に対応する応答文字列(A)を、知識データ310から取得し、これを応答内容として決定する(ステップS17)。
なお、この例では、単純な例を用いて説明したが、応答文字列(A)が複数あって、Aの属性として応答条件が設定されている場合は、その応答条件を満たしたAを応答内容として決定することになる。また、QAの属性として、応答時挙動指定情報や対象有無指定情報等が設定されている場合は、これらも(必要に応じて)応答内容に含めるようにすることができる。
候補リストに比較対象文字列(Q)がない場合(ステップS16のNO)、無ヒット時の設定で指定された発話内容から1つを選択し、これを応答内容として決定する(ステップS18)。
図12は、情報提供システム1のテスト、メンテナンス、運用のサイクルを概念的に示す図である。
図12において、情報提供システム1のシステムを開発・提供する者(システム提供者)が、最初に、情報提供サーバ200やサジェストサーバ400を含むサーバのサーバ環境等を設定したうえで提供する(ステップS31)。
次に、情報提供システム1を利用してユーザ10に何らかの知識を提供しようとする企業や組織等(システム管理者20)は、最初に、知識の作成を行って、知識データ310に複数のユニットを構築する(ステップS32)。その後、システム管理者20は、作成された知識データ310を用いて、テストを行う(ステップS33)。このテストは、ユーザ10がユーザ端末100を用いて、あたかも実際に、情報提供システム1との間で入力応答を行うように、システム管理者自身がシミュレーションを行うものである。
テストの結果、所定の入力に対して想定した応答が出力されることが検証できると、システム管理者20は、知識データ310を公開し、実際にユーザ10が利用できるようにする(ステップS34)。
知識データ310が公開されると、実際の運用が開始され、ユーザ10によって、情報提供システム1を用いた入力応答(ユーザ10の入力に対して、情報提供システム1が応答を行うといった会話)が行われる(ステップS35)。また、このように運用がされている間、入力応答の内容はログに記憶される(ステップS36)。
運用後、所定の期間が経過した後で、システム管理者20は、再び知識の作成を行う(ステップS37)。ここでの知識の作成は、ステップS32における、導入時の知識の作成とは異なり、実際の運用結果を受けて、入力応答をより適切なものとするためのメンテナンスの意味合いを含んでいる。したがって、今回の知識の作成では、ステップS36により収集されたログの情報が利用される。
知識の作成を行って、知識データ310にあるユニットの修正や、新たなユニットの追加を行った後、システム管理者20は、修正された知識データ310を用いて、テストを行う(ステップS38)。このテストはステップS33のテストと同様に、ユーザ10がユーザ端末100を用いて、あたかも実際に、情報提供システム1との間で入力応答を行うように、システム管理者20自身がシミュレーションを行うものである。
テストの結果、所定の入力に対して想定した応答が出力されることが検証できると、システム管理者20は、知識データ310を公開し、実際にユーザ10が利用できるようにする(ステップS39)。その後、所定期間経過後、または所定のタイミングで、再度、ステップS37〜ステップS39のメンテナンスが行われ、以降、このサイクルが繰り返される。
次に、図13を参照して、導入・メンテナンスフェーズと運用フェーズにおける知識データ310等の取り扱いについて説明する。
図13は、導入・メンテナンスフェーズと運用フェーズにおける処理を概念的に表した図である。
図13の上段は、導入・メンテナンスフェーズにおける情報提供システム1に関連した構成を示している。システム管理者20は、システム管理端末600を用いて情報提供システム1の情報提供サーバ200にアクセスし、知識の設定(導入時・メンテナンス時)とテストを行う。知識の設定については、通常、知識設定者といった、特定の者が行う。
メンテナンス時の知識の作成については、上述したように、ログデータ330が用いられる。導入時、及びメンテナンス時に行われる知識の作成により、知識が更新され、それらがテスト用データ320に記憶される。テスト用データ320は、例えば、比較対象文字列と応答文字列のセットを含むユニットを、テキスト形式で記憶する。
導入時における知識の作成、またはメンテナンス時における知識の作成が終わると、テスト用データ320を用いてテストが行われ、テスト結果が良好であれば、システム管理者20は、システム管理端末600を用いて、知識の公開を行う(図13の中段参照)。システム管理端末600において公開の指示があると、情報提供サーバ200が、テスト用データ320をコンパイルして知識データ310を作成し、ユーザ10が一般的に利用できるようにアップロード(例えば、インターネット環境(本番環境)にアップロード)する。このとき、知識データ310は、変更分だけが部分的に更新されマージされるようにしてもよいし、すべてを置き換えるように更新されてもよい。
また、知識の公開は、タイマー等を用いて所定の時間に自動的に行うようにしてもよい。所定の時間になると、自動的にテスト用データ320を用いたコンパイルが行われて新たな知識データ310が生成され、その知識データ310をインターネット環境等にアップロードする。
図13の下段は、ユーザ10が実際に情報提供システム1を利用する運用フェーズにおける情報提供システム1に関連した構成を示している。
ユーザ10は、ユーザ端末100を介して、情報提供サーバ200にアクセスし、入力応答による会話を行う。このとき、情報提供システム1が提供する応答内容には、更新された知識データ310が利用される。また、ユーザ10と情報提供システム1の間で入力応答が行われる際、上述のように、入力応答に関する情報が、ログデータ330に記憶される。
また、運用フェーズにおいては、知識データ310が利用可能な時間を指定することができ、指定時間外の場合に、ユーザ10はその知識データ310に基づく応答の表示を受けられない。また、複数のバージョンの知識データ310を、利用時間帯ごとに使い分けたり、統合して利用したりするよう制御することもできる。
次に、図14を参照して、より具体的な情報提供システム1の機能について説明する。これらの機能は、システム管理者20や代理店等がシステム管理端末600において利用可能な機能である。また、これらの設定やテスト等は、サービスを提供する企業や組織毎、またはその企業・組織内のロボット毎(QAサービス毎)に行うことが可能である。
図14に示すように、情報提供システム1は主たる5つの機能、UI設定、知識設定、テスト、知識メンテナンス、及びレポートを備える。
UI設定は、図2に示したようなユーザーインタエース画面(入力応答画面110)に関する設定を行う機能である。入力応答画面110は、PC(パーソナルコンピュータ)で使用する場合は、サービスを提供するWEBサイトに埋め込んで利用するページ常駐型と、「開く」ボタン等でポップアップさせて利用する別ウインドウ型があり、スマートフォンやタブレットで使用する場合は、その画面サイズに自動的に調整されるようになっている。
システム管理者20により設定可能なUI設定としては、例えば、全体サイズ(PCで使用する場合のみ)、全体カラー、キャラクタ画像表示エリア111に表示するキャラクタ画像、応答表示エリア112のカラー(枠、背景、文字)、入力エリア113のカラー(枠、背景、文字)、送信ボタンのカラー(枠、背景、文字)、及びインフォメーション表示エリア116のカラー(枠、背景、文字)等がある。この他、ロゴ表示エリアやコピーライト表示エリアを設けることもできる。
知識設定はさらに、QA設定、特定時発話設定、マスター管理、ユーザ辞書設定、及びNGワード設定を備える。QA設定は、例えば、後述する図15のQA設定画面800等により実施され、より具体的には、QA表示/検索、QA新規追加、部分ヒットQA表示、部分ヒットQA新規追加の各機能を含む。なお「部分ヒットQA」は、部分ヒットQとA(応答文字列)のセットであり、部分ヒットQとして定義されたQは、入力文がそのQのなかの自立語(単語のうち、それ単体で意味を持つもの。主に名詞、動詞、形容詞など)を含んでいればヒットと判定されるQである。
特定時発話設定は、例えば、後述する図27の特定時発話設定画面860等により実施され、より具体的には、無ヒット時発話設定、空入力時発話設定、スタート時発話設定、NGワード入力時発話設定の各機能を含む。
マスター管理は、応答時アクションの設定や応答条件のうち、事前に登録しておいて使い回すことができるデータ(マスターデータ)の作成・編集、及び閲覧が可能な機能である。データとしては、例えば、応答時アクションで指定するデータ(具体的には、「キャラクタ画像を切り換える」で使用するキャラクタ画像、「ページを移動する/開く」で使用するWEBページのURL、「動画や画像を表示する」で使用する動画や画像、「インフォメーション表示エリアに情報を表示する」で使用する関連テキストやAPI)である。
ユーザ辞書設定は、ユーザ辞書に単語の登録等を行う。ユーザ辞書には、ある単語の同義語や未知後の登録を行う。また、内部辞書で「関係がある」とされた単語の関係を削除する。
NGワード設定は、入力文として適切でない言葉を判定するために、問題となるワードを登録する。前もって登録されているワードもある。問題となるワードは、大きく「卑猥」、「罵倒」、「差別」に分類される。
テストは、例えば、後述する図29のテスト画面880等により実施され、より具体的には、QAテストと内部辞書テストの各機能を含む。
知識メンテナンスは、例えば、後述する図30の知識メンテナンス画面890等により実施される。
レポートは、ログデータ等を取得・解析して、サマリー、接続数、入力発話数、入力文ランキング等をレポートする。
次に、図15〜図26を参照して、具体的なQA設定について説明する。QA設定は、図8に示すような構成の知識データ310の各ユニットを作成することで、知識の作成を行うことである。これ以降、知識データ310に記憶されている比較対象文字列(Q)は「Q」、応答文字列(A)は「A」、比較対象文字列(Q)と応答文字列(A)のセットは「QA」と、適宜省略して表記する。なお、比較対象文字列は、「Q」と表記されるが、質問文であるとは限らないこと、及び、応答文字列は、「A」と表示されるが、回答文であるとは限らないことは、上述した通りである。
図15には、QA設定画面800が示されている。この画面は、システム管理者20が、システム管理端末600に表示された知識設定の画面から、「QA設定」を選択することにより表示される。
QA設定画面800には、知識データ310に記憶されているQ、A、及び応答条件の検索を指示する検索指示エリア801、検索結果リストのページ位置を表示し、検索結果リストの移動を指示する検索結果リスト移動指示エリア802、QAを追加するためのQA新規追加画面810を表示するQA新規追加ボタン803、及びQAの検索結果を表示するQA表示エリア804が含まれている。
また、検索指示エリア801には、どの部分を検索対象とするかを指定する検索オプションが表示されており、Q、A、応答条件のそれぞれについて指定を行うチェックボックスが設けられている。
図15に示すQA設定画面800には、所定の検索が行われた結果、QA表示エリア804に、1件のQAが表示されている。このQAは、Qが「こんにちは」で、このQに対応するAが「ご機嫌いかが!」である。この例では、知識データ310に記憶されているユニットのうち、QとAが示され、さらに、QAの属性である対象有無として、当該Qがサジェスト対象であるか否かを示すサジェスト有無、及び当該QAに関するログ記録を行うか否かを示すログ記録有無が、それぞれチェックボックスで示されている。
Qが複数ある場合、QA表示エリア804では、その複数のQがスペースを挟んで隣接して表示される。なお、この場合、最も左に配置されるQが代表Qである。同様に、Aが複数ある場合、その複数のAがスペースを挟んで隣接して表示される。
QA表示エリア804に示されたQAについて編集を行う場合は、対応するQA表示エリア804に配置されている編集ボタン805を押下する。また、QA表示エリア804に示されたQAについて削除を行う場合は、対応するQA表示エリア804に配置されている削除ボタン806を押下する。
図16は、知識データ310に対してQAを新規に追加するための、QA新規追加画面810を示す図である。QA新規追加画面810は、図15に示したQA設定画面800において、QA新規追加ボタン803を押下した場合に表示される画面である。また、既存のQAを編集するために、編集ボタン805を押下した場合も、これと同様の画面が表示される。
QA新規追加画面810には、Q表示エリア811、同義文追加ボタン812、A表示エリア813、応答文追加ボタン814、応答時アクション指定ボタン815、対象有無指定ボタン816、及び登録ボタン817が含まれている。
Q表示エリア811には、Qを入力するための入力エリアがあり、システム管理者20は、ユーザ10からの入力が期待できる質問や他の文をこの入力エリアに入力し、ユーザ10の入力文と比較した場合に、意味が近いとしてヒットするようにする。また、Qとして、似たような意味の文や他の言い回しを、同義文としてまとめて登録することができる。そのために、同義文追加ボタン812を押下すると、入力エリアが1つ追加され、システム管理者20は、その追加された入力エリアに同義文を入力する。図16の例では、Q表示エリア811にある2段目の入力エリアが、同義文を入力するためのエリアである(「心理学の本を探しています」の文字列が入力されている)。これに対し、1段目の入力エリアに入力されているQ(「心理学の本が欲しい」)は、必須のものであり、代表Qと呼ばれる。
同義文は、代表Qに関連付けて、いくつでも追加することができる。このような構成によって、ユーザ10の表現上のゆらぎを吸収することができる。すなわち、ユーザ10から入力される様々な表現の入力に対して、代表Qと同義文を含むQのどれかをヒットさせることができ、設定したAを効果的に出力することができる。同義文を入力するための入力エリアの右横に配置されている「×」ボタンを押下すると、その同義文を削除することができる。
Q表示エリア811の下側には、A表示エリア813が配置される。Aは、ユーザ10の入力文に上記で設定したQの何れかがヒットした場合に、ユーザ端末100のWEBブラウザに送信される応答文字列であり、システム管理者20は、Qに対応する応答として適したAをA表示エリア813のなかの1段目の入力エリアに入力する。
この例では、第1のAとして「3Fになります。」との応答を入力している。これは、ユーザ10が、(例えば、書店において)上記Qのように「心理学の本が欲しい」や「心理学の本を探しています」、あるいは、これと近い意味の文などを入力してきた場合に、「3Fになります。」と案内するためである。
A表示エリア813の1段目の入力エリアには、応答条件を設定するための簡単設定ボタンとカスタマイズ設定ボタンが表示されているが、1件目のAについては応答条件を設定することはできない。なお、Aを複数設定しない場合は、1段目の入力エリアにAを入力した段階で登録ボタン817を押下し、QA新規追加は完了する。
A表示エリア813に1件目のAを入力した段階で、応答文追加ボタン814を押下すると、A表示エリア813に2段目の入力エリアが表示され、システム管理者20は、そのエリアに2件目のAを入力する。このような構成により、ユーザ10による同じ趣旨の入力文に対して、異なる応答文字列を所定の条件に応じて切り分けて出力することができる。
A表示エリア813に設定される2件目以降のAに対しては、応答条件を設定するために、簡単設定ボタンとカスタマイズ設定ボタンが表示され、いずれかを押下することができる。この例では、最初のAの応答条件から評価され、応答条件を満たした場合に、そのAが応答内容として決定され、ユーザ端末100に送信されるので、評価の優先順位を調整するため、2件目以降のAについては、Aの間で並び替えを行うことができる。また、2件目以降では、Aを入力するための入力エリアの右横に配置されている「×」ボタンを押下すると、そのAを、応答条件とともに削除することができる。
A表示エリア813の下側には、応答時アクション指定ボタン815が配置される。これを押下すると、応答時のアクションを指定するための入力エリアが表示される。詳細については、後で説明する。
応答時アクション指定ボタン815の下側には、対象有無指定ボタン816が配置される。これを押下すると、当該QAをサジェスト等の対象にするか否かを指定するための入力エリアが表示される。詳細については、後で説明する。
QA新規追加画面810の最下段には、登録ボタン817が配置される。これを押下すると、Q表示エリア811やA表示エリア813で設定したQ、A、応答条件等に関する情報が知識データ310に記憶される。
なお、上述したQA設定画面800やQA新規追加画面810の例では、検索の対象や更新の対象を、知識データ310としたが、これを、テスト用に知識データを保持するテスト用データ320とすることもできる。テスト用データ320をコンパイル、アップロードすることにより、本番環境で使用される知識データ310の内容が更新される。
図17は、Aに関する応答条件を設定するための、かんたん設定画面830を示す図である。かんたん設定画面830は、図16に示したQA新規追加画面810において、A表示エリア813に配置されるかんたん設定ボタンを押下した場合に表示される画面である。応答条件のかんたん設定は、2件目以降のAについて有効である。
かんたん設定画面830には、A表示エリア831、応答条件間関係設定エリア832、応答条件設定エリア833、及び設定ボタン834が含まれている。
A表示エリア831には、このかんたん設定画面830において応答条件を設定する対象となるAが表示される。例えば、図16に示すように、2件目のAについて応答条件設定を行うためにかんたん設定ボタンを押下すると、その2件目のA(すなわち、「エスカレータで3Fへお進みください。火曜日はお得です!」)がそのまま引き継がれて、A表示エリア831に表示される。
応答条件間関係設定エリア832には、応答条件の間の関係を選択するためのプルダウンリストが表示される。複数の応答条件を設定した場合、それらの応答条件がすべて満たされた場合に応答条件が満たされたとする(AND条件)のか、いずれかの条件が満たされた場合に応答条件が満たされたとする(OR条件)のかを指定する。
応答条件設定エリア833には、それぞれの応答条件を設定するエリアが表示されている。図17の例では、日付(1日、または期間)、曜日、時間(1時点、または期間)、及び再訪問について設定が可能となっている。例えば、日付による期間が応答条件として設定された場合、ユーザ10による入力文の入力が、設定された期間内であれば、応答条件を満たすこととなり、対応するAが出力される。
また、再訪問のチェックボックスにチェックがされている場合は、ユーザ10による入力文が再度このQにヒットしたときに、応答条件を満たすことになる。ただし、この再訪問は、httpの同一セッションにおける再訪問を意味しており、ユーザ10が一旦WEBサイトを離れた後、再度このWEBサイトで同じ入力文を入力しても、この応答条件は満たさない。
図17の例では、曜日の応答条件において、火曜日のチェックボックスにチェックがされており、ユーザ10が火曜日に入力文を入力した場合に、対応するA「エスカレータで3Fへお進みください。火曜日はお得です!」が表示される。このように、本発明に係る情報提供システム1では、同じ意味の入力文に対して一律の応答を行うのではなく、応答条件に合わせて柔軟に応答内容を変化させることができる。
なお、図17で設定できる例は、一例に過ぎず、他の様々な条件を応答条件として容易に設定することが可能である。また、応答条件間関係設定エリア832で指定したAND条件やOR条件を、より複雑に(例えば、AND条件とOR条件を混在させて)指定するように構成することもできる。
システム管理者20は、応答条件の設定を行った後、設定ボタン834を押下すると、これらの応答条件がAに対応付けられて知識データ310等に保存される。
図18は、図17に示すように、かんたん設定画面830で2件目のAについて応答条件を設定し、設定ボタン834を押下した後に表示されるQA新規追加画面810である。
図16に示すQA新規追加画面810と異なり、A表示エリア813の2段目の入力エリアの下側に、応答条件として、火曜日を表す「□火」を内容とする応答条件表示818が示されており、その右横には、この応答条件をリセットする場合に押下するリセットボタン819が示されている。
さらに、A表示エリア813の2段目の入力エリアの下側には、かんたん設定ボタンが選択可能であるのに対し、カスタマイズ設定ボタンが選択不可となって表示されている。これは、一旦、かんたん設定によって設定を行ったため、再編集をする場合は、かんたん設定ボタンを押下する以外にないためである。リセットボタン819を押下すれば、応答条件はクリアされ、かんたん設定ボタン、カスタマイズ設定ボタンの両方を選択可能となる。
図19に示すQA新規追加画面810では、図18のQA新規追加画面810において、応答文追加ボタン814を押下してさらにAを1件追加した状況を示している。A表示エリア813の3段目の入力エリアには、3件目のAとして「3Fにお越し下さい。キャンペーン実施中」という応答文字列が入力されている。
ここで、3件目のAについて、応答条件を設定するために、カスタマイズ設定ボタンを押下すると、画面は、図20に示すカスタマイズ設定画面840に遷移する。
図20に示すカスタマイズ設定画面840には、A表示エリア841、一括操作指定エリア842、条件式設定エリア843、新規追加ボタン844、及び設定ボタン845が含まれている。
A表示エリア841には、このカスタマイズ設定画面840において応答条件を設定する対象となるAが表示される。ここでは、図19に示す、3件目のAについて応答条件設定を行うためにカスタマイズ設定ボタンを押下しているので、その3件目のA(すなわち、「3Fにお越し下さい。キャンペーン実施中!」)がA表示エリア841に表示される。
一括操作指定エリア842には、条件式の一括操作について指定を行うためのプルダウンリストが表示される。「編集」を選択すると、チェックボックスにチェックをした条件式を一括で編集することができ、「削除」を選択すると、チェックボックスにチェックをした条件式を一括で削除することができる。
条件式設定エリア843には、3件目のAに対応する応答条件を、条件式という形式で入力できる入力エリアが配置される。図20の例では、2つの条件式が指定されている(この例では、2つの条件はAND条件で接続されており、両方の応答条件を満たした場合に、全体の応答条件が満たされたことになる)。また、各条件式において、AND条件やOR条件を用いることができる。
例えば、1件目の条件式は「device=D0001」となっており、これは、例えば、ユーザ端末100から送信されるURIのリクエストパラメータに含まれる「talk_option=」の後に指定されるデータと比較され、当該データと条件式が一致すれば、応答条件を満たすことになる。
また、2件目の条件式は「version>2.41」となっており、この条件式が、ユーザ端末100から送信されるURIのリクエストパラメータに含まれる「talk_option=」の後に指定されるデータと比較され、当該データが条件式を満たせば、応答条件を満たすことになる。
条件式設定エリア843に表示された2つの条件式は、その右横にそれぞれ配置されている適用ボタンを押下することによって、それぞれ3件目のAに対応付けて知識データ310等に記憶される。
新規追加ボタン844を押下すると、条件式設定エリア843にさらに、条件式の入力エリアが付加され、そこで新しい条件式を設定することができる。設定ボタン845を押下すると、条件式設定エリア843に表示されている各入力エリアの条件式の内容が保存される。
このように、カスタマイズ設定画面840で設定する条件式は、ユーザ10が入力文を入力する際に、ユーザ端末100のWEBブラウザ等によって付加されるパラメータと比較され、その比較結果に応じて応答条件が満たされたかどうかが判断される。したがって、ユーザ端末100側で様々なパラメータをセットすることで、応答内容について多くのバリエーションを作り出すことができる。
例えば、ユーザ端末100側で把握可能な情報を、情報提供サーバ200に送信することで、これらの情報に応じて、応答内容を切り換えることができるように構成できる。例えば、ユーザ端末100のOSやWEBブラウザのバージョン、機種の情報を送信して、応答内容を切り換えることができる。また、ユーザ10の入力態様(入力回数、入力時間など)を撮像装置により取得できれば、これらの情報によって応答内容を切り換えることも可能である。
条件式設定エリア843に表示されたそれぞれの条件式について適用ボタンを押下して、Aとの関連付けを完了し、QA新規追加画面810に戻ると、図21に示すようになる。ここでは、カスタマイズ設定画面840から戻った後、並び替えボタンを押下して、図19では3件目だったAを2件目に変更したため、このAは、A表示エリア813の2段目の入力エリアに表示され、その結果2件目であったAは3件目となり、A表示エリア813の3段目の入力エリアに表示されている。
A表示エリア813の2段目の入力エリアの下側には、図20のカスタマイズ設定画面840によって設定された応答条件、すなわち、「Device=D0001,Version>2.41」を内容とする応答条件表示820が示されており、その右横には、この応答条件をリセットする場合に押下するリセットボタン821が示されている。
さらに、A表示エリア813の2段目の入力エリアの下側には、かんたん設定ボタンが選択不可であるのに対し、カスタマイズ設定ボタンが選択可能となって表示されている。これは、一旦、カスタマイズ設定によって設定を行ったため、再編集をする場合は、カスタマイズ設定ボタンを押下する以外にないためである。リセットボタン821を押下すれば、応答条件はクリアされ、かんたん設定ボタン、カスタマイズ設定ボタンの両方を選択可能となる。
図21に示すQA新規追加画面810の状況では、最初に、A表示エリア813の2段目の入力エリアに表示された応答条件「Device=D0001,Version>2.41」が評価され、ここで応答条件を満たすと、応答内容「3Fにお越し下さい。キャンペーン実施中!」が出力される。
上記応答内容を満たさない場合、A表示エリア813の3段目の入力エリアに表示された応答条件「□火」が評価され、ここで応答条件を満たすと、応答内容「エスカレータで3Fへお進みください。火曜日はお得です!」が出力される。どちらの条件も満たさない場合、A表示エリア813の3段目の入力エリアに表示された応答内容「3Fになります」が出力される。
図22に示すQA新規追加画面810では、応答時アクション指定ボタン815が押下され、キャラクタ画像切換指定エリア822、ページ移動・オープン指定エリア823、及び動画・画像表示指定エリア824が表示されている。
ここでは、応答内容を出力する場合に、ユーザ端末100のWEBブラウザ等で実行させる応答時挙動(アクション)を設定する。
キャラクタ画像切換指定エリア822は、応答時にキャラクタ画像表示エリア111に表示されるキャラクタ画像を変化させる。例えば、図22のキャラクタ画像切換指定エリア822に示すように、デフォルトで表示される左端のキャラクタ画像(実線で囲まれた画像)から、右端のキャラクタ画像(点線で囲まれた画像)を選択し、登録ボタン817を押下する。そうすると、入力時には、キャラクタ画像表示エリア111に上述のデフォルトのキャラクタ画像が表示されていたが、応答時には、キャラクタ画像切換指定エリア822で選択したキャラクタ画像(点線で囲まれた画像)に表示が切り替えられる。
また、キャラクタ画像切換指定エリア822の設定ボタンを押下すると、子画面が開き、出力したい画像の登録が可能となる。リセットボタンを押下すると、選択したキャラクタ画像(点線で囲まれた画像)が解除される。
この例では、キャラクタ画像は静止画像をデフォルトから指定したものに切り換えて、応答時に変化をつけるものであるが、静止画像から動画に切り換えたり、動画から異なる動きの動画に切り換えるたりするように制御することも可能である。
このような、キャラクタ画像の切換によって、応答内容の表示にインパクトを与えることができるとともに、応答内容に沿ってキャラクタ画像に変化をつけることによって、豊かな表現力を有するようになる。例えば、ユーザが応答内容を賞賛したり感謝したりするような入力をした場合に、笑顔のキャラクタ画像に切り換えて表示を行ったり、NGワードが入力された場合に、そっぽを向くようなキャラクタ画像に切り換えるよう表示を行うことができる。
ページ移動・オープン指定エリア823には、応答内容の一部として、ユーザ10にWEBページを見せたいときに、当該エリアに移動、または表示させるWEBページのアドレスを指定する。新規ウインドウのチェックボックスにチェックすると、指定されたWEBページを開くときに、新規ウインドウでWEBページが表示される。設定ボタンを押下することにより、子画面が開き、そこで、WEBページのアドレスを指定する。リセットボタンを押下すると、当該指定が解除される。登録ボタン817を押下すると、指定した内容が、知識データ310等に記憶される。
動画・画像表示指定エリア824には、応答内容の一部として、ユーザ10に動画や画像(静止画)を見せたいときに、当該エリアに表示させる動画や画像、WEBページのアドレス等を指定する。設定ボタンを押下することにより、子画面が開き、そこで、動画や画像、WEBページのアドレス等を指定する。リセットボタンを押下すると、当該指定が解除される。登録ボタン817を押下すると、指定した内容が、知識データ310等に記憶される。
図23に示すQA新規追加画面810は、図22に示すQA新規追加画面810の続きである。ここでは、応答内容を出力する場合に、ユーザ端末100のWEBブラウザ等で実行させる応答時挙動(アクション)の1つとして、インフォメーション表示エリア116に表示する内容を設定する。
図23に示すQA新規追加画面810では、応答時アクション指定ボタン815が押下され、図22に示した動画・画像表示指定エリア824の下部に、インフォメーション表示指定エリア825が表示されている。インフォメーション表示指定エリア825には、応答表示指定エリア826と表示内容指定エリア827が表示されている。
応答表示指定エリア826では、何秒経過した後にインフォメーション表示エリア116に指定した内容を表示させるかを指定することができる。また、この場合に、応答表示エリア112にどのようなコメントを表示させるかを指定することができる。
表示内容指定エリア827では、インフォメーション表示エリア116に表示する内容を具体的に指定することができる。この例では、関連テキスト、自動候補Q、API、「何も表示しない」のいずれかを、ラジオボタンにより選択することができる。
関連テキストは、システム管理者20が、出力された応答内容の後に、導きたい話題を設定するために使用する。設定ボタンを押下することにより、これらの関連テキストを入力することができる。関連テキストは、インフォメーション表示エリア116に表示され、ユーザ10がそれをマウス等で選択すると、その関連テキスト(または、その関連テキストに対応付けられた文字列)が情報提供サーバ200に送信される。このように、情報提供システム1では、入力させたい文字列をユーザ10に表示させ、それを選択させることによって、一定のシナリオに沿った情報提供の道筋を作りだすよう意図することができる。
自動候補Qは、直前に行った入力に対する候補文を自動的に取得し、インフォメーション表示エリア116に表示する。これも、上述した関連テキストと同様に、ユーザ10がそれをマウス等で選択すると、その関連テキスト等が情報提供サーバ200に送信される。
インフォメーション表示エリア116に表示する候補文は複数表示することができ、その表示順は、例えば、(直前の入力に対して)意味の近い順、または人気順等を選択することができる。
APIは、システム管理者20が、外部APIを使用したい場合に指定する。例えば、「東京の明日の天気は?」といった入力があった場合に、このAPIの指定で、東京の明日の天気を取得するAPIを指定すると、その結果を利用した応答内容を返すことが可能となる。
「何も表示しない」は、応答内容の出力後、インフォメーション表示エリア116に何も表示しないで処理を終了する。
図24に示すQA新規追加画面810は、図22及び図23に示すQA新規追加画面810の続きである(図22、図23で示すQAとは異なるQAについて示している)。ここでは、QAの関連付けられるQAの属性として、対象有無を指定する。
図24に示すQA新規追加画面810では、A表示エリア813と、応答時アクション指定ボタン815の下に配置される対象有無指定ボタン816、及び対象有無指定エリア828が表示されている。対象有無指定エリア828は、対象有無指定ボタン816を押下することによって、対象有無指定ボタン816の下に展開される。
対象有無指定エリア828には、この例では、このQが、サジェストの対象になるか否かを指定するチェックボックスと、このQがヒットした場合にログに記録されるか否かを指定するチェックボックスルが表示される。
例えば、このQが、サジェストの対象になるか否かを指定するチェックボックスをチェックすると、Q「こんにちは」が、サジェストの対象外となる。
図25は、サジェスト対象のチェックをしない場合とした場合で、入力文サジェストの挙動がどのように変化するかを表したものである。
図25(A)は、Q「こんにちは」がサジェストの対象となるよう、チェックボックスのチェックを外した場合の挙動である。入力応答画面110において、ユーザ10が入力エリア113に「こん」と入力すると、情報提供システム1の入力文サジェストの機能が働いて、入力エリア113の下側に、「こんにちは」の文字列が入力文サジェストとしてガイドエリア117に表示される。このように、過去に入力として受け付けられたQ「こんにちは」が、入力文サジェストに利用されていることがわかる。
図25(B)は、Q「こんにちは」がサジェストの対象とならないよう、チェックボックスにチェックをした場合の挙動である。入力応答画面110において、ユーザ10が入力エリア113に「こん」と入力すると、情報提供システム1の入力文サジェストの機能が働いているものの、入力エリア113の下側には、「こんにちは」の文字列は表示されない。このように、過去に入力として受け付けられたQ「こんにちは」は、入力文サジェストに利用されていないことがわかる。
図26は、図23に示すQA新規追加画面810の表示内容指定エリア827に表示されている関連テキストに関する設定ボタンを押下したときに表示される関連テキスト新規追加画面850である。
システム管理者20は、関連テキスト新規追加画面850を用いて、所定のQに対する応答時アクションとして、ユーザ10が選択した場合に、情報提供サーバ200に送信されることになる文字列を指定することができる。
関連テキスト新規追加画面850には、一括操作指定エリア851、関連テキスト指定エリア852、新規追加ボタン853、及び保存ボタン854が表示されている。
一括操作指定エリア851には、関連テキストの一括操作について指定を行うためのプルダウンリストが表示される。「編集」を選択すると、チェックボックスにチェックをした関連テキストを一括で編集することができ、「削除」を選択すると、チェックボックスにチェックをした関連テキストを一括で削除することができる。
関連テキスト指定エリア852には、インフォメーション表示エリア116に表示される関連テキストを指定するが、この例では、インフォメーション表示エリア116に表示される表示内容と、それをユーザ10が選択した場合に、情報提供サーバ200に実際に送信される文字列とを別個に定義することができる。
例えば、表示内容を「商品Aのサイズ」と設定する一方で、(情報提供サーバ200への)送信内容を「商品Aのサイズを知りたい」と設定することができる。このような設定ができるために、ユーザ10に表示させたい内容と、知識データ310にヒットさせるための文字列とを一致させなくてもよくなり、より柔軟な設定が可能となる。
新規追加ボタン853を押下すると、新たな関連テキストを入力する入力エリアが表示される。保存ボタン854を押下すると、関連テキスト指定エリア852において設定した内容が保存される。
次に、図27、及び図28を参照して、特定時発話設定画面について説明する。特定時発話設定画面は、特定時発話設定(図14参照)を行うために用いられる画面である。特定時発話設定画面により、無ヒット時発話設定、空入力時発話設定、スタート時発話設定、NGワード入力時発話設定を行うことができる。
図27に示す特定時発話設定画面860には、無ヒット時発話内容表示エリア861、発話編集ボタン863、発話追加ボタン864、応答時アクション指定ボタン865、対象有無指定ボタン866、及び登録ボタン867が含まれている。
図27に示す特定時発話設定画面860では、無ヒット時に応答表示エリア112に出力する応答内容を設定する。無ヒット時発話内容表示エリア861には、既に設定がされている2つの発話内容が示されている。1段目の発話は、応答表示エリア112に「もう少し詳しくお聞かせ願えますか。」の文字列を表示する設定となっている。2段目の発話は、応答表示エリア112に「よくわかりませんでした。他の表現で質問してください。」の文字列を表示する設定となっており、応答条件として、「word_count>500(入力文の長さが500文字より多い)」が設定されている。
したがって、ユーザ10が500文字より多くの文字で入力文を送ってきた場合には、2段目の発話となり、それ以外は、1段目の発話となる。このような発話内容と応答条件の設定は、QA新規追加画面810で設定したAとその応答条件と同様のものである。応答条件の設定についても、図17に示したかんたん設定画面830、図20に示したカスタマイズ設定画面840と同様の画面が用いられ、同様の設定が行われる。
発話編集ボタン863を押下すると、発話内容(応答内容)の編集を行うことができ、発話追加ボタン864を押下すると、(別の応答条件による)発話を追加することができる。
応答時アクション指定ボタン865、及び対象有無指定ボタン866は、QA新規追加画面810の応答時アクション指定ボタン815、対象有無指定ボタン816に対応するものである。登録ボタン867を押下することによって、設定した発話内容等が知識データ310等に登録される。
図28は、無ヒット時に、直前に行った入力に対する候補Qを表示してサジェストするように設定した特定時発話設定画面860の例である。
無ヒット時発話内容表示エリア861には、1つの発話内容が設定されており、(発話内容が1つであるため)応答条件は設定されていない。無ヒット時に、「もしかして、あなたの言いたかったことはコレ?」との発話内容を応答表示エリア112に表示する。
この発話内容に対応する応答時アクションとして、応答表示指定エリア826で、ラジオボタンにより自動候補Qが選択されている。この指定によって、無ヒットとなった直前の入力文に対して、意味的に近いQ(または、ヒット数が多い(人気のある)Q)を自動候補Qとして、複数、インフォメーション表示エリア116に表示する。
無ヒット時の発話内容をこのように設定することで、ユーザ10の入力した入力文が、知識データ310のなかのどのQに対してもヒットしなかった場合であっても、その入力文に意味的に近い候補Q等をユーザ10に提示することによって、ユーザ10と情報提供システム1との効果的な会話を継続させることができ、ユーザ10の疑問等を解決することができるようになる。
特定時発話設定画面860は、無ヒット時のほか、空入力時、スタート時、NGワード入力時に対応してそれぞれ設定をすることができるが、無ヒット時の場合と同様の方法により、設定を行うことができる。
次に、図29を参照して、本実施形態に係る情報提供システム1のテスト機能について説明する。図29は、テスト用データを用いてテストを行うためのテスト画面880を示している。図29に示すテスト画面880は、QAフリーテストエリア881とQAファイルテストエリア882を含んでいる。
QAフリーテストエリア881で実行されるテストは、導入時やメンテナンス時において知識の作成や知識の修正を行った場合に、あたかもユーザ10がユーザ端末100で入力を行うような環境をシミュレーションする。
ここでは、図10に示すような知識データ310と実質的に同じデータがテスト用データ320に記憶されている場合に、文字列を入力した場合の状況を示している。入力エリアに「音が聞こえない」を入力し、送信ボタンを押下すると、テスト結果として、入力文の欄に「音が聞こえない」、Aの欄に「接続を確認して下さい」、ヒットの欄に「ヒット(高)」、ヒットQの欄に「音が聞こえないことがある」が表示される。これは、図10に示した入力応答の状況と同じである。すなわち、入力文「音が聞こえない」が、「Q2:音が聞こえないことがある」に、最も高いスコアでヒットし、そのQ2に対応する「A2:販売店に相談して下さい」がAとして決定される。
この他、QAフリーテストエリア881には、テスト結果として、候補Qの欄に、「聞こえない」、「画面が見えない」、「通話中に相手の声が聞こえません」が表示される。候補Qは、図10に示したQのうち、ヒットQ以外のものであって、比較的意味が近いものであり、無ヒットとなっているQであっても、候補Qとして選択される可能性がある。この例では、Q2の次に、この入力文に高いスコアでヒットした「Q3:聞こえない」、ヒットレベル=ヒット(低)でヒットした「Q4:画面が見えない」と「Q1:通話中に相手の声が聞こえません」が表示されている。
システム管理者20は、このようなテスト結果を参照して、入力文が想定どおりのQにヒットしているか、候補Q等との関係はどうか、ヒットQや候補Qを同義文として整理する必要はあるかなどを判断することができる。
テスト用データ320の知識データを変更して再テストボタンを押下すると、再度テストが行われる。公開ボタンを押下すると、テスト用データ320の知識データがコンパイルされた後にアップロードされ、知識データ310が更新される。
QAファイルテストエリア882で実行されるテストは、導入時やメンテナンス時において知識の作成や知識の修正を行った場合に、あたかもユーザ10がユーザ端末100で入力を行うような環境をシミュレーションする。ここでは、QAフリーテストと異なり、ユーザ10が入力すると想定した入力文をテキストファイル等にまとめて作成し、それを送信することで一気に多数の入力文を同時にテストできる。
QAファイルテストエリア882には、QAフリーテストエリア881に示されたのと同様のテスト結果が、複数の入力文に関して示されている。最初の入力文は、QAフリーテストエリア881のテスト結果に表示されていた入力文と同じであり、同じテスト結果が示されている。2件目の入力文は、「今日は寒いね」であり、ヒットの欄は「×」であり、Aの欄は「もう少し詳しくお聞かせ願えますか」が示され、これは、無ヒット時の応答内容となっている。無ヒットなので、ヒットQの欄は空白となっている。候補Qの欄もこの例では空白となっているが、意味の近い(ただし、ヒットのレベルのスコアまでは達していない)比較対象文字列が表示されることもある。3件目の入力文は、「元気ですか?」であり、ヒットの欄は「×」であり、Aの欄は「もう少し詳しくお聞かせ願えますか」が示され、これは、無ヒット時の応答内容となっている。無ヒットなので、ヒットQの欄は空白となっている。候補Qの欄もこの例では空白となっているが、意味の近い(ただし、ヒットのレベルのスコアまでは達していない)比較対象文字列が表示されることもある。
テスト用データ320の知識データを変更して再テストボタンを押下すると、再度テストが行われる。公開ボタンを押下すると、テスト用データ320の知識データがコンパイルされた後にアップロードされ、知識データ310が更新される。
次に、図30〜図38を参照して、本実施形態に係る情報提供システム1の知識メンテナンス機能について説明する。図30は、ログデータを検索して、その結果に基づいてテスト用データ320のメンテナンスを行うための知識メンテナンス画面890を示している。図30に示す知識メンテナンス画面890は、ログ検索エリア891とログデータ表示エリア892を含んでいる。
ログ検索エリア891では、ログ期間、ヒットレベル、候補Q、状態のいずれかを指定し、検索を行って、上記条件を満たすログデータをログデータ表示エリア892させる。ここで、「ヒットレベル」は、例えば、(入力文とQとの意味の近さを表す)スコアの高いヒットである「ヒット(高)」、これよりスコアの低い「ヒット(低)」、所定の値以下のスコアである「無ヒット」、部分ヒットQにヒットした「部分ヒット」、NGワードとして判定された「NGワード」を含む。また、入力文とQが完全に一致する「ヒット(完全一致)」を含むように構成してもよい。
また、「候補Q」は候補Qがあるか否かを判定する。候補Qは、所定の値以上のスコアを有するQのうち、ヒットQ以外のQを指す。「状態」は、例えば、メンテナンス機能を用いたそれぞれの入力の状態を指し、選択肢としては、「全て表示」、「編集済み」、「未編集」、「メンテ対象外」がある。
ログデータ表示エリア892には、上記のログ検索エリア891で指定した検索条件にしたがって検索されたログデータが表示される。この例では、4件のログデータが検索結果として得られている。また、ここでは、図10に示すような知識データ310が用いられた場合に、文字列を入力したときのログデータが利用されている。
ログデータ表示エリア892の1件目には、入力文の欄に「音が聞こえない」、ヒットの欄に「ヒット(高)」、ヒットQの欄に「音が聞こえないことがある」が表示される。これは、図10に示した入力応答の状況と同じである。すなわち、入力文「音が聞こえない」が、「Q2:音が聞こえないことがある」に、最も高いスコアでヒットし、そのQ2に対応する「A2:販売店に相談して下さい」がAとして決定される。さらに、候補Qの欄に、「聞こえない」、「画面が見えない」、「通話中に相手の声が聞こえません」が表示される。これは、図10に示したヒットのうち、ヒットQ以外のものが示されているのである。すなわち、Q2の次に、この入力文に高いスコアでヒットした「Q3:聞こえない」、ヒットレベル=ヒット(低)でヒットした「Q4:画面が見えない」と「Q1:通話中に相手の声が聞こえません」が表示されている。
ログデータ表示エリア892の2件目には、入力文の欄に「先方の話が聞き取れない」、ヒットの欄に「×」(すなわち、無ヒット)、ヒットQの欄は空白が表示される。これは、入力文「先方の話が聞き取れない」が、図10に示した知識データ310のどのQにもヒットしなかったことを表している。また、比較的意味が近いものが候補Qとして選択され、表示されている。ここでは、図10に示した知識データ310のうち、Q1とQ8が表示されている。
ログデータ表示エリア892の3件目には、入力文の欄に「画面が見えない」、ヒットの欄に「ヒット(高)」、ヒットQの欄に「画面が見えない」が表示される。これは、図10に示した知識データ310のQ4に対応する。
ログデータ表示エリア892の4件目には、入力文の欄に「通話できない」、ヒットの欄に「×」(すなわち、無ヒット)、ヒットQの欄は空白が表示される。これは、入力文「通話できない」が、図10に示した知識データ310のどのQにもヒットしなかったことを表している。また、比較的意味が近いものが候補Qとして選択され、表示されている。ここでは、図10に示した知識データ310のうち、Q1とQ8が表示されている。
ログデータ表示エリア892の入力文の欄に示された歯車を押下すると、その入力文の詳細情報(例えば、その入力文に対する応答内容(A)等)表示される。
また、ログデータ表示エリア892の入力文の欄で入力文を押下すると(各入力文はリンクになっている)、その入力文全体がQとして新規追加されるように、図31に示すような新規QAクイック追加画面900が表示される。
図31に示す新規QAクイック追加画面900は、QA編集エリア901を含む。例えば、図30に示す知識メンテナンス画面890のログデータ表示エリア892の入力文の欄に示された入力文のうち、2件目の「先方の話が聞き取れない」のリンクを押下すると、図31のQA編集エリア901のQの欄に、押下した入力文「先方の話が聞き取れない」の文字列そのものが設定される。この状態で、システム管理者20は、これをQとした場合に、適切な文字列をAの欄に入力する。この例では、「他のアプリで音声が出ているか確認してください」といった文字列が入力される。
QA編集エリア901において詳細設定ボタンを押下すれば、図16に示すようなQA新規追加画面810となり、その画面によって当該QAを登録することができる。登録ボタン902を押下すると、テスト用データ320の知識データが更新される。図30に示す知識メンテナンス画面890に戻って、ログデータ表示エリア892の公開ボタンを押下すると、テスト用データ320の知識データがコンパイルされた後にアップロードされ、知識データ310が更新される。
本願発明に係る情報提供システム1のこのような構成によって、システム管理者20は、例えば、無ヒットとなっているQ(対応するQAが見つからない入力文)に対して、容易に適切な応答内容(A)を付加することができる。
図32は、図30、及び図31に関連して説明した知識メンテナンス(新規QAクイック追加)によって、入力応答がどのように変化するかを示した図である。テスト環境では、知識データが実質的に格納されるテスト用データ320が用いられるが、ここでは、便宜上、知識データ310の内容が更新されたものとして説明する。
図32(A)は、知識メンテナンスを行う前の状態を表している。入力文「先方の話が聞き取れない」が入力されると、図10に示す内容の知識データ310では、どのQもヒットせず、この入力文に対しては、無ヒット時発話設定で設定された応答内容が出力されることになる。
図32(B)は、知識メンテナンスを行った後の状態を表している。入力文「先方の話が聞き取れない」が入力されると、図10に示す内容の知識データ310に、図31に示す新規QAクイック追加画面900で追加されたQAが含まれるので、この入力文に対し、「Q9:先方の話が聞き取れない」がヒット(ヒット(高))し、これに対応する応答内容「A9:他のアプリで音声が出ているか確認してください」が出力される。
図33に示す知識メンテナンス画面890は、図30に示す知識メンテナンス画面890と同じものであるが、このとき、候補Qの欄に示された歯車の上にマウスカーソルを置くと、その候補Qの詳細情報へのリンクである詳細情報リンクと、他の候補を探すためのリンクである他候補リンクを含んだポップアップウインドウ893が表示され、それらのリンクを押下すると、それぞれの画面が表示される。
ここで、詳細情報リンクを押下すると、図34に示すような候補Q詳細情報画面910が表示される。図34の候補Q詳細情報画面910は、候補Q詳細情報表示エリア911を含む。候補Q詳細情報表示エリア911には、候補Q、その候補Qに対応する応答内容(A)、入力文と候補Qとの比較結果を表すスコアが表示されている。
ここで、候補Qの「通話中に相手の声が聞こえません」については、スコアが47%であるのに対し、候補Qの「通話中に電話が切れます」については、スコアが45%であり、上段の候補Qのほうが、入力文に若干意味が近いと評価されているということがわかる。
システム管理者20は、候補Qに関するこのような情報を見ることによって、応答内容(A)は、入力文の応答内容としても妥当かどうかや、入力文と候補Qが意味的にどれだけ近いと評価されているかを把握することができる。
ここで、ログデータ表示エリア892の4件目の入力文に関し、1つ目の候補Qを押下すると(各候補Qはリンクになっている)、その候補Q全体が追加先候補Qとして設定され、入力文の文字列が、その候補Qの同義文として新規追加されるように、図35に示すような同義文クイック追加画面930が表示される。
図35に示す同義文クイック追加画面930は、同義文追加指定エリア931を含む。例えば、図33に示す知識メンテナンス画面890のログデータ表示エリア892の4件目の入力文に対応する候補Qの欄の1つ目の候補Q「通話中に相手の声が聞こえません」のリンクを押下すると、図35の同義文追加指定エリア931の追加先候補Qの欄に、押下した候補Q「通話中に相手の声が聞こえません」の文字列そのものが設定される(この文字列は既にQAを構成しているため、編集できない)。
さらに、押下した候補Qに対応する入力文の文字列そのものが、同義文追加指定エリア931の同義文の欄に設定される(これは、後で編集可能である)。
また、同義文追加指定エリア931において詳細設定ボタンを押下すれば、図16に示すようなQA新規追加画面810となり、その画面によって当該QAを登録することができる。登録ボタン932を押下すると、テスト用データ320の知識データが更新される。図33に示す知識メンテナンス画面890に戻って、ログデータ表示エリア892の公開ボタンを押下すると、テスト用データ320の知識データがコンパイルされた後にアップロードされ、知識データ310が更新される。
本願発明に係る情報提供システム1のこのような構成によって、システム管理者20は、意味的に近く、応答内容も同様のものである入力文とQを容易に見つけることができ、このような入力文をQの同義文として簡単に登録することができる。
図36は、図33ないし図35に関連して説明した知識メンテナンス(同義文クイック追加)によって、入力応答がどのように変化するかを示した図である。テスト環境では、知識データが実質的に格納されるテスト用データ320が用いられるが、ここでは、便宜上、知識データ310の内容が更新されたものとして説明する。
図36(A)は、知識メンテナンスを行う前の状態を表している。入力文「通話できない」が入力されると、図10に示す内容の知識データ310では、どのQもヒットせず、この入力文に対しては、無ヒット時発話設定で設定された応答内容が出力されることになる。
図36(B)は、知識メンテナンスを行った後の状態を表している。入力文「通話できない」が入力されると、図10に示す内容の知識データ310に、図35に示す同義文クイック追加画面930で追加された同義文が指定されたQAに追加されるので、この入力文に対し、「Q1−2:通話できない」がヒット(ヒット(高))し、これに対応する応答内容「A1:詳細な状況をお知らせ下さい」が出力される。
図31に示す新規QAクイック追加画面900によってQAを追加し、図35に示す同義文クイック追加画面930によって同義文を追加した後、図33の知識メンテナンス画面890に戻って、ログデータ表示エリア892の入力文テストボタンを押下すると、図37に示す知識メンテナンス画面890のようになる。
すなわち、図33の知識メンテナンス画面890と比べると、ログデータ表示エリア892の2件目の入力文に関して、ヒットの欄が「×」から「ヒット(高)」に変化し、ヒットQの欄が空白から「他のアプリで音声が出ているか確認して下さい」に変化した。これは、図31に示す新規QAクイック追加画面900によってQAを追加し、知識データ310に、「Q9:先方の話が聞き取れない」が追加され、入力文がヒットするようになったためである(図32参照)。
また、ログデータ表示エリア892の4件目の入力文に関して、ヒットの欄が「×」から「ヒット(高)」に変化し、ヒットQの欄が空白から「通話中に相手の声が聞こえません」に変化した。これは、図35に示す同義文クイック追加画面930によって同義文を追加し、知識データ310に、「Q1−2:通話できない」が追加され、入力文がヒットするようになったためである(図36参照)。なお、候補Qの欄の「通話中の相手の声が聞こえません」は、ヒットQとなったため、候補Qからは除外される。
次に、図38を参照して、本発明の一実施形態に係る情報提供システム1の情報提供サーバ200を構成するコンピュータのハードウェア構成の例について説明する。ただし、図38に示す情報提供サーバ200の構成は、その代表的な構成を例示したにすぎない。
情報提供サーバ200は、CPU(Central Processing Unit)1001、RAM(Random Access Memory)1002、ROM(Read Only Memory)1003、ネットワークインタフェース1004、オーディオ制御部1005、マイクロフォン1006、スピーカ1007、ディスプレイコントローラ1008、ディスプレイ1009、入力機器インタフェース1010、キーボード1011、マウス1012、外部記憶装置1013、外部記録媒体インタフェース1014、及びこれらの構成要素を互いに接続するバス1015を含んでいる。
CPU1001は、情報提供サーバ200の各構成要素の動作を制御し、OSの制御下で、本発明に係る入力応答制御部210や知識データ管理部220等の実行を制御する。
RAM1002には、CPU1001で実行される各処理を実行するためのプログラムや、それらのプログラムが実行中に使用するデータが一時的に格納される。ROM1003には、情報提供サーバ200の起動時に実行されるプログラム等が格納される。
ネットワークインタフェース1004は、ネットワーク1020に接続するためのインタフェースである。ネットワーク1020は、例えば、情報提供サーバ200とユーザ端末100やシステム管理端末600との間のネットワークであり、図1に示すネットワーク700に対応する。
オーディオ制御部1005は、マイクロフォン1006とスピーカ1007を制御して音声の入出力を制御する。ディスプレイコントローラ1008は、CPU1001が発行する描画命令を実際に処理するための専用コントローラである。ディスプレイ1009は、例えば、LCD(Liquid Crystal Display)やCRT(Cathode Ray Tube)で構成される表示装置である。
入力機器インタフェース1010は、キーボード1011やマウス1012から入力された信号を受信して、その信号パターンに応じて所定の指令をCPU1001に送信する。
外部記憶装置1013は、例えば、ハードディスクや半導体メモリのような記憶装置であり、この装置内には上述したプログラムやデータが記録され、実行時に、必要に応じてそこからRAM1002にロードされる。例えば、図1に示す入力応答管理DB等も、このような外部記憶装置1013に記憶されうる。
外部記録媒体インタフェース1014は、外部記録媒体1030にアクセスして、そこに記録されているデータを読み取る。外部記録媒体1030は、例えば、可搬型のフラッシュメモリ、CD(Compact Disc)、DVD(Digital Versatile Disc)などである。CPU1001で実行され、本発明の各機能を実現するためのプログラムは、この外部記録媒体インタフェース1014を介して外部記録媒体1030から提供されうる。また、本発明の各機能を実現するためのプログラムの他の流通形態としては、ネットワーク上の所定のサーバから、ネットワーク1020及びネットワークインタフェース1004を介して外部記憶装置1013やRAM1002に格納されるというルート等も考えられる。
本発明の一実施形態に係る情報提供システム1の情報提供サーバ200のハードウェア構成について、一例を説明したが、本発明のサジェストサーバ400、ユーザ端末100、システム管理端末600も基本的にこれと同様の構成を有するコンピュータである。ただし、ここで、サーバについては、オーディオ制御部1005、マイクロフォン1006、スピーカ1007、ディスプレイコントローラ1008、ディスプレイ1009、入力機器インタフェース1010、キーボード1011、及びマウス1012は必須の構成要素ではない。
なお、ここまで、本発明の一実施形態に係る情報提供システム1について、本発明を実施することができる具体例を示しながら説明してきたが、これらの具体例は本発明を説明するための一例に過ぎず、本発明の権利範囲はこれらの具体例に限定されることはない。これら以外の様々な方法や構成によって、本発明の技術的思想を実現することができる。