(57)【要約】【課題】適切な応答を選択することにより対話を長続きさせることを可能とする対話処理装置、及び対話処理装置に供される応答スコア情報生成装置を提供する。【解決手段】発話を示す複数の発話情報、及び発話の各々に対応する応答を示す応答情報を含む応答知識情報が記憶された応答知識情報記憶手段と、応答知識情報記憶手段により記憶された応答知識情報を、発話情報と応答情報との対応を示す発話推移行列に変換する変換手段と、変換手段により変換された発話推移行列の最大固有ベクトルを算出する算出手段と、算出手段により算出された最大固有ベクトルの各要素と応答情報に示される各応答とが対応づけられた応答スコア情報を生成する応答スコア情報生成手段と、応答スコア情報生成手段により生成された応答スコア情報が記憶される応答スコア情報記憶手段と、を有する。【選択図】図８
2008293098.tif 000002
【特許請求の範囲】
【請求項１】
発話を示す複数の発話情報、及び前記発話の各々に対応する応答を示す応答情報を含む応答知識情報が記憶された応答知識情報記憶手段と、
前記応答知識情報記憶手段により記憶された前記応答知識情報を、前記発話情報と前記応答情報との対応を示す発話推移行列に変換する変換手段と、
前記変換手段により変換された前記発話推移行列の最大固有ベクトルを算出する算出手段と、
前記算出手段により算出された前記最大固有ベクトルの各要素と前記応答情報に示される各応答とが対応づけられた応答スコア情報を生成する応答スコア情報生成手段と、
前記応答スコア情報生成手段により生成された前記応答スコア情報が記憶される応答スコア情報記憶手段と、
を有する応答スコア情報生成装置。
【請求項２】
請求項１に記載の応答スコア情報生成装置と、
ユーザによる発話を音声認識し、該ユーザの発話を前記発話情報として入力する入力手段と、
前記応答知識情報記憶手段により記憶された前記応答知識情報から、前記入力手段により入力された前記発話情報が示す発話に対応する応答を示す応答情報を抽出する応答情報抽出手段と、
前記応答スコア情報記憶手段により記憶された前記応答スコア情報から、前記応答情報抽出手段により抽出された応答情報が示す応答に対応する前記最大固有ベクトルの要素を取得する要素取得手段と、
前記要素取得手段により取得された要素のうちで最も大きい要素に対応する応答を示す応答情報を選択する応答情報選択手段と、
前記応答情報選択手段により選択された応答情報を、音声に変換して出力する音声出力手段と、
を有する対話処理装置。
【請求項３】
前記ユーザに次の発話を促す予め定められた応答を示す発話促進応答情報が記憶された発話促進応答情報記憶手段を更に有し、
前記応答情報選択手段は、前記応答情報抽出手段により前記応答情報が抽出されなかった場合には、前記発話促進応答情報記憶手段により記憶された発話促進応答情報を選択する請求項２に記載の対話処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、応答スコア情報生成装置及び対話処理装置に関し、特にユーザとの対話を長続きすることを可能とするための応答スコア情報生成装置、及び対話処理装置に関する。
【背景技術】
【０００２】
近年の音声認識技術の向上に伴い、種々の対話処理装置が提案されている。例えば特許文献１には、事象と事象、事象と評価、評価と評価の組み合わせからなる形式に帰着できる応答知識を用いて、発話を生成する対話処理装置が提案されている。
【０００３】
この対話処理装置では、ユーザから入力された発話から、発話に含まれる単語集合の類似度に基づいて、応答知識中の発話とのマッチングを行い、装置が応答すべき発話の候補を選択する。
【０００４】
選択された候補が複数あった場合、上記対話処理装置は、発話候補の中からランダムに一つの発話を選択するか、対話履歴中に出現した発話をマスキングするなどの処理を行って、一つの発話を決定するようになっている。
【０００５】
【特許文献１】特開２００６−２０１８７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示された技術では、ランダムに一つの発話を選択する処理を行っているため、適切な応答が選択されずに、対話が長続きしないという問題点があった。
【０００７】
本発明は上記問題点に鑑み、適切な応答を選択することにより対話を長続きさせることを可能とする対話処理装置、及び対話処理装置に供される応答スコア情報生成装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために請求項１の発明は、発話を示す複数の発話情報、及び前記発話の各々に対応する応答を示す応答情報を含む応答知識情報が記憶された応答知識情報記憶手段と、前記応答知識情報記憶手段により記憶された前記応答知識情報を、前記発話情報と前記応答情報との対応を示す発話推移行列に変換する変換手段と、前記変換手段により変換された前記発話推移行列の最大固有ベクトルを算出する算出手段と、前記算出手段により算出された前記最大固有ベクトルの各要素と前記応答情報に示される各応答とが対応づけられた応答スコア情報を生成する応答スコア情報生成手段と、前記応答スコア情報生成手段により生成された前記応答スコア情報が記憶される応答スコア情報記憶手段と、を有する。
【０００９】
請求項１に発明によれば、応答知識情報記憶手段には、発話を示す複数の発話情報、及び前記発話の各々に対応する応答を示す応答情報を含む応答知識情報が記憶され、変換手段が前記応答知識情報記憶手段により記憶された前記応答知識情報を、前記発話情報と前記応答情報との対応を示す発話推移行列に変換し、算出手段が前記変換手段により変換された前記発話推移行列の最大固有ベクトルを算出し、応答スコア情報生成手段が前記算出手段により算出された前記最大固有ベクトルの各要素と前記応答情報に示される各応答とが対応づけられた応答スコア情報を生成し、応答スコア情報記憶手段には前記応答スコア情報生成手段により生成された前記応答スコア情報が記憶される。上記最大固有ベクトルの各要素は、対応する応答が適切な応答であることの度合いを示すものであるため、対話を長続きさせるための応答スコア情報生成装置を提供することができる。
【００１０】
また、上記課題を解決するために、請求項２の発明は、請求項１に記載の応答スコア情報生成装置を有し、入力手段がユーザによる発話を音声認識し、該ユーザの発話を前記発話情報として入力し、応答情報抽出手段が前記応答知識情報記憶手段により記憶された前記応答知識情報から、前記入力手段により入力された前記発話情報が示す発話に対応する応答を示す応答情報を抽出し、要素取得手段が前記応答スコア情報記憶手段により記憶された前記応答スコア情報から、前記応答情報抽出手段により抽出された応答情報が示す応答に対応する前記最大固有ベクトルの要素を取得し、応答情報選択手段が前記要素取得手段により取得された要素のうちで最も大きい要素に対応する応答を示す応答情報を選択し、音声出力手段が前記応答情報選択手段により選択された応答情報を、音声に変換して出力する。上記最大固有ベクトルの各要素は、対応する応答が適切な応答であることの度合いを示すものであるため、ユーザによる発話に対して適切な応答を選択し、その応答を出力することにより、対話を長続きさせることを可能とする対話処理装置を提供することができる。
【００１１】
また、請求項２の発明は、請求項３の発明のように、前記ユーザに次の発話を促す予め定められた応答を示す発話促進応答情報が記憶された発話促進応答情報記憶手段を更に有し、前記応答情報選択手段は、前記応答情報抽出手段により前記応答情報が抽出されなかった場合には、前記発話促進応答情報記憶手段により記憶された発話促進応答情報を選択する。
【００１２】
請求項３の発明によれば、抽出されなかった場合には、ユーザに次の発話を促す予め定められた応答を示す発話促進応答情報を選択するので、対話を長続きさせることができる。
【発明の効果】
【００１３】
本発明によれば、適切な応答を選択することにより対話を長続きさせることを可能とする対話処理装置、及び対話処理装置に供される応答スコア情報生成装置を提供することができるという効果が得られる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して、本発明の実施の形態について詳細に説明する。なお、本実施の形態では、応答スコア情報生成装置、及び対話処理装置をパソコンに適用した例について説明する。
【００１５】
まず、図１を用いて、パソコン１２の構成について説明する。パソコン１２は、各々バスＢにより接続されたＣＰＵ（Central Processing Unit）６０と、ＲＯＭ（Read Only Memory）６１と、ＲＡＭ（Random Access Memory）６２と、ＨＤＤ（Hard Disk Drive）６３と、表示部６４と、操作入力部６５と、マイク６６と、スピーカ６７とを含む。
【００１６】
ＣＰＵ６０は、パソコン１２の全体的な動作を司るものであり、後述するプログラムは、ＣＰＵ６０により実行される。ＲＯＭ６１は、パソコン１２の起動時に動作するブートプログラムなどが記憶されている不揮発性の記憶装置である。ＲＡＭ６２は、ＯＳ（Operating System）、プログラム、及びデータが展開される揮発性の記憶装置である。ＨＤＤ６３は、後述する応答知識データベース（以下、応答知識ＤＢと記す）、応答スコアデータベース（以下、応答スコアＤＢと記す）、発話促進応答データベース（以下、発話促進応答ＤＢと記す）、ＯＳ、及びプログラム等が記憶された不揮発性の記憶装置であり、応答知識情報記憶手段、応答スコア情報記憶手段、及び発話促進応答情報記憶手段に対応する。
【００１７】
表示部６４は、各種情報を表示するものである。操作入力部６５は、ユーザがパソコン１２の操作をする場合や、パソコン１２に情報を入力する際に用いられるものである。マイク６６は、アナログ／デジタル変換部を含み、ユーザによる発話をデジタル信号に変換してバスＢに出力するものである。また、スピーカ６７は、デジタル／アナログ変換部を含み、バスＢから入力されたデジタル信号をアナログ信号に変換して音を出力するものである。
【００１８】
次に、上記応答知識ＤＢを、図２を用いて説明する。応答知識ＤＢは、発話を示す複数の発話情報、及び前記発話の各々に対応する応答を示す応答情報を含むＤＢである。
【００１９】
具体的には、同図に示されるように、発話情報として、「犬小屋を作る」、「犬が大きくなった」などの発話を示す情報がテキスト情報として複数含まれている。また、応答情報には、「犬小屋を作る」に対応する応答を示す「犬が喜ぶ」や、「犬が大きくなった」に対応する応答を示す「犬小屋を作る」などの応答を示す情報がテキスト情報として複数含まれている。
【００２０】
なお、上記応答知識ＤＢに含まれる発話情報及びそれに対応した応答情報は各７つしか示されていないが、７つに限られるものではない。
【００２１】
次に、応答スコアＤＢについて説明するが、その説明に先立ち、発話ネットワーク及び発話推移行列について説明する。
【００２２】
図３は、上記応答知識ＤＢに示される発話情報と応答情報との対応を示す発話ネットワークを示す。応答知識ＤＢにおける発話の一つである「犬が大きくなった」に対応する応答は、「犬小屋を作る」のみである。この「犬が大きくなった」をｎ１とし、「犬小屋を作る」をｎ２とすれば、図３に示されるように、ノードｎ１とノードｎ２とを結ぶネットワークとして表現できる。
【００２３】
更に、上記「犬小屋を作る」に対応する応答は、「犬が喜ぶ」及び「金槌がいる」の２つある。先ほどと同様に、「犬が喜ぶ」をｎ３とし、「金槌がいる」をｎ４とすれば、図３に示されるように、ノードｎ２とノードｎ３及びノードｎ２とノードｎ４とを結ぶネットワークとして表現できる。
【００２４】
このようにすることで、応答知識ＤＢから図３に示される発話ネットワークが得られるが、この発話ネットワークにおける始ノードを行とし、終ノードを列とした行列で表現したものが図４（Ａ）に示される行列である。
【００２５】
図４（Ａ）に示される行列において、例えば１行２列目（ｎ１行ｎ２列目）は「１」となっている。これは、始ノードをｎ１とし、終ノードをｎ２としたネットワークが存在することを示しており、この場合は上述した「犬が大きくなった」（ｎ１）、「犬小屋を作る」（ｎ２）を結ぶネットワークに対応している。
【００２６】
また、２行５列目（ｎ２行ｎ５列目）のように、「０」である場合は、始ノードをｎ２とし、終ノードをｎ５としたネットワークが存在しないことを示している。
【００２７】
この行列（図４（Ａ））の要素のうち、同じ行に存在する各要素を、同じ行に存在する要素の総和で割ったものが、図４（Ｂ）に示される発話推移行列である。例えば、図４（Ａ）において、２行目に属する要素は、「１」が２つ、「０」が５つのため、同一の行に存在する要素の和は２であるので、２行目に属する各要素を２で割ったものが、図４（Ｂ）に示される２行目となる。
【００２８】
すなわち、図４（Ｂ）に示される行列は、ある始ノードから各終ノードに推移する確率を示す確率ネットワークを示している。この確率ネットワークをランダムウォークした際に得られるノードの滞在確率の極限は、上記発話推移行列を固有値分解して算出された最大固有ベクトルを正規化した値として得ることができる。
【００２９】
従って、あるノードが複数のノードに接続している（ある発話に対応する応答候補が複数ある）場合には、それら複数のノードの中から、滞在確率が最も高い（最大固有ベクトルの要素のうちで最も大きい）ノードが、適切な応答を示すノードと考えられる。よって、最大固有ベクトルの各要素は、対応する応答が適切な応答であることの度合いを示すものである。
【００３０】
なお、最大固有ベクトルの正規化とは、最大固有ベクトルに属する要素の総和で、各要素を割ったベクトルを求めることである。
【００３１】
なお、上述した図４（Ｂ）に示される発話推移行列の強連結性を保証するために、発話推移行列に属する各要素が０にならないようにスムーシングを行うようにしても良い。このスムーシングとは、発話推移行列の１行の要素の個数をｎとし、λを１より小さい正の実数とし、発話推移行列のｉ行ｊ列目の要素をａｉｊとしたとき、各ａｉｊを、
（ａｉｊ＋λ）／（１＋ｎλ）
に置き換えることである。
【００３２】
このように置き換えても、（ａｉｊ＋λ）／（１＋ｎλ）は１より小さく、また、Σをｊ（１からｎまで）に関する和としたとき、Σａｉｊ＝１であるので、
Σ（ａｉｊ＋λ）／（１＋ｎλ）＝１
となる。
【００３３】
以上説明した発話推移行列を固有値分解により算出された最大固有ベクトルを図５に示す。同図に示される最大固有ベクトルの横に記載されたｎ１〜ｎ７は、図３の各ノードに示される「犬が大きくなった」などの文言に対応する。なお、同図に示される最大固有ベクトルは正規化されていない。
【００３４】
そして、同図に示される応答スコアＤＢは、発話推移行列の最大固有ベクトルの各要素と応答情報に示される各応答とが対応づけられた情報である。この応答スコアＤＢでは、同図に示されるように、最大固有ベクトルの各要素をスコアと表現している。
【００３５】
上述した図４（Ａ）に示した行列では、ネットワークが存在する場合に要素に「１」が格納されているが、「１」以外の値を格納する方法もある。この方法について説明する。まず、上述した応答知識ＤＢの内容は、ネットワークで公開されているドキュメントから自動的に獲得することができる（例えば、乾他、”接続標識「ため」に基づく文書集合からの因果関係知識の自動獲得”、情報処理学会論文集、vol1,45, No. 3,pp. 919-933, 2004を参照のこと）。
【００３６】
このとき、獲得元の文書集合には重複した応答知識が含まれている場合があるため、この出現カウントを応答知識ＤＢに記憶し、要素にその出現カウントを格納する。
【００３７】
上記出現カウントは、発話の結びつきの強さを代表する値と考えられるため、より自然で適切な応答を選択することが可能となる。
【００３８】
次に、図６を用いて、発話促進応答ＤＢについて説明する。この発話促進応答ＤＢは、応答情報が抽出されなかった場合に、ユーザに次の発話を促す予め定められた応答を示す情報である。ここで、「応答情報が抽出されなかった」とは、応答知識ＤＢにユーザの発話に対応する応答が存在しなかったことを意味する。その場合、対話が終了するため、ユーザに次の発話を促すために発話促進応答ＤＢが用いられる。
【００３９】
同図に示されるように、発話促進応答ＤＢには、「それで？」、「それから？」など、ユーザに次の発話を促す応答が記憶されている。
【００４０】
次に、図７を用いて、応答スコア情報生成装置、及び対話処理装置の機能ブロックについて説明する。同図には、推移行列変換部７０、最大固有ベクトル算出部７１、発話入力部７２、応答選択部７３、応答出力部７４、応答知識ＤＢ８０、発話推移行列８１、応答スコアＤＢ８２、及び発話促進応答ＤＢ８３が示されている。
【００４１】
このうち、推移行列変換部７０は、応答知識ＤＢを、発話情報と応答情報との対応を示す発話推移行列に変換するものである。最大固有ベクトル算出部７１は、推移行列変換部７０により変換された発話推移行列の最大固有ベクトルを算出するものである。
【００４２】
発話入力部７２は、ユーザによる発話を音声認識し、ユーザの発話を発話情報として入力するものである。なお、発話入力部７２は、例えばユーザが「犬小屋を作ったんだ」と発話した場合にも、発話情報を「犬小屋を作る」として入力する。すなわち、発話入力部７２は、名詞と動詞とをマッチングするようになっている。
【００４３】
応答選択部７３は、応答知識ＤＢ８０から、発話入力部７２により入力された発話情報が示す発話に対応する応答を示す応答情報を抽出し、応答スコアＤＢ８２から、抽出された応答情報が示す応答に対応する最大固有ベクトルの要素を取得し、取得された要素のうちで最も大きい要素に対応する応答を示す応答情報を選択するものである。
【００４４】
また、応答選択部７３は、応答情報が抽出されなかった場合には、発話促進応答ＤＢ８３により記憶された発話促進応答情報を選択するものでもある。
【００４５】
応答出力部７４は、応答選択部７３により選択された応答情報を、音声に変換して出力するものである。
【００４６】
また、応答知識ＤＢ８０、発話推移行列８１、応答スコアＤＢ８２、及び発話促進応答ＤＢ８３は上述した通りである。
【００４７】
以上説明した機能ブロックにおいて、応答スコア情報生成装置としての機能ブロックは、推移行列変換部７０、最大固有ベクトル算出部７１、応答知識ＤＢ８０、発話推移行列８１、及び応答スコアＤＢ８２を含むものとなる。
【００４８】
また、対話処理装置としての機能ブロックは、上記応答スコア情報生成装置としての機能ブロックに加え、発話入力部７２、応答選択部７３、応答出力部７４、及び発話促進応答ＤＢ８３を含むものとなる。
【００４９】
以下、フローチャートを用いてパソコン１２で実行される処理について説明する。なお、この処理は上記ＣＰＵ６０により実行されるものである。
【００５０】
まず、図８のフローチャートを用いてパソコン１２が応答スコア情報生成装置として実行する応答スコア情報生成処理について説明する。なお、このフローチャートでは、図２に示した応答知識ＤＢ８０における発話とその発話に対応する応答とが発話対と表現されている。
【００５１】
まず、ステップ１０１で、応答知識ＤＢ８０に記憶された発話対に対応する行列要素を１にする（図４（Ａ）参照）。ステップ１０２で、応答知識ＤＢ８０に含まれる全ての発話対に対する上記ステップ１０１の処理が終了したか否か判断し、終了していない場合には、ステップ１０１の処理を行い、終了した場合にはステップ１０３に処理を移行する。
【００５２】
ステップ１０３で、１つの同じ行に存在する各要素を、同じ行に存在する要素の総和で割る（図４（Ｂ）参照）。その行の要素に対して、ステップ１０４で上述したスムーシングを行う。次のステップ１０５で、全ての行に対するステップ１０３、１０４の処理が終了したか否か判断し、終了していない場合には、ステップ１０３の処理を行い、終了した場合にはステップ１０６に処理を移行する。以上の処理により、応答知識ＤＢ８０が、発話情報と応答情報との対応を示す発話推移行列に変換される。
【００５３】
次のステップ１０６で、上記発話推移行列を固有値分解することにより、最大固有ベクトルを算出する。次のステップ１０７で、最大固有ベクトルを用いて応答スコアＤＢを生成し（図５参照）、処理を終了する。
【００５４】
以上説明した応答スコア情報生成処理における上記最大固有ベクトルの各要素は、対応する応答が適切な応答であることの度合いを示すものであるため、対話を長続きさせるための応答スコア情報生成装置を提供することができる。
【００５５】
次に、図９のフローチャートを用いてパソコン１２が対話処理装置として実行する対話処理について説明する。まず、ステップ２０１で、ユーザの発話を音声認識し、発話情報を入力する。次のステップ２０２で、応答知識ＤＢ８０に記憶されている発話情報のうち、入力された発話情報と比較して、一致するものがあるか否か判断する。ステップ２０２で、否定判断した場合には、ステップ２０４に処理が移行する。
【００５６】
一方、ステップ２０２で肯定判断した場合には、ステップ２０３で、ユーザによる発話情報と一致した応答知識ＤＢ８０に記憶されている発話に対応する応答を応答候補とし、ステップ２０４に処理が移行する。
【００５７】
次のステップ２０４で、応答知識ＤＢ８０に記憶されている全ての発話情報と、ユーザによる発話情報とを比較したか否か判断し、否定判断した場合には、再びステップ２０２の処理を行い、肯定判断した場合には、ステップ２０５に処理が移行する。
【００５８】
上記ステップ２０２からステップ２０４の処理により、入力された発話情報が示す発話に対応する応答を示す応答情報（応答候補）が抽出される。
【００５９】
次のステップ２０５で、応答候補が０か否か判断する。応答候補が０、すなわち応答情報が抽出されなかった場合には、ステップ２０６で、発話促進応答ＤＢ８３から発話促進応答を応答情報として選択し、ステップ２０９に処理が移行する。
【００６０】
このように、応答候補が抽出されなかった場合には、ユーザに次の発話を促す予め定められた応答を示す発話促進応答情報を選択するので、対話を長続きさせることができる。
【００６１】
一方、ステップ２０５で、否定判断した場合には、ステップ２０７で、応答スコアＤＢ８２から、応答候補に対応する要素（スコア）を取得し、ステップ２０８で、最も大きい要素に対応する応答候補を応答情報として選択する。
【００６２】
次のステップ２０９で、応答情報を音声に変換して出力し、再びステップ２０１の処理行う。
【００６３】
この対話処理によれば、例えばユーザが「犬小屋を作る」と発話した場合、「犬が喜ぶ」又は「金槌がいる」が応答候補となる。「犬が喜ぶ」に対応する要素は、０．５６９であり、「金槌がいる」に対応する要素は、０．０１２である。従って、「犬が喜ぶ」が応答として選択される。このような言明文には、文末に「ね」を加えて音声出力するような処理にしても良い。
【００６４】
以上説明した対話処理における最大固有ベクトルの各要素は、対応する応答が適切な応答であることの度合いを示すものであるため、ユーザによる発話に対して適切な応答を選択し、その応答を出力することで対話を長続きさせることを可能とする対話処理装置を提供することができる。
【図面の簡単な説明】
【００６５】
【図１】パソコンの構成を示す図である。
【図２】応答知識データベースを示す図である。
【図３】発話ネットワークを示す図である。
【図４】発話推移行列を示す図である。
【図５】最大固有ベクトル及び応答スコアデータベースを示す図である。
【図６】発話促進応答データベースを示す図である。
【図７】応答スコア情報生成装置、及び対話処理装置の機能ブロック図である。
【図８】応答スコア情報生成処理を示すフローチャートである。
【図９】対話処理を示すフローチャートである。
【符号の説明】
【００６６】
１２  パソコン
６０  ＣＰＵ
６３  ＨＤＤ
６６  マイク
６７  スピーカ
７０  推移行列変換部
７１  最大固有ベクトル算出部
７２  発話入力部
７３  応答選択部
７４  応答出力部
８０  応答知識ＤＢ
８１  発話推移行列
８２  応答スコアＤＢ
８３  発話促進応答ＤＢ
【図１】
2008293098.tif 000003
【図２】
2008293098.tif 000004
【図３】
2008293098.tif 000005
【図４】
2008293098.tif 000006
【図５】
2008293098.tif 000007
【図６】
2008293098.tif 000008
【図７】
2008293098.tif 000009
【図８】
2008293098.tif 000010
【図９】
2008293098.tif 000011