(57)【特許請求の範囲】
【請求項１】
コンピュータに、
発話に含まれる単語と、前記発話に対して応答される応答発話に含まれる単語との組み合わせに対応する複数の確信度を記憶し、
ユーザの発話を示すユーザ発話を検出し、
前記ユーザ発話に対する前記応答発話を示すユーザ応答発話に対応する複数の応答候補を、複数の異なる対話機能から取得し、
前記ユーザ発話に含まれる前記単語と、複数の前記応答候補に含まれる前記単語との複数の前記組み合わせを抽出し、
抽出された複数の前記組み合わせに対応付けられる前記確信度に基づいて、複数の前記応答候補から、前記ユーザ応答発話を選択して出力する
処理を実行させることを特徴とする対話処理プログラム。
【請求項２】
前記取得する処理は、複数の前記応答候補を、前記ユーザ発話に対して挨拶に関する前記ユーザ応答発話を応答する第１の対話機能、前記ユーザ発話に対して成り立つと想定される会話に関する前記ユーザ応答発話を応答する第２の対話機能、前記ユーザ発話に対して定義に関する前記ユーザ応答発話を応答する第３の対話機能、前記ユーザ発話に対して前記ユーザの現在地の天気予報に関する前記ユーザ応答発話を応答する第４の対話機能から取得することを特徴とする請求項１に記載の対話処理プログラム。
【請求項３】
前記出力する処理は、複数の前記組み合わせに対応付けられる前記確信度を用いて、複数の前記応答候補を評価し、評価結果に基づいて、複数の前記応答候補から前記ユーザ応答発話を選択して出力することを特徴とする請求項１に記載の対話処理プログラム。
【請求項４】
前記出力する処理は、複数の前記応答候補について、前記ユーザ発話との間で抽出される複数の前記組み合わせに対応する前記確信度を合計した合計値を算出し、算出された前記合計値が最も高い前記応答候補を、前記ユーザ応答発話に選択して出力することを特徴とする請求項２に記載の対話処理プログラム。
【請求項５】
前記ユーザ発話と前記ユーザ応答発話とを含む対話の履歴を記憶し、
前記ユーザ発話に、対話の終了を表現する単語が含まれているか否かによって評価値を算出し、
前記対話に含まれる前記ユーザ発話と前記ユーザ応答発話とから前記組み合わせを抽出し、
抽出された前記組み合わせと対応付けられる前記確信度を、前記評価値を用いて更新する処理を、前記コンピュータにさらに実行させることを特徴とする請求項１から３のいずれか一つに記載の対話処理プログラム。
【請求項６】
前記ユーザ発話と前記ユーザ応答発話とを含む対話の履歴を記憶し、
前記ユーザ発話と１つ前の前記ユーザ発話との類似度によって評価値を算出し、
前記対話に含まれる前記ユーザ発話と前記ユーザ応答発話とから前記組み合わせを抽出し、
抽出された前記組み合わせと対応付けられる前記確信度を、前記評価値を用いて更新する処理をさらに実行させることを特徴とする請求項１から３のいずれか一つに記載の対話処理プログラム。
【請求項７】
前記ユーザ発話と前記ユーザ応答発話とを含む対話の履歴を記憶し、
前記ユーザ発話に、対話を強制的に制御する単語が含まれているか否かによって評価値を算出し、
前記対話に含まれる前記ユーザ発話と前記ユーザ応答発話とから前記組み合わせを抽出し、
抽出された前記組み合わせと対応付けられる前記確信度を、前記評価値を用いて更新する処理をさらに実行させることを特徴とする請求項１から３のいずれか一つに記載の対話処理プログラム。
【請求項８】
コンピュータが、
発話に含まれる単語と、前記発話に対して応答される応答発話に含まれる単語との組み合わせに対応する複数の確信度を記憶し、
ユーザの発話を示すユーザ発話を検出し、
前記ユーザ発話に対する前記応答発話を示すユーザ応答発話に対応する複数の応答候補を、複数の異なる対話機能から取得し、
前記ユーザ発話に含まれる前記単語と、複数の前記応答候補に含まれる前記単語との複数の前記組み合わせを抽出し、
抽出された複数の前記組み合わせに対応付けられる前記確信度に基づいて、複数の前記応答候補から、前記ユーザ応答発話を選択して出力する
処理を実行することを特徴とする対話処理方法。
【請求項９】
発話に含まれる単語と、前記発話に対して応答される応答発話に含まれる単語との組み合わせに対応する複数の確信度を記憶する記憶部と、
ユーザの発話を示すユーザ発話を検出する検出部と、
前記ユーザ発話に対する前記応答発話を示すユーザ応答発話に対応する複数の応答候補を、複数の異なる対話機能から取得する取得部と、
前記ユーザ発話に含まれる前記単語と、複数の前記応答候補に含まれる前記単語との複数の前記組み合わせを抽出する抽出部と、
抽出された複数の前記組み合わせに対応付けられる前記確信度に基づいて、複数の前記応答候補から、前記ユーザ応答発話を選択して出力する出力部と
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対話処理プログラム、対話処理方法および情報処理装置に関する。
【背景技術】
【０００２】
コンピュータシステムのインタフェースとして、ボタンやコマンドなどが一般的であったが、近年では、日常的に使用される言語などを用いた対話システムにより、コンピュータシステムへの情報入力やコンピュータシステムからの情報提示が行われている。
【０００３】
例えば、音声認識、言語理解、対話シナリオを有する複数の対話システムを備え、ユーザからの音声入力に応じて対話システムを切り替え、切り替えた対話システムを用いてユーザとの対話を行う技術が知られている。また、ユーザの嗜好と対話シナリオとを対応付けて管理し、ユーザに対応した対話シナリオを用いて、ユーザとの対話を行う技術が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−４７４８８号公報
【特許文献２】特開２０１５−２２１３４号公報
【特許文献３】特開２００４−３１００３４号公報
【特許文献４】特開２００８−８３１００号公報
【特許文献５】特開２００５−２０２０３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記技術では、予め予測した対話ペアを保持し、ユーザの発話に対応する応答を対話ペアから検索して応答するので、対話における文脈上の情報や対話している相手の情報を加味した発話ができず、対話が不自然になる。
【０００６】
例えば、上記技術では、「発話、応答」として「こんにちは、こんにちは」や「疲れた、大変でしたね」などの対話ペアを用意しておくので、対話ペアの範囲内でしか応答できない。このため、シチュエーション等に関係なく、決まった応答になるので対話が不自然になる場合がある。また、対話ペアに登録されていない発話に対しては、応答することが難しい。
【０００７】
１つの側面では、自然な対話を行うことができる対話処理プログラム、対話処理方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
第１の案では、対話処理プログラムは、コンピュータに、発話に含まれる単語と、前記発話に対して応答される応答発話に含まれる単語との組み合わせに対応する複数の確信度を記憶する処理を実行させる。対話処理プログラムは、コンピュータに、ユーザの発話を示すユーザ発話を検出する処理と、前記ユーザ発話に対する前記応答発話を示すユーザ応答発話に対応する複数の応答候補を、複数の異なる対話機能から取得する処理を実行させる。対話処理プログラムは、コンピュータに、前記ユーザ発話に含まれる前記単語と、複数の前記応答候補に含まれる前記単語との複数の前記組み合わせを抽出する処理を実行させる。対話処理プログラムは、コンピュータに、抽出された複数の前記組み合わせに対応付けられる前記確信度に基づいて、複数の前記応答候補から、前記ユーザ応答発話を選択して出力する処理を実行させる。
【発明の効果】
【０００９】
一実施形態によれば、自然な対話を行うことができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１にかかる対話システムを説明する図である。
【図２】図２は、実施例１にかかるスマートフォンの機能構成を示す機能ブロック図である。
【図３】図３は、発話履歴ＤＢに記憶される情報の例を示す図である。
【図４】図４は、終了表現ＤＢに記憶される情報の例を示す図である。
【図５】図５は、制御表現ＤＢに記憶される情報の例を示す図である。
【図６】図６は、ユーザモデルＤＢに記憶される情報の例を示す図である。
【図７】図７は、学習処理を説明する図である。
【図８】図８は、発話選択を説明する図である。
【図９】図９は、対話処理の全体の流れを示すフローチャートである。
【図１０】図１０は、学習処理の流れを示すフローチャートである。
【図１１】図１１は、発話候補取得処理の流れを示すフローチャートである。
【図１２】図１２は、発話選択処理の流れを示すフローチャートである。
【図１３】図１３は、学習前の応答の具体例を説明する図である。
【図１４】図１４は、対話機能の選択および学習の具体例を説明する図である。
【図１５】図１５は、同一対話機能内による発話および学習の具体例１を説明する図である。
【図１６】図１６は、同一対話機能内による発話および学習の具体例２を説明する図である。
【図１７】図１７は、ハードウェア構成例を説明する図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示する対話処理プログラム、対話処理方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１２】
［対話システムの説明］
図１は、実施例１にかかる対話システムを説明する図である。本実施例では、一例として、スマートフォン１０を例にして説明するが、これに限定されるものではなく、パーソナルコンピュータ、ノートパソコン、携帯電話などの移動体端末、サーバなどのコンピュータ機器についても同様に処理することができる。
【００１３】
図１に示すように、スマートフォン１０は、対話機能Ａ、対話機能Ｂ、対話機能Ｃ、対話機能Ｄの複数の対話システムを有する。なお、対話機能の例については後述するが、例えば定型表現を応答する機能や挨拶を応答する機能など公知の様々な対話アプリケーションを採用することができる。なお、ここでは、４つの対話機能を図示したが、これに限定されるものではなく、任意の数を採用することができる。
【００１４】
また、スマートフォン１０は、人間すなわちユーザとの対話を通じて、対話の中からユーザの関心事を推測して情報を蓄積するユーザモデルを保持する。なお、ユーザモデルは、１人のユーザとの対話から学習するものに限らず、複数人のユーザつまり人間との対話から学習するものも含む。
【００１５】
このようなスマートフォン１０は、ユーザ１の発話をマイク等で検出すると、検出した発話の内容を対話機能ＡからＤのそれぞれに入力する。そして、スマートフォン１０は、対話機能Ａからの応答候補Ａ、対話機能Ｂからの応答候補Ｂ、対話機能Ｃからの応答候補Ｃ、対話機能Ｄからの応答候補Ｄのそれぞれを抽出する。例えば、各対話機能は、入力されたユーザの発話に対する応答候補を抽出する処理を実行し、応答候補を絞りこんで、確信度が最も高い発話候補を確信度付きで抽出する。なお、本実施例では、ユーザの発話をユーザ発話と記載する場合があり、確信度をスコアと記載する場合がある。
【００１６】
そして、スマートフォン１０は、ユーザモデルを用いて各応答候補の確信度を算出する。その後、スマートフォン１０は、応答候補ＡからＤの中から、算出された確信度が最も高い応答候補を選択し、システム発話として応答候補をユーザ１に応答する。
【００１７】
このようにして、スマートフォン１０は、過去のユーザとの発話履歴やユーザ１の発話などから対話の継続性、対話リピート性、対話の終了制御などを推定し、各対話機能から出力された各応答候補の各確信度を更新して、応答候補を絞りこんで応答する。この結果、スマートフォン１０は、対話における文脈上の情報や対話している相手の情報を加味した発話を行うことができるので、自然な対話を行うことができる。
【００１８】
［機能構成］
図２は、実施例１にかかるスマートフォン１０の機能構成を示す機能ブロック図である。図２に示すように、スマートフォン１０は、通信部１１、記憶部１２、制御部２０を有する。通信部１１は、他の装置の通信を制御してデータの送受信を実行する処理部であり、例えば無線インタフェースなどである。
【００１９】
記憶部１２は、制御部２０が実行するプログラムや各種データを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部１２は、発話履歴ＤＢ１３、終了表現ＤＢ１４、制御表現ＤＢ１５、ユーザモデルＤＢ１６を記憶する。
【００２０】
発話履歴ＤＢ１３は、ユーザ１とスマートフォン１０との間の対話履歴を記憶するデータベースである。具体的には、発話履歴ＤＢ１３は、スマートフォン１０が検出したユーザの発話と、当該発話に対するスマートフォン１０の応答とを記憶する。
【００２１】
図３は、発話履歴ＤＢ１３に記憶される情報の例を示す図である。図３に示すように、発話履歴ＤＢ１３は、「タイムスタンプ、話者、発話内容」を対応付けて記憶する。ここで記憶される「タイムスタンプ」は、発話が実行された時間である。「話者」は、発話した人またはスマートフォン１０であり、人による発話の場合は「ユーザ」が記憶され、スマートフォン１０による発話の場合は「システム」が記憶される。「発話内容」は、検出された発話の内容が記憶され、ユーザによる発話の場合は、検出された発話内容がそのまま記憶され、システムによる発話の場合は、発話内容と当該発話内容を抽出した対話機能とが対応付けて記憶される。
【００２２】
図３の例の場合、「10：29：04」に「ユーザ」によって「今日の天気は何？」が発話され、「10：29：06」に「システム」によって「挨拶」の対話機能すなわち対話アプリケーションを用いて、「こんにちは」が発話されたことを示す。
【００２３】
終了表現ＤＢ１４は、対話の終了を示唆する発話の内容を記憶するデータベースである。具体的には、終了表現ＤＢ１４は、ユーザが強制的にシステムとの対話を終了するために使用すると推測される発話の内容を記憶する。
【００２４】
図４は、終了表現ＤＢ１４に記憶される情報の例を示す図である。図４に示すように、終了表現ＤＢ１４は、「もういい、使えない、だめだ」などを記憶する。つまり、スマートフォン１０は、「もういい、使えない、だめだ」などの発話を検出した場合に、ユーザが対話を強制的に終了し、対話が自然に続かなかった可能性が高いと判定する。
【００２５】
制御表現ＤＢ１５は、対話を制御する発話の内容を記憶するデータベースである。具体的には、制御表現ＤＢ１５は、ユーザが対話の流れに逆らって何らかの制御を行っていると予想される発話の内容を記憶する。
【００２６】
図５は、制御表現ＤＢ１５に記憶される情報の例を示す図である。図５に示すように、制御表現ＤＢ１５は、「もう一度、何？、だめだ」などを記憶する。つまり、スマートフォン１０は、「もう一度、何？、だめだ」などの発話を検出した場合に、ユーザが対話の流れに関係なく、同じ質問を再度行う制御やシステム発話を聞き直す制御などをユーザが望んでいる可能性が高いと判定する。
【００２７】
ユーザモデルＤＢ１６は、人間すなわちユーザ１との対話を通じて、対話の中からユーザの関心事を推測して情報を蓄積するデータベースである。具体的には、ユーザモデルＤＢ１６は、スマートフォン１０がこれまでに対話した各ユーザとの発話履歴に基づいて、人間が望んでいると予想される対話内容とその対話内容のスコアを学習して記憶する。なお、ここで記憶される情報は、後述する学習部２５によって更新される。
【００２８】
図６は、ユーザモデルＤＢ１６に記憶される情報の例を示す図である。図６に示すように、ユーザモデルＤＢ１６は、「モデル，スコア」を対応付けて記憶する。ここで記憶される「モデル」は、ユーザの発話、システムの発話、ユーザとシステムとの対話の内容を特定する情報が記憶される。「スコア」は、モデルの確からしさ、確信度や信頼度などを示す情報であり、数字が大きいほど対話が成り立つ可能性が高いと推測される。
【００２９】
図６の例では、ユーザモデルＤＢ１６は、モデル「Ｕ１＿今日，Ｓ１＿［挨拶］」のスコアを「−０．３」と記憶し、モデル「Ｕ１＿今日，Ｓ１＿こんにちは」のスコアを「０．１」と記憶する例を示す。ここで、モデルには、「発話者＋発話順＿発話内容」もしくは「発話者＋発話順＿［対話機能］」の形式で情報が記憶される。例えば、図６の１行目は、ユーザによる１番目の発話内容に含まれる単語「今日」と、システムによる１番目の発話に使用された対話機能「挨拶」との組み合わせのスコアが「−０．３」であることを示す。また、図６の２行目は、ユーザによる１番目の発話内容に含まれる単語「今日」と、システムによる１番目の発話内容に含まれる単語「こんにちは」との組み合わせのスコアが「０．１」であることを示す。
【００３０】
制御部２０は、スマートフォン１０全体の処理を司る処理部であり、例えばプロセッサなどである。この制御部２０は、発話記録部２１、学習部２５、候補取得部３０、発話選択部３５を有する。なお、発話記録部２１、学習部２５、候補取得部３０、発話選択部３５は、例えばプロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例などである。
【００３１】
発話記録部２１は、ユーザの発話やスマートフォン１０による発話を検出した場合に、発話履歴ＤＢ１３に格納する処理部である。例えば、発話記録部２１は、図示しないマイクなどの集音部を介して、「10：12：10」に「元気ですか」の発話を検出した場合、「タイムスタンプ＝10：12：10、話者＝ユーザ、発話内容＝元気ですか」を発話履歴ＤＢ１３に格納する。また、発話記録部２１は、スマートフォン１０が対話機能「挨拶」を用いて「10：12：15」に「はい」の発話を行った場合、「タイムスタンプ＝10：12：15、話者＝システム、発話内容＝はい［挨拶］」を発話履歴ＤＢ１３に格納する。なお、発話記録部２１は、検出部の一例である。
【００３２】
学習部２５は、対話評価部２６、抽出部２７、更新部２８を有し、ユーザとシステムとの対話の履歴に基づいて、ユーザモデルＤＢ１６を学習する処理部である。具体的には、学習部２５は、ユーザの発話内容が発話履歴ＤＢ１３に登録された場合に、予め定められた数の発話を発話履歴ＤＢ１３から読み出し、読み出した発話に含まれる単語の組み合わせ等から、ユーザの関心事等を推測してユーザモデルＤＢ１６を学習する。なお、学習部２５は、抽出部の一例である。
【００３３】
対話評価部２６は、対話の継続性、対話リピート性、対話制御性の観点から、対話を評価する処理部である。例えば、対話の継続性とは、ユーザの発話とシステムの発話とが意味をなして継続しているかどうかを判定するものである。対話リピート性は、同じ発話が必要以上に繰り返されていないかを判定するものである。対話制御性は、ユーザが対話をある方向に強制的に導こうとしているかを判定するものである。
【００３４】
そして、対話評価部２６は、対話の継続性、対話リピート性、対話制御性の観点から、ユーザの最新の発話に対して評価値を算出し、抽出部２７や更新部２８などに出力する。
【００３５】
（対話の継続性判定）
具体的には、対話評価部２６は、発話記録部２１によって検出された最新のユーザ発話を発話履歴ＤＢ１３から読み出し、発話内容が終了表現ＤＢ１４に登録されているか否かを判定する。そして、対話評価部２６は、終了表現ＤＢ１４に登録される単語が最新のユーザ発話に含まれる場合は、評価値に「−１」を加算し、終了表現ＤＢ１４に登録される単語が最新のユーザ発話に含まれない場合は、評価値に「１」を加算する。
【００３６】
（対話リピート性判定）
具体的には、対話評価部２６は、対象の最新のユーザ発話（ｕ１）と、１つ前のユーザ発話（ｕ２）とを発話履歴ＤＢ１３から読み出し、類似度（ｓｉｍ（ｕ１，ｕ２））を算出する。そして、対話評価部２６は、この類似度を用いて、「１−ｓｉｍ（ｕ１，ｕ２）×２」を算出して、算出した値を評価値に加算する。この評価値「１−ｓｉｍ（ｕ１，ｕ２）×２」は、類似度が高いほど「−１」に近くなる。
【００３７】
ここで類似度（ｓｉｍ（ｕ１，ｕ２））については公知の様々な手法を採用することができる。例えば、ｕ１とｕ２とでどのくらい同じ単語が使われているかなどを用いて類似度を判定することができる。
【００３８】
（対話接続性判定）
具体的には、対話評価部２６は、発話記録部２１によって検出された最新のユーザ発話を発話履歴ＤＢ１３から読み出し、発話内容が制御表現ＤＢ１５に登録されているか否かを判定する。そして、対話評価部２６は、制御表現ＤＢ１５に登録される単語が最新のユーザ発話に含まれる場合は、評価値に「−１」を加算し、制御表現ＤＢ１５に登録される単語が最新のユーザ発話に含まれない場合は、評価値に「１」を加算する。
【００３９】
図２に戻り、抽出部２７は、対話の履歴から、ユーザ発話に出現する場所や日時などのトピック、システム発話に用いられた対話機能やその発話に出現するトピックなどを含む対話トピックを抽出する処理部である。具体的には、抽出部２７は、予め定めた件数に該当するユーザ発話とシステム発話とを含む対話を発話履歴ＤＢ１３から読み出す。続いて、抽出部２７は、各発話について、形態素解析等により単語を抽出する。そして、抽出部２７は、抽出した各単語について、ユーザ発話から抽出されたのかシステム発話から抽出されたのかが特定できるとともにユーザモデルＤＢ１６に記憶されるモデルと同形式となるように記号化し、記号化した情報を更新部２８に出力する。
【００４０】
更新部２８は、抽出部２７に抽出された各記号化された情報と、対話評価部２６によって算出された評価値とを用いて、ユーザモデルＤＢ１６に記憶される各モデルのスコア値を更新する処理部である。具体的には、更新部２８は、各記号化された情報から要素を取り出し、当該要素と同じモデルをユーザモデルＤＢ１６から検索する。そして、更新部２８は、該当するモデルのスコアに、対話評価部２６によって算出された評価値を加算する。このようにして、ユーザモデルＤＢ１６のモデルが更新される。
【００４１】
（学習処理）
ここで、学習処理について具体的に説明する。図７は、学習処理を説明する図である。図７に示すように、ユーザ発話とシステム発話とが発話履歴ＤＢ１３に登録されている状態で、「10：29：12」にユーザ発話「だから天気は何？」が新たに登録されたとする。そして、この発話に対して、対話評価部２６が評価値として「０．２」を算出したとする。
【００４２】
この状態で、抽出部２７は、予め指定された過去２件の対話に該当する発話「10：29：06、システム、こんにちは［挨拶］」と「10：29：04、ユーザ、今日の天気は？」を読み出す（Ｓ１）。続いて、抽出部２７は、読み出したユーザ発話の発話内容「今日の天気は？」から単語として「今日」と「天気」を抽出し、同様に、システム発話の発話内容「こんにちは」から単語「こんにちは」と利用した対話機能「［挨拶］」を抽出する（Ｓ２）。
【００４３】
そして、抽出部２７は、ユーザ発話の単語「今日、天気」とシステム発話の単語「こんにちは、［挨拶］」とを記号化する（Ｓ３）。具体的には、抽出部２７は、話者を示す情報と発話順と単語とを組み合わせて、「Ｕ１＿今日、Ｕ１＿天気、Ｓ１＿こんにちは、Ｓ１＿［挨拶］」を生成する。ここで、「Ｕ」は、ユーザ発話を示し、「Ｓ」は、システム発話を示し、「１」は発話順を示す。なお、最新にユーザ発話から１つ前の対話（ユーザ発話およびシステム発話）については「１」が設定され、２つ前の対話（ユーザ発話およびシステム発話）については「２」が設定される。
【００４４】
続いて、抽出部２７は、記号化された各記号の組み合わせを生成して要素を抽出し（Ｓ４）、各要素に対話評価部２６が算出した評価値「０．２」を対応付ける（Ｓ５）。具体的には、抽出部２７は、記号「Ｕ１＿今日、Ｕ１＿天気、Ｓ１＿こんにちは、Ｓ１＿［挨拶］」から、要素「Ｕ１＿今日」、要素「Ｕ１＿天気」、要素「Ｓ１＿こんにちは」、要素「Ｓ１＿［挨拶］」、要素「Ｕ１＿今日，Ｓ１＿［挨拶］」、要素「Ｕ１＿天気，Ｓ１＿［挨拶］」、要素「Ｕ１＿今日，Ｓ１＿こんにちは」、要素「Ｕ１＿天気，Ｓ１＿こんにちは」を生成する。そして、抽出部２７は、生成した各要素に評価値「０．２」を付与する。なお、組み合わせの手法は、Ｕ１とＳ１の組み合わせだけや全ての組み合わせを含めるなど任意に設定することができる。
【００４５】
その後、更新部２８は、抽出部２７によって生成された各要素と評価値とに基づいて、ユーザモデルＤＢ１６を更新する（Ｓ６）。例えば、更新部２８は、抽出された要素「Ｕ１＿今日，Ｓ１＿［挨拶］」がユーザモデルＤＢ１６に記憶されているので、記憶されるスコア「−０．３」に評価値「０．２」を加算して、新たなスコア「−０．１」に更新する。また、更新部２８は、抽出された要素「Ｕ１＿今日」がユーザモデルＤＢ１６に記憶されていないので、モデル「Ｕ１＿今日」と評価値「０．２」とを有するレコードを、ユーザモデルＤＢ１６に格納する。
【００４６】
このようにして、学習部２５は、ユーザ発話を検出するたびに、評価値の算出、対話のトピックの抽出、要素の抽出を行って、該当するモデルのスコアを更新する。
【００４７】
図２に戻り、候補取得部３０は、挨拶処理部３１、会話表現処理部３２、定義処理部３３、天気処理部３４などの複数の対話機能それぞれを用いて、複数の発話候補を取得する処理部である。具体的には、候補取得部３０は、ユーザ発話を各対話機能に入力して、各対話機能から発話候補を取得して発話選択部３５に出力する。なお、候補取得部３０は、取得部の一例である。
【００４８】
ここで、図２に示した挨拶処理部３１、会話表現処理部３２、定義処理部３３、天気処理部３４などの対話機能は、一般的な対話アプリケーションに該当する。したがって、図示した機能や数に限定されるものではなく、任意の機能や任意の機能数を採用することができる。
【００４９】
例えば、挨拶処理部３１は、挨拶に関する応答を行う対話アプリケーションに該当する。例を挙げると、挨拶処理部３１は、「入力発話、応答発話、スコア値」として「おはよう、おはよう、１．０」や「おはよう、こんにちは、−０．７」などを対応付けて記憶する。そして、挨拶処理部３１は、発話記録部２１によって検出された最新のユーザ発話を入力発話として検索し、該当する「応答発話、スコア値」を発話候補として選択する。
【００５０】
また、会話表現処理部３２は、成り立つと想定される会話を応答する対話アプリケーションに該当する。例を挙げると、会話表現処理部３２は、「入力発話、応答発話、スコア値」として「よい天気ですね、そうですね、０．２」や「よい天気ですね、そうでしょうか、−０．２」などを対応付けて記憶する。そして、会話表現処理部３２は、発話記録部２１によって検出された最新のユーザ発話を入力発話として検索し、該当する「応答発話、スコア値」を発話候補として選択する。
【００５１】
また、定義処理部３３は、定義を応答する対話アプリケーションに該当する。例を挙げると、定義処理部３３は、「入力発話、応答発話、スコア値」として「天気は？、天気とはある地点の・・・、−０．７」などを対応付けて記憶する。そして、会話表現処理部３２は、発話記録部２１によって検出された最新のユーザ発話を入力発話として検索し、該当する「応答発話、スコア値」を発話候補として選択する。
【００５２】
また、天気処理部３４は、外部サーバから現在地の天気情報を取得して応答する対話アプリケーションに該当する。例を挙げると、天気処理部３４は、発話記録部２１によって検出された最新のユーザ発話を受け付けると、当該ユーザ発話を受け付けた位置をＧＰＳ（Global  Positioning  System）などで特定する。そして、天気処理部３４は、特定した位置の天気を外部サーバから取得して、取得した天気情報を発話候補として選択する。
【００５３】
発話選択部３５は、候補取得部３０によって取得された各発話候補を、ユーザモデルＤＢ１６に記憶されるスコア値によって評価し、最も評価値が高い発話候補を選択してユーザ１に応答する処理部である。なお、発話選択部３５は、出力部の一例である。
【００５４】
具体的には、発話選択部３５は、各発話候補について、学習部２５と同様の処理である対話トピックの抽出と要素の抽出を行う。そして、発話選択部３５は、各発話候補について抽出された複数の要素それぞれに対応するスコアを、ユーザモデルＤＢ１６から特定し、スコアの合計値を算出する。その後、発話選択部３５は、要素のスコアの合計値が最も高い発話候補を選択して応答するとともに、システム発話として発話履歴ＤＢ１３に登録する。
【００５５】
ここで、発話選択について具体的に説明する。図８は、発話選択を説明する図である。なお、ここでは対話機能として、定義処理部３３と天気処理部３４の２つの対話機能を有している例で説明する。
【００５６】
図８に示すように、候補取得部３０は、発話記録部２１によって検出されたユーザ発話「だから天気は何？」が入力されると、天気処理部３４から「スコア、発話候補」として（１）「０．３、今日の天気は晴れです」と取得し、定義処理部３３から（２）「０．２、天気とはある地点に〜」を取得する（Ｓ１０）。
【００５７】
続いて、発話選択部３５は、（１）について形態素解析を行って単語と使用した対話機能を抽出して、（１）「今日、天気、晴れ、・・・、［天気］」を抽出し、（２）について（２）「天気、ある、地点、・・・、［定義］」を抽出する（Ｓ１１）。
【００５８】
そして、発話選択部３５は、ユーザ発話と（１）の組と、ユーザ発話と（２）の組のそれぞれについて上述した記号化を行って、（１）「Ｕ１＿だから、Ｕ１＿天気、Ｓ１＿今日、Ｓ１＿［天気］、・・・」を抽出し、（２）「Ｕ１＿だから、Ｕ１＿天気、Ｓ１＿天気、Ｓ１＿地点、Ｓ１＿［定義］、・・・」を抽出する（Ｓ１２）。
【００５９】
続いて、発話選択部３５は、（１）と（２）について上述した要素の抽出を行う（Ｓ１３）。例えば、発話選択部３５は、（１）について（１）要素「｛Ｕ１＿だから｝、｛Ｓ１＿［天気］｝、・・・、｛Ｕ１＿だから，Ｓ１＿［天気］｝、・・・」を抽出する。同様に、発話選択部３５は、（２）について、（２）要素「｛Ｕ１＿だから｝、｛Ｓ１＿［定義］｝、・・・」を抽出する。
【００６０】
さらに、発話選択部３５は、（１）と（２）について、ユーザモデルＤＢ１６を参照して、各要素のスコアの抽出を行う（Ｓ１４）。例えば、発話選択部３５は、（１）の要素｛Ｕ１＿だから｝についてスコア「０．２」、要素｛Ｕ１＿だから，Ｓ１＿［天気］｝についてスコア「０．２」などを抽出する。同様に、発話選択部３５は、（２）の要素｛Ｕ１＿だから｝についてスコア「０．２」、要素｛Ｓ１＿［定義］｝についてスコア「−０．２」などを抽出する。ここで、ユーザモデルＤＢ１６に記憶されていない要素についてはスコアを「０」とすることもできる。
【００６１】
その後、発話選択部３５は、（１）と（２）のそれぞれについて、要素のスコアの合計値を算出する（Ｓ１５）。例えば、発話選択部３５は、（１）について、『（要素｛Ｕ１＿だから｝のスコア「０．２」）＋（要素｛Ｓ１＿［天気］｝のスコア「０．３」）＋（要素｛Ｕ１＿だから，Ｓ１＿［天気］｝のスコア「０．２」）＋・・・』を計算して合計値「４．２」を算出する。同様に、発話選択部３５は、（２）について、『（要素｛Ｕ１＿だから｝のスコア「０．２」）＋（要素｛Ｓ１＿［定義］｝のスコア「−０．２」）＋・・・』を計算して合計値「−０．７」を算出する。
【００６２】
この結果、発話選択部３５は、合計値が大きい（１）の「今日の天気は晴れです」を応答として選択し、ユーザ１に発話する（Ｓ１６）。
【００６３】
また、合計値が最大の候補を選択する方法以外に、候補の合計値に応じた確率分布によって候補を選択する方法を取ることもできる。こうすることにより、新しく追加された対話機能から出力された候補や、これまでは好まれなかった発話が再度使われて再学習されるチャンスを得ることができ、システムの応答が局所的に偏ることを防ぐことができる。
【００６４】
［処理の流れ］
次に、図９から図１３を用いて、スマートフォン１０が実行する対話処理を説明する。ここでは、対話処理の全体的な流れ、学習処理、発話候補の取得処理、発話選択処理について説明する。
【００６５】
（全体的な処理の流れ）
図９は、対話処理の全体の流れを示すフローチャートである。図９に示すように、スマートフォン１０の発話記録部２１は、ユーザ１の発話を検出すると（Ｓ１０１：Ｙｅｓ）、発話履歴ＤＢ１３に発話を記録する（Ｓ１０２）。
【００６６】
続いて、学習部２５が学習処理を実行してユーザモデルＤＢ１６を学習し（Ｓ１０３）、候補取得部３０が発話候補取得処理を実行して、各対話機能から発話候補を取得し（Ｓ１０４）、発話選択部３５が発話選択処理を実行して複数の発話候補の中から１つの発話を選択する（Ｓ１０５）。
【００６７】
その後、発話選択部３５は、選択した発話候補を発話として発話履歴ＤＢ１３に記録し（Ｓ１０６）、応答としてユーザ１に発話する（Ｓ１０７）。そして、対話を終了する処理等を受け付けずに、対話を継続する場合（Ｓ１０８：Ｎｏ）、Ｓ１０１以降を繰り返し、対話を終了する場合（Ｓ１０８：Ｙｅｓ）、処理を終了する。
【００６８】
（学習処理の流れ）
図１０は、学習処理の流れを示すフローチャートである。図１０に示す学習処理は、対話評価処理（Ｓ２０１からＳ２０５）とトピック抽出処理（Ｓ２０６からＳ２０９）とモデル学習処理（Ｓ２１０からＳ２１３）とを含む。
【００６９】
具体的には、図１０に示すように、対話評価部２６は、最新のユーザ発話を取得すると（Ｓ２０１）、対話の継続性を判定し（Ｓ２０２）、対話のリピート性を判定し（Ｓ２０３）、対話の制御性を判定して（Ｓ２０４）、最新のユーザ発話の評価値を算出する（Ｓ２０５）。なお、各判定は順不同である。
【００７０】
続いて、抽出部２７は、過去Ｘ件の発話を発話履歴ＤＢ１３から取得し（Ｓ２０６）、各発話を単語に分割し（Ｓ２０７）、各発話を記号化し（Ｓ２０８）、対話トピックを抽出する（Ｓ２０９）。なお、過去Ｘ件は、任意に設定することができるが、ユーザとシステムとの対話を抽出する意図から２件以上が好ましい。
【００７１】
その後、更新部２８は、各対話トピックから要素を抽出する（Ｓ２１０）。例えば、更新部２８は、各発話から取得されて記号化された情報から要素を抽出する。そして、更新部２８は、要素を１つ選択し（Ｓ２１１）、ユーザモデルＤＢ１６で当該要素に対応するスコアに、Ｓ２０５で算出された評価値を加算して学習する（Ｓ２１２）。なお、更新部２８は、Ｓ２１０からＳ２１２までの処理を、Ｓ２０６で抽出された全発話について実行する。そして、更新部２８は、全要素について学習が終了するまで（Ｓ２１３：Ｎｏ）、Ｓ２１１以降を繰り返し、全要素について学習が終了すると（Ｓ２１３：Ｙｅｓ）、処理を終了する。
【００７２】
（発話候補取得処理の流れ）
図１１は、発話候補取得処理の流れを示すフローチャートである。図１１に示すように、候補取得部３０は、最新のユーザ発話を取得すると（Ｓ３０１）、最新のユーザ発話を各対話機能に入力する（Ｓ３０２）。
【００７３】
そして、候補取得部３０は、各対話機能についてスコア値が最大の応答を抽出し（Ｓ３０３）、各対話機能ごとに応答とスコア値とを対応付けた発話候補を出力する（Ｓ３０４）。
【００７４】
（発話選択処理の流れ）
図１２は、発話選択処理の流れを示すフローチャートである。図１２に示すように、発話選択部３５は、発話候補を取得すると（Ｓ４０１：Ｙｅｓ）、各発話候補について単語に分割し（Ｓ４０２）、各発話候補について単語を記号化して対話トピックを抽出する（Ｓ４０３）。
【００７５】
続いて、発話選択部３５は、各発話候補の対話トピックを用いて要素を抽出し（Ｓ４０４）、要素のスコアをユーザモデルＤＢ１６から抽出して、各発話候補について要素のスコアの合計値を算出する（Ｓ４０５）。その後、発話選択部３５は、最も合計値が高い発話候補を選択して出力する（Ｓ４０６）。
【００７６】
［具体的な処理イメージ］
次に、図１３から図１６を用いて、学習処理等の具体的な処理のイメージを説明する。
【００７７】
（学習前の対話イメージ）
図１３は、学習前の応答の具体例を説明する図である。図１３に示すように、スマートフォン１０は、「天気を教えて」のユーザ発話を検出すると、当該発話の内容を発話履歴ＤＢ１３に格納する。このとき、スマートフォン１０は、発話履歴ＤＢ１３にシステム発話が記録されていないことから、学習を行わない。
【００７８】
そして、スマートフォン１０は、ユーザ発話「天気を教えて」を各対話機能に入力して発話候補を抽出する。その結果、スマートフォン１０は、「スコア、発話内容、機能名」として「０．１、天気という操作はありません、［操作］」、「０．３、今日の天気は晴れです、［天気予報］」、「０．３、天気とはある場所における気象状態、［定義］」を抽出する。
【００７９】
ここで、スマートフォン１０は、ユーザモデルＤＢ１６に十分なモデルが学習されていないので、抽出した３つの発話候補の中から最もスコアが高い発話候補を選択する。なお、ここでは、最も高いスコアが複数ある場合は、ランダムに選択される。この結果、スマートフォン１０は、ランダムに選択した発話候補「今日の天気は晴れです」をシステム発話として出力し、発話履歴ＤＢ１３に記録する。
【００８０】
（対話機能による学習イメージ）
図１４は、対話機能の選択および学習の具体例を説明する図である。図１４では、選択された対話機能によって学習結果が異なる例を説明する。
【００８１】
図１４の一例では、発話履歴ＤＢ１３に、「タイムスタンプ、話者、発話内容」として「10：29：04、ユーザ、天気を教えて」と「10：29：08、システム、今日の天気は晴れです［天気予報］」が記録されている状態で、ユーザ発話として「ありがとう」が検出された例である。
【００８２】
この場合、スマートフォン１０は、ユーザ発話「ありがとう」を発話履歴ＤＢ１３に記録し、上述した学習処理を実行する。そして、スマートフォン１０は、対話として（１）ユーザ発話「天気を教えて」、（２）システム発話「今日の天気は晴れです」、（３）ユーザ発話「ありがとう」を検出することになり、対話として成立していると学習する。この結果、スマートフォン１０は、対話機能［天気予報］の選択が正しかったと学習し、ユーザモデルＤＢ１６に記憶されるモデル「Ｕ１＿天気，Ｓ１＿［天気予報］」のスコアを高い値に更新する。
【００８３】
また、図１４の別例では、発話履歴ＤＢ１３に、「タイムスタンプ、話者、発話内容」として「10：29：04、ユーザ、天気を教えて」と「10：29：08、システム、天気とはある場所における気象状態［定義］」が記録されている状態で、ユーザ発話として「そうじゃなくて今日の天気を教えて」が検出された例である。
【００８４】
この場合、スマートフォン１０は、ユーザ発話「そうじゃなくて今日の天気を教えて」を発話履歴ＤＢ１３に記録し、上述した学習処理を実行する。そして、スマートフォン１０は、対話として（１）ユーザ発話「天気を教えて」、（２）システム発話「天気とはある場所における気象状態」、（３）ユーザ発話「そうじゃなくて今日の天気を教えて」を検出することになり、対話が成立していないと学習する。この結果、スマートフォン１０は、対話機能［定義］の選択が正しくなかったと学習し、ユーザモデルＤＢ１６に記憶されるモデル「Ｕ１＿天気，Ｓ１＿［定義］」のスコアを低い値に更新する。
【００８５】
このように、スマートフォン１０は、対話の自然さを検証して、対話機能の選択結果を判定する。そして、スマートフォン１０は、自然な対話の場合は使用された対話機能のスコアをより高い値に更新し、不自然な対話の場合は使用された対話機能のスコアをより低い値に更新する。
【００８６】
（同一対話機能による学習イメージ１）
図１５は、同一対話機能内による発話および学習の具体例１を説明する図である。図１５では、同じ対話機能を使用しても、対話の自然さによって学習結果が異なる例を説明する。
【００８７】
図１５の一例では、発話履歴ＤＢ１３に、「タイムスタンプ、話者、発話内容」として「10：29：04、ユーザ、こんにちは」と「10：29：08、システム、こんにちは［挨拶］」が記録されている状態で、ユーザ発話として「名前は何？」が検出された例である。
【００８８】
この場合、スマートフォン１０は、ユーザ発話「名前は何？」を発話履歴ＤＢ１３に記録し、上述した学習処理を実行する。そして、スマートフォン１０は、対話として（１）ユーザ発話「こんにちは」、（２）システム発話「こんにちは」、（３）ユーザ発話「名前は何？」を検出することになり、対話として成立していると学習する。この結果、スマートフォン１０は、対話機能［挨拶］による発話内容「こんにちは」の選択が正しかったと学習し、ユーザモデルＤＢ１７に記憶されるモデル「Ｕ１＿こんにちは，Ｓ１＿こんにちは」のスコアを高い値に更新する。
【００８９】
また、図１５の別例では、発話履歴ＤＢ１３に、「タイムスタンプ、話者、発話内容」として「10：29：04、ユーザ、こんにちは」と「10：29：08、システム、ごきげんよう［挨拶］」が記録されている状態で、ユーザ発話として「さよなら」が検出された例である。
【００９０】
この場合、スマートフォン１０は、ユーザ発話「さよなら」を発話履歴ＤＢ１３に記録し、上述した学習処理を実行する。そして、スマートフォン１０は、対話として（１）ユーザ発話「こんにちは」、（２）システム発話「ごきげんよう」、（３）ユーザ発話「さよなら」を検出することになり、制御表現が発話されており、対話として成立していないと学習する。この結果、スマートフォン１０は、対話機能［挨拶］による発話内容「ごきげんよう」の選択が正しくなかったと学習し、ユーザモデルＤＢ１７に記憶されるモデル「Ｕ１＿こんにちは，Ｓ１＿ごきげんよう」のスコアを低い値に更新する。
【００９１】
このように、スマートフォン１０は、同じ対話機能を用いた場合でも、発話された内容によって対話の自然さを検証するので、ユーザの嗜好を考慮して、ユーザモデルの構築や学習を実行できる。
【００９２】
（同一対話機能による学習イメージ２）
図１６は、同一対話機能内による発話および学習の具体例２を説明する図である。図１６では、同じ対話機能を使用しても、発話内容に基づいた学習が実行される例を説明する。
【００９３】
図１６の一例では、発話履歴ＤＢ１３に、「タイムスタンプ、話者、発話内容」として「10：29：04、ユーザ、スペインに行きます」と「10：29：08、システム、バルセロナの名産はアーモンドです［名産］」が記録されている状態で、ユーザ発話として「バルセロナには行きません」が検出された例である。なお、［名産］は、地名を入力として名産を応答する対話アプリケーションの一例である。
【００９４】
この場合、スマートフォン１０は、ユーザ発話「バルセロナには行きません」を発話履歴ＤＢ１３に記録し、上述した学習処理を実行する。そして、スマートフォン１０は、最新のユーザ発話が「バルセロナには行きません」であることから、ユーザの意図とは全く異なるシステム発話が実行されたと想定する。この結果、スマートフォン１０は、対話機能［名産］による発話内容「バルセロナの名産はアーモンドです」の選択が正しくなかったと学習し、ユーザモデルＤＢ１７に記憶されるモデル「Ｕ１＿スペイン，Ｓ１＿バルセロナ［名産］」のスコアを十分に低い値に更新する。
【００９５】
また、図１６の別例では、発話履歴ＤＢ１３に、「タイムスタンプ、話者、発話内容」として「10：29：04、ユーザ、スペインに行きます」と「10：29：08、システム、スペインの名産は生ハムです［名産］」が記録されている状態で、ユーザ発話として「他にも名産はありますか？」が検出された例である。
【００９６】
この場合、スマートフォン１０は、ユーザ発話「他にも名産はありますか？」を発話履歴ＤＢ１３に記録し、上述した学習処理を実行する。そして、スマートフォン１０は、最新のユーザ発話が「他にも名産はありますか？」であることから、ユーザの意図とは大きく異ならないが、ユーザが満足するシステム発話ではないと想定する。この結果、スマートフォン１０は、対話機能［名産］による発話内容「スペインの名産は生ハムです」の選択については改良の余地があると学習し、ユーザモデルＤＢ１７に記憶されるモデル「Ｕ１＿スペイン，Ｓ１＿スペイン［名産］」のスコアを少し低い値に更新する。
【００９７】
このように、スマートフォン１０は、同じ対話機能を用いた場合でも、発話された内容によって対話の継続性を判定するので、ユーザの嗜好を考慮して、ユーザモデルの構築や学習を実行できる。
【００９８】
［効果の一側面］
上述したように、スマートフォン１０は、複数の対話機能を同時に用い、すべてで回答候補を生成する。そして、スマートフォン１０は、システムがユーザと対話をしながら、ユーザのモデルを構築し更新し続ける。このようにして、スマートフォン１０は、システムが発話する際にはまず発話の候補を用意し、その中からユーザのモデルを用いることで、そのユーザにとって望ましい発話を生成する。
【００９９】
したがって、スマートフォン１０は、ユーザのモデルとして「対話トピック」と「ユーザの選好」の情報を用いて、「対話トピック」から「ユーザの選好」を推定する推定モデルを機械学習の手法により構築することができる。また、スマートフォン１０は、全ユーザに共通なモデルと、個別のユーザに特化したモデルの両方を学習することができる。
【０１００】
この結果、スマートフォン１０は、ユーザにとって自然な対話でシステム発話を応答できる。スマートフォン１０は、ユーザの対話に対する好みや対話中に得られた情報によってシステム発話を選択することができるので、ユーザにとって親しみやすく使いやすいインタフェースを提供できる。
【実施例２】
【０１０１】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【０１０２】
［対話機能］
上記実施例では、天気、定義、挨拶などの対話機能を例示したが、これに限定されるものではなく、公知の様々な対話アプリケーションを採用することができる。また、スマートフォン１０が実行する対話機能の数も任意に設定することができる。また、評価値の算出方法も加点方式や減点方式など任意の手法を採用することができる。
【０１０３】
［評価手法］
前記実施例では、対話の継続性、対話リピート性、対話制御性のそれぞれを用いて、評価値を算出したが、これに限定されるものではなく、任意の組み合わせを採用することができる。例えば、いずれか１つだけを用いてもよく、いずれか２つだけを用いてもよい。
【０１０４】
［記号化、要素、ユーザモデル］
上記実施例では、ユーザ発話を単語に分類して「Ｕ１＿天気」などのように記号化する例を説明したが、記号化の手法等は一例であり、任意に変更することができる。例えば、記号化された情報とユーザモデルＤＢ１６に記憶されるモデルとの間で共通のルールや仕様を決めておくことこともでき、任意の手法を採用することができる。
【０１０５】
また、記号化された情報を組み合わせた要素の生成手法についても、任意に変更することができる。例えば、ユーザ発話の単語とシステム発話の単語との組み合わせだけを要素として抽出することもできる。また、単語を記号化する場合も、意味のある単語を登録した単語帳を予め保持し、単語帳に記載される単語だけに絞りこんで記号化することもできる。また、学習する時の過去２件の発話履歴を採用する例を説明したが、過去４件などのように任意に変更することができる。
【０１０６】
［システム］
また、図２に示した各装置の各構成は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、任意の単位で分散または統合して構成することができる。例えば、学習部２５と発話選択部３５を統合することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵ（Central  Processing  Unit）および当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１０７】
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１０８】
［ハードウェア］
上記スマートフォン１０は、例えば、次のようなハードウェア構成を有するコンピュータにより実現することができる。図１７は、ハードウェア構成例を説明する図である。図１７に示すように、スマートフォン１０は、マイク１０ａ、スピーカ１０ｂ、ＨＤＤ（Hard  Disk  Drive）１０ｃ、メモリ１０ｄ、プロセッサ１０ｅを有する。なお、これ以外にも、ネットワークインタフェースカードや無線インタフェースなどを有していてもよい。
【０１０９】
マイク１０ａは、ユーザの発話などを集音する集音器の一例である。スピーカ１０ｂは、発話などを出力する出力器の一例である。ＨＤＤ１０ｃは、プログラムやデータなどを記憶する記憶装置の一例である。
【０１１０】
メモリ１０ｄの一例としては、ＳＤＲＡＭ（Synchronous  Dynamic  Random  Access  Memory）等のＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ等が挙げられる。プロセッサ１０ｅの一例としては、ＣＰＵ（Central  Processing  Unit）、ＤＳＰ（Digital  Signal  Processor）、ＦＰＧＡ（Field  Programmable  Gate  Array）、ＰＬＤ（Programmable  Logic  Device）等が挙げられる。
【０１１１】
また、スマートフォン１０は、プログラムを読み出して実行することで対話処理方法を実行する情報処理装置として動作する。つまり、スマートフォン１０は、発話記録部２１、学習部２５、候補取得部３０、発話選択部３５と同様の機能を実行するプログラムを実行する。この結果、スマートフォン１０は、発話記録部２１、学習部２５、候補取得部３０、発話選択部３５と同様の機能を実行するプロセスを実行することができる。なお、この他の実施例でいうプログラムは、スマートフォン１０によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【０１１２】
このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ（Magneto−Optical  disk）、ＤＶＤ（Digital  Versatile  Disc）などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
【符号の説明】
【０１１３】
１０  スマートフォン
１１  通信部
１２  記憶部
１３  発話履歴ＤＢ
１４  終了表現ＤＢ
１５  制御表現ＤＢ
１６  ユーザモデルＤＢ
２０  制御部
２１  発話記録部
２５  学習部
２６  対話評価部
２７  抽出部
２８  更新部
３０  候補取得部
３１  挨拶処理部
３２  会話表現処理部
３３  定義処理部
３４  天気処理部
３５  発話選択部
【図１】
0006651973.tif 000002
【図２】
0006651973.tif 000003
【図３】
0006651973.tif 000004
【図４】
0006651973.tif 000005
【図５】
0006651973.tif 000006
【図６】
0006651973.tif 000007
【図７】
0006651973.tif 000008
【図８】
0006651973.tif 000009
【図９】
0006651973.tif 000010
【図１０】
0006651973.tif 000011
【図１１】
0006651973.tif 000012
【図１２】
0006651973.tif 000013
【図１３】
0006651973.tif 000014
【図１４】
0006651973.tif 000015
【図１５】
0006651973.tif 000016
【図１６】
0006651973.tif 000017
【図１７】
0006651973.tif 000018