(57)【特許請求の範囲】
【請求項１】
自然言語の対話により、与えられた問い合わせ文に対する解を含む応答文を生成する応答生成装置であって、
意図表現辞書を記憶する意図表現辞書記憶手段を参照して、前記問い合わせ文から、発話者の意図表現を抽出するとともに、前記解を導出する前に解決されるべき部分問題を抽出する解析部と、
問題解決手順定義を記憶する問題解決手順定義手段を参照して、前記意図表現を処理し、前記部分問題ごとの解である部分解を導出した後、該部分解に基づいて、前記問い合わせ文に対する解である全体解を導出する問題解決部と、
前記全体解とともに、前記部分問題のそれぞれに対応する前記問い合わせ文の要素である部分問題表現と、前記部分解の表現である部分解表現とを対とする部分問題表現対を含む応答文を生成する応答文生成部を具備する
ことを特徴とする応答生成装置。
【請求項２】
上記応答装置は、さらに、
各文型に対応し、前記部分問題ごとに解スロットを定義する応答文のテンプレートを記憶する応答文テンプレート記憶部を具備し、
前記応答文生成部は、前記部分問題表現対を、対応する前記解スロットにバインドする
ことを特徴とする請求項１に記載の応答生成装置。
【請求項３】
上記応答装置は、さらに、
前記生成された応答文に関して、前記部分問題表現対中の前記部分問題表現と、対応する前記部分解表現との同一性を判定する同一性判定部を具備し、
前記応答文生成部は、前記同一性が判定された部分問題表現対から、前記部分問題表現または前記部分解表現のいずれか一方を選択して前記部分問題表現対に替えて出力すべき応答文に含める
ことを特徴とする請求項１または２に記載の応答生成装置。
【請求項４】
上記応答生成装置は、さらに、
各発話表現と、該発話表現が示す概念の抽象度との関係を規定する概念階層を記憶する概念階層記憶部を具備し、
前記同一性判定部は、前記概念階層に基づいて、前記部分問題表現と、対応する前記部分解表現との同一性を判定する
ことを特徴とする請求項３に記載の応答生成装置。
【請求項５】
前記同一性判定部は、
前記部分問題表現と、対応する前記部分解表現との発話表現上の差異に基づいて、前記同一性を判定する
ことを特徴とする請求項３または４に記載の応答生成装置。
【請求項６】
上記応答装置は、さらに、
前記生成された応答文の長さが所定の第１の閾値を超えるか否かを判定する第１の判定部を具備し、
前記応答文生成部は、前記応答文の長さが所定の閾値を超える場合に、部分問題表現対から、前記部分解表現を選択して前記部分問題表現対に替えて出力すべき応答文に含める
ことを特徴とする請求項１乃至５のいずれか記載の応答生成装置。
【請求項７】
上記応答生成装置は、さらに、
各部分問題表現対の長さが所定の第２の閾値を超えるか否かを判定する第２の判定部を具備し、
前記応答文生成部は、前記部分問題表現対の長さが所定の閾値を超える場合に、前記部分問題表現対から、前記部分解表現を選択して前記部分問題表現対に替えて出力すべき応答文に含める
ことを特徴とする請求項１乃至５のいずれか記載の応答生成装置。
【請求項８】
自然言語の対話により、与えられた問い合わせ文に対する解を含む応答文を生成するために、解析部と、問題解決部と、応答文生成部とを具備する応答文生成装置が実行する応答生成方法であって、
前記解析部により、意図表現辞書を記憶する意図表現辞書記憶手段を参照して、前記問い合わせ文から、発話者の意図表現を抽出するとともに、前記解を導出する前に解決されるべき部分問題を抽出する解析ステップと、
前記問題解決部により、問題解決手順定義を記憶する問題解決手順定義手段を参照して、前記意図表現を処理し、前記部分問題ごとの解である部分解を導出した後、該部分解に基づいて、前記問い合わせ文に対する解である全体解を導出する問題解決ステップと、
前記応答文生成部により、前記全体解とともに、前記部分問題のそれぞれに対応する前記問い合わせ文の要素である部分問題表現と、前記部分解の表現である部分解表現とを対とする部分問題表現対を含む応答文を生成する応答文生成ステップと、
前記生成された応答文を出力制御する出力ステップとを含む
ことを特徴とする応答生成方法。
【請求項９】
上記応答生成方法は、さらに、
応答文テンプレート選択部により、各文型に対応し、前記部分問題ごとに解スロットを定義する応答文にテンプレートを選択する応答文テンプレート選択ステップを含み、
前記応答文生成ステップは、前記部分問題表現対を、対応する前記解スロットにバインドする
ことを特徴とする請求項８に記載の応答生成方法。
【請求項１０】
上記応答生成方法は、さらに、
同一性判定部により、前記生成された応答文に関して、前記部分問題表現対中の前記部分問題表現と、対応する前記部分解表現との同一性を判定する同一性判定ステップを含み、
前記応答文生成部は、前記同一性が判定された部分問題表現対から、前記部分問題表現または前記部分解表現のいずれか一方を選択して前記部分問題表現対に替えて出力すべき応答文に含める
ことを特徴とする請求項８または９に記載の応答生成方法。
【請求項１１】
上記応答生成方法は、さらに、
閾値判定部により、前記生成された応答文または前記部分問題表現対の長さが所定の閾値を超えるか否かを判定する判定ステップを含み、
前記応答文生成部は、前記応答文または前記部分問題表現対の長さが所定の閾値を超える場合に、部分問題表現対から、前記部分問題表現または前記部分解表現のいずれか一方を選択して前記部分問題表現対に替えて出力すべき応答文に含める
ことを特徴とする請求項８乃至１０のいずれか記載緒応答生成方法。
【請求項１２】
自然言語の対話により、与えられた問い合わせ文に対する解を含む応答文を生成する応答生成処理をコンピュータに実行させるプログラムを格納するコンピュータ読み取り可能な記録媒体であって、
前記プログラムは、前記コンピュータに、
意図表現辞書を記憶する意図表現辞書記憶手段を参照して、前記問い合わせ文から、発話者の意図表現を抽出するとともに、前記解を導出する前に解決されるべき部分問題を抽出する解析処理と、
問題解決手順定義を記憶する問題解決手順定義手段を参照して、前記意図表現を処理し、前記部分問題ごとの解である部分解を導出した後、該部分解に基づいて、前記問い合わせ文に対する解である全体解を導出する問題解決処理と、
前記全体解とともに、前記部分問題のそれぞれに対応する前記問い合わせ文の要素である部分問題表現と、前記部分解の表現である部分解表現とを対とする部分問題表現対を含む応答文を生成する応答文生成処理を含む
処理を実行させるためのものであることを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１３】
上記コンピュータ読み取り可能な記録媒体に格納されるプログラムは、さらに、
各文型に対応し、各部分問題ごとに解スロットを定義する応答文のテンプレートを選択する応答文テンプレート選択処理を前記コンピュータに実行させ、
前記応答文生成処理は、前記部分問題表現対を、対応する前記解スロットにバインドする
ことを特徴とする請求項１２に記載のコンピュータ読み取り可能な記録媒体。
【請求項１４】
上記コンピュータ読み取り可能な記録媒体に格納されるプログラムは、さらに、
前記生成された応答文に関して、前記部分問題表現対中の前記部分問題表現と、対応する前記部分解表現との同一性を判定する同一性判定処理を前記コンピュータに実行させ、
前記応答文生成処理は、前記同一性が判定された部分問題表現対から、前記部分問題表現または前記部分解表現のいずれか一方を選択して前記部分問題表現対に替えて出力すべき応答文に含める
ことを特徴とする請求項１２または１３に記載のコンピュータ読み取り可能な記録媒体。
【請求項１５】
上記コンピュータ読み取り可能な記録媒体に格納されるプログラムは、さらに、
前記生成された応答文または前記部分問題表現対の長さが所定の閾値を超えるか否かを判定する判定処理を前記コンピュータに実行させ、
前記応答文生成処理は、前記応答文または前記部部問題表現対の長さが所定の閾値を超える場合に、部分問題表現対から、前記部分問題表現または前記部分解表現のいずれか一方を選択して前記部分問題表現対に替えて出力すべき応答文に含める
ことを特徴とする請求項１２乃至１４のいずれか記載のコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、応答生成装置、対話管理装置、応答生成方法、および応答生成プログラムを格納するコンピュータ読みとり可能な記録媒体に関する。特に、自然言語による対話型の問題解決システムにおいて、複雑な問い合わせ文に対して、問題文に対する正確な応答が得られたか否かを、ユーザに実時間内で容易に把握させることのできる対話技術に関する。
【０００２】
【従来の技術】
音声を入力チャネルとする対話システム（以下、「音声対話システム」と称する）を、問題解決型システムのインターフェースに採用する場合について考える。
【０００３】
例えば、カーナビゲーションシステム（以下、単に「カーナビ」と称する）のインターフェースを音声対話システムにすることができる。
【０００４】
このカーナビを利用して問題解決を図るためには、音声対話システムに以下の仕様が求められる。
【０００５】
（１）簡単な質問から複雑な質問まで、多様な質問に対して解答が得られることを要する。
【０００６】
（２）得られた解答がユーザの意図を満たしているかを、ユーザ自身が簡単に確認できることを要する。
【０００７】
（３）ユーザの問題解決のための解答が実時間で得られることを要する。例えば、カーナビの場合であれば、この回答は、経路の選択を助ける内容となる。
【０００８】
これらの仕様のうち、（１）に示す多様な質問に対する解答の提示という点に関しては、既に様々な研究が行われている。
【０００９】
次に、上記の（２）および（３）の要求仕様に関する従来技術の問題点を、カーナビの場合を例として具体的に説明する。
【００１０】
例えば、ユーザが、図１３に示す経路を走行中であって、現在地として示される地点を通過中であるとする。ユーザは、摩耶出口までに複数のサービスエリアが存在することを知っており、これからどこで休憩するかを決めたいと考えたとする。ここで、ユーザは、カーナビに対して、以下の入力文により質問する。
【００１１】
「出口の前の最後のサービスエリアまでどれくらい？」
この質問に応答するためには、例えば以下の手順が必要となる。
【００１２】
ａ．「出口の前の最後のサービスエリア」に該当するサービスエリアをデータベースから検索する。
【００１３】
ｂ．現在地から「出口の前の最後のサービスエリア」までの距離を算出する。
ｃ．算出された距離を含む応答文を生成する。
【００１４】
この手順ｃにおいて、生成される文には、以下の２つのパターンがある。
【００１５】
第１に、カーナビによる推論の過程を全く示さずに、推論結果のみを解答として生成する方法がある。図１３の例では、手順ａでの解は「魚崎サービスエリア」、手順ｂでの解は「１５キロメートル」である。従って、この第１の方法は、以下の応答文を生成する。
【００１６】
「魚崎サービスエリアまでの距離は約１５キロです」
しかし、ユーザは、上記の応答文が応答された場合、カーナビシステムが、発話された質問文で提示された問題を正しく認識し、正しいプロセスで問題解決したのか否かを確認することができない。すなわち、ユーザは、得られた応答が正しいか否かを検証することができない。一般に、カーナビに対して音声で入力を行うと、音声の認識誤りが一定程度発生する。このため、ユーザは、期待する解答が得られず、要求が達成されない場合がある。
【００１７】
例えば、カーナビが、上記の入力文中の「最後」を「最初」と誤認識した場合、手順ａの解は「吹田サービスエリア」、手順ｂの解は「５キロメートル」となる。になり、以下の応答文が生成される。
【００１８】
「吹田サービスエリアまでの距離は約５キロです」
ユーザは、できるだけ高速上の摩耶出口付近で休憩したかったにも拘わらず、この要求が達成されないことになる。
【００１９】
第２に、カーナビによる推論の過程を全てユーザへの応答文に含める方法がある。例えば、（「文部省科学研究費補助金重点領域研究  音声・言語・概念の統合的処理による対話の理解と生成に関する研究」ｐｐ．２２３−２４０，平成８年３月）に開示されている公知の手法を、この第２の方法に適用することができる。この手法においては、音声対話システムからの応答によってユーザによる発想を促すことを主眼として、システムが行なった推論が全てユーザに提示される。
【００２０】
この第２の方法では、ユーザは、応答文に提示されたカーナビの全推論過程を把握することによって、正しい解答が得られたか否かを検証することができる。
【００２１】
しかし、一般に第２の方法で得られる応答文は冗長となってリアルタイム処理には適さない。すなわち、第２の方法は、例えば料理の献立を考えることを支援するシステムなどのように、ユーザに問題解決のための時間が十分に与えられている場合には有効である。他方、カーナビのようなユーザに問題解決、即ち、経路や休憩場所などについて正しい判断をするための時間と余裕がほとんどないような場合には不向きである。
【００２２】
第２の方法において、例えば手順ａでは、以下の推論が行われる。
【００２３】
・「出口」とは「現在走行中の有料道路の終点」である。
【００２４】
・「前」とは「現在走行中の経路において、経路の出発点からある基準点までの部分経路」である。
【００２５】
・「最後」とは「複数候補のうち最も現在地から遠いもの」である。
【００２６】
これらの推論過程を含めた応答文は、例えば以下のように大変長く生成されてしまう。
【００２７】
「出発地から現在走行中の有料道路終点である摩耶出口までの間にあるサービスエリアで現在地から最も遠いものは、魚崎サービスエリアです。」
この長い応答文を聞いている間にユーザの現在地は大きく変わってしまう。例えば魚崎サービスエリアを通過してしまうと、カーナビからの応答文はユーザにとって無意味な情報となってしまう。また、応答文が長いため、走行中のユーザがその内容を把握するのも困難となる。
【００２８】
【発明が解決しようとする課題】
音声インターフェースを用いる対話システムにおいては、１００％の認識率が得られないことを前提とする必要がある。このため、ユーザは、対話の応答文において、
・自分の発話が間違って認識されていないか、
・システムから得られた問題解決結果は正しいか、
の２点を確認する必要がある。さらに、これらの２点は迅速に確認されなければならない。
【００２９】
ここで、単純な問題解決を実行するシステム、例えば地点の検索のみを行うカーナビシステムとの対話の場合、ユーザは、システムから得られた応答文を聞くだけで上記の２点を確認することができる。
【００３０】
一方、複雑な問題解決を実行するシステム、例えば、２地点間の距離の問い合わせに応答するカーナビシステムとの対話の場合、ユーザは、システムから得られた応答文を聞くだけでは上記の２点を確認することができない。すなわち、システムがユーザの意図する動作を実行したのか否か、実行しなかった場合にはどこで誤りが生じたのか、などを上記の第１の方法では、確認することができない。あるいは、第２の方法により、これらの情報を含む応答文を出力すると、この応答文は非常に冗長となり、ユーザが実用的時間内で確認することができない。
【００３１】
以上説明したように、本発明は、従来技術の自然言語による問題解決型の対話システムにおいて、複雑な問い合わせ文の入力に対して、ユーザが問い合わせ文を正しく認識され、処理されたかを、実時間内で容易に確認、検証することができなかったという問題点を解決するためになされたものである。
【００３２】
そして、その目的とするところは、部分的な解から入力文に対する解を抽出する必要のある複雑な問題解決が要求される場合に、ユーザが問い合わせ文が正しく認識され、処理されたか否かを、実用的時間内で容易に確認、検証することのできる応答生成装置、対話管理装置、応答生成方法および応答生成プログラムを格納する記録媒体を提供することにある。
【００３３】
また、本発明の他の目的は、生成された応答文の冗長性を排除してユーザに苦痛を与えない簡潔な応答を実現する点にある。
【００３４】
【課題を解決するための手段】
上記の課題を解決するための本発明の特徴は、ユーザが複雑な問題解決を要求する発話を行った場合に、対話システムがユーザの発話をどのような部分的な問題の組み合わせとして認識し、かつ発話に対する解がどのように得られたのか、に関する情報を含む、簡潔な応答文を生成する点にある。この応答文は、問い合わせ文に対する全体的な解を得るために、それぞれの解を得る必要のある部分問題の表現と、この部分問題に対する部分的な解の表現とを対応付けて生成される。
【００３５】
かかる機能を実現するための、本発明の第１の特徴は、自然言語の対話により、与えられた問い合わせ文に対する解を含む応答文を生成する応答生成装置であって、前記解を導出するために１つ以上の解決すべき部分問題がある場合に、導出された前記解とともに、前記部分問題のそれぞれに対応する問い合わせ文の要素である部分問題表現と、前記部分問題のそれぞれへの解の表現である部分解表現とを対とする部分問題表現対を含む応答文を生成する応答文生成部を具備することを特徴とする応答生成装置を提供する点にある。
【００３６】
上記構成によれば、ユーザの問い合わせ文の発話が正しく認識され、かつ正しいプロセスで解が導出されたか否かを、ユーザに実時間内で容易に把握させることのできる簡潔な応答文を生成することができる。
【００３７】
また、本発明の第２の特徴は、上記応答生成装置は、さらに、各文型に対応し、前記部分問題ごとに解スロットを定義する応答文のテンプレートを記憶する応答文テンプレート記憶部を具備し、前記応答文生成部は、前記部分問題表現対を、対応する前記解スロットにバインドする点にある。
【００３８】
上記構成によれば、簡易な構成で、上記の簡潔な応答文を生成することができる。
【００３９】
また、本発明の第３の特徴は、上記応答生成装置は、さらに、前記生成された応答文に関して、前記部分問題表現対中の前記部分問題表現と、対応する前記部分解表現との同一性を判定する同一性判定部を具備し、前記応答文生成部は、前記同一性が判定された部分問題表現対から、前記部分問題表現または前記部分解表現のいずれか一方を選択する点にある。
【００４０】
上記構成によれば、意味的な冗長性を応答文から排除して、ユーザに苦痛を与えない自然かつ簡潔な応答文を生成することができる。
【００４１】
また、本発明の第４の特徴は、上記応答生成装置は、さらに、各発話表現と、該発話表現が示す概念の抽象度との関係を規定する概念階層を記憶する概念階層記憶部を具備し、前記同一性判定部は、前記概念階層に基づいて、前記部分問題表現と、対応する前記部分解表現との同一性を判定する点にある。
【００４２】
また、本発明の第５の特徴は、前記同一性判定部は、前記部分問題表現と、対応する前記部分解表現との発話表現上の差異に基づいて、前記同一性を判定する点にある。
【００４３】
上記構成によれば、表層的な表現に着目して同一性を判定するので、より簡易な構成で、応答文から冗長性を排除することができる。
【００４４】
また、本発明の第６の特徴は、上記応答生成装置は、さらに、前記生成された応答文の長さが所定の第１の閾値を越えるか否かを判定する第１の判定部を具備し、前記応答文生成部は、前記応答文の長さが所定の閾値を超える場合に、部分問題表現対から、前記部分解表現を選択する点にある。
【００４５】
上記構成によれば、応答文の長さを適宜調節することができる。
【００４６】
また、本発明の第７の特徴は、上記応答生成装置は、さらに、各部分問題表現対の長さが所定の第２の閾値を越えるか否かを判定する第２の判定部を具備し、前記応答文生成部は、前記部分問題表現対の長さが所定の閾値を越える場合に、前記部分問題表現対から、前記部分解表現を選択する点にある。
【００４７】
上記構成によれば、応答文の長さを適宜調節することができる。
【００４８】
また、本発明の第８の特徴は、自然言語の対話により、問い合わせ文に対する問題解決を遂行する対話管理装置であって、問題に対する解を導出するために１つ以上の解決すべき部分問題がある場合に、各部分問題を抽出する意味解析部と、前記部分問題のそれぞれに対応する部分解を導出するとともに、該部分解から前記問い合わせ文に対する解を導出する問題解決部と、導出された前記解とともに、前記部分問題のそれぞれに対応する問い合わせ文の要素である部分問題表現と、前記部分問題のそれぞれへの解の表現である部分解表現とを対とする部分問題表現対を含む応答文を生成する応答文生成部を具備することを特徴とする対話管理装置を提供する点にある。
【００４９】
上記構成によれば、ユーザの問い合わせ文の発話が正しく認識され、かつ正しいプロセスで解が導出されたか否かを、ユーザに実時間内で容易に把握させることのできる簡潔な応答文を生成することができる。
【００５０】
また、本発明の第９の特徴は、自然言語の対話により、与えられた問い合わせ文に対する解を含む応答文を生成する応答生成方法であって、前記解を導出するために１つ以上の解決すべき部分問題がある場合に、導出された前記解とともに、前記部分問題のそれぞれに対応する問い合わせ文の要素である部分問題表現と、前記部分問題のそれぞれへの解の表現である部分解表現とを対とする部分問題表現対を含む応答文を生成する応答文生成ステップと、前記生成された応答文を出力制御する出力ステップとを含むことを特徴とする応答生成方法を提供する点にある。
【００５１】
上記構成によれば、ユーザの問い合わせ文の発話が正しく認識され、かつ正しいプロセスで解が導出されたか否かを、ユーザに実時間内で容易に把握させることのできる簡潔な応答文を生成することができる。
【００５２】
また、本発明の第１０の特徴は、上記応答生成方法は、さらに、各文型に対応し、前記部分問題ごとに解スロットを定義する応答文のテンプレートを選択する応答文テンプレート選択ステップを含み、前記応答文生成ステップは、前記部分問題表現対を、対応する前記解スロットにバインドする点にある。
【００５３】
また、本発明の第１１の特徴は、上記応答生成方法は、さらに、前記生成された応答文に関して、前記部分問題表現対中の前記部分問題表現と、対応する前記部分解表現との同一性を判定する同一性判定ステップを含み、前記応答文生成ステップは、前記同一性が判定された部分問題表現対から、前記部分問題表現または前記部分解表現のいずれか一方を選択する点にある。
【００５４】
また、本発明の第１２の特徴は、上記応答生成方法は、さらに、前記生成された応答文または前記部分問題表現対の長さが所定の閾値を越えるか否かを判定する判定ステップを含み、前記応答文生成ステップは、前記応答文または前記部分問題表現対の長さが所定の閾値を超える場合に、部分問題表現対から、前記部分問題表現または前記部分解表現のいずれか一方を選択する点にある。
【００５５】
また、本発明の第１３の特徴は、自然言語の対話により、与えられた問い合わせ文に対する解を含む応答文を生成する応答生成処理をコンピュータに実行させるプログラムを格納するコンピュータ読みとり可能な記録媒体であって、前記解を導出するために、１つ以上の解決すべき部分問題がある場合に、導出された前記解とともに、前記部分問題のそれぞれに対応する問い合わせ文の要素である部分問題表現と、前記部分問題のそれぞれへの解の表現である部分解表現とを対とする部分問題表現対を含む応答文を生成する応答文生成処理を含むことを特徴とするコンピュータ読みとり可能な記録媒体を提供する点にある。
【００５６】
上記構成によれば、ユーザの問い合わせ文の発話が正しく認識され、かつ正しいプロセスで解が導出されたか否かを、ユーザに実時間内で容易に把握させることのできる簡潔な応答文を生成することができる。
【００５７】
また、本発明の第１４の特徴は、上記コンピュータ可能な記録媒体は、さらに、各文型に対応し、前記部分問題ごとに解スロットを定義する応答文のテンプレートを選択する応答文テンプレート選択処理を含み、前記応答文生成処理は、前記部分問題表現対を、対応する前記解スロットにバインドする点にある。
【００５８】
また、本発明の第１５の特徴は、上記コンピュータ読みとり可能な記録媒体は、さらに、前記生成された応答文に関して、前記部分問題表現対中の前記部分問題表現と、対応する前記部分解表現との同一性を判定する同一性判定処理を含み、前記応答文生成処理は、前記同一性が判定された部分問題表現対から、前記部分問題表現または前記部分解表現のいずれか一方を選択する点にある。
【００５９】
また、本発明の第１６の特徴は、上記コンピュータ読みとり可能な記録媒体は、さらに、前記生成された応答文または前記部分問題表現対の長さが所定の閾値を越えるか否かを判定する判定処理を含み、前記応答文生成処理は、前記応答文または前記部分問題表現対の長さが所定の閾値を超える場合に、部分問題表現対から、前記部分問題表現または前記部分解表現のいずれか一方を選択する点にある。
【００６０】
【発明の実施の形態】
第１の実施形態
以下、図１から図５を参照して本発明に係る応答生成装置、対話管理装置、応答生成方法および応答生成プログラムを格納するコンピュータ読み取り可能な記録媒体の第１の実施形態を詳細に説明する。第１の実施形態は、複雑な問題解決を要求する問い合わせ文に対して、問い合わせ文中から部分問題を抽出し、この部分問題の発話表現と、この部分問題に対する部分解の発話表現とを含む応答文を生成する機能を提供する。
【００６１】
尚、以下の実施形態においては、自動車を目的地まで誘導するカーナビゲーション・システム（以下、単にカーナビと略称する）を用いる具体例で説明を行うが、本発明の実施形態の適用対象はカーナビに限定されない。以下の実施形態は、自然言語を用いた対話システム一般に適用することができる。
【００６２】
図１は、本発明の第１の実施形態に係る応答生成装置を含む対話処理システムの構成を示すブロック図である。第１の実施形態は、音声入力部１１０と、音声認識部１２０と、構文解析部１３０と、意味解析部１０２と、問題解決部１０４と、応答生成部１０６とから構成される。
【００６３】
音声入力部１１０は、各種マイクなどにより実現され、ユーザからの発話を音声信号に変換し、この音声信号を音声認識部１２０に送出する。
【００６４】
音声認識部１２０は、音声信号を処理し、音声信号中の音声区間を検出する。次に、音声認識部１２０は、認識語彙辞書（図示せず）を参照して、検出された音声区間中に存在するキーワードを検出する。このキーワード検出には、例えばキーワードスポッティングなどの一般に知られる手法を用いることができる。音声認識部１２０は、検出されたキーワードから、単語のグラフである単語ラティスを生成する。具体的には、この単語ラティスは、このキーワードの各候補であるノードと、これらのノードの間の接続関係であるリンクとから構成される。音声認識部１２０は、これらの生成された単語ラティスを構文解析部１３０へ送出する。
【００６５】
構文解析部１３０は、入力された単語ラティスから、文として受理可能な単語の系列を文として抽出することにより構文を解析する。尚、この構文解析の手法には、一般に知られる手法を適用することができる。構文解析部１３０は、抽出された受理可能な単語の系列である文の集合を意味解析部１０２に送出する。
【００６６】
意味解析部１０２は、意図表現辞書１４０などを参照することにより、入力された文の発話表現から発話者の意図を抽出する。意図表現辞書１４０は、各文型ごとに、ユーザの発話表現のどの部分をどのように加工して意図表現述語のスロットにバインドするかを記述する意図表現のデータを記憶する。意味解析部１０２は、抽出された意図表現を、問題解決部１０４が解釈可能なデータ構造である意図表現に変換し、この変換された意図表現を問題解決部１０４に送出する。尚、意図表現は、どのようなデータ構造でもよいが、第１の実施形態では、後述するように述語表現を採用する例で説明する。また、意図表現辞書１４０は、意味解析部１０２に組み込まれて構成されてもよい。意味解析部１０２は、入力された文が、１または複数の部分問題を含む場合には、意図表現辞書１４０に基づいて、各部分問題を抽出する。
【００６７】
問題解決部１０４は、問題解決手順定義１５０を参照して、入力された意図表現を処理することにより、ユーザが意図した問題解決を実行する。この際、入力された意図表現が１または複数の部分問題を含む場合には、各部分問題ごとの解を導出する。問題解決手順定義１５０は、この問題解決のための手順を記憶する。問題解決部１０４は、この問題解決結果を応答生成部１０６に送出する。
【００６８】
応答生成部１０６は、応答文テンプレート１６０を参照して、入力された問題解決結果をユーザへの回答とする応答文を生成する。応答文テンプレート１６０は、第１の実施形態に係る応答文を生成するためのテンプレートを記憶する。生成された応答文は、音声などにより出力される。応答生成部１０６は、１または複数の部分問題を含む場合には、各部分問題ごとに部分問題の発話表現とこの部分問題の解の発話表現とを、応答文中にバインドする。
【００６９】
次に、第１の実施形態のハードウエア構成を説明する。
【００７０】
第１の実施形態に係る応答生成装置および対話管理装置は、各種ハードウエアに実装されてもよく、また第１の実施形態の処理を実現するプログラムを作成することにより、ソフトウエアに実装されてもよい。
【００７１】
第１の実施形態のハードウエア部分は、ＣＰＵと、主記憶部と、入力部と、出力部と、大容量外部記憶装置と、ドライブ装置と、通信部とにより構成される。これらの各装置は、バスを解して相互に接続される。
【００７２】
尚、図１に示す各部は、それぞれの処理手順を記述したプログラムにより構成されてもよい。これらの処理手順を記述したプログラムは、上記のハードウエアを具備するコンピュータシステムを制御するためのプログラムとして主記憶部に格納され、ＣＰＵによりプログラムに記述された手順に従って実行されことにより、第１の実施形態の機能を実現する。
【００７３】
また、これらのプログラムは、コンピュータ読み取り可能な記録媒体に記録することができる。この記録媒体を、ドライブ装置を用いて読み出すことにより、これらのプログラムが主記憶部に格納される。あるいは、予めドライブ装置等にインストールしておき、実行時にどう装置から主記憶部に格納してもよい。ここで、記録媒体とは、例えば、半導体メモリ・磁気ディスク（フロッピーディスク・ハードディスク）・光ディスク（ＣＤ−ＲＯＭ・ＤＶＤ）等、プログラムを記録することができる装置全般を含む。
【００７４】
次に、第１の実施形態における問題解決の処理手順を説明する。図２は、第１の実施形態におけるユーザの発話による問い合わせ文に基づく問題解決および応答文生成処理の処理手順を示すフローチャートである。
【００７５】
一般に、１つの単語ラティスから複数の文候補が発生する。このため、音声対話システムは、図２に示すアルゴリズムのように、複数の文候補を全て処理するまで手順を繰り返す。尚、図２では、「Howmuch1」という識別子を持つ文型を例として説明しており、この文型以外の処理については表記を省略している。この「Howmuch1」の文型に属する問い合わせ文の例としては、例えば、高速道路を走行中のユーザが、カーナビに対して発話する「現在地から出口までどれくらい？」という問い合わせ文がある。この問い合わせ文は、２地点間の距離と所要時間とについての問題解決を要求する文である。また、図２のアルゴリズムは、単語ラティスの１処理例である。この例の他、例えばスコアが最高のもの１つだけでなく複数の解決済み文について回答文を生成する処理を行なってもよい。
【００７６】
まず、１つのユーザ発話に対応して、Ｓ２０以下の問題解決処理で用いる入力文の候補集合を初期化する（ステップＳ１０）。次に、入力文候補集合が空であるか否かが判定される（ステップＳ２０）。入力文候補集合が空であれば（ステップＳ２０Ｙ）、ステップＳ１３０に進む。一方、入力文候補集合が空でなければ（ステップＳ２０Ｎ）、入力文候補集合から１つの文が取り出される（ステップＳ３０）。この１つの文から、ユーザ発話に対応するユーザ意図表現が生成される（ステップＳ４０）。このユーザ意図表現に対応する入力文型が判定される（ステップＳ５０）。図２では、「Howmuch1」の識別子を持つ文型の場合に、ステップＳ７０に進み、他の文型であればその文型に対応する解の生成処理に進む（ステップＳ６０）。「Howmuch1」の識別子を持つ文型の場合、上記の問い合わせ文に対応するユーザの意図表現から部分問題が抽出される（ステップＳ７０）。上記の問い合わせ文には、「計測始点」がどこか、と「計測終点」がどこか、の２つの部分問題が抽出される。次に、第１の部分問題である「計測始点」が、「計測始点」の場所述語表現を用いて解決される（ステップＳ８０）。第２の部分問題である「計測終点」が、「計測終点」の場所述語表現を用いて解決される（ステップＳ９０）。これら２つの部分問題の解から、上記の問い合わせ文に対する解が導出される。具体的には、「計測始点」と「計測終点」の解から２地点間の距離と所要時間が解決される（ステップＳ１００）。次に、ステップＳ１００で得られた解決結果に音響的観点、意味的観点からスコアが与えられ、このスコアが解決済み文リストに蓄積される（ステップＳ１１０）。ステップＳ４０からステップＳ１１０までの処理が終わった文は、入力文候補集合から削除され、次の１文が選択される（ステップＳ１２０）。入力文候補集合がすべて処理されると、解決済み文リストからスコアが最高の文が取り出される（ステップＳ１３０）。次に、この最高スコアを持つ文に基づいて、応答文が生成される（ステップＳ１４０）。具体的には、解決結果の表現述語の各スロット値と、文型ごとに定義された応答文生成テンプレートを対応づけることにより、応答文を生成する。最後に、１回のユーザ発話に対応して、１つの応答文が出力される（ステップＳ１５０）。
【００７７】
システムに対するユーザの発話は、システムに対して問題解決を要求するものである。例えば、カーナビシステムに対する「出口はどこ」という発話は、カーナビシステムに「出口」と呼べる場所を検索することを要求する。この問題解決には、単純なものだけでなく、複数の部分的な部分問題を解決することで初めて問い合わせに対する解を得ることができる複雑な処理を要求するものも含まれる。図２の例では、文型Howmuch1に属する発話「現在地から出口までどれくらい」は、ステップＳ８０の計測始点を表す場所の解決と、ステップＳ９０の計測終点を表す場所の解決の２つの地点問題解決を要求する。第１の実施形態では、入力された問い合わせ文に対する解を導出する前提として、解決することが必要となる問題を、部分問題と称する。
【００７８】
第１の実施形態に係る応答生成部１０６は、ユーザ発話文が複数の副問題から構成されている場合に、ユーザ発話中の部分問題に相当する部分を含むような応答文を生成する。具体的には、応答生成部１０６は、図２のステップＳ１４０において、入力文全体が表す問題の解決においてその部分問題を解決する場合には、少なくとも入力文全体についての解決結果と、入力文中の部分問題のそれぞれに対応する部分入力文と、それぞれの部分入力文に対応する部分解決結果とを含めた応答文を生成する。ユーザは、システムから出力されるこの応答文を聞くことにより、自身の発話がシステムによってどのような部分問題に分割され、それぞれの部分問題が解決されたかを把握することができる。
【００７９】
次に、第１の実施形態に係る問題解決処理の詳細を、図３、図４および図５を参照して具体的に説明する。ここでは、入力文候補集合の１つが上記の問い合わせ文（１）
「現在地から出口までどれくらい」          （１）
であった場合を例として説明する。
【００８０】
まず、図１に示す構文解析部１３０および意味解析部１０２は、入力された発話文を、問題解決部１０４が処理可能なデータ構造である意図表現に変換する。図３は、入力発話文の意図表現への変換過程を示す。図３の１行目から１１行目までは、問題解決部１０４が問題解決時に参照するユーザ意図表現の構造を示す。尚、「／＊ 」 と「＊  ／」で囲まれた部分はコメントであって、問題解決部１０４の処理とは関係しない。また、図３のデータ構造は、一例であって、第１の実施形態を適用するシステム毎に異なって構成されてよい。
【００８１】
意味解析部１０２は、意図表現辞書１４０を参照することによって意図表現を初期化する。上記の発話「現在地から出口までどれくらい」の場合、ユーザ意図表現は図３の１４行目から１７行目に記載の述語表現に初期化される。具体的にはまず、構文解析部１０３によってユーザ発話表現が「HowMuch1」の文型であることが導出され、意図表現のスロットであるSentenceTypeの値が「HowMuch1」に初期化される。意味解析部１０２は、このSentenceTypeの値をキーとして、意図表現辞書１４０を探索する。この探索結果から、ユーザの意図が、「現在地」から「出口」と呼ばれる地点までの２地点の間の距離を測定することであることが導出される。この距離の測定をするために、まず「現在地」や「出口」と呼ばれる地点が現在のユーザの状況に対してどこであるのかをそれぞれ導出する。これらを導出した上で２地点間の距離を計算する必要がある。そこで、意味解析部１０２は、ユーザの発話中の「現在地」と「出口」を、それぞれ問題解決部１０４が処理可能な形式に加工し、スロットStartPosPredとDestPosPredにそれぞれバインドする。すなわち、それぞれを部分問題として抽出する。最後に、文のスコアを初期化する。この文のスコアは、音響的観点と意味的観点から加工されて最終的に決定されるが、意味解析部１０２が受け取るのは音響的観点からのスコアのみである。図３では、このスコアの値が１０００であることを示している。尚、第１の実施形態において、述語中の”−”は、そのスロットが値を持たないことを示す。以上の意図表現生成の手順は、図２のフローチャート中、ステップＳ４０、Ｓ５０、Ｓ７０に相当する。
【００８２】
次に、図３の１４行目から１７行目までに示す意図表現は、２０行目から２３行目に示す述語に変換される。すなわち、「現在地」と「出口」がユーザの状況に合わせて解決される。（図２のステップＳ８０，Ｓ９０）。さらに、２地点間の距離が算出され（ステップＳ１００）、スコアも修正される（ステップＳ１１０）。解を含む最終的な意図表現は、図３の２６行目から２９行目に記載の内容となる。
【００８３】
全ての文候補に対して上記の問題解決が実行されると（ステップＳ２０Ｙ）、問題解決済み文のリストからスコアが最高のものが選ばれる（ステップＳ１３０）。この選択された文に対する解決結果をユーザに提示するための応答文が生成される（ステップＳ１４０）。第１の実施形態では、「現在地から出口までどれくらい」が発話候補文中で最高のスコアを持ったものであった場合を例として説明する。
【００８４】
次に、図２のステップＳ１４０における応答文生成処理の詳細を説明する。図４は、第１の実施形態に係る応答生成部１０６が行う応答文生成処理の詳細を示すフローチャートである。図５は、図３の意図表現を、図４のアルゴリズムに従って処理して得られる応答文の生成過程を示す。
【００８５】
上述したように、応答文の生成対象である文候補の意図表現は、図３の１３行目から１６行目に示す内容である。この意図表現では文型識別子が「How Much1」であることから、応答文生成用のテンプレートとして図５の１行目から１１行目に示すものが選択される。尚、この応答文テンプレート１６０は、適当なデータベースにあらかじめ保存しておくのが望ましいが、動的に生成するプログラムコードとして実現されてもよい。
【００８６】
まず、「How Much1」の文型に適合する応答文テンプレートが選択される（ステップＳ１４１）。このテンプレートに基づいて、候補文中のすべての部分問題（この場合は場所表現）について、発話表現対が生成される（ステップＳ１４２）。ユーザ発話「現在地から出口までどれくらい」には、２つの場所表現がある。これらでそれぞれの場所表現について、それぞれ発話表現対が生成される。尚、発話表現対とは、３つ組のデータ構造であり、ユーザが発話時に使用した表現であるユーザ発話表現と、ユーザ発話表現に基づいてシステムが問題解決を実行した結果の表現である解発話表現と、システムが応答文で用いる表現をバインドするスロットの名称である解スロット名称とからなる。すなわち、この発話表現対の一般形は、次のように表記される。
【００８７】
（ユーザ発話表現、解発話表現、解スロット名称）
これら、複数の発話表現対は、リスト状に加工される（ステップＳ１４３）。図５の１８行目に、生成される発話表現対リストを示す。例えば、「現在地」というユーザの発話表現について、その解決結果の表現が「吹田サービスエリア付近」であり、これらの発話表現から生成される応答文としての表現がスロットStartExpにバインドされている。この「現在地」の発話表現は、以下のように表現される。
【００８８】
（現在地、吹田ＳＡ付近、StartExp）
同様に、「出口」の発話表現対は、以下のように表現される。
【００８９】
（出口、摩耶出口、DestExp）
図５の１８行目は、これら２つの発話表現対をリストにしたものを示す。
【００９０】
次に、応答生成部１０６は、この発話表現対リストを参照して、応答文生成テンプレートの解スロットを埋める（ステップＳ１４４〜Ｓ１４６）。応答文テンプレートの解スロットにStartExpには、［ユーザ発話表現、”である”、解発話表現］の表現がバインドされる（ステップＳ１４５）。
【００９１】
具体的には、まず発話表現対リストの先頭要素である、
（現在地、吹田ＳＡ付近、StartExp）
が参照される。この発話表現対においては、ユーザ発話表現＝現在地、解発話表現＝吹田ＳＡ付近となる。このため、応答文生成テンプレートの解スロットであるStartExpには値「現在地である吹田ＳＡ付近」がバインドされる。
【００９２】
同様に、「出口」の発話表現対、
（出口、摩耶出口、DestExp）
が参照され、応答文生成テンプレートの解スロットであるDestExpには値「出口である摩耶出口」がバインドされる。処理された発話表現対は、発話表現対リストから削除される（ステップＳ１４６）。
【００９３】
ステップＳ１４５の処理を、発話表現対リストが空になるまで繰り返し行う（ステップＳ１４４）。
【００９４】
図５の２１行目から３１行目は、上記の処理により初期化された応答文テンプレートの内容を示す。応答生成部１０６は、この初期化された応答文生成テンプレートを参照して、出力すべき応答文を生成する（図２のステップＳ１４０）。図５の図６の３３行目から３４行目に、最終的にユーザに出力される応答文（１）を示す。
【００９５】
「現在地である吹田ＳＡ付近から出口である摩耶出口までの距離は２５キロメートル、所要時間はおよび１９分です。」          （１）
この応答文（１）は、ユーザの発話表現と、各部分問題に対する解表現と、問い合わせに対する全体の解表現とを含む。
【００９６】
このため、ユーザは、システムから音声の形で提供されるこの１文の応答文を聞くだけで、
・ユーザ自身の意図した発話が、正しくシステムに認識されたこと、
・システムが現在地、および、出口という２つの表現に対して問題解決を行なったこと、
また、その結果
・２つの地点間の距離と所要時間がどの程度であるか、
の３点を容易に確認することができる。また、応答文（１）を確認することで、システムが意図しなかった問題解決を実行してしまった場合にもこの誤りを確認できる。例えば、ユーザが「出口」という表現を用いたことに対して、上記では、「現在走行中の有料道路の終点」と解釈して問題解決を行なった。しかし、本来のユーザの意図は「次に高速道路から出ることができるインター」であったかもしれない。ユーザは、上記の応答文１を聞くことによってシステムが「出口」という表現に対してどのような問題解決を行なうかを推論することができる。このように、ユーザは、問題解決に誤りがあった場合にも、自身の発話文がシステムにとって曖昧であったことを認識し、条件を付加した発話表現「現在地から次の出口までどれくらい」などを再度発話することによって、本来意図する回答をシステムから得ることができる。
【００９７】
第１の実施形態によれば、以下の効果が得られる。
【００９８】
すなわち、応答文生成部１０６は、応答文テンプレート１６０の定義に基づいて、問い合わせに対する解を導出するために必要となる部分問題に関する発話表現対を、応答文にバインドする。このため、ユーザは、１つの応答文を聞くだけで、ユーザの発話がシステムに正しく認識され、かつ正しいプロセスで解が導出されたことを、実時間内で確認、検証することができる。尚、第１の実施形態は、応答文テンプレート１６０を付加しただけの非常に簡易な構成で実現可能であり、対話システムに大きな計算能力を要求しない。
【００９９】
第２の実施形態
以下、図６から図９を参照して、本発明の第２の実施形態に係る応答生成装置、対話管理装置、応答生成方法および応答生成プログラムを格納するコンピュータ読み取り可能な記録媒体を詳細に説明する。第２の実施形態は、ユーザに対する応答文から意味的な冗長性を排除する機能を提供するものである。
【０１００】
図６は、本発明の第２の実施形態に係る応答生成装置を含む対話処理システムの構成を示すブロック図である。第２の実施形態は、図１の第１の実施形態の構成に、さらに図６の同一性検証部１０８を具備する点において、第２の実施形態の修正である。第２の実施形態の音声入力部１１０，音声認識部１２０，構文解析部１３０，意味解析部１０２，問題解決部１０４の構成は、第１の実施形態と同様である。
【０１０１】
第１の実施形態は、簡易な構成で応答文を生成することができる。しかし、場合によっては同じ意味の表現を繰り返す冗長な応答文を生成してしまうため、応答文を聞くユーザに苦痛を与える場合がある。第２の実施形態は、第１の実施形態が生成する応答文から、意味的な冗長性を排除してユーザの苦痛を取り除く。
【０１０２】
第２の実施形態に係る同一性検証部１０８は、ユーザの発話表現とその発話表現に基づく問題解決結果を最終的に応答文にバインドする前に、ユーザの発話表現とその発話表現に対する解との間の意味的な同一性を検証し、検証結果を応答文生成部１０６に受け渡す。第２の実施形態に係る応答文生成部１０６は、この同一性検証結果に基づいて、意味的な同一性があると判定された部分を冗長な部分と判断し、生成された応答文中でこの冗長な部分を提示しない。
【０１０３】
具体的には、問題解決部１０４が、入力文全体が表す問題の解決においてその部分問題を解決する場合に、同一性検証部１０８は、少なくとも入力文全体についての解決結果とあらかじめ定義された概念階層知識に基づいて比較した場合に、ユーザ発話の部分入力文が表現する概念と、その部分入力文表現に対応する部分的解決結果（解）に対応する概念とが属する概念階層の差異に応じて、その意味的同一性の有無を判定する。応答文生成部１０６は、意味的同一性があると判定れた発話表現対に関して、ユーザ発話の部分入力文を非提示とする応答文に変換する。すなわち、変換後の応答文は、少なくとも入力文全体についての解決結果と、提示すると判定された部分入力文と、全ての部分入力文についての部分的解決結果とが含まれることとなる。
【０１０４】
次に、第２の実施形態に係る応答生成部１０６及び同一性検証部１０８が行う応答文生成処理の手順を説明する。図７は、第２の実施形態に係る応答生成処理の詳細の処理手順を示すフローチャートである。ここでは、ユーザ発話表現が、
「現在地から摩耶出口までどれくらい」          （２）
であった場合を例として説明する。尚、音声入力から意図表現の生成までのアルゴリズムは、図２のステップＳ１０〜Ｓ１３０に従う。このユーザ発話文（２）も、第１の実施形態と同様に「HowMuch1」に属する。
【０１０５】
図８の１３行目から１６行目に、発話文（２）を、図２のアルゴリズムに従ってユーザ発話文中に含まれる問題解決も実行した結果得られる意図表現を示す。
【０１０６】
第１の実施形態がこの意図表現を、図４の応答文生成処理のアルゴリズムにしたがって生成する応答文は、以下の表現となる。
【０１０７】
「現在地である吹田ＳＡ付近から摩耶出口である摩耶出口までの距離は２５キロメートル、所要時間はおよそ１９分です」        （２−１）
このように、摩耶出口という表現が重複して応答文が無駄に長くなってしまう。  第２の実施形態は、図７のアルゴリズムを用いてユーザ発話の抽象度と解表現の抽象度とを比較することにより、この冗長性を解消する。
【０１０８】
図４との差は、ステップＳ１４０５からＳ１４０９によって応答用の表現を生成する際にユーザ発話の抽象度と回答表現の抽象度を比較し、生成する応答表現を変更することである。
【０１０９】
ステップＳ１４０１〜ステップＳ１４０４までの処理は、図４に示す第１の実施形態の処理と同様である。
【０１１０】
図８の１３行目から１６行目に示す意図表現に対して、ユーザ発話「現在地」と「摩耶出口」に対する発話表現対リストが図８の１８行目に示す通りに生成される（ステップＳ１４０１〜ステップＳ１４０３）。次に、発話表現対リストの先頭要素が発話表現対Ｔｐにコピーされる（ステップＳ１４０５）。ここで、
Ｔｐ＝（現在地、吹田ＳＡ付近、StartExp）
となる。尚、Ｔｐとは、発話表現対を一時的に保持する変数を表す。この発話表現対Ｔｐに関して、概念階層知識１１１が参照され、ユーザ発話表現の抽象レベルが算出される（ステップＳ１４０６）。
【０１１１】
図９は、概念階層知識の一例を示す。概念階層知識は少なくとも、対話時に用いられる発話表現と、発話表現とその発話表現が表す概念とを結び付けたノードと、ノード同士の階層関係を含む。例えば、ユーザ発話表現である「現在地」は、概念「現在地」と結びつけられ、その抽象度が２であることが導出される。
【０１１２】
次に、ユーザの発話表現に対して行なった問題解決結果（解）の表現について、概念階層知識１１１を参照して、同様に抽象レベルが算出される（ステップＳ１４０７）。図９に示すように、「吹田ＳＡ付近」の抽象度は３と算出される。ステップＳ１４０６およびＳ１４０７で得られた２つの表現の抽象レベルが比較される（ステップＳ１４０８）。この比較の結果、表現「現在地」と「吹田ＳＡ付近」はその抽象レベルが違うため（ステップＳ１４０８Ｎ）、解スロットStartExpに、
「現在地である吹田ＳＡ付近」がバインドされる。
【０１１３】
発話表現リストの次の先頭要素が取り出され（ステップＳ１４１１，Ｓ１４０４）、
Ｔｐ＝（摩耶出口、摩耶出口、DestExp）
と設定される（ステップＳ１４０５）。
【０１１４】
ここで、ユーザ発話表現と問題解決結果の表現について、概念階層知識１１１を参照してそれぞれ抽象度が算出される。ここでユーザ発話表現と解表現との抽象度レベルは、ともに抽象度は３で等しいため（ステップＳ１４０８Ｙ）、解スロットであるDestExpには発話表現「摩耶出口」のみがバインドされる（ステップＳ１４０９）。
【０１１５】
図８の２１行目から３１行目までに、以上の処理で生成される応答文生成テンプレートの表現を示す。応答生成部１０６は、このテンプレートを参照して、図８の３３行目から３４行目の通り、
「現在地である吹田ＳＡ付近から摩耶出口までの距離は２５キロメートル、所要時間はおよそ１９分です」            （２−２）
との応答文（２−２）を生成する。
【０１１６】
上記の応答文（２−１）と比較して、「摩耶出口」という表現を冗長に繰り返す説明文ではなくなっている。
【０１１７】
第２の実施形態によれば、さらに以下の効果が得られる。
【０１１８】
すなわち、同一性検証部１０８は、生成された応答文から、互いに意味的な同一性を持つ発話表現を、概念階層知識１１１を用いて抽出する。応答生成部１０６は、この同一性を持つ発話表現を含む応答文を、冗長性を排除した応答文に変換する。このため、ユーザに苦痛を与えることのない、自然な表現の応答文を出力することができる。
【０１１９】
あるいは、第２の実施形態の変形例として、発話表現の意味的同一性を、表層的表現の差異に基づいて判定してもよい。
【０１２０】
意味的に同じ表現の多くは、その表層的表現同士も同一である。第２の実施形態の変形例は、この点に着目し、意味的に同じ表現の多くを、第２の実施形態よりも簡易な構成で排除する。
【０１２１】
具体的には、第２の実施形態の変形例に係る図６の同一性検証部１０８は、入力文中の部分問題に対応する部分入力文と、この部分入力文に対応する部分解の表層表現の差異に応じて、両者の同一性を判定する。
【０１２２】
第２の実施形態の変形例においては、図７の応答文生成処理において、ステップＳ１４０７およびＳ１４０８が削除され、ステップＳ１４０８では、単に発話表現と問題解決結果の解表現との表現の同一性が文字列比較により判定される。ステップＳ１４０９以降の処理は、上記の第２の実施形態と同様である。
【０１２３】
第２の実施形態では、概念階層知識１１１に、あらかじめ概念と表現との結びつきおよびこれらの間の関係を定義し、応答生成部１０６は、この概念階層知識１１１を参照して意味的同一性を判定する必要がある。一方、第２の実施形態の変形例によれば、概念などの定義と構築に関するコスト、および参照処理の負荷が不要となる。意味的に同一であるが表現が異なる発話表現を排除することはできないが、表層的な表現上で冗長な発話表現を完全に排除することができる。このため、第２の実施形態に近い機能が、より低コストで実現できる。
【０１２４】
第３の実施形態
以下、図１０から図１２を参照して、本発明の第３の実施形態に係る応答生成装置、対話管理装置、応答生成方法および応答生成プログラムを格納するコンピュータ読み取り可能な記録媒体を詳細に説明する。第３の実施形態は、ユーザに出力される応答文の長さを調節する機能を提供するものである。
【０１２５】
図１０は、本発明の第３の実施形態に係る対話処理システムの構成を示すブロック図である。第２の実施形態は、図１の第１の実施形態の構成に、さらに図１０の応答文長判定部１１０を具備する点において、第１の実施形態の修正である。第２の実施形態の音声入力部１１０，音声認識部１２０，構文解析部１３０，意味解析部１０２，問題解決部１０４の構成は、第１および第２の実施形態と同様である。
【０１２６】
応答文生成部１０６により生成された応答文から、第２の実施形態によって冗長な表現を排除しても、なお対話システム全体が要求する実時間性を満たさない場合がある。例えば、カーナビなど実時間性が高く要求される音声対話システムでは、長すぎる応答文はユーザの注意を奪い、安全運転を妨げることにもなりかねない。
【０１２７】
第３の実施形態に係る応答文長判定部１０９は、短い応答文を生成するために、最終的にユーザに対して出力する応答文の長さあるいは個々のユーザ発話の部分入力文の長さとの関係に応じて、応答文の長さを調節するため、発話表現対の一部を非提示とするか否かを判定する。
【０１２８】
次に、第３の実施形態に係る応答生成部１０６および応答文長判定部１０９の行う応答文生成処理の手順を説明する。図１１は、第３の実施形態に係る応答生成処理の詳細の処理手順を示すフローチャートである。ここでは、ユーザ発話表現が、
「現在地から目的地の前の最後のレストランがあるＳＡまでどれくらい？」（３）
であった場合を例として説明する。尚、音声入力から意図表現の生成までのアルゴリズムは、図３のステップＳ１０〜Ｓ１３０に従う。このユーザ発話文（３）も、第１の実施形態と同様に「HowMuch1」に属する。
【０１２９】
図１２の１３行目から１９行目に、発話文（３）を、図２のアルゴリズムに従ってユーザ発話文中に含まれる問題解決も実行した結果得られる意図表現を示す。
【０１３０】
第１の実施形態がこの意図表現を、図４の応答文生成処理のアルゴリズムにしたがって生成する応答文は、以下の表現となる。
【０１３１】
「現在地である吹田ＳＡ付近から目的地の前の最後のレストランがあるＳＡである吹田ＳＡまでの距離は５キロメートル、所要時間はおよそ３分です」      （３−１）
このように、生成される応答文（３−１）は、非常に長いものとなる。例えばカーナビを利用しているユーザにとって、長過ぎる回答文は必要以上にユーザの気を引いてしまい、車の運転に対する集中力を奪うことになりかねない。一方、長い文によって表現される複雑な質問をするユーザは、自分が質問した内容を良く理解しているとも考えられる。この考えに基づけば、質問の表現を改めて逐一応答文に含める必要はない場合もある。
【０１３２】
第３の実施形態は、図１１のアルゴリズムを用いて応答文の長さを調節する。
【０１３３】
ステップＳ１４０１〜ステップＳ１４０４までの処理は、図４に示す第１の実施形態の処理および図７に示す第２の実施形態の処理と同様である。
【０１３４】
図１２の１３行目から１９行目に示す意図表現に対して、図１２の２１行目および２２行目に示す通りに生成される（ステップＳ１４０１〜ステップＳ１４０３）。次に、発話表現対リストの先頭要素が発話表現対Ｔｐにコピーされる（ステップＳ１４０５）。ここで、
Ｔｐ＝（現在地、吹田ＳＡ付近、StartExp）
となる。
【０１３５】
この発話表現対Ｔｐに関して、ユーザ発話表現の語長が導出される（ステップＳ１４０６ｂ）。ここで、語長の定義としては、構成単語数、キーワードのみの語数など様々なものを用いることができる。第３の実施形態では、一例として、表現を構成する文字の数とする。１数字、１漢字、１記号についてもそれぞれの語長は１と数える。上記のＴｐについてはユーザ発話表現は、「現在地」であり、その語長は「３」である。
【０１３６】
次に、ユーザ発話を解スロットにバインドした場合の回答文長が求められる（ステップ１４０６ｃ）。ここで、回答文長の定義としては、やはり様々なものを用いることができる。第３の実施形態では、一例として、出力することが確定している文を構成する文字の数と定義する。ステップＳ１４０６ｃまでに確定している出力応答文は、
「現在地からまでの距離はキロメートル、所要時間はおよそ分です」であり、文の長さは「２９」となる。
【０１３７】
得られた応答文長が、所定の閾値と比較される（ステップＳ１４０８）。この閾値は、任意であるが、第３の実施形態では５０とする。一方、ステップＳ１４０６ｃで得られた確定している応答文長は、「２９」であるので（ステップＳ１４０８９Ｎ）、ステップＳ１４１０に進む。
【０１３８】
ここでは、応答表現である
「現在地である吹田ＳＡ付近」
が解スロットであるStartExpにバインドされる。次に、発話表現対リストの次の先頭要素が処理対象として選択される（ステップＳ１４１１，Ｓ１４０４）。ここで、発話表現対リストの先頭は、
（目的地の前の最後のレストランがあるＳＡ、吹田ＳＡ、DestExp）
となる。すなわち、
Ｔｐ＝（目的地の前の最後のレストランがあるＳＡ、吹田ＳＡ、DestExp）
となる（ステップＳ１４０５）。ここで、ユーザ発話表現の語長が、上記の定義に従い算出される（ステップＳ１４０６ｂ）。確定している発話表現が、
「現在地である吹田ＳＡ付近から目的地の前の最後のレストランがあるＳＡまでの距離は５キロメートル、所要時間はおよそ３分です」
であり、その語長は「５９」である。
【０１３９】
従って、発話表現を含めた応答文の長さは閾値「５０」を越えている（ステップＳ１４０８Ｙ）。このため、Ｔｐの解スロットであるDestExpには値「吹田ＳＡ」のみがバインドされる。
【０１４０】
図１２の２５行目から３５行目までに、上記の処理によって生成される応答文テンプレートを示す。この応答文テンプレートを用いて最終的に生成される応答文は、図１２の３７行目から３８行目までに示すように、
「現在地である吹田ＳＡ付近から吹田ＳＡまでの距離は５キロメートル、所要時間はおよそ３分です」                            （３−２）
となる。このように、応答文長判定部１０９は、図１１のアルゴリズムを用いて必要以上に長い応答文が生成されることを抑制する。尚、図１１のステップＳ１４０６ｂ、Ｓ１４０６ｃ、Ｓ１４０８において、確定している全体の応答文長ではなく、個々の発話表現対Ｔｐについてそのユーザ発話表現の長さを閾値と比較してもよい。この発話表現対に関して、長さを調節することによって、ユーザ発話文中の適当な部分問題についてのみ問題定義を示し、長過ぎる部分問題定義についてはシステムによる解の表現のみを提示する、と言った処理も可能となる。さらに、上記の文全体の長さを考慮する方式と、個々の部分問題についての長さのみを考慮する方式を適宜組み合わせもよい。
【０１４１】
第３の実施形態によれば、以下の効果が得られる。
【０１４２】
すなわち、応答文長判定部１０９は、所定の閾値に基づいて、応答文の長さを調節する。このため、ユーザが長い応答文を聞くことが困難であるような、実時間性の高い対話システムにおいて、応答文の長さを適宜調節することができる。
【０１４３】
尚、上記の３つの実施形態においては、カーナビゲーションシステムを例として説明したが、本発明はカーナビゲーションシステム特有の問題解決方式に依存するものではない。従って、自然言語による複雑な問い合わせを行なう他のシステムに適用することも可能である。特に、応答内容や、応答生成に要する時間長に制約があるシステムにおいては、得られる効果が高い。また、カーナビの場合には運転者は画面を見ることができないため、応答文のみで必要な情報を提示させる方式を説明したが、他のシステム、例えば駅前での道案内システムに本発明を適用する場合には、グラフィック表現などを組み合わせることによってさらに複合的にシステムの効果を高めることも可能である。この他、上記の実施形態は、本発明の要旨を逸脱しない範囲内で適宜変更、変形が可能である。
【０１４４】
【発明の効果】
以上説明したように、本発明によれば、以下に記載されるような効果を奏する。
【０１４５】
すなわち、本発明に係る応答生成装置、対話管理装置、応答生成方法および応答生成プログラムを格納するコンピュータ読み取り可能な記録媒体は、複雑な問題解決を要求する問い合わせ文に対して、部分問題要素とこの部分問題要素に対する部分解との発話表現対を含んだ応答文を生成する機能を提供する。また、生成された応答文から意味的な冗長性を排除して簡潔な応答文に変換する機能を提供する。
【０１４６】
これにより、ユーザは、問い合わせに対するシステムの認識および回答の正確性を、実用的時間内に容易に確認することが可能となる。
【０１４７】
このように、本発明を用いれば、対話における問題解決が容易かつ迅速に実現され、自然言語を用いた対話処理システムの可用性が大幅に向上する。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係る応答生成装置を含む対話処理システムの構成を示すブロック図である。
【図２】本発明の第１の実施形態に係る応答生成の概略処理のアルゴリズムを示すフローチャートである。
【図３】発話文から問題解決部に入力される意図表現への変換過程を説明する図である。
【図４】第１の実施形態における図２のステップＳ１４０での応答文生成処理の詳細のアルゴリズムを示すフローチャートである。
【図５】第１の実施形態で用いられる応答文テンプレートおよび応答文生成の過程の一例を説明する図である。
【図６】本発明の第２の実施形態に係る応答生成装置を含む対話処理システムの構成を示すブロック図である。
【図７】第２の実施形態における図２のステップＳ１４０での応答文生成処理の詳細のアルゴリズムを示すフローチャートである。
【図８】第２の実施形態で用いられる応答文テンプレートおよび応答文生成の過程の一例を説明する図である。
【図９】第２の実施形態における概念階層知識の構成を示す図である。
【図１０】本発明の第３の実施形態に係る応答生成装置を含む対話処理システムの構成を示すブロック図である。
【図１１】第３の実施形態における図２のステップＳ１４０での応答文生成処理の詳細のアルゴリズムを示すフローチャートである。
【図１２】第３の実施形態で用いられる応答文テンプレートおよび応答文生成の過程の一例を説明する図である。
【図１３】カーナビゲーションシステムにおける設定経路とユーザの現在位置との関係を説明する図である。
【符号の説明】
１０２  意味解析部
１０４  問題解決部
１０６  応答生成部
１０８  同一性検証部
１０９  応答文長判定部
１１０  音声入力部
１１１  概念階層知識
１２０  音声認識部
１３０  構文解析部
１４０  意図表現辞書
１５０  問題解決手順定義
１６０  応答文テンプレート
【図１】
0003715470.tif 000002
【図２】
0003715470.tif 000003
【図３】
0003715470.tif 000004
【図４】
0003715470.tif 000005
【図５】
0003715470.tif 000006
【図６】
0003715470.tif 000007
【図７】
0003715470.tif 000008
【図８】
0003715470.tif 000009
【図９】
0003715470.tif 000010
【図１０】
0003715470.tif 000011
【図１１】
0003715470.tif 000012
【図１２】
0003715470.tif 000013
【図１３】
0003715470.tif 000014