(57)【要約】【課題】ユーザにとって信頼できる内容の応答を可能にしたエージェントを提供する。【解決手段】エージェント１０は、実行部１３と対話装置１２と知識記憶部１４と事象記憶部１６と質問文解析部１７と応答文生成部１８と探索部１９とを備える。知識記憶部１４は、実行部１３が行う処理を構成する単位タスクの内容を、語彙と語彙間の結合関係とで表した単位表現を用い、単位タスク間の因果関係に着目して単位表現を結び付けた知識の原型を記憶する。質問文解析部１７は、ユーザが入力した質問文を語彙と語彙間の結合関係とで表した質問グラフを生成する。応答文生成部１８は、探索部１９が具体例から抽出した部分を含む単位表現に対して、因果関係により結び付けられている他の単位表現を抽出し、抽出した単位表現に含まれる語彙および語彙間の結合関係を用いて応答文を生成する。【選択図】図１
2016029561.tif 000002
【特許請求の範囲】
【請求項１】
所定の処理を行う実行部と、
前記実行部が行う処理を構成する単位タスクの内容を、語彙と語彙間の結合関係とで表した単位表現を用い、前記単位タスク間の因果関係に着目して前記単位表現間を結び付けた知識の原型を記憶する知識記憶部と、
前記実行部が実施した処理の条件および結果を前記知識の原型に当て嵌めることにより得られる具体例を記憶する事象記憶部と、
ユーザから質問文が入力され、前記質問文に対する応答文を前記ユーザに提示する対話装置と、
前記ユーザが入力した前記質問文を語彙と語彙間の結合関係とで表した質問グラフを生成する質問文解析部と、
前記事象記憶部が記憶する前記具体例において語彙と語彙間の結合関係が前記質問グラフに整合する部分を探索し、前記具体例から抽出した前記部分を含む単位表現に対して、因果関係により結び付けられている他の単位表現を抽出し、前記他の単位表現に含まれる語彙および語彙間の結合関係を用いて応答用の単位表現を確定する探索部と、
前記探索部が確定した応答用の単位表現を用いて応答文を生成する応答文生成部とを備える
ことを特徴とするエージェント。
【請求項２】
前記単位表現は、
前記実行部が行う処理を構成する前記単位タスクの内容に対応する動詞を表す第１のノードに、格文法における深層格を表す第２のノードをリンクで結合した形式で表されている
請求項１記載のエージェント。
【請求項３】
前記単位タスク間の因果関係に着目して結び付けられる複数の前記単位表現は、それぞれの前記単位表現に含まれる前記第１のノードの間が、前記単位タスクの実行理由、前記単位タスクの実行手段、または時間の前後関係、分岐パターンの関係を表すリンクで結合されている
請求項２記載のエージェント。
【請求項４】
前記探索部は、
前記他の単位表現に含まれる語彙および語彙間の結合関係において、動作主格の語彙を対象格の語彙に置き換え、対象格の語彙があれば対象格の語彙を動作主格の語彙に置き換えるように語彙間の結合関係を変更し、かつ前記他の単位表現に含まれる動詞を受動態に変更することにより得られる単位表現を、前記応答用の単位表現とする
請求項３記載のエージェント。
【請求項５】
前記対話装置は、入力された音声をテキストデータに変換して前記質問文解析部に与える請求項１〜４のいずれか１項に記載のエージェント。
【請求項６】
前記対話装置は、前記応答文生成部から与えられたテキストデータを音声に変換して出力する請求項１〜５のいずれか１項に記載のエージェント。
【請求項７】
コンピュータを、請求項１〜６のいずれか１項に記載のエージェントとして機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータがユーザに代わって作業を行うエージェント、およびコンピュータをエージェントとして機能させるプログラムに関する。
【背景技術】
【０００２】
従来、自然言語による対話を可能にするために、自然言語解析システムが提案されている。また、この種の自然言語解析システムは、入力文が疑問文である場合に、この疑問に対する回答を含んだ応答文を返すことも提案されている（たとえば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１９０１０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、質問に対する応答は、いわゆるヘルプ機能、あるいはＦＡＱ機能（ＦＡＱ：Frequently Asked Question）として知られているように、キーワードを用いて質問し、該当するキーワードを含むテキストデータを抽出する構成が多く採用されている。特許文献１には、入力文の意味を解釈し、その結果に基づいて入力文に対する回答を取得することが記載されている。
【０００５】
上述した構成では、ユーザは適切なキーワードあるいは適切なキーワードを含む入力文を入力しなければ、取得する回答に不要な情報が多く含まれる可能性がある。
【０００６】
本発明は、ユーザにとって信頼できる内容の応答を得ることができるようにしたエージェントを提供することを目的とする。さらに、本発明は、コンピュータを、このエージェントとして機能させるプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係るエージェントは、所定の処理を行う実行部と、前記実行部が行う処理を構成する単位タスクの内容を、語彙と語彙間の結合関係とで表した単位表現を用い、前記単位タスク間の因果関係に着目して前記単位表現を結び付けた知識の原型を記憶する知識記憶部と、前記実行部が実施した処理の条件および結果を前記知識の原型に当て嵌めることにより得られる具体例を記憶する事象記憶部と、ユーザから質問文が入力され、前記質問文に対する応答文を前記ユーザに提示する対話装置と、前記ユーザが入力した前記質問文を語彙と語彙間の結合関係とで表した質問グラフを生成する質問文解析部と、前記事象記憶部が記憶する前記具体例において語彙と語彙間の結合関係が前記質問グラフに整合する部分を探索し、前記具体例から抽出した前記部分を含む単位表現に対して、因果関係により結び付けられている他の単位表現を抽出し、前記他の単位表現に含まれる語彙および語彙間の結合関係を用いて応答用の単位表現を確定する探査部と、前記探索部が確定した応答用の単位表現を用いて応答文を生成する応答文生成部とを備えることを特徴とする。
【０００８】
本発明に係るプログラムは、コンピュータを、エージェントとして機能させることを特徴とする。
【発明の効果】
【０００９】
本発明の構成によれば、実行部による処理の実行結果を踏まえた具体例を語彙と語彙間の結合関係とで表し、また、質問文も語彙と語彙間の結合関係とで表し、具体例において質問文に整合する部分を抽出している。そのため、キーワードを用いて回答を検索する場合と比較すると、ユーザにとって信頼できる内容の応答を得ることが可能になる。
【図面の簡単な説明】
【００１０】
【図１】実施形態を示すブロック図である。
【図２】実施形態における知識の具体例を示す図である。
【図３】図３Ａは実施形態において質問文に対する応答用の単位表現の例を示す図であり、図３Ｂは実施形態において変換後の応答用の単位表現の例を示す図である。
【図４】実施形態における知識の原型を示す図である。
【図５】実施形態における質問グラフの例を示す図である。
【図６】図６Ａは実施形態において他の質問文に対する応答用の単位表現の例を示す図であり、図６Ｂは実施形態において変換後の応答用の単位表現の例を示す図である。
【図７】実施形態における単位表現の例を示す図である。
【図８】実施形態における知識の具体例を示す図である。
【図９】図９Ａは実施形態において別の質問文に対応する応答用の単位表現の例を示す図であり、図９Ｂは実施形態において変換後の応答用の単位表現の例を示す図である。
【発明を実施するための形態】
【００１１】
以下に説明する実施形態におけるエージェントは、コンピュータを用いて実現されるユーザエージェントを意味する。すなわち、コンピュータを、以下に説明する機能を有したエージェントとして動作させるプログラムが提供され、このプログラムをコンピュータが実行することによりエージェントが実現される。
【００１２】
エージェントは、ユーザに対応付けられ、かつ対応付けられたユーザに代わって意思決定を行うように構成される。また、エージェントはユーザに代わって意思決定のための情報収集および外部環境に対する作業を行う。情報収集は着目する状態の監視を含み、外部環境に対する作業は機器の制御を含む。また、機器を複数のユーザが共用する場合に、機器を制御する内容がユーザ間で競合することがある。このような事態が生じると、エージェントはユーザに代わって他のユーザのエージェントと交渉することも可能である。複数のユーザのエージェントが互いに交渉する機能は、実施形態ではエージェントの動作の一例として説明しているが、この機能が実施形態として説明するエージェントにとって必須というわけではない。
【００１３】
エージェントをユーザに対応付けるために、エージェントを実現するコンピュータは、ユーザが携帯するように構成されることが望ましい。この種のコンピュータは、スマートフォンあるいはウェアラブルコンピュータが相当する。また、機器を使用する環境における個々のユーザを認識し、個々のユーザに一対一に対応するエージェントを実現するように設けられた複数台または１台のコンピュータが適宜の場所に設置されていてもよい。スマートフォンあるいはウェアラブルコンピュータと通信するサーバを利用できる場合、スマートフォンあるいはウェアラブルコンピュータとサーバとを組み合わせて、エージェントを構成することも可能である。サーバは、１台のコンピュータに限らず、複数台のコンピュータでもよく、クラウドコンピューティングシステムでもよい。
【００１４】
ところで、エージェントは、ユーザとの間で対話するための対話装置を備える。対話装置は、操作器と表示器とを組み合わせて用いればよいが、音声による対話が可能であればより望ましい。音声による対話を行う場合、エージェントは、ユーザの音声を認識することにより、質問文をテキストデータに変換すればよい。テキストデータに対しては、形態素解析が行われ、さらに、格文法に基づいてノードとリンクとで表される形式に変換される。また、音声による対話を行う場合、エージェントは、質問文に対する応答文を生成した後に、応答文のテキストデータを音声合成技術によって音声に変換し、応答文を音声として対話装置から出力すればよい。
【００１５】
スマートフォンあるいはウェアラブルコンピュータとサーバとを組み合わせてエージェントを構成する場合、スマートフォンあるいはウェアラブルコンピュータを対話装置として用いればよい。この構成を採用する場合、サーバは複数のエージェントで共用される。スマートフォンあるいはウェアラブルコンピュータには、ユーザを識別する情報を登録しておけば、個々のユーザにエージェントを対応付けることができる。なお、複数のユーザでコンピュータを共用する場合、生体認証（たとえば、顔認証）により、ユーザをエージェントに対応付けることが可能である。
【００１６】
実施形態では、個々のユーザがエージェントとして機能するコンピュータを所持していると仮定して説明する。つまり、ユーザは、スマートフォンを携帯しているか、ウェアラブルコンピュータを装着している場合を想定する。実施形態では、エージェントが住宅において使用される。エージェントは、住宅におけるユーザの行動を認識する機能と、ユーザの周囲環境に応じてユーザにとって快適な環境を形成するように機器を制御する機能との少なくとも一方を有する。実施形態では、エージェントがユーザの帰宅を判断する例と、室温を調節する空調機器をエージェントが制御する例とについて説明する。
【００１７】
図１に示すように、本実施形態のエージェント１０は、住宅に配置された各種の機器２０から情報を受け取る機能と、機器２０に情報を出力する機能とを有するインターフェイス部（以下、「Ｉ／Ｆ部」という）１１を備える。機器２０は、分電盤を通過する電力を計測する計測装置、インターホン、テレビジョン受像機（音響映像機器）、空調機器、照明機器、各種のセンサなどから選択される。
【００１８】
図１に示す例では、ＨＥＭＳ（Home Energy Management System）のコントローラ２１が機器２０と通信する構成が採用されている。コントローラ２１は、機器２０から動作状態の情報を取得し、機器２０に対して制御を指示する情報を送信する。言い換えると、機器２０は、コントローラ２１とともに通信ネットワークを構成している。エージェント１０は、Ｉ／Ｆ部１１を通してコントローラ２１と通信し、コントローラ２１を通して機器２０と通信する。
【００１９】
計測装置は、分岐回路ごとに消費電力を計測する機能を有する。また、計測装置は、住宅で電力系統から受電した電力、住宅から電力系統に逆潮流させた電力などを計測する機能を有していてもよい。空調機器および照明機器は、ユーザ３０の周囲の環境を形成する機器２０であって、エージェント１０による制御の対象になる。センサは、ユーザ３０の周囲の環境を監視するセンサ、防犯あるいは防災に用いられるセンサ、ユーザ３０の生体認証に用いるためのセンサ（カメラなど）などから選択される。
【００２０】
インターホンに対しては、エージェント１０を構成するコンピュータが子機として機能する。また、エージェント１０を構成するコンピュータは、テレビジョン受像機（音響映像機器）に対しては、住宅内の任意の場所での視聴を可能にする装置として機能する。インターホン、音響映像機器は、本実施形態では用いない。
【００２１】
本実施形態のエージェント１０は対話装置１２を備える。対話装置１２は、たとえば、スマートフォンの画面を表示器とし、スマートフォンのタッチパネルを操作器として構成される。対話装置１２は、ユーザ３０がエージェント１０への質問を与えたときに、エージェント１０が質問に対する応答をユーザ３０に返すために設けられている。ユーザ３０からエージェント１０へは質問文が与えられ、エージェント１０からユーザ３０へは応答文が返される。図１では、対話装置１２がエージェント１０の他の構成と一体に設けられているが、対話装置１２はエージェント１０の他の構成とは別装置として分離されていてもよい。
【００２２】
エージェント１０は、Ｉ／Ｆ部１１を通して取得する情報を用いてユーザの行動を認識する処理、Ｉ／Ｆ部１１を通して取得する環境の情報にユーザの属性を考慮して機器２０の制御内容を決定する処理などを行うために実行部１３を備える。実行部１３は、決定した制御内容を機器２０に指示する。これらの処理を構成する処理単位としてのタスクは、通常は複数個の単位タスク（コマンド）を含んでいる。
【００２３】
エージェント１０は、タスクに関して、構成要素である単位タスクの種類、単位タスクを実行する理由または目的（以下、「実行理由」と記載する）、単位タスクの実行の仕方（以下、「実行手段」と記載する）などの知識を備える。これらの知識は階層化され、単位タスクの実行理由と、単位タスクの実行手段との知識は、階層間をつなぐことにより表される。
【００２４】
本実施形態は、知識を格文法に基づく形式で表現している。つまり、本実施形態では、知識表現の形式として格文法に基づく形式を採用している。格文法に基づく形式で表現した知識のまとまりを、以下では「単位表現」と言う。単位表現は、１個以上の単位タスクを含み、単位タスクは、１個の動詞を含む。
【００２５】
格文法では、文が、動詞と深層格との組み合わせで成り立つと仮定している。深層格は、動作主格、道具格、対象格、目標格などである。格文法を用いると、文を、動詞と、深層格に相当する語彙（単語など）との関係として表現し、単位表現を定義することが可能になる。つまり、単位表現は、動詞の語彙と深層格に相当する語彙と、語彙間の結合関係とで表される。ここに、エージェント１０が処理するタスクに対応した文において、単一の動詞は単位タスクの処理内容に相当する。すなわち、知識の単位表現は、単位タスクの内容を表す単一の動詞を含む文になる。
【００２６】
本実施形態では、単位タスクに対応した知識の単位表現を、時間の順で複数個つなげるか、階層化することにより、エージェント１０が参照する知識を表している。異なる階層の単位表現の間は、図２に示すように、単位タスクの実行理由（why）、実行手段（how）などを表すリンクで結合される。「why」のリンクと「how」のリンクとは、複数の単位表現において動詞を表すノードの間を結ぶように設定される。このように、タスクを構成する単位タスクの知識と、単位タスクの実行理由および実行手段などの関係とが、階層的知識として表現可能になる。階層的知識は、意味ネットワークに類似した表現形式で表してあり、語彙（単語など）に相当するノードを、関係を表すリンクで結合して形成されている。図２中の楕円（菱形で表す場合もある）がノードであり、図２中の矢印がリンクである。
【００２７】
単位表現は、ひとつの動詞を表すノード（第１のノード）と、格文法における深層格を表す語彙を含むノード（第２のノード）とを含む。深層格の種類は、第１のノードから第２のノードに向かうリンクに付与した結合関係で表される。つまり、単位表現は、ノードが表す語彙と、リンクが表す語彙間（つまり、ノード間）の結合関係とで表される。
【００２８】
図２には、単位表現の知識が３段階の階層Ｌ１、Ｌ２、Ｌ３に階層化された例を示している。図２における単位表現は、単位タスクに相当する動詞を１個ずつ含んでいる。すなわち、単位表現Ｕ１における「定期的に調べる」、単位表現Ｕ２における「評価する」、単位表現Ｕ３における「計算する」のように、単位表現毎に動詞を１個ずつ含んでいる。図２において、リンクに付与した「S」は動作主格を表し、「O」は対象格を表し、「to」は目標格を表し、「from」は源泉格を表し、「with」は道具格を表す。
【００２９】
単位表現Ｕ１、Ｕ２、Ｕ３のいずれについても、動作主格は「エージェント」である。また、単位表現Ｕ１における対象格は「Ｒと評価する他のエージェントの存在」であり、単位表現Ｕ２、Ｕ３における対象格は機器の設定条件（たとえば、設定温度）に対する期待効用である。また、図２に示す例において、単位表現Ｕ２、Ｕ３の動詞に対する目標格と源泉格とは、評価時点の環境のレベル（たとえば、環境温度）である。単位表現Ｕ３の「意思決定モデル」は、エージェント１０がユーザ３０に代わって意思決定を行うプロセス（実際にはプログラム）を表す。
【００３０】
実行理由と実行手段とは、単位表現Ｕ１、Ｕ２、Ｕ３の動詞間を相互に結ぶリンクで表されている。たとえば、単位表現Ｕ２において単位タスクを表す動詞「評価する」の実行理由は、単位表現Ｕ１において単位タスクに対応した「定期的に調べる」を実行したことを表している。また、単位表現Ｕ２において単位タスクを表す動詞「評価する」の実行手段は、単位表現Ｕ３における単位タスクに対応した「計算する」により実現される。単位表現Ｕ１、Ｕ２、Ｕ３は、動詞と深層格を表す単語（あるいは句）との関係で表現されているから、単位表現Ｕ１、Ｕ２、Ｕ３ごとに文を生成することが可能である。
【００３１】
すなわち、タスクを構成する単位タスクの関係が、図２に示す階層的な知識によって表されると、単位表現の階層Ｌ１、Ｌ２、Ｌ３を辿ることによって、単位タスクの実行理由あるいは実行手段に対応する文を生成することが可能になる。なお、図２では単位表現Ｕ１、Ｕ２、Ｕ３が３階層Ｌ１、Ｌ２、Ｌ３で表されているが、階層数および単位表現の個数にはとくに制限はない。
【００３２】
図２のような階層的知識は、エージェント１０が扱えるタスクに応じてプロトタイプ（原型）が生成される。階層的知識の原型を生成する際には、エージェント１０のプログラムを開発する際に作成される企画書、要求仕様書、フローチャートのような書類（ドキュメント）の分析により得られる情報が用いられる。階層的知識の原型は、知識記憶部１４に格納される。エージェント１０が複数のタスクを実行可能であれば、知識記憶部１４には、複数のタスクに関して階層的知識の原型が格納される。
【００３３】
階層的知識の原型は、エージェント１０が動作中に取得する情報を用いた学習の結果で変化させることが可能である。したがって、階層的知識の原型を生成するために、エージェント１０によるタスクの実行結果も用いることが望ましい。実行部１３がＩ／Ｆ部１１を通して取得した情報、実行部１３が実行したタスク、タスクの実行結果などは結果記憶部１５に記録される。
【００３４】
ところで、本実施形態では、ユーザ３０がエージェント１０に対して行う質問は、エージェント１０が実行したタスクに関する内容を想定している。つまり、エージェント１０が実行したタスクの実行理由またはタスクの実行手段に関する質問を、ユーザ３０がエージェント１０に対して行うことを想定している。そのため、エージェント１０は、結果記憶部１５に記録されている情報を、知識記憶部１４に格納されている階層的知識の原型に当て嵌めて質問に対する応答を行う。
【００３５】
一般に、階層的知識の原型には、条件に応じた分岐が表現されている場合があり、この場合には、タスクの実行時における条件によって分岐先が変化する。したがって、タスクの実行結果である具体例（インスタンス）を用いて質問に対する応答を行う必要がある。そのため、生成された具体例は、事象記憶部１６に格納される。
【００３６】
対話装置１２を通してエージェント１０がユーザ３０からの質問文を受け取ると、エージェント１０が備える質問文解析部１７において、ユーザ３０の質問文について構文解析および格文法解析が行われる。質問文解析部１７は、対話装置１２から入力された質問文を、格文法に照らして解析する。つまり、質問文解析部１７は、質問文の動詞と、この動詞に関係する深層格とを抽出する。さらに、質問文解析部１７は、抽出した動詞に相当する単位タスクを見出す。
【００３７】
ところで、本実施形態のエージェント１０は、構文解析および格文法解析が行われた質問文を、あらかじめ用意されている複数種類の質問タイプのいずれかに分類する。ここでは、質問タイプとして、確認、理由、手段、経緯（経過）の４種類を想定している。質問文解析部１７は、質問文を質問タイプに分類した後、質問タイプに応じた単位タスクを抽出する。そのため、質問文解析部１７は、対話装置１２から受け取った質問文のテキストデータを質問タイプに分類するタイプ判定処理を行う機能と、質問文をノードの関係である質問グラフに変換する変換処理を行う機能とを有する。質問グラフは、質問文の解析によって得られた有効グラフである（図５参照）。
【００３８】
タイプ判定処理では、質問文のテキストデータを文節に区切った上で、ヒューリスティックなルールを用いて質問タイプの分類を行う。タイプ判定処理では、たとえば、文末の特徴的表現を用いて質問タイプの分類を行う。具体例で言えば、質問文解析部１７が質問文を「ＸＸ／したの／ですね」と文節に区切った場合、タイプ判定処理では、文末に「ですね」を含むことを特徴的表現と認識して、確認タイプに分類する。同様にして、タイプ判定処理では、「ＸＸは／どういう／こと／ですか」、「ＸＸは／なぜ／ですか」、「ＸＸは／どのように／したの／ですか」を、それぞれ経緯タイプ、理由タイプ、手段タイプと分類する。上述したルールは、タイプ判定処理で用いるルールの一例である。
【００３９】
ここに、ＸＸはサ行変格活用動詞（あるいはザ行変格活用動詞）を形成する名詞、用言の連体形に助詞「の」を結合して体言の機能を持たせた句（一種の形式名詞）などから選択される。ＸＸには、動作主体、対象格などが含まれていてもよい。上述したルールを用いる場合、「再評価する」という動詞があると、確認タイプ、手段タイプの質問文では、ＸＸは「再評価」であり、経緯タイプ、理由タイプの質問文では、ＸＸは「再評価したのは」である。質問タイプによって質問文においてＸＸの形式が異なっていても、質問グラフにおけるノードでは、動詞は終止形であり、この例では「再評価する」になる。
【００４０】
変換処理では、質問文をノードの結合関係で表した質問グラフに変換する。変換処理では、質問タイプに応じて動詞と他の語彙との結合関係に着目することにより質問グラフを生成する。確認タイプの場合、質問文に含まれる動詞のノードと、動詞に対する動作主体のノードと対象格のノードとの集合で質問グラフが生成される。経緯タイプの場合、質問文に含まれる動詞のノードと、このノードに時間的順序関係のリンクで結合されたノードとにより質問グラフが生成される。また、理由タイプの場合、質問文に含まれる動詞のノードと、このノードに「why」のリンクで結合されたノードとにより質問グラフが生成される。手段タイプの場合、質問文に含まれる動詞のノードと、このノードに「how」のリンクで結合されたノードとにより質問グラフが生成される。
【００４１】
上述のようにして生成された質問グラフは、探索部１９に与えられる。探索部１９は、事象記憶部１６に格納されている具体例に質問グラフを照合する。探索部１９は、質問グラフに含まれる動詞に着目し、動詞の内容が同じである具体例を事象記憶部１６から抽出する。つまり、質問グラフの一部が整合（一致）する具体例を事象記憶部１６から抽出する。また、探索部１９は、事象記憶部１６から抽出した具体例を用いて応答用の単位表現を生成し、応答用の単位表現を応答文生成部１８に引き渡す機能を有する。すなわち、探索部１９は、質問文解析部１７から受け取った質問グラフを事象記憶部１６に照合して具体例を抽出する具体化処理を行う機能と、抽出した具体例を用いて応答用の単位表現を確定する確定処理を行う機能とを有する。
【００４２】
探索部１９は、具体化処理では、質問文解析部１７が分類した質問タイプが、実行理由を問い合わせる理由タイプであれば階層的知識の「why」のリンクで結合されている単位表現を探索し、実行手段を問い合わせる手段タイプであれば「how」のリンクで結合されている単位表現を探索する。また、質問文が、単位タスクの実行の経過を問い合わせる経緯タイプであれば、探索部１９は、事象記憶部１６において、該当する動詞に時間の向きを表す「then」のリンクで結合されている単位表現を探索する。
【００４３】
探索部１９は、具体化処理により質問グラフを事象記憶部１６に照合し、質問文に対応する具体例が得られると、具体例により応答用の単位表現を確定する確定処理を行う。すなわち、質問グラフは、質問文に含まれる動詞のノードと、質問タイプに応じたリンクとを含んでいるから、質問グラフを事象記憶部１６が記憶している具体例に照合すれば、事象記憶部１６から具体例が抽出される。この具体例が抽出されると、確定処理では、質問タイプに応じて応答用の単位表現を以下のように確定する。
【００４４】
質問タイプが確認タイプであるとすると、質問グラフに含まれる動詞およびリンクの種類と整合（一致）する部分グラフを、事象記憶部１６が記憶している階層的知識（具体例）から抽出する。たとえば、質問グラフの動詞が「許可する」であり、動作主体が「第１のエージェント」、対象格が「設定温度（２６℃、強）」という内容である場合、事象記憶部１６が記憶している具体例から同じ形の有効グラフで表現された部分を抽出する。
【００４５】
つまり、具体例において、動詞が「許可する」、動作主体が「第１のエージェント」、対象格が「設定温度（２６℃、強）」である部分グラフが見出されたと仮定する。また、動詞「許可する」に対して、目標格（「to」リンク）が「マネージャ」、道具格（「with」リンク）が「次更新までの期限付きで閾値を下げる」であると仮定する（図８参照）。この場合、確定処理では、動詞「許可する」に対して、動作主体が「第１のエージェント」、対象格が「設定温度（２６℃、強）」、目標格が「マネージャ」、道具格が「次更新までの期限付きで閾値を下げる」という単位表現を抽出する。
【００４６】
探索部１９は、質問タイプが確認タイプであれば、具体例を含む探索空間において、質問グラフに整合する部分グラフを探索し、部分グラフと動詞を共通にする単位表現を抽出する。そして、確定処理では、抽出された単位表現が、応答用の単位表現として確定される。質問文が確認タイプであるときに、確定処理によって、質問グラフには記述されていなかった内容を応答用の単位表現に含めることができる。
【００４７】
質問タイプが理由タイプであるとすると、探索部１９は、質問グラフに含まれる動詞に「why」のリンクで結合されている動詞を抽出し、抽出した動詞のノードと、この動詞のノードにリンクを介して結合されているノードとで表された単位表現を抽出する。確定処理では、抽出された単位表現が応答用の単位表現として確定される。
【００４８】
探索部１９は、質問タイプが手段タイプの場合は、理由タイプにおける「why」のリンクに代えて「how」のリンクで結合されている動詞を抽出し、この動詞を含む単位表現を応答用の単位表現として確定する。また、質問タイプが経緯タイプの場合は、探索部１９は、理由タイプにおける「why」のリンクに代えて「then」のリンクで結合されている動詞を抽出し、この動詞を含む単位表現を応答用の単位表現として確定する。
【００４９】
探索部１９は確定した応答用の単位表現を応答文生成部１８に引き渡す。すなわち、応答文生成部１８は、探索部１９から受け取った応答用の単位表現に含まれる動詞と、この動詞に対する深層格の単語（あるいは句）とを用い、動詞と単語（あるいは句）との関係に基づいて応答文を組み立てる。動詞と単語（あるいは句）との関係は、単語（あるいは句）が動詞に対してどの深層格に該当するかによって定められる。動詞と単語（あるいは句）との関係は、動詞と単語（あるいは句）との間のリンクの属性によって定まる。
【００５０】
上述したように、探索部１９は、質問グラフに含まれる動詞と、質問文の質問タイプ（確認タイプ、理由タイプ、手段タイプ、経過タイプのいずれか）に応じたリンクの種類とを用いて、階層的知識の探索を行い、応答用の単位表現を確定する。この探索には、属性が「why」、「how」、「then」のリンクの少なくとも一つを辿ればよいから、ユーザの要求に応じた単位表現を容易に抽出することができる。
【００５１】
ところで、応答文生成部１８は、応答用の単位表現の形式に応じた応答テンプレートを記憶しており、探索部１９から与えられた応答用の単位表現を、応答テンプレートに当て嵌めることによって、応答文を生成している。言い換えると、応答文生成部１８が生成する応答文は、応答用の単位表現の構造に応じて自動的に定まる。
【００５２】
上述した動作において、探索部１９は、事象記憶部１６から抽出した単位表現を、確定した応答用の単位表現として応答文生成部１８に引き渡している。しかしながら、事象記憶部１６が記憶している単位表現は、エージェント１０が動作主体であることが多く、事象記憶部１６が記憶している単位表現を用いて応答文を生成すると、ユーザの視点あるいはユーザの関心に適合した応答文が生成されない可能性がある。したがって、探索部１９は、ユーザに受け入れやすい応答文が生成されるように、事象記憶部１６から抽出した単位表現を修正して応答用の単位表現を生成し、この応答用の単位表現を応答文生成部１８に引き渡すことが望ましい。
【００５３】
いま、探索部１９が事象記憶部１６から抽出した図３Ａのような単位表現が応答文生成部１８に引き渡されると、応答文生成部１８は「Ａ社が運賃を値上げしました」のような応答文を生成する。この応答文は、探索部１９が抽出した単位表現において、動作主格が「Ａ社」である場合に生成される。しかしながら、ユーザにとって、値上げという事象に関して、「Ａ社」が行ったことよりも、「運賃」であることのほうに関心があることが多い。つまり、ユーザが受け取る応答文における効用は、「運賃」のほうが「Ａ社」よりも高い。上述した処理によって、応答文生成部１８は、ユーザにとって効用がより高い応答文を生成し、結果的に、ユーザに伝わり易い応答文を生成することが可能になる。
【００５４】
そこで、探索部１９は、動作主格を「運賃」に入れ替え、動詞を能動態から受動態に変換する。動詞を受動態に変換する場合、単位表現において、「Ａ社」は源泉格（from）に変換される。このように、探索部１９は、抽出した単位表現について、動作主格を変更し、動詞を能動態から受動態に変換した後に、変更後の単位表現を応答文生成部１８に引き渡すことが望ましい。このような変更された単位表現を引き渡された応答文生成部１８は、「運賃がＡ社から値上げされました」のような応答文を生成する。
【００５５】
なお、本実施形態では、探索部１９が抽出する単位表現の動作主格は、ほとんどの場合に、「エージェント」である。したがって、ユーザの効用を高めるには、探索部１９が抽出した単位表現について、動作主格を変更し、動詞を受動態に変換した後に、応答文生成部１８に引き渡すことが望ましい。
【００５６】
ところで、知識記憶部１４に格納される階層的知識の原型（プロトタイプ）は、上述のように、エージェント１０のプログラムを開発する際に作成される企画書、要求仕様書、フローチャートのような書類の分析により得られる情報が用いられる。書類には、エージェント１０のプログラムに関するソースコードが含まれる場合もある。この種の書類は、タスクの順序が記述され、また、タスクを構成する単位タスク（コマンド）が記載され、さらには、必要に応じてタスクを実行する理由および意図も記載されている。
【００５７】
したがって、これらの書類を用いて、タスクを構成する単位表現を抽出し、かつ単位表現を格文法に従って表現し、さらに、単位表現の相互の関係を表すことによって、階層的知識の原型を生成することができる。この作業は、通常は、エージェント１０の動作とは別にオフラインで行われる。ただし、プログラミングに伴う書類が、コンピュータでの解析に適した形式で記述されている場合には、書類から階層的知識の原型を生成する作業を自動化してもよい。なお、結果記憶部１５にタスクの実行結果の情報が蓄積されると、階層的知識の原型を修正あるいは変更するようにしてもよい。
【００５８】
（事例１）
上述したエージェント１０を利用する事例として、帰宅通知を行う場合について説明する。この事例では、分電盤（図示せず）で分岐された分岐回路ごとの消費電力に関する情報を用いることによって住宅の住人に関する帰宅の判断を行っている。エージェント１０は、住人の帰宅に伴って消費電力が増加することが想定される分岐回路に着目し、この分岐回路の消費電力が、待機中の電力値から使用中の電力値に変化したときに、住人が帰宅したと判断する。この構成では、たとえば、住宅の住人である家族のうちの子供が帰宅したときに、親が保有する携帯端末（移動体電話機、タブレット端末など）に、子供の帰宅を通知することを可能にする。
【００５９】
分岐回路ごとの消費電力は、分電盤に付設した計測装置（図示せず）を用いて計測される。この種の計測装置は、分電盤に内蔵する構成と分電盤とは別の器体に収納される構成とが知られている。計測装置は、クランプ式の電流センサあるいはロゴスキーコイルを用いて分岐回路を通過する電流を計測し、分岐回路の線間電圧と計測した電流とを用いて消費電力を計算により求める。
【００６０】
このエージェント１０は、階層的知識の原型が、図４のように設定されている。図４に示す例では、階層的知識の原型が、４階層Ｌ１１、Ｌ１２、Ｌ１３、Ｌ１４で構成されている。上述したように、単位表現は単一の動詞を含む。図４に示す例の場合、最上層（第１層Ｌ１１）は１個の動詞「通知する」を起点とする１個の単位表現Ｕ１１だけで構成されている。一方、第２層Ｌ１２は、「毎時点判断する」、「検知する」、「検知しない」の３個の動詞を起点とする３個の単位表現Ｕ１２１、Ｕ１２２、Ｕ１２３で構成されている。第３層Ｌ１３は１個の単位表現Ｕ１３だけで構成されており、最下層（第４層Ｌ１４）は「参照する」、「閾値より大きいか判断する」、２種類の「評価する」の４個の動詞を起点とする４個の単位表現Ｕ１４１、Ｕ１４２、Ｕ１４３、Ｕ１４４で構成されている。このように、多くの単位表現を用いることが可能である。図４に示す例では、第３層Ｌ１３に含まれる閾値を設定する部分のタスクを省略しているが、このタスクを加えると階層的知識を構成する単位表現は増加する。
【００６１】
ところで、図４に示す例では、最下層に複数の動詞が含まれているから、これらを起点とする複数の単位表現の間の前後関係が「then」のリンクで表されている。「then」のリンクは矢印で時間の向きを表したリンク（有向リンク）であって、リンクの元に結合された動詞ノードを起点とした単位表現で表された単位タスクが実行された後、リンクの先に結合された動詞ノードの単位タスクが実行されることを表す。
【００６２】
さらに、最下層には、「then」のリンクの元に結合された条件分岐ノード「閾値より大きいか判断する」があり、これは、条件分岐の単位タスクの単位表現を表している。つまり、当該条件分岐ノードに設定された条件が成立すると「then」のリンクの先に結合されたノード、すなわち動詞「評価する」を起点として補語（Ｃ）が「使用中」の単位表現としての処理に移行する。また、条件分岐ノードに設定された条件が不成立であると「else」のリンクの先に結合されたノード、すなわち動詞「評価する」を起点として補語（Ｃ）が「待機中」の単位表現としての処理に移行する。これらの分岐のパターンについては後述する。
【００６３】
第１層Ｌ１１の単位表現Ｕ１１では、「通知する」という動詞に対して、動作主格が「エージェント」、対象格が「子供の帰宅」、目標格が「母親」、道具格が「スマートフォン」である。そして、「通知する」内容は、第２層Ｌ１２の単位表現Ｕ１２２、すなわち動詞「検知する」を起点とし、対象格（O）が「待機中から使用中への変化」として表されるタスクの結果から得られる。
【００６４】
ここでは、リビングに対応した分岐回路の消費電力に基づいて「子供の帰宅」を判断できると仮定している。つまり、エージェント１０は、リビングに対応する分岐回路の消費電力が待機電力であれば子供は帰宅していないと判断し、当該消費電力の電力値が待機中から使用中に変化すると子供が帰宅したと判断すると仮定する。
【００６５】
第２層Ｌ１２では、「毎時点判断する」の動作主格がエージェント１０である。この単位タスクは、リビングに対応する分岐回路の消費電力を、所定条件を満たすタイミングで計測装置から取得し、この消費電力の電力値が待機中か使用中かを判断することを表している。消費電力の電力値が使用中であるときに、その直前の計測時点で待機中であれば、待機中から使用中に変化したと判断されるから、第１層Ｌ１１に表現されているように、「エージェント」は、「子供の帰宅」を「母親」の「スマートフォン」を用いて「通知する」。
【００６６】
第２層Ｌ１２の判断は、第３層Ｌ１３のように、エージェント１０が計測装置から取得した消費電力の電力値を閾値と比較することにより行われる。さらに、第４層Ｌ１４では、エージェント１０が、リビングに対応する消費電力の電力値と閾値との大小を比較し、比較結果に応じて使用中か待機中かを判断することで行われる。
【００６７】
図４のような階層的知識が知識記憶部１４に格納された状態で、エージェント１０が消費電力の電力値に基づいて子供の帰宅を判断すると、エージェント１０は、その判断を行った理由の説明を行うことが可能になる。ここに、特定の日においてリビングに対応する分岐回路の消費電力の電力値が閾値以下から閾値を超える状態に移行したことによって、エージェント１０は、待機中から使用中に移行したと認識し、子供の帰宅を母親に通知する。ここで、エージェント１０が子供の帰宅と判断するときには、消費電力の電力値、判断の日時などについて具体例が当て嵌められるから、階層的知識の状態が一意に定められる。
【００６８】
たとえば、５月２１日の１６時以降に、子供の帰宅が母親に通知されたとすると、図４に示す「毎時点」、「現在」のような時間を含む情報は一意に決定されている。つまり、階層的知識に含まれている選択肢は確定し、具体例として事象記憶部１６に格納されている。この時点において、エージェント１０に対して、「子供の帰宅を母親に通知したのはどのようにしたのですか？」という質問すると、この質問文は、質問文解析部１７において格文法に従って分析される。
【００６９】
質問文解析部１７は、上述した質問文から、「通知する」という動詞を抽出する。動詞「通知する」に対して、目標格は「母親」、対象格は「子供の帰宅」である。つまり、格文法を適用して上述した質問文を解析し、解析結果をノードおよびリンクを用いて表現すると、図５に示す形式の質問グラフが生成される。エージェント１０の探索部１９は、対話装置１２に上述のような質問文が入力され、質問文解析部１７が図５のような質問グラフを抽出すると、事象記憶部１６に格納された具体例において、質問グラフに整合する部分を探索する。図５に示す質問グラフは、事象記憶部１６に格納された階層的知識の具体例における第１層Ｌ１１（図４参照）の一部に合致する。
【００７０】
質問文は、「どのように／したの／ですか」であって、手段タイプに分類されるから、「how」のリンクを辿ることにより、第２層Ｌ１２以下の知識を利用する。第２層Ｌ１２には、「通知する」のノードに「how」のリンクで結合された「検知する」という動詞のノードと、この動詞の対象格である「待機中から使用中への変化」のノードとが含まれている。探索部１９は、動詞「検知する」と対象格「待機中から使用中への変化」とからなる単位表現を、応答用の単位表現として応答文生成部１８に引き渡す。応答文生成部１８は、第２層Ｌ１２の知識を応答用の単位表現として用いることにより、「待機中から使用中への変化を検知したことによります」という応答文を生成し、対話装置１２を通して応答文をユーザに提示する。
【００７１】
ここで、よりユーザに伝わり易い文とするため、図６Ｂのように、単位表現レベルでの変換を施すことが望ましい。ここでは、動詞「検知する」の対象格としての「待機中から使用中への変化」と、動作主格としての「エージェント」を交換し、さらに動詞を受動態に変更する。すなわち、動詞「検知される」の動作主格（Ｓ）を「待機中から使用中への変化」、「エージェント」を源泉格（from）に変換した単位表現にする。この単位表現を、応答用の単位表現として応答文生成部１８に伝える。応答文生成部１８は、「待機中から使用中への変化が、エージェントから検知されたことによります．」のような文を生成する。この文で、「エージェントから」は自明であるので省略してもよい。なお、文を推敲するためのルールを登録したデータベースを設け、このデータベースを参照してルールを適用することにより、「待機中から使用中への変化が見つけられたことによります。」のように文を編集してもよい。
【００７２】
質問文が、実行部１３による制御に関する内容である場合、ユーザはキーワードではなく、エージェント１０による制御の理由あるいは制御の手段を問い合わせる。一方、探索部１９は、実行部１３の実行結果に基づく具体例を用いて応答用の単位表現を生成している。その結果、実行部１３の実行内容に応じた応答文を得ることが可能であり、かつキーワードで回答を探し出す場合に比較して不要な情報が含まれる可能性を低減することができる。
【００７３】
ところで、第２層Ｌ１２において、動詞「検知する」のノードは、「毎時点判断する」というノードとの間にリンクを有している。また、「検知する」のノードは、第１層Ｌ１１における動詞「通知する」のノードに「why」のリンクで結合されている。知識記憶部１４の第２層Ｌ１２における「毎時点判断する」のノードは、事象記憶部１６の第２層Ｌ１２においては、「１６：００に判断する」である。このノードからさらにリンクを辿ると、第３層Ｌ１３の「現在の電力値」に対応する具体例として「リビング回路の現在の電力値」が得られる。これらの情報を用いて探索部１９が生成した応答用の単位表現が応答文生成部１８に引き渡される。したがって、応答文生成部１８は、たとえば、「１６：００のリビング回路の電力値により、使用中と判断したからです」のような応答文を生成することが可能になる。
【００７４】
（事例２）
事例１は、住宅で用いられるエージェント１０が単独で行う処理について説明した。以下に説明する事例は、空調機器により環境が制御される空間に複数のユーザが存在し、ユーザ３０ごとのエージェント１０が協議して、空調機器の制御内容を決定する例について説明する。この種のマルチエージェントシステムにおいて、エージェント１０が合意する技術は、本事例では簡単に説明するにとどめる。
【００７５】
本事例では、３種類のユーザを想定する。ユーザの属性は、ユーザの温冷感と、ユーザの省エネ指向との２軸で分類する。表１に、３種類のユーザ（第１のユーザ、第２のユーザ、第３のユーザ）の属性の例を示す。省エネ指向は、省エネルギーを優先する程度を意味しており、省エネ指向において「快適性重視」は、省エネルギーよりも快適性を優先することを意味する。
【００７６】
【表１】
2016029561.tif 000003
【００７７】
ユーザごとのエージェント１０は、ユーザの温冷感、空調機器の設定温度、空調機器の風量などを用いて、現状のＰＭＶ値（ＰＭＶ：Predicted Mean Vote）と、設定温度と風量との少なくとも一方が変更されてから一定時間後のＰＭＶ値とを求める。エージェント１０は、ＰＭＶ値の変化からユーザごとの温冷感の変化を予測する。温冷感の評価は、良くなる、良いまま、悪いまま、悪くなるなどから選択される。また、エージェント１０は、空調機器の設定温度と風量との少なくとも一方が変更されてから一定時間後の電気料金（単位時間当たり）の変化を予測する。電気料金の評価は、高くなる、変わらない、安くなるから選択される。ユーザごとのエージェント１０は、担当するユーザの属性に応じて、ユーザにとっての価値（期待効用）を、温冷感と電気料金とを組み合わせて自律的に判断する。
【００７８】
ここで、室内に属性の異なる３人のユーザが存在すると、設定された空調機器の温度および風量に対して合意が形成されず、ユーザにとっての価値に競合が生じる可能性が高くなる。本事例では、ユーザにとっての価値に競合が生じる場合に、合意が形成されるように、ユーザごとのエージェント１０に相互に交渉する機能を与えている。
【００７９】
すなわち、３人以上のユーザに対応したエージェント１０が存在する場合、空調機器を操作しようとするエージェント１０が、他のエージェント１０に対して設定温度と風量とに関する提案を行う。また、提案を受け入れないエージェント１０が存在すれば、提案したエージェント１０が、提案を受け入れないエージェント１０と交渉することにより、競合の解消を図る。要するに、設定温度と風量との少なくとも一方を変更しようとするエージェント１０がマネージャになり、変更に反対するエージェント１０がコントラクタになって、マネージャとコントラクタとが、競合の解消を図るように交渉を行うのである。
【００８０】
以下に、第３のユーザに対応するエージェント１０がマネージャになり、第１のユーザに対応するエージェント１０がコントラクタになって、合意を形成するように交渉する手順の例を簡単に説明する。以下では、第１のユーザに対応したエージェント１０を第１のエージェントと呼び、第３のユーザに対応したエージェント１０を第３のエージェントと呼ぶ。なお、以下の動作例において、（Ａ、Ｂ）は、Ａが設定温度、Ｂが風量であり、風量は弱、中、強の３段階が選択可能である。
手順（１）第３のエージェントは、第１のエージェントに設定変更を提案した。
手順（２）現状は（２８℃、中）、第３のエージェントの提案は（２６℃、強）である。
手順（３）第１のエージェントは、第３のエージェントからの設定変更に対する第１のユーザにとっての期待効用を求め、価値を評価した。
手順（４）第１のエージェントは、設定変更を望ましくない（R）と評価した。
手順（５）第１のエージェントは、第３のエージェントに対して設定変更を拒否した。
手順（６）マネージャである第３のエージェントは、第１のエージェントをコントラクタに指名した。
手順（７）第１のエージェントは設定変更を再評価し、評価結果をどちらでもない（Y）に変更した。
手順（８）第１のエージェントは、マネージャである第３のエージェントとの協調のために再評価を行った。
手順（９）第１のエージェントは、再評価に際して、期待効用と比較する閾値を下げた。
手順（１０）第１のエージェントは、次の更新までの期限付きで閾値を下げることによって、マネージャである第３のエージェントに対して設定変更を許可した。
【００８１】
上述した手順（１）〜（１０）は、「評価する」、「拒否する」、「指名する」、「閾値を下げる」などの動詞と、第１のエージェントのような動作主格、「設定変更」、「期待効用」のような対象格などと含んでいる。したがって、格文法を用いて、手順（１）〜（１０）の内容を、上述した単位表現で表すことが可能である。なお、閾値は、複数段階に設定されており、閾値を下げるは１段階下げることを意味する。また、R、Yの意味は後述する。
【００８２】
たとえば、手順（１０）の内容は、図７に示す形式で表される。この単位表現における動詞は「許可する」であり、動作主格は「第１のエージェント」（寒がり、省エネ重視）である。また、対象格は「設定変更」であり、目標格はマネージャである「第３のエージェント」、道具格は「次の更新までの期限付きで閾値を下げる」という条件が用いられる。
【００８３】
上述した手順（１）〜（１０）の処理は、たとえば、図８に示すように、第１層Ｌ２１、第２層Ｌ２２、第３層Ｌ２３の３階層からなる階層的知識として表現することができる。なお、図８は条件が確定した後の具体例であって、この階層的知識は事象記憶部１６に格納される。図７に示した手順（１０）は、図８では第２層Ｌ２２の一部を構成している。手順（１０）の処理は、手順（７）の処理の結果であり、手順（７）の後に手順（１０）が行われるという時間関係がある。そのため、手順（７）の「再評価する」というノードから、手順（１０）の「許可する」というノードに向かう有向リンクが設けられている。リンクに付与された「Y」はどちらとも言えないという評価を表す。なお、「R」は拒否するという評価、「G」は許可するという評価を表す。
【００８４】
ところで、図７、図８などに現れているように、知識を表現するノードには、分岐を持つノードがある。単位表現のために用いるノードは、表２に示すように３種類に分類される。
【００８５】
【表２】
2016029561.tif 000004
【００８６】
パターン１は、動詞に対応したノードが、判断あるいは確認を伴うノードであって、判断あるいは確認の結果が二分される場合に生じる。つまり、このノードが表す単位タスクの処理結果は、肯定と否定、良好と不良、居ると居ない、ありとなし、などの２つの値の一方になる。パターン２は、動詞に対応したノードが、評価を伴うノードであって、評価の結果が複数に分岐される場合に用いられる。たとえば、上述した例であれば、どちらとも言えない（Y）、拒否する（R）、許可する（G）の３種類の評価結果が得られる場合に、パターン２が用いられる。パターン３は、条件が成立するか否かによる分岐であり、条件を表すノードに向かうリンクに「if」が付与され、当該ノードで分岐するリンクに「then」または「else」が付与される。以上のように、判断あるいは条件を具体的に示す動詞を起点とする単位表現から、その先の動詞を起点とする単位表現への分岐パターンとして、３種類のパターンを用意した。
【００８７】
なお、手順（６）から手順（７）へは分岐を伴わない時間順を表しており、事例１において説明したように、この関係は、ノード間を結ぶリンクに「then」が付与されることにより表される。図８に示す例では、「指名される」のノードから「再評価する」のノードに向かうリンクに「then」が付与され、これらのノードで表される単位タスクが順に処理されることを表している。
【００８８】
手順（８）は手順（７）の実行理由あるいは意図を示す内容と解釈できる。そのため、図８では、手順（７）の単位表現の中心である動詞「再評価する」を表すノードから、手順（８）の単位表現の中心の動詞「協調する」を表すノードに向かう「why」のリンクを設けている。また、動詞「協調する」を表すノードから動詞「再評価する」を表すノードに向かう「how」のリンクを設けている。「why」が実行理由に対応し、「how」が実行手段に対応することは上述した通りである。
【００８９】
同様にして、手順（７）の動詞「再評価する」を表すノードと、手順（９）の動詞「閾値を下げる」を表すノードとの間にも、「why」のリンクと「how」のリンクとが設けられる。
【００９０】
以上のように、図８に示す階層的知識は、手順（１）→手順（２）→手順（４）→手順（５）→手順（６）→手順（７）→手順（１０）というように、エージェント１０が実行する処理の時間順の関係に関する知識を表す。また、図８に示す階層的知識は、手順（７）、手順（８）、手順（９）の間における、実行理由と実行手段との関係の知識も表している。階層的知識は、知識記憶部１４に格納され、マネージャとコントラクタとが決まると、階層的知識に具体的な設定内容が当て嵌められて事象記憶部１６に格納される。上述したように、図８は事象記憶部１６に格納された階層的知識の例である。
【００９１】
上述の例のように、暑がりで快適性重視のユーザである第３のユーザがマネージャになり、寒がりで省エネ重視のユーザである第１のユーザがコントラクタになって、空調機器の設定が（２６℃、強）になったとする。つまり、設定温度が２８℃から２６℃になり、風量が中から強になったとする。ここで、第１のユーザが、対話装置１２を用いて第１のエージェントに、「なぜ、設定を（２６℃、強）に変更する許可をしたのか？」という質問文を与えたとする。
【００９２】
第１のエージェントがコントラクタとして行った処理の内容は、階層的知識に対する具体例として適用され、事象記憶部１６に格納されている。したがって、上述のような質問文が質問文解析部１７に与えられると、質問文解析部１７は、「許可する」という動詞のノードと、対象格の「設定変更（２６℃、強）」のノードとをリンクで結合した質問グラフを生成する。
【００９３】
探索部１９は、この質問グラフを事象記憶部１６に格納されている階層的知識の具体例と照合し、第２層Ｌ２２の「許可する」というノードを抽出する。探索部１９は、「許可する」という動詞のノードを抽出した後、動詞「許可する」を起点とする単位表現の構成要素、すなわち「許可する」ノードにリンクで結合されたノードに着目する。具体的には、探索部１９は、「許可する」ノードに、「with」リンクで結合された「次更新までの期限付きで閾値を下げる」ノード、「to」リンクで結合された「マネージャ」ノード、および「O」リンクで結合された「設定変更（２６℃、強度）」ノードに着目する。探索部１９は、これらのノードを用いて応答用の単位表現を生成する。
【００９４】
応答文生成部１８は、探索部１９から引き渡された図９Ａのような応答用の単位表現をもとに、たとえば、「マネージャに対して、設定変更を次更新までの期限付きで閾値を下げることで許可しました」のような応答文を生成する。
【００９５】
探索部１９が抽出した応答用の単位表現において動詞を受動態に変換する場合は、以下の処理を行う。図９Ｂに示すように、「O」リンクで結合された対象格の「設定変更」を、動作主格に変更するために「S」リンクに変更し、かつ動詞「許可する」を受動態の「許可される」に変換する。探索部１９は、変換後の単位表現を、応答用の単位表現として応答文生成部１８に引き渡す。この例では、応答文生成部１８は、たとえば、「マネージャに対して、次更新までの期限付きで閾値を下げるように、設定変更が許可されました」のような応答文を生成する。
【００９６】
さらに、質問文解析部１７は、質問文の形式から、実行理由に対する質問と解釈する。質問文解析部１７は、動詞「許可する」ノードに「Y」リンクで結合された動詞「再評価する」ノードを起点とする単位表現と、動詞「再評価する」ノードから「why」リンクを辿る。したがって、質問文解析部１７は、動詞「再評価する」ノードを起点とする単位表現と、第１層Ｌ２１の動詞「協調する」を起点とする単位表現とを抽出する。動詞「協調する」を起点とする単位表現の構成要素は、動作主格（S）が「第１のエージェント」であり、「with」リンクで「マネージャ」が結合されている。したがって、応答文生成部１８は、たとえば、「第１エージェントはマネージャと協調するためです」という理由に関する応答文を生成する。
【００９７】
ここで、探索部１９は、応答用の単位表現を生成するために、単位表現の動作主格の変更および動詞の受動態への変更を行う処理を行う。この例では、探索部１９が抽出した単位表現には対象格（O）がなく、動作主格（S）は第１エージェントであり、動詞は「協調する」である。単位表現に対象格がないので、動詞を受動態に変換すると動作主格が消滅し、「from」リンクで「第１のエージェント」が結合される。また、動詞は「協調される」に変更される。変更後の単位表現が応答用の単位表現として応答文生成部１８に引き渡される。したがって、応答文生成部１８は、たとえば「第１のエージェントからマネージャと協調されたからです」のような応答文を生成する。この応答文において、「第１のエージェントから」は省略可能である。
【００９８】
さらに、探索部１９は、動詞「再評価する」を起点とする単位表現に着目し、その対象格である「設定変更（２６℃、強）」と評価結果「Y」とを見出す。したがって、探索部１９は、このような関係を応答用の単位表現として応答文生成部１８に引き渡す。応答用の単位表現を引き渡された応答文生成部１８は、「設定変更（２６℃、強）を再評価し、「Yと評価しました」というような応答文を生成する。
【００９９】
また、第１のエージェントが第１のユーザから、再評価に関して実行手段に関する質問を受けた場合には、動詞「再評価する」に結合された「how」のリンクを辿る。この例の場合、応答文生成部１８は、動詞「閾値を下げる」に関連する単位表現を、探索部１９から応答用の単位表現として受け取り、「閾値を下げました」のような応答文を生成する。
【０１００】
上述した動作例は、エージェント１０がユーザから１つの質問を受け取った場合について記載したが、エージェント１０がユーザから複数の質問を次々に受け取ることも考えられる。
【０１０１】
いま、最初の質問文が「許可したのはどういうことですか？」であるとする。質問文が「どういう／こと／ですか」を含んでいるので、質問文解析部１７はタイプ判定処理により、質問文を経緯タイプと判定する。探索部１９は、動詞「許可する」に「Y」のリンクで結合されている動詞「再評価する」のノードを抽出し、動詞「再評価する」と、「再評価する」のノードに対する対象格である「設定変更（２６℃、強）」とを含む応答用の単位表現を確定する。応答文生成部１８は、探索部１９から上述の応答用の単位表現を受け取ると、「設定変更２６℃、強を再評価してYとしました」のような経緯を説明する応答文を生成する。
【０１０２】
ユーザが上述のような応答文を受け取ると、ユーザは「再評価したのはなぜですか？」のような質問文をエージェント１０に与えることが考えられる。この質問文は「なぜ／ですか」を含むので、質問文解析部１７は質問文を理由タイプと判定する。探索部１９は、動詞「再評価する」のノードと「why」のリンクで結合している「協調する」のノードを抽出し、さらに「協調する」の動作主体と道具格とを含む単位表現を抽出する。つまり、探索部１９は、具体化処理により動詞「協調する」を含む単位表現を抽出すると、抽出した単位表現を確定処理により応答用の単位表現として確定する。応答文生成部１８は、探索部１９から上述の応答用の単位表現を受け取ると、「マネージャと協調するためです」のような理由を説明する応答文を生成する。
【０１０３】
また、ユーザが「再評価はどのようにしたのですか？」という質問文をエージェント１０に与えると、「どのように／したの／ですか」を特徴的表現として、質問文解析部１７は質問文を手段タイプに分類する。探索部１９は、動詞「再評価する」のノードと「how」のリンクで結合している「閾値を下げる」のノードを抽出し、さらに「閾値を下げる」の動作主体と対象格とを含む単位表現を抽出する。つまり、探索部１９は、具体化処理により動詞「閾値を下げる」を含む単位表現を抽出すると、抽出した単位表現を確定処理により応答用の単位表現として確定する。応答文生成部１８は、このような応答用の単位表現を探索部１９から受け取ると、「閾値を１段階下げることをしました」のような応答文を生成する。
【０１０４】
以上説明したように、本実施形態は、格文法を適用して文中の単位タスク間の関係を表した有向グラフ、すなわち単一の動詞ノードを起点とした複数のリンク先のノード群から構成される有向グラフを単位表現としている。また、本実施形態は、前後関係あるいは分岐パターンによる時間的関係で複数個の単位表現を結合することにより、階層的知識の１個の階層を構成している。さらに、階層的知識は、理由あるいは手段を表すリンクで複数の階層間の関係も表している。そのため、エージェント１０が行う処理が、処理単位に区分された単位表現の組み合わせで表される。このような単位表現は１０個程度のパターンに集約されるという知見が得られており、エージェント１０のほとんどの動作を、１０個程度の基本的なパターンの組み合わせで表現することが可能になっている。
【０１０５】
また、本実施形態は、単位タスクの間の関係を階層化して表現し、動詞を中心とした単位表現の間に「why」のリンク、「how」のリンク、「then」のリンクなどを設定している。したがって、これらのリンクを辿ることによって、単位タスクの理由、手段、経緯などの問い合わせに回答することが可能になる。
【０１０６】
上述した実施形態において階層的知識は、ノードと向きを有するリンク（有向リンク）とを用いて表されている。また、リンクには、格文法における深層格、単位タスクの実行理由および実行手段、分岐の条件など意味付けがなされている。このようにリンクに意味付けを行っている点で、実施形態における階層的知識は、キリアン（Quilian）の意味ネットワークと類似点がある。もっとも、リンクに付与した意味の内容は、キリアンの意味ネットワークを拡張した内容になっている。
【０１０７】
知識を表現する方法は、実施形態において説明した意味ネットワークのような形式ではなく、人工知能分野で知識表現の他の手段として知られているフレーム表現を用いることも可能である。ただし、知識の単位表現は、語彙と語彙間の結合関係とで表される必要がある。さらに、知識は、実行部１３が機器２０との間で行う処理を構成する単位タスク間の因果関係によって、単位表現が結び付けられている必要がある。
【０１０８】
上述した動作例では、ユーザの視点あるいはユーザの関心に合う応答文が生成されるように、探索部１９が事象記憶部１６が記憶している階層的知識を用いて、応答用の単位表現を生成している。一方、事象記憶部１６が記憶している階層的知識のノードでは、「閾値」、「次更新」などの抽象的な語彙が用いられることがある。応答文にこの種の語彙が含まれていると、ユーザにとってはわかりにくいので、温度、時間などの具体的な数値に置き換えることが望ましい。
【０１０９】
以上説明したように、本実施形態のエージェント１０は、実行部１３と対話装置１２と知識記憶部１４と事象記憶部１６と質問文解析部１７と応答文生成部１８と探索部１９とを備える。実行部１３は、所定の処理を行う。知識記憶部１４は、実行部１３が行う処理を構成する単位タスクの内容を、語彙と語彙間の結合関係とで表した単位表現を用い、単位タスク間の因果関係に着目して単位表現を結び付けた知識の原型を記憶する。事象記憶部１６は、実行部１３が実施した処理の条件および結果を知識の原型に当て嵌めることにより得られる具体例を記憶する。対話装置１２は、ユーザから質問文が入力され、質問文に対する応答文を前記ユーザに提示する。質問文解析部１７は、ユーザが入力した質問文を語彙と語彙間の結合関係とで表した質問グラフを生成する。探索部１９は、事象記憶部１６が記憶する具体例において語彙と語彙間の結合関係が質問グラフに整合する部分を探索する。さらに、探索部１９は、具体例から抽出した部分を含む単位表現に対して、因果関係により結び付けられている他の単位表現を抽出し、他の単位表現に含まれる語彙および語彙間の結合関係を用いて応答用の単位表現を確定する。応答文生成部１８は、探索部１９が確定した応答用の単位表現を用いて応答文を生成する。
【０１１０】
この構成では、エージェント１０が行う処理を構成する単位タスクが単位表現で表され、かつ単位表現が語彙と語彙間の結合関係で表され、さらに、単位タスク間の因果関係に対応するように単位表現を結び付けている。これにより、本実施形態は、単位表現の関係から処理の単位タスク間の因果関係を知ることができる。また、対話装置１２から入力された質問文が、質問文解析部１７により語彙と語彙間の結合関係で表した質問グラフで表され、処理の条件および結果を知識の原型に当て嵌めた具体例のうち質問グラフに整合する部分が探索部１９に抽出される。そのため、応答文生成部１８は、具体例における単位表現を用いて応答文を生成することが可能になる。つまり、質問に対して不要な情報が抽出されにくいから、ユーザにとって信頼できる応答文が得られる。
【０１１１】
単位表現は、実行部１３が行う処理を構成する単位タスクの内容に対応する単一の動詞を表す第１のノードに、格文法における深層格を表す第２のノードをリンクで結合した形式で表されていることが望ましい。
【０１１２】
この構成では、知識の単位表現において格文法を用いているから、実行部１３が行う処理の内容に対応付けた単位表現を比較的容易に作成することができる。すなわち、第１のノードが表す動詞を、実行部１３が行う処理を構成する単位タスクのコマンドに対応付け、深層格に相当する語彙、および深層格の種類に相当する語彙間の結合関係を、コマンドの実行条件に対応付けることができる。
【０１１３】
また、エージェント１０において、単位タスク間の因果関係に着目して結び付けられる複数の単位表現は、それぞれの単位表現に含まれる第１のノードの間が、単位タスクの実行理由あるいは単位タスクの実行手段を表すリンクで結合されていることが望ましい。
【０１１４】
この構成では、複数の単位表現における第１のノードの間が、実行部１３で行う処理を構成する単位タスクの実行理由あるいは単位タスクの実行手段を表すリンクで結合されている。したがって、質問グラフに合致する第１のノードから他の単位表現の第１のノードを辿ることにより、エージェント１０は、実行部１３が行う処理を構成する単位タスクの因果関係を用いて、単位タスクの実行理由あるいは単位タスクの実行手段を説明する応答が可能になる。
【０１１５】
探索部１９は、他の単位表現に含まれる語彙および語彙間の結合関係において、動作主格の語彙を対象格の語彙に置き換え、対象格の語彙があれば対象格の語彙を動作主格の語彙に置き換えるように語彙間の結合関係を変更することが望ましい。探索部１９は、語彙間の結合関係を変更することに加えて、他の単位表現に含まれる動詞を受動態に変更することにより得られる単位表現を、応答用の単位表現とすることが望ましい。
【０１１６】
この構成によれば、ユーザにとって効用の高い応答文が生成される可能性が高くなり、結果的に、ユーザにとって分かり易い応答文が生成される可能性が高くなる。
【０１１７】
対話装置１２は、入力された音声をテキストデータに変換して質問文解析部１７に与える構成であってもよい。この構成によれば、ユーザ３０が音声で質問文を与えることが可能になる。
【０１１８】
対話装置１２は、応答文生成部１８から与えられたテキストデータを音声に変換して出力する構成であってもよい。この構成によれば、ユーザ３０に対して音声による応答を行うことが可能になる。
【０１１９】
なお、上述した実施形態は本発明の一例である。このため、本発明は、上述の実施形態に限定されることはなく、この実施形態以外であっても、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることはもちろんのことである。
【符号の説明】
【０１２０】
１０  エージェント
１２  対話装置
１３  実行部
１４  知識記憶部
１６  事象記憶部
１７  質問文解析部
１８  応答文生成部
１９  探索部
【図１】
2016029561.tif 000005
【図２】
2016029561.tif 000006
【図３】
2016029561.tif 000007
【図４】
2016029561.tif 000008
【図５】
2016029561.tif 000009
【図６】
2016029561.tif 000010
【図７】
2016029561.tif 000011
【図８】
2016029561.tif 000012
【図９】
2016029561.tif 000013