(57)【要約】【課題】対話サービスのタスクの変更による影響を低減して、複数のタスクを提供する対話サービスを容易に利用可能な技術を提供する。【解決手段】プロセッサと、メモリを有する計算機が対話を実行する対話方法であって、前記計算機が、テキストを受け付けるテキスト入力ステップと、同一の前記テキストを複数の種類のタスクにそれぞれ実行させるタスク実行ステップと、前記複数の種類のタスクから実行結果をそれぞれ取得する実行結果取得ステップと、前記取得した実行結果のうちの一つを選択するタスク選択ステップと、前記選択された実行結果を前記テキストに対する回答として出力する応答出力ステップと、を含む。【選択図】図２
2020027466.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、メモリを有する計算機が対話を実行する対話方法であって、
前記計算機が、テキストを受け付けるテキスト入力ステップと、
前記計算機が、同一の前記テキストを複数の種類のタスクにそれぞれ実行させるタスク実行ステップと、
前記計算機が、前記複数の種類のタスクから実行結果をそれぞれ取得する実行結果取得ステップと、
前記計算機が、前記取得した実行結果のうちの一つを選択するタスク選択ステップと、
前記計算機が、前記選択された実行結果を前記テキストに対する回答として出力する応答出力ステップと、
を含むことを特徴とする対話方法。
【請求項２】
請求項１に記載の対話方法であって、
前記実行結果取得ステップは、
前記テキストに対する応答と、前記テキストに対する当該応答の確信度を取得し、
前記タスク選択ステップは、
前記応答の中から前記確信度が最大の応答を選択することを特徴とする対話方法。
【請求項３】
請求項２に記載の対話方法であって、
前記タスク選択ステップは、
前記複数の種類のタスクから取得した前記確信度を正規化し、正規化後の確信度が最大の応答を選択することを特徴とする対話方法。
【請求項４】
請求項２に記載の対話方法であって、
前記タスク選択ステップは、
前記タスク毎に予め設定された重みを取得して、前記複数の種類のタスクから取得した前記確信度に前記重みを乗じた値が最大の応答を選択することを特徴とする対話方法。
【請求項５】
請求項２に記載の対話方法であって、
前記タスク選択ステップは、
予め設定されたタスク間の遷移確率を取得して、前記複数の種類のタスクから取得した前記確信度に前記遷移確率を乗じた値が最大の応答を選択することを特徴とする対話方法。
【請求項６】
請求項２に記載の対話方法であって、
前記応答出力ステップは、
予め設定されたシナリオに基づいて前記応答に対応する回答を生成するシナリオモードと、前記受け付けたテキストに基づいて前記応答に対応する回答を生成する一問一答モードを切り替えて実行し、
前記タスク選択ステップは、
予め設定された前記シナリオモードと一問一答モード間の遷移確率を取得して、前記複数の種類のタスクから取得した前記確信度に前記遷移確率を乗じた値が最大の応答を選択することを特徴とする対話方法。
【請求項７】
請求項１に記載の対話方法であって、
前記受け付けたテキストに指示語が含まれる場合には、過去の対話データから名詞を取得して前記指示語に代入した入力文を複数生成する入力文生成ステップを、さらに含み、
前記タスク実行ステップは、
複数の前記入力文を前記タスクに実行させることを特徴とする対話方法。
【請求項８】
プロセッサと、メモリを有する計算機が対話を実行する対話システムであって、
テキストを受け付けるテキスト入力部と、
同一の前記テキストを複数の種類のタスクにそれぞれ実行させて、前記複数の種類のタスクから実行結果をそれぞれ取得するタスク実行制御部と、
前記取得した実行結果のうちの一つを選択するタスク選択部と、
前記選択された実行結果を前記テキストに対する回答として出力する回答生成部と、
を有することを特徴とする対話システム。
【請求項９】
請求項８に記載の対話システムであって、
前記タスク実行制御部は、
前記テキストに対する応答と、前記テキストに対する当該応答の確信度を取得し、
前記タスク選択部は、
前記応答の中から前記確信度が最大の応答を選択することを特徴とする対話システム。
【請求項１０】
請求項９に記載の対話システムであって、
前記タスク選択部は、
前記複数の種類のタスクから取得した前記確信度を正規化し、正規化後の確信度が最大の応答を選択することを特徴とする対話システム。
【請求項１１】
請求項９に記載の対話システムであって、
前記タスク選択部は、
前記タスク毎に予め設定された重みを取得して、前記複数の種類のタスクから取得した前記確信度に前記重みを乗じた値が最大の応答を選択することを特徴とする対話システム。
【請求項１２】
請求項９に記載の対話システムであって、
前記タスク選択部は、
予め設定されたタスク間の遷移確率を取得して、前記複数の種類のタスクから取得した前記確信度に前記遷移確率を乗じた値が最大の応答を選択することを特徴とする対話システム。
【請求項１３】
請求項９に記載の対話システムであって、
前記回答生成部は、
予め設定されたシナリオに基づいて前記応答に対応する回答を生成するシナリオモードと、前記受け付けたテキストに基づいて前記応答に対応する回答を生成する一問一答モードを切り替えて実行し、
前記タスク選択部は、
予め設定された前記シナリオモードと一問一答モード間の遷移確率を取得して、前記複数の種類のタスクから取得した前記確信度に前記遷移確率を乗じた値が最大の応答を選択することを特徴とする対話システム。
【請求項１４】
請求項８に記載の対話システムであって、
前記受け付けたテキストに指示語が含まれる場合には、過去の対話データから名詞を取得して前記指示語に代入した入力文を複数生成する入力文生成部を、さらに有し、
前記タスク実行制御部は、
複数の前記入力文を前記タスクに実行させることを特徴とする対話システム。
【請求項１５】
プロセッサと、メモリを有する計算機で対話を実行させるためのプログラムであって、
テキストを受け付けるテキスト入力ステップと、
同一の前記テキストを複数の種類のタスクにそれぞれ実行させるタスク実行ステップと、
前記複数の種類のタスクから実行結果をそれぞれ取得する実行結果取得ステップと、
前記取得した実行結果のうちの一つを選択するタスク選択ステップと、
前記選択された実行結果を前記テキストに対する回答として出力する応答出力ステップと、
を前記計算機に実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自然言語を用いた対話システムに関する。
【背景技術】
【０００２】
機械学習の進展や、コンピュータやネットワークの処理能力の向上に伴って、自然言語を用いた対話サービスが普及しつつある。対話サービスとしては、「天気予報」や「乗り換え案内」等のカテゴリ毎に音声やテキストを受け付けて、対応する応答を出力するタスクが知られている。
【０００３】
上記対話サービスのように対話のカテゴリ（またはジャンル）毎に異なるタスクを提供する対話サービスを利用する技術としては、例えば、特許文献１が知られている。特許文献１には、複数の対話エージェント（タスク）に対して処理可能情報を問い合わせ、入力情報と処理可能情報を照合して、入力情報を処理可能な対話エージェントを選択し、選択された対話エージェントに対して入力情報を送信して応答を受信する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−２８８０１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら上記従来例では、タスクを選択するために、事前にモデルや規則を生成しておく必要があり、タスクの種類や内容が変更された場合（コンテンツが増えた等）には、全てのモデルや規則を作り直す必要があった。
【０００６】
また、上記従来例では、タスクを選択する際には、入力された文脈に応じてタスクを選択する処理を生成する必要があり、タスクの種類や内容が変更された場合には、文脈に応じたタスクの選択処理を修正する必要があった。
【０００７】
そこで本発明は、上記問題点に鑑みてなされたもので、対話サービスのタスクの変更による影響を低減して、複数のタスクを提供する対話サービスを容易に利用可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、プロセッサと、メモリを有する計算機が対話を実行する対話方法であって、前記計算機が、テキストを受け付けるテキスト入力ステップと、前記計算機が、同一の前記テキストを複数の種類のタスクにそれぞれ実行させるタスク実行ステップと、前記計算機が、前記複数の種類のタスクから実行結果をそれぞれ取得する実行結果取得ステップと、前記計算機が、前記取得した実行結果のうちの一つを選択するタスク選択ステップと、前記計算機が、前記選択された実行結果を前記テキストに対する回答として出力する応答出力ステップと、を含む。
【発明の効果】
【０００９】
したがって、本発明は、複数の種類のタスクのいずれかに変更があった場合でも、モデルや規則の修正を行うことなく対話サービスの利用を継続することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施例１を示し、対話システムの一例を示すブロック図である。
【図２】本発明の実施例１を示し、対話システムで行われる処理の概要を示す説明図である。
【図３】本発明の実施例１を示し、対話装置で行われる処理の一例を示すフローチャートである。
【図４】本発明の実施例１の変形例を示し、対話システムで行われる処理の概要を示す説明図である。
【図５】本発明の実施例１の変形例を示し、対話システムで行われる処理の概要を示す説明図である。
【図６】本発明の実施例１の変形例を示し、対話システムで行われる処理の概要を示す説明図である。
【図７】本発明の実施例１の変形例を示し、モード遷移重みデータの一例を示す図である。
【図８】本発明の実施例２を示し、対話システムで行われる処理の概要を示す説明図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態を添付図面に基づいて説明する。
【実施例１】
【００１２】
図１は、本発明の実施例１を示し、対話システムの一例を示すブロック図である。対話システムは、ユーザ（利用者）との間で入出力を行う対話装置１０と、ネットワーク１６を介して対話装置１０に接続されて複数のタスク（１−１〜１−ｎ）を提供する対話サーバ１００を有する。
【００１３】
対話装置１０は、ユーザから入力（テキストや発話）を受け付けて、対話サーバ１００へ入力に対する応答を各タスクにそれぞれ算出させる。対話サーバ１００が提供するタスクの一例として、各地域の天気予報に関する問合せに対して応答を生成する天気予報タスク１−１と、交通機関の利用経路や時刻に関する問合せに対して応答を生成する乗り換え案内タスク１−２と、購入する商品に関する問合せに対して応答を生成する商品案内タスク１−３を提供する例を示す。
【００１４】
なお、以下の説明では、個々のタスクを特定しない場合には、「−」以降を省略した符号「１」を用いる。また、対話サーバ１００が提供するタスクは、上記に限定されるものではなく、地図情報やイベント情報など様々な問合せに対する応答を生成するタスクを提供することができる。また、各タスク１は、それぞれ独立したサーバで提供されても良い。
【００１５】
そして、対話サーバ１００では、各タスク１毎に算出した応答に対するスコア（確信度）を算出するスコア算出部１１０を有する。スコア算出部１１０は、タスク１の入力に対する応答の確信度をスコアとして算出し、応答に付加して出力する。
【００１６】
対話装置１０は、対話サーバ１００から受け付けた各タスク１の応答の中から、各応答に付加されたスコアが最大の応答を、最適な回答として選択してユーザに出力する。
【００１７】
対話装置１０は、ＣＰＵ１１と、メモリ１２と、通信部１３と、ストレージ装置１４と、インターコネクト１５を含む計算機である。ＣＰＵ１１は、メモリ１２にロードされたプログラムを実行する。
【００１８】
メモリ１２には、テキスト入力部２１と、質問解析部２２と、タスク実行制御部２３と、スコア正規化部２４と、スコア重み付け部２５と、タスク選択部２６と、回答生成部２７と、テキスト出力部２８がプログラムとしてロードされる例を示す。
【００１９】
ＣＰＵ１１は、各機能部のプログラムに従って処理することによって、所定の機能を提供する機能部として稼働する。例えば、ＣＰＵ１１は、テキスト入力プログラムに従って処理することでテキスト入力部２１として機能する。他のプログラムについても同様である。さらに、ＣＰＵ１１は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
【００２０】
対話装置１０の各機能を実現するプログラム、テーブル等の情報は、ストレージ装置１４や不揮発性半導体メモリ、ハードディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶デバイス、または、ＩＣカード、ＳＤカード、ＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
【００２１】
テキスト入力部２１は、ユーザが利用する端末や計算機からテキストを受け付けて、質問解析部２２へ出力する。なお、ユーザからの発話を受け付ける場合には、対話装置１０にマイク（図示省略）を設け、音声認識部（図示省略）によってテキストを抽出する。
【００２２】
質問解析部２２は、タスク１へ入力するテキストを解析し、タスク１へ投入するテキストの最適化を行ってタスク実行制御部２３へ出力する。最適化は、例えば、不要な語句の省略などで構成することができる。なお、受け付けたテキストをそのままタスク実行制御部２３へ出力してもよい。
【００２３】
タスク実行制御部２３は、テキスト入力部２１から受け付けたテキストを、対話サーバ１００が提供する全てのタスク１へ入力して、各タスク１に応答とスコアを算出させる。そして、タスク実行制御部２３は、対話サーバ１００の全てのタスク１から応答とスコアを受信し、スコア正規化部２４またはタスク選択部２６に応答とスコアを出力する。
【００２４】
スコア正規化部２４は、タスク実行制御部２３から受け付けたスコアを正規化して、タスク選択部２６またはスコア重み付け部２５に出力する。スコア重み付け部２５は、タスク１等の重み付けに基づいてスコアを補正して、タスク選択部２６へ出力する。
【００２５】
タスク選択部２６では、タスク実行制御部２３（またはスコア正規化部２４あるいはスコア重み付け部２５）から受け付けた応答及びスコアから、スコアが最大の応答を選択して、入力に対する応答として回答生成部２７に出力する。
【００２６】
回答生成部２７は、予め設定されたシナリオテーブル（図示省略）に基づいて対話を行うシナリオモードと、問合せに対して応答する一問一答モードを有し、適宜切り替えて対話を行うことができる。
【００２７】
回答生成部２７は、タスク選択部２６から受け付けた応答から、シナリオモードまたは一問一答モードの制御に従ってユーザに対する応答を生成し、テキスト出力部２８へ出力する。なお、シナリオモードまたは一問一答モードについては、周知または公知の対話技術を適用すれば良いので、本実施例１では詳述しない。
【００２８】
テキスト出力部２８は、ユーザに対する応答をテキストに変換してユーザが利用する端末などに送信する。あるいは、ユーザの発話を入力とする場合には、音声合成部（図示省略）でテキストを音声に変換してスピーカ（図示省略）から出力する。
【００２９】
通信部１３は、ネットワーク１６に接続されて対話サーバ１００やユーザの端末と通信を行う。
【００３０】
ストレージ装置１４は、上述の機能部が利用するデータを格納する。データの一例としては、スコア正規化データ３１と、スコア重み付けデータ３２と、対話履歴データ３４等が含まれる。
【００３１】
対話サーバ１００が提供する各タスク１は、周知または公知のサービスで構成することができる。各タスク１は、対話装置１０から受け付けた入力（問合せ）に対して、複数の回答候補を算出し、回答候補の根拠を予測モデルに当てはめて、確信度として算出するスコア算出部１１０を含む。なお、確信度の算出については、周知または公知の技術を適用すれば良いので、本実施例１では説明を省略する。また、スコア算出部１１０は、確信度に限定されるものでなく、例えば、入力（テキスト）に対応する応答の確からしさを表す数値を算出すればよい。
【００３２】
図２は、対話システムで行われる処理の概要を示す説明図である。対話装置１０のテキスト入力部２１が、ユーザから、「今日の天気は？」という問合せをテキストで受け付けて、入力テキストとしてタスク実行制御部２３へ出力する。
【００３３】
タスク実行制御部２３は、対話サーバ１００が提供する全てのタスク１に対して、受け付けた入力テキストを入力し、応答とスコアの算出を要求する（Ｓ１）。本実施例１では、タスク実行制御部２３が、天気予報タスク１−１と、乗り換え案内タスク１−２と、商品案内タスク１−３に対して、「今日の天気は？」という入力テキストを送信し、応答とスコアを要求する（Ｓ２）。
【００３４】
対話サーバ１００の各タスク１は、入力テキストに対する応答を算出する。また、各タスク１のスコア算出部１１０は、入力テキストに対する応答の確信度を算出する。対話サーバ１００の各タスク１は、算出した応答とスコアを対話装置１０へ送信する（Ｓ３）。
【００３５】
対話装置１０のタスク実行制御部２３は、各タスク１から応答及びスコアをそれぞれ受信してタスク選択部２６へ出力する。タスク選択部２６は、全てのタスク１から応答及びスコアを受け付けると、スコアが最大の応答を、入力テキストに対して最適な応答として選択する。
【００３６】
図示の例では、天気予報タスク１−１が算出した「晴れです」という応答が、スコア＝１．０で最大となるため、タスク実行制御部２３は、「晴れです」を入力テキスト「今日の天気は？」に対する最適な応答（回答）として選択し、回答生成部２７へ出力する。
【００３７】
回答生成部２７は、タスク実行制御部２３で選択された応答を、入力テキストに対応する文章として生成し、テキスト出力部２８へ送信する。テキスト出力部２８は、受け付けた文章をテキストに変換してユーザの端末に応答する。なお、音声で応答する場合には、テキスト出力部２８は、音声合成部（図示省略）でテキストを音声に変換してスピーカから出力する。
【００３８】
図３は、対話装置１０で行われる処理の一例を示すフローチャートである。このフローチャートは、対話装置１０がテキスト（または発話）を受け付けたときに実行される。
【００３９】
まず、テキスト入力部２１は、ユーザの端末から問合せ等のテキストを受け付ける（Ｓ１１）。なお、テキスト入力部２１は、ユーザの発話を受け付ける場合には、音声認識部を用いて、発話をテキストに変換して入力テキストとする。
【００４０】
次に、質問解析部２２は、受け付けたテキストを解析し、タスク１へ投入するテキストの最適化を行ってタスク実行制御部２３へ出力する（Ｓ１２）。上述のように、受け付けたテキストをそのままタスク実行制御部２３へ出力してもよい。
【００４１】
タスク実行制御部２３は、受け付けたテキストを対話サーバ１００の全てのタスク１へ入力して、応答とスコア（確信度）の算出を要求する（Ｓ１３）。タスク実行制御部２３は、各タスク１で算出された応答とスコア（確信度）を取得する（Ｓ１４）。
【００４２】
タスク実行制御部２３は、全てのタスク１から応答及びスコアの取得が完了すると（Ｓ１５）、タスク選択部２６は、取得したスコアの中から最大のスコア（１．０）に対応する応答（「晴れです」）を選択して回答生成部２７に出力する（Ｓ１６）。回答生成部２７は、タスク１から取得した応答に基づいて、入力テキストに対する応答文を生成する。テキスト出力部２８は、生成された応答文をテキストとして出力する（Ｓ１７）。
【００４３】
以上のように、本実施例１では、対話装置１０は入力されるテキストを投入するタスク１を選択せずに、全てのタスク１にテキストを投入する。各タスク１ではスコア算出部１１０が、算出された応答の確信度を算出し、応答と確信度を対にして対話装置１０へ送信する。対話装置１０では、確信度が最大の応答を最適な回答として選択し、ユーザの端末に出力する。
【００４４】
したがって、本実施例１の対話装置１０は、入力されたテキストを全てのタスク１に投入すれば良いので、前記従来例のように、タスク１を選択するためにモデルや規則を生成する必要が無いので、タスク１に変更があってもモデルや規則の修正が不要となって、対話システムの運用コストを低減できる。
【００４５】
また、対話サーバ１００で提供されるタスク１に増減があった場合は、タスク実行制御部２３がテキストを入力するタスク１を増減するだけで良いので、対話サーバ１００が提供するタスク１の増減に対しても、極めて容易にメンテナンスを実施することができる。
【００４６】
図４は、本発明の実施例１の変形例を示し、対話システムで行われる処理の概要を示す説明図である。図４の例では、各タスク１から取得したスコアをスコア正規化部２４で正規化した後に（Ｓ１０）、タスク選択部２６へ入力する点が図２に示した例と相違する。
【００４７】
開発元が異なる等の理由で、各タスク１のスコア算出部１１０で算出されるスコア（確信度）の値の範囲が異なる場合には、スコア正規化部２４がスコア正規化データ３１に基づいて、スコアの値を正規化してからタスク選択部２６へ出力する。なお、スコア正規化部２４０は、図４では、スコアの最小値を０、最大値を１とする例を示し、確信度＝１が最も確からしいことを示す。
【００４８】
スコア正規化データ３１は、対話サーバ１００が提供する各タスク１毎に予め設定されたテーブルである。スコア正規化データ３１は、タスク名３１１と、当該スコア算出部１１０が算出するスコアの最大値３１２と、当該スコア算出部１１０が算出するスコアの最小値３１３をひとつのエントリに含む。
【００４９】
そして、スコア正規化部２４は、次式によって、正規化スコアを算出する。
正規化スコア＝（スコア−最小値）／（最大値−最小値）    …（１）
【００５０】
以上のように、各タスク１のスコア算出部１１０が算出するスコアの値の範囲が異なる場合には、スコア正規化部２４でスコアを正規化し、正規化スコアをタスク選択部２６へ入力することで、複数のタスク１の応答の中から最適な応答を選択することができる。
【００５１】
図５は、本発明の実施例１の変形例を示し、対話システムで行われる処理の概要を示す説明図である。図５の例では、各タスク１から取得したスコアをスコア正規化部２４で正規化した後に、スコア重み付け部２５で正規化スコアに重み付けを行って（Ｓ１５）からタスク選択部２６へ入力する点が図４に示した変形例と相違する。対話サービスによっては、特定のタスクを重視したいことがある。例えば、乗り換え案内を提供するサービスでは、「今の状況は？」という問い合わせに対して、天候ではなく、電車の運行状況を答えたい。本変形例では、各タスク１に優先度を持たせることによって、上記を実現する。
【００５２】
各タスク１の優先度が異なる場合には、スコア重み付け部２５がスコア重み付けデータ３２に基づいて、正規化スコアの値を補正してからタスク選択部２６へ出力する。
【００５３】
スコア重み付けデータ３２は、対話サーバ１００が提供する各タスク１毎に予め設定されたテーブルである。スコア重み付けデータ３２は、タスク名３２１と、当該タスクに設定された重み３２２をひとつのエントリに含む。
【００５４】
そして、スコア重み付け部２５は、次式によって、重み付けスコアを算出する。
重み付けスコア＝正規化スコア×重み    …（２）
【００５５】
以上のように、各タスク１の優先度が異なる場合には、スコア重み付け部２５で正規化スコアを重みに応じて補正し、重み付けスコアをタスク選択部２６へ入力することで、複数のタスク１の応答の中から最適な応答を選択することができる。
【００５６】
図６は、本発明の実施例１の変形例を示し、対話システムで行われる処理の概要を示す説明図である。図６の例では、各タスク１から取得したスコアをスコア正規化部２４で正規化した後に、スコア重み付け部２５で正規化スコアに重み付けを行う際に（Ｓ１５）、タスク１の重みにタスク１間を遷移する重み（確率）を加えた点が図５に示した変形例と相違する。連続する対話では、同じトピック（タスク）が連続することが多い。例えば、ある場所の今日の天気を問い合わせた後には、同じ場所の降水確率を問い合わせることが多い。本変形例では、タスク１間に重みをもたせることによって、上記を実現する。
【００５７】
スコア重み付け部２５は、スコア重み付けデータ３２に加えて、前回の対話と今回の対話でタスク１間を遷移する重みを予め設定した遷移重みデータ３３と、対話の履歴を蓄積する対話履歴データ３４を有する。
【００５８】
遷移重みデータ３３は、前回のタスク１から天気予報タスク１−１へ遷移する確率を格納する天気予報３３１と、乗り換え案内１−２へ遷移する確率を格納する乗り換え案内３３２と、商品案内タスク１−３へ遷移する確率を格納する商品案内３３３を、ひとつのエントリに含む。
【００５９】
そして、スコア重み付け部２５は、次式によって、重み付けスコアを算出する。
重み付けスコア＝正規化スコア×重み×遷移重み    …（３）
ただし、遷移重みは、遷移重みデータ３３の確率とする。
【００６０】
以上のように、各タスク１の優先度が異なり、対話の内容がタスク１間で遷移する場合には、スコア重み付け部２５で正規化スコアをタスク１の重みと、遷移の重みに応じて補正し、重み付けスコアをタスク選択部２６へ入力することで、複数のタスク１の応答の中から最適な応答を選択することができる。
【００６１】
なお、対話履歴データ３４は、蓄積した対話の履歴からタスク１間の遷移確率を算出するために用いることができる。
【００６２】
図７は、本発明の実施例１の変形例を示し、対話システムで行われる処理の概要を示す説明図である。図７の例では、図６に示したタスク１間で遷移する確率に代わって、回答生成部２７が、シナリオモードと一問一答モードとの間で遷移する確率を設定したモード遷移重みデータ３５を用いる例を示す。
【００６３】
モード遷移重みデータ３５は、前回のモードから一問一答モードへ遷移する確率を格納する一問一答型タスク３５１と、シナリオモードへ遷移する確率を格納するシナリオ型タスク３５２を、ひとつのエントリに含む。
【００６４】
以上のように、回答生成部２７がシナリオモードまたは一問一答モードを切り替える場合には、モード間の遷移の重みに応じて正規化スコアを補正した重み付けスコアをタスク選択部２６へ入力することで、複数のタスク１の応答の中から最適な応答を選択することができる。
【実施例２】
【００６５】
図８は、本発明の実施例２を示し、対話システムで行われる処理の概要を示す説明図である。本実施例２では、対話サーバ１００の一つのタスクを利用して、照応解析を実施する例を示す。対話システムの構成は前期実施例１の図１と同様である。
【００６６】
テキスト入力部２１は、テキストを受け付けて対話履歴データ３４へ格納し（Ｓ２１）、当該テキストを質問解析部２２へ入力する。質問解析部２２では、テキストに指示語が含まれているか否かを判定し、指示語が含まれていれば、過去の対話データを対話履歴データ３４から取得して、指示語に対応する名詞を複数抽出する。質問解析部２２は、抽出した複数の名詞で複数の質問文を生成する（Ｓ２３）。
【００６７】
図示の例では、質問解析部２２が、形態素解析等を用いて、過去２回の対話データから名詞を抽出して、抽出した名詞を現在のテキストの指示語へ代入して複数の質問文（または入力文）を生成する例を示す。
【００６８】
次に、タスク実行制御部２３は、テキストに含まれる単語をｗｏｒｄ２ｖｅｃ等により分散表現を算出し、テキストの内容（文脈）に対応（類似）するタスク１を選択する（Ｓ２４）。図示の例では、テキストに含まれる単語＝「降水確率」が天気に対応するので、天気予報タスク１−１が選択される。そして、タスク実行制御部２３は、生成された複数の質問文を、天気予報タスク１−１に入力して実行させる（Ｓ２５）。
【００６９】
タスク実行制御部２３は、全ての質問文に対する応答とスコア（信頼度）を受信すると、タスク選択部２６へ出力する。タスク選択部２６では、複数の応答の中から最もスコアの高い（１．０）応答「１０％です」を選択して、指示語を含んだテキストに対する応答として回答生成部２７へ出力する（Ｓ２６）。
【００７０】
なお、上記では、テキストの内容に対応するタスク１を選択して、複数の質問文を入力する例を示したが、前記実施例１と同様に、全てのタスク１に複数の質問文を入力しても良い。
【００７１】
以上のように、本実施例２では、テキストに含まれる指示語の照応先を同定してタスク１を実行したことと同等の結果を得ることが可能となる。タスク１を実行する前に指示語の同定を行うのではなく、考えられる照応先全てに対してタスクを実行して事後に選択している。本実施例２により、指示語が含まれるテキストの対話処理を極めて容易に実現することが可能となる。また、シナリオにより対話の流れが決まっている場合は、対話の成功／失敗により指示語を同定することで、対話の流れに沿った指示語の同定を用意に実現することが可能となる。
【００７２】
＜まとめ＞
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。
【００７３】
また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【００７４】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【００７５】
１−１  天気予報タスク
１−２  乗り換え案内タスク
１−３  商品案内タスク
１０  対話装置
１１  ＣＰＵ
１２  メモリ
１３  通信部
１４  ストレージ装置
１５  インターコネクト
１６  ネットワーク
２１  テキスト入力部
２２  質問解析部
２３  タスク実行制御部
２４  スコア正規化部
２５  スコア重み付け部
２６  タスク選択部
２７  回答生成部
２８  テキスト出力部
３１  スコア正規化データ
３２  スコア重み付けデータ
１００  対話サーバ１００
【図１】
2020027466.tif 000003
【図２】
2020027466.tif 000004
【図３】
2020027466.tif 000005
【図４】
2020027466.tif 000006
【図５】
2020027466.tif 000007
【図６】
2020027466.tif 000008
【図７】
2020027466.tif 000009
【図８】
2020027466.tif 000010