(57)【要約】    【課題】  新鮮味を失うことなくユーザが何度も対話を行うことができる対話装置及び方法を提供する。    【解決手段】  少なくとも２つの選択肢を与える分岐文章とその選択肢各々についての個別の普通文章とを１データ組として複数のデータ組を記憶した記憶手段と、複数のデータ組のうちから１のデータ組を選択する選択手段と、１のデータ組内の分岐文章を示す出力を生成し、その後、入力操作に応じた選択肢に対応した１のデータ組内の普通文章を示す出力を生成する文章出力手段と、選択手段と文章出力手段とをその順に交互に動作させる制御手段と、複数のデータ組の各々についての文章出力手段による文章出力履歴を保存する履歴保存手段を含み、文章出力手段は、１のデータ組の文章出力履歴が履歴保存手段に保存されているときにはその文章出力履歴に応じて１のデータ組内の文章を示す出力を生成する。【選択図】  図１
2005249817.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２つの選択肢を与える分岐文章と前記少なくとも２つの選択肢各々についての個別の普通文章とを１データ組として複数のデータ組を記憶した記憶手段と、
前記複数のデータ組のうちから１のデータ組を選択する選択手段と、
前記１のデータ組内の前記分岐文章を示す出力を生成し、その後、入力操作に応じた選択肢に対応した前記１のデータ組内の前記普通文章を示す出力を生成する文章出力手段と、
前記選択手段と前記文章出力手段とをその順に交互に動作させる制御手段と、を備えた対話装置であって、
前記複数のデータ組の各々についての前記文章出力手段による文章出力履歴を保存する履歴保存手段を含み、
前記文章出力手段は、前記１のデータ組の前記文章出力履歴が前記履歴保存手段に保存されているときにはその文章出力履歴に応じて前記１のデータ組内の文章を示す出力を生成することを特徴とする対話装置。
【請求項２】
前記文章出力手段は、前記履歴保存手段が前記１のデータ組内の少なくとも２つの普通文章各々の出力履歴を保存しているときには、前記１のデータ組の前記分岐文章を示す出力だけを生成し、前記普通文章を示す出力を生成することなく前記１のデータ組についての文章出力動作を終了し、
前記履歴保存手段が前記１のデータ組の前記少なくとも２つの普通文章のうちの一方だけの文章の出力履歴を保存しているときには、前記１のデータ組の前記分岐文章が示す出力を生成することなく、前記少なくとも２つの普通文章のうちの他方の普通文章が示す出力を生成して前記１のデータ組についての文章出力動作を終了することを特徴とする請求項１記載の対話装置。
【請求項３】
前記複数のデータ組は１つのデータ組の各普通文章に対して個別に他のデータ組の分岐文章が関連性を有するように階層構造をなしており、
前記選択手段は、選択動作を繰り返す毎に前記複数のデータ組のうちの１階層だけ下位階層に属するデータ組から１のデータ組を選択することを特徴とする請求項１記載の対話装置。
【請求項４】
前記選択手段は、前記複数のデータ組のうちの前記階層構造の第ｎ＋１階層（ｎは１以上の整数）に属するデータ組から第ｎ階層における前記入力操作に応じた選択肢に対応した普通文章と関連性を有する分岐文章を含むデータ組を前記１のデータ組として選択することを特徴とする請求項３記載の対話装置。
【請求項５】
前記文章出力手段は、前記階層構造の前記１のデータ組の分岐文章が与える選択肢毎の下位階層系列の全ての文章についての未出力文章総数を前記文章出力履歴に応じて得てそれらを互いに比較する比較手段を含み、
前記比較手段によって未出力文章総数が多い選択肢に対応した前記１のデータ組内の未出力の普通文章を示す出力を生成することを特徴とする請求項１又は３記載の対話装置。
【請求項６】
前記記憶手段は、対話のジャンル毎に前記複数のデータ組を記憶し、
前記１のデータ組より下位階層にある文書全ての未出力文章総数を前記文章出力履歴に応じて得て、その未出力文章総数が所定値より小であるときには他のジャンルに変更することを特徴とする請求項１又は３記載の対話装置。
【請求項７】
前記文章出力手段によって生成される出力は、表示又は音声出力であることを特徴とする請求項１記載の対話装置。
【請求項８】
前記文章出力手段は、前記履歴保存手段が前記１のデータ組内の文章出力履歴を保存している場合に、その文章出力時点から所定時間が経過したか否かを判別する判別手段と、
前記判別手段によって前記所定時間の時間経過前と判別されたならば、前記履歴保存手段が前記１のデータ組内の少なくとも２つの普通文章各々の出力履歴を保存しているときには、文章出力を生成することなく前記１のデータ組についての文章出力動作を終了し、前記履歴保存手段が前記１のデータ組の前記少なくとも２つの普通文章のうちの一方だけの文章の出力履歴を保存しているときには、前記１のデータ組の前記分岐文章が示す出力を生成することなく、前記少なくとも２つの普通文章のうちの他方の普通文章が示す出力を生成して前記１のデータ組についての文章出力動作を終了し、
前記判別手段によって前記所定時間の時間経過後と判別されたならば、前記１のデータ組の全ての文章が未出力として文章出力動作を行うことを特徴とする請求項１記載の対話装置。
【請求項９】
少なくとも２つの選択肢を与える分岐文章と前記少なくとも２つの選択肢各々についての個別の普通文章とを１データ組として複数のデータ組を記憶するステップと、
前記複数のデータ組のうちから１のデータ組を選択する選択ステップと、
前記１のデータ組内の前記分岐文章を示す出力を生成し、その後、入力操作に応じた選択肢に対応した前記１のデータ組内の前記普通文章を示す出力を生成する文章出力ステップと、
前記選択ステップと前記文章出力ステップとその順に交互に実行させるステップと、
前記複数のデータ組の各々についての前記文章出力ステップにおける文章出力履歴を保存するステップと、
前記１のデータ組の前記文章出力履歴が保存されているときには、前記文章出力ステップに代えてその文章出力履歴に応じて前記１のデータ組内の文章を示す出力を生成するステップと、を備えたことを特徴とする対話方法。
【請求項１０】
対話方法を実行するコンピュータ読取可能なプログラムであって、
少なくとも２つの選択肢を与える分岐文章と前記少なくとも２つの選択肢各々についての個別の普通文章とを１データ組として複数のデータ組を記憶するステップと、
前記複数のデータ組のうちから１のデータ組を選択する選択ステップと、
前記１のデータ組内の前記分岐文章を示す出力を生成し、その後、入力操作に応じた選択肢に対応した前記１のデータ組内の前記普通文章を示す出力を生成する文章出力ステップと、
前記選択ステップと前記文章出力ステップとその順に交互に実行させるステップと、
前記複数のデータ組の各々についての前記文章出力ステップにおける文章出力履歴を保存するステップと、
前記１のデータ組の前記文章出力履歴が保存されているときには前記文章出力ステップに代えてその文章出力履歴に応じて前記１のデータ組内の文章を示す出力を生成するステップと、を備えたことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザに対して文章を出力して対話を行う対話装置及び方法に関する。
【背景技術】
【０００２】
ユーザの選択操作に対応してディスプレイに文章を表示することによってユーザとの間で対話を行う対話装置は公知である（特許文献１参照）。このような対話装置では、様々な文章が予めデータとして記憶されており、ユーザが選択操作することによって適切な文章が選択的に読み出され、その読出文章に応じた文章がディスプレイに表示され、これが繰り返されることにより対話が展開される。
【特許文献１】特開２００１−２７３４７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、ユーザが対話装置を使用する度に同じ選択操作をすると、ディスプレイに表示される文章が何時も同一の内容のものとなり、展開される対話に新鮮味がなくなり、飽きられてしまうという問題点があった。
【０００４】
本発明が解決しようとする課題には、上記の欠点が一例として挙げられ、新鮮味を失うことなくユーザが何度も対話を行うことができる対話装置及び方法を提供することが本発明の目的である。
【課題を解決するための手段】
【０００５】
請求項１に係る発明の対話装置は、少なくとも２つの選択肢を与える分岐文章と前記少なくとも２つの選択肢各々についての個別の普通文章とを１データ組として複数のデータ組を記憶した記憶手段と、前記複数のデータ組のうちから１のデータ組を選択する選択手段と、前記１のデータ組内の前記分岐文章を示す出力を生成し、その後、入力操作に応じた選択肢に対応した前記１のデータ組内の前記普通文章を示す出力を生成する文章出力手段と、前記選択手段と前記文章出力手段とをその順に交互に動作させる制御手段と、を備えた対話装置であって、前記複数のデータ組の各々についての前記文章出力手段による文章出力履歴を保存する履歴保存手段を含み、前記文章出力手段は、前記１のデータ組の前記文章出力履歴が前記履歴保存手段に保存されているときにはその文章出力履歴に応じて前記１のデータ組内の文章を示す出力を生成することを特徴としている。
【０００６】
請求項９に係る発明の対話方法は、少なくとも２つの選択肢を与える分岐文章と前記少なくとも２つの選択肢各々についての個別の普通文章とを１データ組として複数のデータ組を記憶するステップと、前記複数のデータ組のうちから１のデータ組を選択する選択ステップと、前記１のデータ組内の前記分岐文章を示す出力を生成し、その後、入力操作に応じた選択肢に対応した前記１のデータ組内の前記普通文章を示す出力を生成する文章出力ステップと、前記選択ステップと前記文章出力ステップとその順に交互に実行させるステップと、前記複数のデータ組の各々についての前記文章出力ステップにおける文章出力履歴を保存するステップと、前記１のデータ組の前記文章出力履歴が保存されているときには、前記文章出力ステップに代えてその文章出力履歴に応じて前記１のデータ組内の文章を示す出力を生成するステップと、を備えたことを特徴としている。
【０００７】
請求項１０に係る発明のプログラムは、対話方法を実行するコンピュータ読取可能なプログラムであって、少なくとも２つの選択肢を与える分岐文章と前記少なくとも２つの選択肢各々についての個別の普通文章とを１データ組として複数のデータ組を記憶するステップと、前記複数のデータ組のうちから１のデータ組を選択する選択ステップと、前記１のデータ組内の前記分岐文章を示す出力を生成し、その後、入力操作に応じた選択肢に対応した前記１のデータ組内の前記普通文章を示す出力を生成する文章出力ステップと、前記選択ステップと前記文章出力ステップとその順に交互に実行させるステップと、前記複数のデータ組の各々についての前記文章出力ステップにおける文章出力履歴を保存するステップと、前記１のデータ組の前記文章出力履歴が保存されているときには前記文章出力ステップに代えてその文章出力履歴に応じて前記１のデータ組内の文章を示す出力を生成するステップと、を備えたことを特徴としている。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の実施例を図面を参照しつつ詳細に説明する。
【０００９】
図１は本発明による対話装置を示している。この対話装置は、操作部１、表示部２、音声発生部３、コントローラ４、ＲＯＭ５、ＲＡＭ６及びスピーカ７を備えている。操作部１、表示部２、音声発生部３、ＲＯＭ５及びＲＡＭ６の各々は、コントローラ４に接続されている。
【００１０】
操作部１はキーボード或いは一連のスイッチ群からなり、ユーザが個人情報等の情報を入力したり、動作を指令する部分である。表示部２はコントローラ４の指令に応じてユーザに対して対話のための質問や語りかけの内容や指示を表示する。操作部１は音声認識機能を備えてユーザの音声によってコントローラ４を操作しても良い。音声発生部３はコントローラ４の指令に応じてユーザに対する対話の文章を合成音声信号として発生する。音声発生部３の出力音声信号はスピーカ７に供給される。
【００１１】
以下、説明を簡単にするために対話の際の質問に対して２分岐する場合について説明するが、３分岐以上の動作の場合でも２分岐する場合を同様に適用することができる。
【００１２】
ＲＯＭ５には、コントローラ４の動作プログラムと共に、対話のための分岐文章データ群及び普通文章データ群が記憶されている。分岐文章データはユーザに対して質問をするための文章を示し、その質問に対するユーザ応答が後述の系列Ａ，Ｂの選択を決定することになる。普通文章データは通常、肯定文或いは否定文からなり、単にユーザに対して語りかける文章である。１つの分岐文章データｎｍに対して２つの普通文章データｎｍＡ，ｎｍＢが用意され、それらが１データ組をなす。ｎ及びｍは各々１以上の整数であり、ｎは階層番号を示し、ｍは各階層のうちの組番号である。普通文章データｎｍＡは系列Ａの普通文章データであり、普通文章データｎｍＢは系列Ｂの普通文章データである。階層毎のデータ組数は例えば、２n-1である。対話の話題として複数のジャンルが用意されているので、そのジャンル毎に第１階層から最終階層までの分岐文章データ群及び普通文章データ群が記憶されている。第ｎ階層の１つのデータ組の普通文章とそれに続く第ｎ＋１の分岐文章とは内容的に関連性を有するように階層構造の各文章は作成されている。
【００１３】
同一のデータ組に属する分岐文章データｎｍ及び普通文章データｎｍＡ，ｎｍＢの文章例を示すと、ジャンルがスポーツの場合には、分岐文章データｎｍが「○○が気になるスポーツは？  Ａ．野球、Ｂ．サッカー」を示すと、系列Ａの普通文章データｎｍＡは「野球は国民のスポーツだよね。」を示し、系列Ｂの普通文章データｎｍＢは「今時サッカー知らないと話にならないよ。」を示す。その普通文章データｎｍＡに続く各文章データの内容は野球についてとなり、同様に、普通文章データｎｍＢに続く各文章データの内容はサッカーについてとなる。例えば、その普通文章データｎｍＡに続く分岐文章データ(ｎ＋１)ｍが「野球は見る方、する方？  Ａ．見る、Ｂ．する」を示す。
【００１４】
図２は、かかる分岐文章データ群及び普通文章データ群の階層構造を示している。第１階層では１データ組、第２階層では２データ組、第３階層では４データ組、……となり、図２では第４階層以降は省略している。
【００１５】
ＲＡＭ６は、不揮発性のメモリ、或いはハードディスクドライブでも良い。ＲＡＭ６には、ＲＯＭ５に記憶された分岐文章データ群及び普通文章データ群のデータ各々のついての出力回数を計数するカウンタＣｎｍ，ＣｎｍＡ，ＣｎｍＢが複数のジャンル毎に形成され、それらのカウンタは計数値を示す。Ｃｎｍは分岐文章データｎｍのカウンタであり、ＣｎｍＡは普通文章データｎｍＡのカウンタであり、ＣｎｍＢは普通文章データｎｍＢのカウンタである。図３は図２の分岐文章データ及び普通文章データに対応してＲＡＭ６内に形成されたカウンタの計数値記憶テーブルを示している。
【００１６】
なお、分岐文章データ群及び普通文章データ群をＲＯＭ５ではなく所定のプログラムの実行によって外部から、例えば、記録媒体から読み出してＲＡＭ６に記憶させても良い。
【００１７】
コントローラ４はマイクロコンピュータからなり、対話装置全体を制御する。ユーザが操作部１に対して予め定められた操作、例えば、対話開始の操作、或いは選択操作を行うと、操作部１からその操作内容を示す信号がコントローラ４に供給される。
【００１８】
ユーザが操作部１に対して予め定められた対話開始の操作を行うと、操作部１からその対話開始信号がコントローラ４に供給される。
【００１９】
コントローラ４は、対話開始信号に応答して対話動作を行う。対話動作では、図４〜図６に示すように、先ず、ＲＯＭ５から開始文章データを読み出してその開始文章データが示す内容を表示部２に表示させる（ステップＳ１）。表示部２には、例えば、対話を開始することが表示される。ステップＳ１では対話において話題可能な複数のジャンルが表示され、ユーザが操作部１を操作してジャンルを選択することができる。その後、階層番号ｎを１に等しくさせ（ステップＳ２）、選択ジャンルの第ｎ階層〜最終階層の文章出力カウンタのうちの計数値が０であるカウンタの数をＲＡＭ６から検出する（ステップＳ３）。
【００２０】
ステップＳ２でｎ＝１とされた直後の時点では第１階層のデータ組（分岐文章データ１１及び普通文章データ１１Ａ，１１Ｂ）が処理対象である。
【００２１】
ＲＡＭ６には、上記したように、分岐文章データｎｍ及び普通文章データｎｍＡ，ｎｍＢについての文章出力カウンタＣｎｍ，ＣｎｍＡ，ＣｎｍＢが形成されているので、ステップＳ３では、現在の第ｎ階層の処理対象のデータ組以降の系列に属する文章出力カウンタの全ての計数値が読み出され、そのうちの計数値０のカウンタの数がＵとして定められる。ｎ＝１ならば、カウンタＣ１１，Ｃ１１Ａ，Ｃ１１Ｂを含む全てのカウンタのうちの計数値０のカウンタの数が検出される。計数値０であるカウンタに対応した文書データはその時点では未だ使われていないこと、すなわち表示或いは音声として出力されていない未出力文章数を意味する。
【００２２】
コントローラ４は、未出力文章数Ｕが所定値Ｆ（例えば、１）以上であるか否かを判別する（ステップＳ４）。Ｕ＜Ｆで、未出力文章数Ｕが少ない場合には、そのジャンルの話題は飽きられている可能性があるので、他のジャンルの話題での対話を勧めるメッセージを表示部２に表示させる（ステップＳ５）。この場合には、ステップＳ１に戻ることになる。
【００２３】
Ｕ≧Ｆならば、第ｎ階層の処理対象のデータ組以降の系列Ａ，Ｂ毎の未出力文章数ＣＡ，ＣＢを比較する（ステップＳ６）。ｎ＝１とすると第１階層以降の系列Ａは図３に示すように、カウンタＣ１１Ａ，Ｃ２１，Ｃ２１Ａ，Ｃ２１Ｂ，……であり、系列ＢはカウンタＣ１１Ｂ，Ｃ２２，Ｃ２２Ａ，Ｃ２２Ｂ，……である。系列Ａの文章出力カウンタのうちの計数値が０であるカウンタの数がＣＡとしてＲＡＭ６から検出され、系列Ｂの文章出力カウンタのうちの計数値が０であるカウンタの数がＣＢとしてＲＡＭ６から検出される。
【００２４】
ステップＳ６の比較結果がＣＡ≒ＣＢであれば、系列Ａでは未出力文章数ＣＡが系列Ｂの未出力文章数ＣＢとほぼ同一であるので、現時点での第ｎ階層の処理対象のデータ組の普通文章データｎｍＡ，ｎｍＢについての未出力文章数Ｓが０〜２のうちのいずれであるかを判別する（ステップＳ７）。
【００２５】
Ｓ＝２ならば、処理対象のデータ組内のいずれの普通文章データｎｍＡ，ｎｍＢも使用されていないので、処理対象のデータ組内の分岐文章データｎｍをＲＯＭ５から読み出してその分岐文章データｎｍが示す質問文を表示部２に表示させる（ステップＳ８）。そして、出力分岐文章データｎｍに対応するＲＡＭ６内のカウンタの計数値を１だけ増加させる（ステップＳ９）。表示部２には、質問文とその質問文に対する回答として２つの選択肢Ａ，Ｂの内容とが表示される。ユーザは選択肢Ａ，Ｂのうちからいずれか一方を操作部１を介して選択することができる。コントローラ４は操作部１の選択操作による選択肢を受け入れ（ステップＳ１０）、処理対象のデータ組内の受け入れた選択肢に対応した系列の普通文章データをＲＯＭ５から出力普通文章データＯＤ（ｎｍＡ，ｎｍＢのいずれか一方）を読み出してその出力普通文章データＯＤが示す文章を表示部２に表示させる（ステップＳ１１）。ｎ＝１の場合には普通文章データ１１Ａ，１１Ｂのうちのいずれか一方が出力普通文章データＯＤとされる。表示部２には、出力普通文章データＯＤが示す文章が表示される。出力普通文章データＯＤに対応するＲＡＭ６内のカウンタの計数値を１だけ増加させる（ステップＳ１２）。その後、ステップＳ２１に移行する。
【００２６】
Ｓ＝１ならば、処理対象のデータ組内の普通文章データｎｍＡ，ｎｍＢのいずれか一方だけが使用されていないので、その未使用の普通文章データをＲＯＭ５から出力普通文章データＯＤとして読み出してその読み出し普通文章データが示す文章を表示部２に表示させる（ステップＳ１３）。その後、ステップＳ１２に進む。
【００２７】
Ｓ＝０ならば、処理対象のデータ組内のいずれの普通文章データｎｍＡ，ｎｍＢも既に使用されているので、分岐文章データｎｍをＲＯＭ５から読み出してその分岐文章データｎｍが示す質問文を表示部２に表示させる（ステップＳ１４）。そして、出力分岐文章データｎｍに対応するＲＡＭ６内のカウンタの計数値を１だけ増加させる（ステップＳ１５）。ステップＳ１４はステップＳ８と同一である。コントローラ４は操作部１の選択操作の選択肢を受け入れる（ステップＳ１６）。
【００２８】
ステップＳ６の比較結果がＣＡ≫ＣＢであれば、系列Ａでは未出力文章数が系列Ｂよりも十分に多いので、系列Ａを選択し、第ｎ階層の処理対象のデータ組の普通文章データｎｍＡについての文章出力カウンタの計数値は０であるか否かを判別する（ステップＳ１７）。普通文章データｎｍＡについての文章出力カウンタの計数値が０である場合には、普通文章データｎｍＡをＲＯＭ５から出力普通文章データＯＤとして読み出してその出力普通文章データが示す文章を表示部２に表示させる（ステップＳ１８）。そして、出力普通文章データＯＤに対応するＲＡＭ６内のカウンタの計数値を１だけ増加させる（ステップＳ１９）。普通文章データｎｍＡについての文章出力カウンタの計数値が０でない場合には、ステップＳ１８，Ｓ１９を迂回してステップＳ２３に進む。
【００２９】
ステップＳ６の比較結果がＣＡ≪ＣＢであれば、系列Ｂでは未出力文章数が系列Ａよりも十分に多いので、系列Ｂを選択し、第ｎ階層の処理対象のデータ組の普通文章データｎｍＢについての文章出力カウンタの計数値が０であるか否かを判別する（ステップＳ２０）。普通文章データｎｍＢについての文章出力カウンタの計数値が０である場合には、普通文章データｎｍＢをＲＯＭ５から出力普通文章データＯＤとして読み出してその出力普通文章データが示す文章を表示部２に表示させる（ステップＳ２１）。そして、出力普通文章データＯＤに対応するＲＡＭ６内のカウンタの計数値を１だけ増加させる（ステップＳ２２）。普通文章データｎｍＡについての文章出力カウンタの計数値が０でない場合には、ステップＳ２１，Ｓ２２を迂回してステップＳ２３に進む。
【００３０】
コントローラ４は、ステップＳ２３においては階層番号ｎを１だけ増加させ、そして、ステップＳ３に戻って上記の動作を繰り返す。
【００３１】
ステップＳ２３の実行直前においては、現在の第ｎ階層における系列Ａ，Ｂのうちの選択系列、すなわち、次の第ｎ＋１階層における処理対象のデータ組が決定されている。
【００３２】
よって、ＣＡ≒ＣＢで系列Ａでは未出力文章数ＣＡが系列Ｂの未出力文章数ＣＢとほぼ同一であり、更に、Ｓ＝２であれば、処理対象のデータ組のいずれの普通文章データｎｍＡ，ｎｍＢも使用されていないので、分岐文章データｎｍが示す質問文のユーザの操作結果に応じた系列の普通文章データが出力普通文章データＯＤとして読み出されてその出力普通文章データが示す文章が表示部２に表示される。Ｓ＝１であれば、処理対象のデータ組内の普通文章データｎｍＡ，ｎｍＢのいずれか一方だけが使用されていないので、その未使用の普通文章データがＲＯＭ５から出力普通文章データＯＤとして読み出されてその読み出し普通文章データが示す文章が表示部２に表示される。このＳ＝１の場合には、処理対象のデータ組内の分岐文章データｎｍは使用されず、その分岐文章データｎｍが示す質問文は表示されない。Ｓ＝０ならば、処理対象のデータ組内のいずれの普通文章データｎｍＡ，ｎｍＢも既に使用されているので、分岐文章データｎｍがＲＯＭ５から読み出されてその分岐文章データｎｍが示す質問文が表示されるが、普通文章データｎｍＡ，ｎｍＢは使用されず、そのいずれの普通文章データが示す文章は表示されない。
【００３３】
ＣＡ≫ＣＢであれば、系列Ａでは未出力文章数が系列Ｂよりも十分に多いので、処理対象のデータ組内の分岐文章データｎｍが示す質問文は表示されず、系列Ａの普通文章データｎｍＡがＲＯＭ５から出力普通文章データＯＤとして読み出されてその普通文章データが示す文章が表示部２に表示される。
【００３４】
ＣＡ≪ＣＢであれば、系列Ｂでは未出力文章数が系列Ａよりも十分に多いので、処理対象のデータ組内の分岐文章データｎｍが示す質問文は表示されず、系列Ｂの普通文章データｎｍＢがＲＯＭ５から出力普通文章データＯＤとして読み出されてその普通文章データが示す文章が表示部２に表示される。
【００３５】
このように、各文章出力カウンタの計数値に基づいて表示されたことがない文章或いは表示回数が少ない文章が表示されるので、対話装置の利用を繰り返しても新鮮味がなくなることを防止することができる。
【００３６】
なお、コントローラ４は、図４〜図６のフローチャートには具体的に示していないが、ステップＳ２３において階層番号ｎが最終階層の番号を越えた時に対話動作を終了する。ただし、ユーザによる操作部１に対する所定の操作で強制的に終了できるようにしても良い。
【００３７】
図７は本発明の他の実施例としてコントローラ４による対話動作を示している。この実施例においては、ＲＡＭ６は、分岐文章データ群及び普通文章データ群のデータ各々のついての出力回数を計数するカウンタＣｎｍ，ＣｎｍＡ，ＣｎｍＢ各々の計数値及び１データ組毎の出力時点を複数のジャンル毎に記憶する。１データ組毎の出力時点は例えば、カウンタＣｎｍの計数値が最後に増加された時点である。
【００３８】
コントローラ４は、操作部１から供給される対話開始信号に応答して対話動作を行う。対話動作では、図７に示すように、先ず、ＲＯＭ５から開始文章データを読み出してその開始文章データが示す内容を表示部２に表示させ（ステップＳ３１）、その後、階層番号ｎを１に等しくさせ（ステップＳ３２）、選択ジャンルの第ｎ階層の文章出力カウンタ各々の計数値及びデータ出力時点をＲＡＭ６から読み出し（ステップＳ３３）、読み出したカウンタ計数値に応じて処理対象のデータ組内の分岐文章データｎｍの出力履歴があるか否かを判別する（ステップＳ３４）。
【００３９】
ステップＳ３２でｎ＝１とされた直後では第１階層のデータ組（分岐文章データ１１及び普通文章データ１１Ａ，１１Ｂ）が処理対象である。
【００４０】
ＲＡＭ６には、上記したように、分岐文章データｎｍ及び普通文章データｎｍＡ，ｎｍＢについての文章出力カウンタＣｎｍ，ＣｎｍＡ及びＣｎｍＢ各々の計数値とデータ出力時点とが記憶されているので、ステップＳ３３では、現在の第ｎ階層の処理対象のデータ組以降の系列に属する文章出力カウンタの全ての計数値及び出力時点が読み出される。ｎ＝１ならば、カウンタＣ１１，Ｃ１１Ａ，Ｃ１１Ｂを含む全てのカウンタの計数値が０であれば、出力履歴はないことになり、いずれかのカウンタの計数値が０ではないならば、出力履歴があることになる。
【００４１】
コントローラ４は、ステップＳ３４において出力履歴がないと判別した場合には、処理対象のデータ組内のいずれの普通文章データｎｍＡ，ｎｍＢも使用されていないので、処理対象のデータ組内の分岐文章データｎｍをＲＯＭ５から読み出してその分岐文章データｎｍが示す質問文を表示部２に表示させる（ステップＳ３５）。そして、出力分岐文章データｎｍに対応するＲＡＭ６内のカウンタの計数値を１だけ増加させ、かつ出力時点をＲＡＭ６内に記憶させる（ステップＳ３６）。表示部２には、質問文とその質問文に対する回答として２つの選択肢Ａ，Ｂの内容とが表示される。ユーザは選択肢Ａ，Ｂのうちからいずれか一方を操作部１を介して選択することができる。コントローラ４は操作部１の選択操作の選択肢を受け入れ（ステップＳ３７）、処理対象のデータ組内の受け入れた選択肢に対応した系列の普通文章データをＲＯＭ５から出力普通文章データＯＤ（ｎｍＡ，ｎｍＢのいずれか一方）読み出してその出力普通文章データＯＤが示す文章を表示部２に表示させる（ステップＳ３８）。ｎ＝１の場合には普通文章データ１１Ａ，１１Ｂのうちのいずれか一方が出力普通文章データＯＤとされる。表示部２には、出力普通文章データＯＤが示す文章が表示される。出力普通文章データＯＤに対応するＲＡＭ６内のカウンタの計数値を１だけ増加させる（ステップＳ３９）。その後、ステップＳ４３に移行する。
【００４２】
コントローラ４は、ステップＳ３４において出力履歴があると判別した場合には、ステップＳ３３で読み出したデータ出力時点に応じて第ｎ階層の処理対象のデータ組の分岐文章データｎｍの最後の出力時点から所定時間（例えば、１年）の経過があるか否かを判別する（ステップＳ４０）。文章データｎｍの最後の出力時点から所定時間が経過しているならば、上記のステップＳ３５〜Ｓ３９を実行する。これは、所定時間の経過があれば、印象も薄れるので、文章データｎｍを再度出力して良い状態になったとしている。なお、所定時間については固定した時間としないで、１ヶ月或いは６ヶ月のように変化させても良い。
【００４３】
第ｎ階層の処理対象のデータ組の文章データｎｍの最後の出力時点から所定時間が経過していないならば、その処理対象のデータ組の普通文章データｎｍＡ，ｎｍＢについての未出力文章数Ｓが０及び１のいずれであるかを判別する（ステップＳ４１）。
【００４４】
Ｓ＝１ならば、処理対象のデータ組内の普通文章データｎｍＡ，ｎｍＢのいずれか一方だけが使用されていないので、その未使用の普通文章データをＲＯＭ５から出力普通文章データＯＤとして読み出してその読み出し普通文章データが示す文章を表示部２に表示させる（ステップＳ４２）。その後、ステップＳ３９及びＳ４３に進む。
【００４５】
Ｓ＝０ならば、処理対象のデータ組内のいずれの普通文章データｎｍＡ，ｎｍＢも既に使用されているので、ステップＳ４３に進む。
【００４６】
コントローラ４は、ステップＳ４３においては階層番号ｎを１だけ増加させ、そして、第ｎ階層が存在するか否かを判別する（ステップＳ４４）。第ｎ階層の文章データがＲＯＭ５に存在するならば、ステップＳ３３に戻って上記の動作を繰り返す。階層番号ｎの文章データがＲＯＭ５に存在しない場合には、他のジャンルの話題での対話を勧めるメッセージを表示部２に表示させる（ステップＳ４５）。この場合には、ステップＳ３１に戻ることになる。
【００４７】
かかる図７に示した実施例においては、既に出力した文章データを所定時間の経過後においては再度出力可能にするので、限られた文章データ群を有効利用することができ、長期間に亘って対話を楽しむことができる。
【００４８】
なお、上記した各実施例においては、文章データは必ずしも図２に示したように階層構造に構成する必要はなく、１つの分岐文章データと２つの普通文章データとかなる１データ組単位で複数のデータ組を備えてそのデータ組間の関連性が設定されていれば良い。単一の繋がりだけでなくデータ組間の複数の繋がりを設定し、選択的に行うことにより、対話の展開により変化を持たせることができる。
【００４９】
また、分岐文章データが示す選択肢は２つに限らず、３以上であっても良い。この場合にはその選択肢の数だけの普通文章データを用意することになる。
【００５０】
更に、各文章データの内容を表示部２に表示することに限らず、音声発生部３を介してスピーカ７から音声として出力しても良い。
【００５１】
以上のように、本発明によれば、複数のデータ組の各々についての文章出力手段による文章出力履歴を保存する履歴保存手段を含み、文章出力手段が、１のデータ組の文章出力履歴が履歴保存手段に保存されているときにはその文章出力履歴に応じて１のデータ組内の文章を示す出力を生成するので、新鮮味を失うことなくユーザが何度も対話を行うことができる。
【００５２】
更に、本発明の対話装置は雑談装置、ユーザとの対話型のコミュニケーション装置、携帯電話機、カーナビゲーション装置、ゲーム機やＰＤＡに適用することができる。また、本発明の対話方法はコンピュータのプログラムで実行させることができる。
【図面の簡単な説明】
【００５３】
【図１】本発明の実施例を示すブロック図である。
【図２】文章データの階層構造を示す図である。
【図３】カウンタテーブルを示す図である。
【図４】コントローラによる対話動作を示すフローチャートである。
【図５】図４の対話動作の続き部分を示すフローチャートである。
【図６】図４の対話動作の続き部分を示すフローチャートである。
【図７】本発明の他の実施例としてコントローラによる対話動作を示すフローチャートである。
【符号の説明】
【００５４】
１  操作部
２  表示部
３  音声発生部
４  コントローラ
７  スピーカ
【図１】
2005249817.tif 000003
【図２】
2005249817.tif 000004
【図３】
2005249817.tif 000005
【図４】
2005249817.tif 000006
【図５】
2005249817.tif 000007
【図６】
2005249817.tif 000008
【図７】
2005249817.tif 000009