(57)【要約】【課題】人工無脳による擬似会話の内容をユーザの好みに合わせた内容に調整することができる擬似会話装置及びコンピュータプログラムを提供する。【解決手段】人工無脳の処理を実行する擬似会話装置１は、ユーザから入力される会話文と応答文とでなる擬似会話を特徴付けるための複数の数値からなる個性ベクトル（特徴データ）を記憶部１４に記憶する。擬似会話装置１は、ユーザから入力された会話文に応じて、個性ベクトルと同数の数値からなる文特徴ベクトル（文特徴データ）が個性ベクトルに近い文を文データから抽出し、抽出した文から、会話文に対する応答文を生成する。このように、個性ベクトルに基づいて応答文を生成することにより、人工無脳に個性を付与する。個性ベクトルは、ユーザの指示に応じて設定され、ユーザの好みに合わせて成長させることができる。【選択図】図２
2012141713.tif 000002
【特許請求の範囲】
【請求項１】
会話文を入力する入力手段と、入力された会話文の形態素解析を行い、前記会話文に応じた応答文を生成する応答文生成手段と、生成した応答文を出力する手段とを備え、会話文の入力と応答文の出力との繰り返しでなる擬似会話を行う擬似会話装置において、
擬似会話を特徴付けるための複数の数値からなる特徴データを記憶する特徴データ記憶手段と、
複数の文を、前記特徴データと同数の数値からなり、夫々の文を特徴付ける文特徴データと関連付けて記憶してある文記憶手段とを備え、
前記応答文生成手段は、
前記入力手段により入力された会話文の形態素解析の結果に基づいて、前記会話文からキーワードを抽出する手段と、
前記文記憶手段が記憶している複数の文から、キーワードを含む文の集合、及び前記キーワードを含まない文の集合を作成する手段と、
特定のアルゴリズムに従って、応答文の候補となる文を、前記キーワードを含む文の集合及び前記キーワードを含まない文の集合のいずれから抽出するかを判定する手段と、
前記キーワードを含む文の集合から応答文の候補となる文を抽出すると判定された場合に、前記キーワードを含む文の集合から、文特徴データが前記特徴データに最も近い文を抽出する手段と、
前記キーワードを含まない文の集合から応答文の候補となる文を抽出すると判定された場合に、前記キーワードを含まない文の集合から、文特徴データが前記特徴データに最も近い文を抽出する手段と、
抽出した文を応答文とする手段と
を有することを特徴とする擬似会話装置。
【請求項２】
複数の単語を、前記特徴データと同数の数値からなり、夫々の単語を特徴付ける単語特徴データと関連付けて記憶してある単語記憶手段と、
前記入力手段により、単語又は文を入力され、
入力された単語に前記単語記憶手段で関連付けられている単語特徴データ、又は入力された文に含まれる単語に前記単語記憶手段で関連付けられている単語特徴データに基づいて、前記特徴データを生成する手段と、
生成した前記特徴データを特徴データ記憶手段に記憶させる手段と
を更に備えることを特徴とする請求項１に記載の擬似会話装置。
【請求項３】
一部の単語を不特定にした不特定部分を含んでいる複数のテンプレート文を、前記特徴データと同数の数値からなり、夫々のテンプレート文を特徴付けるテンプレート文特徴データと関連付けて記憶してあるテンプレート文記憶手段を更に備え、
前記応答文生成手段は、
特定のアルゴリズムに従って、応答文の候補となる文を、テンプレート文を用いて生成するか否かを判定する手段と、
応答文の候補となる文をテンプレート文を用いて生成すると判定された場合に、前記テンプレート文記憶手段で記憶している複数のテンプレート文から、テンプレート文特徴データが前記特徴データに最も近いテンプレート文を抽出する手段と、
抽出したテンプレート文の不特定部分に前記キーワードを代入した文を生成する手段と、
生成した文を応答文とする手段と
を更に有することを特徴とする請求項１又は２に記載の擬似会話装置。
【請求項４】
入力されるべき特定の会話文と応答文の候補になる文との組み合わせでなる複数のテンプレート応答を、前記特徴データと同数の数値からなり、夫々のテンプレート応答を特徴付けるテンプレート応答特徴データと関連付けて記憶してあるテンプレート応答記憶手段を更に備え、
前記応答文生成手段は、
前記入力手段により入力された会話文と実質的に同一の会話文が含まれるテンプレート応答が前記テンプレート応答記憶手段に記憶されているか否かを判定する手段と、
入力された会話文と実質的に同一の会話文が含まれるテンプレート応答が記憶されている場合に、入力された会話文と実質的に同一の会話文が含まれるテンプレート応答が単数であるときは、前記テンプレート応答を選択し、入力された会話文と実質的に同一の会話文が含まれる複数のテンプレート応答があるときは、前記複数のテンプレート応答から、テンプレート応答特徴データが前記特徴データに最も近いテンプレート応答を選択する手段と、
選択したテンプレート応答に含まれる応答文の候補になる文を用いて応答文を生成する手段と
を更に有することを特徴とする請求項１乃至３の何れか一つに記載の擬似会話装置。
【請求項５】
前記特徴データと同数の数値からなり、前記特徴データを調整するための調整データを記憶してある手段を更に備え、
前記応答文生成手段は、
前記特徴データを用いて応答文を生成する前に、前記特徴データに含まれる各数値に前記調整データ中の対応する数値を乗算することによって、前記特徴データを調整する手段を更に有すること
を特徴とする請求項１乃至４の何れか一つに記載の擬似会話装置。
【請求項６】
前記特徴データは、擬似会話に応じて変動する数値からなる変動データと、変動しない数値からなる非変動データとからなり、
前記特徴データ記憶手段が記憶する前記特徴データに含まれる変動データの数値を、擬似会話の継続に応じて変動させる手段を更に備えること
を特徴とする請求項１乃至５の何れか一つに記載の擬似会話装置。
【請求項７】
複数の特徴データを生成する手段と、
前記応答文生成手段に、複数の特徴データの夫々を用いて応答文を生成させ、複数の特徴データの夫々について、擬似会話に対する評価を示す評価点を入力される評価手段と、
遺伝的アルゴリズムを用いて、評価点の高い特徴データの遺伝子が残るように、複数の特徴データに交叉及び突然変異を行わせることにより、次世代の複数の特徴データを生成する遺伝手段と、
該遺伝手段及び前記評価手段での処理を繰り返した後に、評価点が最大である特徴データを、前記特徴データ記憶手段に記憶させる手段と
を更に備えることを特徴とする請求項１乃至６の何れか一つに記載の擬似会話装置。
【請求項８】
文を記憶してある外部のデータベースに接続されてあり、
前記応答文生成手段は、
特定のアルゴリズムに従って、応答文の候補となる文を、前記外部のデータベースから取得するか否かを判定する手段と、
応答文の候補となる文を前記外部のデータベースから取得すると判定された場合に、前記キーワードを含む文を前記外部のデータベースから取得する手段と、
取得した文を応答文とする手段とを更に有すること
を特徴とする請求項１乃至７の何れか一つに記載の擬似会話装置。
【請求項９】
コンピュータに、該コンピュータへ入力された会話文に応じた応答文を生成させる処理を実行させるコンピュータプログラムにおいて、
入力された会話文の形態素解析を行い、当該形態素解析の結果に基づいて、前記会話文からキーワードを抽出するステップと、
予め記憶された複数の文の内で抽出したキーワードを含む文の集合、及び前記キーワードを含まない文の集合を作成するステップと、
特定のアルゴリズムに従って、応答文の候補となる文を、前記キーワードを含む文の集合及び前記キーワードを含まない文の集合のいずれから抽出するかを判定するステップと、
前記キーワードを含む文の集合から応答文の候補となる文を抽出すると判定された場合に、会話文及び応答文からなる擬似会話を特徴づけるための複数の数値からなる予め定められた特徴データに、該特徴データと同数の数値からなって各文について予め定められている各文を特徴付ける文特徴データが最も近い文を、前記キーワードを含む文の集合から抽出するステップと、
前記キーワードを含まない文の集合から応答文の候補となる文を抽出すると判定された場合に、前記キーワードを含まない文の集合から、前記文特徴データが前記特徴データに最も近い文を抽出するステップと、
抽出した文を応答文とするステップと
を含む処理をコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、人間とコンピュータとの間で擬似的な会話を行う所謂人工無脳と呼ばれる処理を行う擬似会話装置及びコンピュータプログラムに関する。
【背景技術】
【０００２】
従来、人工無脳又は人工無能と呼ばれる擬似会話システムが知られている。人工無脳のシステムは、通常、ユーザが使用する端末装置と、人工無脳を実現するためのコンピュータプログラムを実行するコンピュータである擬似会話装置とからなる。ユーザは端末装置を用いて会話文を入力し、擬似会話装置は、入力された会話文を解析し、会話文中のキーワードに対応付けられている応答文をデータベースから抽出し、抽出した応答文を端末装置へ出力する。ユーザによる会話文の入力と擬似会話装置からの応答文の出力とを繰り返すことにより、あたかも人間同士の会話のように、ユーザと擬似会話装置との間で擬似的な会話を続けることができる。特許文献１には、人工無脳の例が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１７８２９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の人工無脳では、擬似会話装置からの応答文の内容はデータベースの内容に制限されるので、擬似的な会話の内容には限界がある。また人工無脳では、応答文を生成するためのルールは予め定められているので、応答の個性は固定されたものとなる。このため、擬似的な会話の内容は変化に乏しいものになり易く、また応答の個性をユーザの好みに合わせて調整することは難しい。従って、ユーザは人工無脳に対して愛着が湧き難く、人工無脳を利用することに飽き易くなるという問題がある。
【０００５】
本発明は、斯かる事情に鑑みてなされたものであって、その目的とするところは、人工無脳による応答の個性を成長することが可能なように設定することにより、擬似的な会話の内容をユーザの好みに合わせた内容に調整することができる擬似会話装置及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
本発明に係る擬似会話装置は、会話文を入力する入力手段と、入力された会話文の形態素解析を行い、前記会話文に応じた応答文を生成する応答文生成手段と、生成した応答文を出力する手段とを備え、会話文の入力と応答文の出力との繰り返しでなる擬似会話を行う擬似会話装置において、擬似会話を特徴付けるための複数の数値からなる特徴データを記憶する特徴データ記憶手段と、複数の文を、前記特徴データと同数の数値からなり、夫々の文を特徴付ける文特徴データと関連付けて記憶してある文記憶手段とを備え、前記応答文生成手段は、前記入力手段により入力された会話文の形態素解析の結果に基づいて、前記会話文からキーワードを抽出する手段と、前記文記憶手段が記憶している複数の文から、キーワードを含む文の集合、及び前記キーワードを含まない文の集合を作成する手段と、特定のアルゴリズムに従って、応答文の候補となる文を、前記キーワードを含む文の集合及び前記キーワードを含まない文の集合のいずれから抽出するかを判定する手段と、前記キーワードを含む文の集合から応答文の候補となる文を抽出すると判定された場合に、前記キーワードを含む文の集合から、文特徴データが前記特徴データに最も近い文を抽出する手段と、前記キーワードを含まない文の集合から応答文の候補となる文を抽出すると判定された場合に、前記キーワードを含まない文の集合から、文特徴データが前記特徴データに最も近い文を抽出する手段と、抽出した文を応答文とする手段とを有することを特徴とする。
【０００７】
本発明に係る擬似会話装置は、複数の単語を、前記特徴データと同数の数値からなり、夫々の単語を特徴付ける単語特徴データと関連付けて記憶してある単語記憶手段と、前記入力手段により、単語又は文を入力され、入力された単語に前記単語記憶手段で関連付けられている単語特徴データ、又は入力された文に含まれる単語に前記単語記憶手段で関連付けられている単語特徴データに基づいて、前記特徴データを生成する手段と、生成した前記特徴データを特徴データ記憶手段に記憶させる手段とを更に備えることを特徴とする。
【０００８】
本発明に係る擬似会話装置は、一部の単語を不特定にした不特定部分を含んでいる複数のテンプレート文を、前記特徴データと同数の数値からなり、夫々のテンプレート文を特徴付けるテンプレート文特徴データと関連付けて記憶してあるテンプレート文記憶手段を更に備え、前記応答文生成手段は、特定のアルゴリズムに従って、応答文の候補となる文を、テンプレート文を用いて生成するか否かを判定する手段と、応答文の候補となる文をテンプレート文を用いて生成すると判定された場合に、前記テンプレート文記憶手段で記憶している複数のテンプレート文から、テンプレート文特徴データが前記特徴データに最も近いテンプレート文を抽出する手段と、抽出したテンプレート文の不特定部分に前記キーワードを代入した文を生成する手段と、生成した文を応答文とする手段とを更に有することを特徴とする。
【０００９】
本発明に係る擬似会話装置は、入力されるべき特定の会話文と応答文の候補になる文との組み合わせでなる複数のテンプレート応答を、前記特徴データと同数の数値からなり、夫々のテンプレート応答を特徴付けるテンプレート応答特徴データと関連付けて記憶してあるテンプレート応答記憶手段を更に備え、前記応答文生成手段は、前記入力手段により入力された会話文と実質的に同一の会話文が含まれるテンプレート応答が前記テンプレート応答記憶手段に記憶されているか否かを判定する手段と、入力された会話文と実質的に同一の会話文が含まれるテンプレート応答が記憶されている場合に、入力された会話文と実質的に同一の会話文が含まれるテンプレート応答が単数であるときは、前記テンプレート応答を選択し、入力された会話文と実質的に同一の会話文が含まれる複数のテンプレート応答があるときは、前記複数のテンプレート応答から、テンプレート応答特徴データが前記特徴データに最も近いテンプレート応答を選択する手段と、選択したテンプレート応答に含まれる応答文の候補になる文を用いて応答文を生成する手段とを更に有することを特徴とする。
【００１０】
本発明に係る擬似会話装置は、前記特徴データと同数の数値からなり、前記特徴データを調整するための調整データを記憶してある手段を更に備え、前記応答文生成手段は、前記特徴データを用いて応答文を生成する前に、前記特徴データに含まれる各数値に前記調整データ中の対応する数値を乗算することによって、前記特徴データを調整する手段を更に有することを特徴とする。
【００１１】
本発明に係る擬似会話装置は、前記特徴データは、擬似会話に応じて変動する数値からなる変動データと、変動しない数値からなる非変動データとからなり、前記特徴データ記憶手段が記憶する前記特徴データに含まれる変動データの数値を、擬似会話の継続に応じて変動させる手段を更に備えることを特徴とする。
【００１２】
本発明に係る擬似会話装置は、複数の特徴データを生成する手段と、前記応答文生成手段に、複数の特徴データの夫々を用いて応答文を生成させ、複数の特徴データの夫々について、擬似会話に対する評価を示す評価点を入力される評価手段と、遺伝的アルゴリズムを用いて、評価点の高い特徴データの遺伝子が残るように、複数の特徴データに交叉及び突然変異を行わせることにより、次世代の複数の特徴データを生成する遺伝手段と、該遺伝手段及び前記評価手段での処理を繰り返した後に、評価点が最大である特徴データを、前記特徴データ記憶手段に記憶させる手段とを更に備えることを特徴とする。
【００１３】
本発明に係る擬似会話装置は、文を記憶してある外部のデータベースに接続されてあり、前記応答文生成手段は、特定のアルゴリズムに従って、応答文の候補となる文を、前記外部のデータベースから取得するか否かを判定する手段と、応答文の候補となる文を前記外部のデータベースから取得すると判定された場合に、前記キーワードを含む文を前記外部のデータベースから取得する手段と、取得した文を応答文とする手段とを更に有することを特徴とする。
【００１４】
本発明に係るコンピュータプログラムは、コンピュータに、該コンピュータへ入力された会話文に応じた応答文を生成させる処理を実行させるコンピュータプログラムにおいて、入力された会話文の形態素解析を行い、当該形態素解析の結果に基づいて、前記会話文からキーワードを抽出するステップと、予め記憶された複数の文の内で抽出したキーワードを含む文の集合、及び前記キーワードを含まない文の集合を作成するステップと、特定のアルゴリズムに従って、応答文の候補となる文を、前記キーワードを含む文の集合及び前記キーワードを含まない文の集合のいずれから抽出するかを判定するステップと、前記キーワードを含む文の集合から応答文の候補となる文を抽出すると判定された場合に、会話文及び応答文からなる擬似会話を特徴づけるための複数の数値からなる予め定められた特徴データに、該特徴データと同数の数値からなって各文について予め定められている各文を特徴付ける文特徴データが最も近い文を、前記キーワードを含む文の集合から抽出するステップと、前記キーワードを含まない文の集合から応答文の候補となる文を抽出すると判定された場合に、前記キーワードを含まない文の集合から、前記文特徴データが前記特徴データに最も近い文を抽出するステップと、抽出した文を応答文とするステップとを含む処理をコンピュータに実行させることを特徴とする。
【００１５】
本発明においては、ユーザから入力された会話文に対して応答文を出力する擬似会話装置は、会話文に対して生成する応答文を特徴付けるための特徴データを記憶しておく。擬似会話装置は、ユーザから入力された会話文に応じて、予め記憶している文の中から特徴データに基づいて文を抽出することにより、応答文を生成する。これにより、人工無脳に特徴データを用いて個性を持たせ、人工無脳による会話文に対する個性に応じた応答を実現することができる。
【００１６】
また本発明においては、擬似会話装置は、ユーザから入力された単語又は文に基づいて特徴データを生成することにより、ユーザからの指示に応じた個性を人工無脳に付与する。
【００１７】
また本発明においては、擬似会話装置は、ユーザから入力された会話文に応じて、予め記憶しているテンプレート文の中から特徴データに基づいて文を抽出し、テンプレート文を用いて応答文を生成する。これにより、人工無脳による会話文に対する個性に応じた応答を実現することができる。
【００１８】
また本発明においては、擬似会話装置は、会話文と応答文との組み合わせからなる複数のテンプレート応答を予め記憶しておき、入力された会話文が含まれるテンプレート応答を特徴データに基づいて選択し、選択したテンプレート応答に含まれる応答文を用いる。これにより、人工無脳による会話文に対する個性に応じた応答を実現することができる。
【００１９】
また本発明においては、擬似会話装置は、特徴データを調整するための調整データを記憶し、特徴データに調整データを乗じることにより、特徴データを調整し、調整後の特徴データを用いて応答文を生成する。これにより、特徴データで表される人工無脳の本来の個性と、調整後の調整データで表される表層的な個性とを実現することができる。
【００２０】
また本発明においては、擬似会話装置は、特徴データの一部分を、擬似会話の継続に応じて変動させる。これにより、感情の変化のような人工無脳の個性の変動を表現することができる。
【００２１】
また本発明においては、擬似会話装置は、複数の特徴データを生成し、特徴データに基づいて生成した応答文をユーザにより評価し、遺伝的アルゴリズムを用いて、ユーザからの評価が高くなるように特徴データを変化させることにより、人工無脳の個性を成長させる。
【発明の効果】
【００２２】
本発明にあっては、人工無脳により会話文に対して生成する応答文を特徴付けるための特徴データを用いて人工無脳に個性を付与し、ユーザの好みに合わせて個性を設定することができるので、ユーザが人工無脳に対する愛着を抱き易くなる等、本発明は優れた効果を奏する。
【図面の簡単な説明】
【００２３】
【図１】本発明の擬似会話装置を用いた擬似会話システムの構成を示す概念図である。
【図２】擬似会話装置の内部構成を示すブロック図である。
【図３】意味ネットワークの例を示す概念図である。
【図４】テンプレート応答の例を示す概念図である。
【図５】擬似会話装置が実行する初期設定処理の手順を示すフローチャートである。
【図６】擬似会話装置が実行する擬似会話処理の手順を示すフローチャートである。
【図７】擬似会話装置が実行する擬似会話処理の手順を示すフローチャートである。
【図８】擬似会話装置が実行する擬似会話処理の手順を示すフローチャートである。
【図９】擬似会話装置が実行する擬似会話処理の手順を示すフローチャートである。
【図１０】擬似会話装置が実行する感情変動処理の手順を示すフローチャートである。
【図１１】擬似会話装置が実行する成長処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００２４】
以下本発明をその実施の形態を示す図面に基づき具体的に説明する。
図１は、本発明の擬似会話装置を用いた擬似会話システムの構成を示す概念図である。インターネット等の通信ネットワークＮに、本発明の擬似会話装置１と、ユーザが操作することによって会話文を入力するための入力装置２とが接続されている。入力装置２は、パーソナルコンピュータ（ＰＣ）又は携帯電話機等、入出力機構と通信機能とを備えるコンピュータである。ユーザは、入力装置２を操作することによって会話文を入力装置２へ入力し、入力装置２は、入力された会話文を通信ネットワークＮを通じて擬似会話装置１へ送信する。擬似会話装置１は、通信ネットワークＮを通じて入力装置２から送信された会話文を受信し、会話文に応じた応答文を生成し、生成した応答文を通信ネットワークＮを通じて入力装置２へ送信する。入力装置２は、通信ネットワークＮを通じて擬似会話装置１から送信された応答文を受信し、ディスプレイに応答文を表示する等の方法で応答文を出力する。擬似会話装置１は、入力装置２との間で会話文と応答文とを交換することにより、所謂人工無脳を実現する。また通信ネットワークＮには、擬似会話装置１及び入力装置２とは別のコンピュータでなる外部データベース３が接続されている。
【００２５】
図２は、擬似会話装置１の内部構成を示すブロック図である。擬似会話装置１は、ＰＣ又はサーバ装置等の汎用のコンピュータを用いて構成されている。擬似会話装置１は、演算を行うＣＰＵ１１と、演算に伴って発生する一時的な情報を記憶するＲＡＭ１２と、光ディスク等の記録媒体４から情報を読み取るＣＤ−ＲＯＭドライブ等のドライブ部１３と、ハードディスク等の記憶部１４とを備えている。ＣＰＵ１１は、記録媒体４からコンピュータプログラム４１をドライブ部１３に読み取らせ、読み取ったコンピュータプログラム４１を記憶部１４に記憶させる。コンピュータプログラム４１は必要に応じて記憶部１４からＲＡＭ１２へロードされ、ロードされたコンピュータプログラム４１に基づいてＣＰＵ１１は擬似会話装置１に必要な処理を実行する。
【００２６】
更に擬似会話装置１は、通信ネットワークＮに接続されている通信インタフェース１５を備えている。擬似会話装置１は、入力装置２から送信された会話文を通信インタフェース１５で受信し、応答文を通信インタフェース１５から入力装置２へ送信する。また擬似会話装置１は、通信インタフェース１５と外部データベース３との間で、通信ネットワークＮを通じてデータを送受信する。通信インタフェース１５は、本発明における入力手段に相当する。
【００２７】
記憶部１４は、擬似会話の内容を特徴付ける複数の数値からなる個性ベクトルを記憶している。個性ベクトルは、本発明における特徴データに相当する。個性ベクトルは、会話文から応答文を生成するロジックに影響し、人工無脳の個性を表現している。個性ベクトルは、更に、夫々に複数の数値を含む感情ベクトル及び自我ベクトルからなる。感情ベクトルは、本発明における変動データに相当する。感情ベクトルは、時間の経過に伴って数値が変動するベクトルであり、時間の経過に伴って変化する人工無脳の感情を表現している。自我ベクトルは、本発明における非変動データに相当する。自我ベクトルは、時間の経過に伴って数値が変動しないベクトルであり、時間の経過に伴って変化しない人工無脳の自我を表現している。
【００２８】
感情ベクトルは、夫々に実数値である複数の要素からなる実数値ベクトルである。感情ベクトルをｅとすると、感情ベクトルｅは下記（１）式のように表される。
ｅ＝｛ｅ1 ，ｅ2 ，…，ｅn｝  …（１）
【００２９】
感情ベクトルｅに含まれる各要素ｅi は−１≦ｅi≦１を満たし、人間の相反する感情を数値で表す。例えば、感情ベクトルｅは、以下の３種類の感情の夫々を表すｅ1 ，ｅ2 ，ｅ3からなる。ｅi ＝０は平常時の値であるとする。
ｅ1 ：快（１）⇔不快（−１）
ｅ2 ：好意（１）⇔嫌悪（−１）
ｅ3 ：興奮（１）⇔冷静（−１）
【００３０】
また記憶部１４は、感情ベクトルの変動し易さを表した感受性ベクトルを記憶している。感受性ベクトルは、時間経過に伴った感情への外部摂動に対する人口無脳の感情の変動し易さ又は頑強さを表現している。感受性ベクトルは、感情ベクトルｅと同数の要素からなり、各要素は実数値である。感受性ベクトルをｓとすると、感受性ベクトルｓは下記（２）式のように表される。
ｓ＝｛ｓ1 ，ｓ2 ，…，ｓn｝  …（２）
【００３１】
感受性ベクトルｓに含まれる各要素ｓi は−１≦ｓi≦１を満たす。ｓi の絶対値はｅiの変動し易さを示す。ｓi ＝０である場合は、外部摂動に対してｅi が変動しないことを示す。ｓi ＞０の場合は、ポジティブな外部摂動に対してｅi がポジティブに変動し、ネガティブな外部摂動に対してｅi がネガティブに変動することを示す。ｓi ＜０の場合は、ポジティブな外部摂動に対してｅi がネガティブに変動し、ネガティブな外部摂動に対してｅi がポジティブに変動することを示す。感情への外部摂動は、同様に、感情ベクトルｅと同数の要素からなる実数ベクトルで表される。外部摂動ベクトルをδとすると、外部摂動ベクトルδは下記（３）式のように表される。
δ＝｛δ1 ，δ2 ，…，δn｝  …（３）
【００３２】
時刻ｔにおける感情ベクトルｅ、感受性ベクトルｓ及び外部摂動ベクトルδを、夫々ｅt 、ｓt 及びδtとすると、時刻ｔ＋１における感情ベクトルｅt+1 は、下記（４）式で表される。ここで、ｓtTはｓt の転置ベクトルである。
ｅt+1 ＝ｅt ＋ｓtTδt   …（４）
【００３３】
自我ベクトルは、夫々に実数値である複数の要素からなる実数値ベクトルである。自我ベクトルをｐとすると、自我ベクトルｐは下記（５）式のように表される。
ｐ＝｛ｐ1 ，ｐ2 ，…，ｐm｝  …（５）
【００３４】
自我ベクトルｐに含まれる各要素ｐi は、人間の具体的な性格を数値で表している。例えば、自我ベクトルｐは、以下のように、エゴグラムで自我を表すための五つの要素の夫々を表すｐ1 〜ｐ5 からなる。
ｐ1 ：ＣＰ（信念に従って行動しようとする父親のような心。自分の価値観や考え方を譲らず、批判的である。）
ｐ2 ：ＮＰ（思いやりをもって他者のために世話をする母親のような心。優しく、受容的である。）
ｐ3 ：Ａ（事実に基づいて検討・判断する大人の心。冷静で客観的である。）
ｐ4 ：ＦＣ（自分の欲求・感情に従って行動する自由な子供のような心。明るく、無邪気である。）
ｐ5 ：ＡＣ（自分の感情を抑えて他人に良く思われようとする従順な子供の心。）
【００３５】
感情ベクトルｅ及び自我ベクトルｐからなる個性ベクトルをｑとすると、個性ベクトルｑは下記（６）式のように表される。
ｑ＝｛ｅ1 ，ｅ2 ，…，ｅn，ｐ1 ，ｐ2 ，…，ｐm｝  …（６）
【００３６】
また記憶部１４は、個性ベクトルｑを調整するためのフィルタベクトルを記憶している。フィルタベクトルは、本発明における調整データに相当する。人間は、自分の個性をある程度隠そうとする性質があるので、この性質をフィルタベクトルで表現する。フィルタベクトルは、個性ベクトルｑと同数の要素からなり、各要素は実数値である。フィルタベクトルをＦとすると、フィルタベクトルＦは下記（７）式のように表される。
Ｆ＝｛Ｆ1 ，Ｆ2 ，…，Ｆn，Ｆn+1 ，Ｆn+2 ，…，Ｆn+m ｝  …（７）
【００３７】
フィルタベクトルＦの要素の内、Ｆ1 ，Ｆ2 ，…，Ｆnは感情ベクトルｅに対応する要素であり、Ｆn+1 ，Ｆn+2 ，…，Ｆn+m は自我ベクトルｐに対応する要素である。フィルタベクトルＦに含まれる各要素Ｆi は−１≦Ｆi≦１を満たす。Ｆi ＝０である場合は、本来の個性に関わらず表層的には無個性になることを示す。Ｆi ＞０の場合は、本来の個性をある程度表に出すことを示す。Ｆi ＜０の場合は、本来の個性とは逆の個性を表に出すことを示す。本発明では、個性ベクトルｑの各要素と、当該要素に対応するフィルタベクトルＦの要素との乗算を取ることにより、個性ベクトルｑを調整する。即ち、調整後の個性ベクトルは、｛Ｆ1 ｅ1 ，Ｆ2ｅ2 ，…，Ｆnｅn ，Ｆn+1 ｐ1，Ｆn+2 ｐ2，…，Ｆn+m ｐm｝となる。
【００３８】
また記憶部１４は、個性ベクトルｑ以外に応答文を生成する方法に影響する各種の設定内容を記録した設定データを記憶している。設定データには、応答文で使用する語尾、人工無脳からユーザへ質問する頻度、会話文に不明な単語が含まれる場合の対処法、擬似会話のログを保存する期間等が含まれる。会話文に不明な単語が含まれる場合の対処法としては、質問をする又は外部データベース３から検索する等の方法がある。また設定データには、応答文を出力して入力装置２のディスプレイに表示する際の表示フォントの初期設定、及び応答文と共に出力する画像の初期設定が含まれる。
【００３９】
また記憶部１４は、直近の擬似会話の内容を含む比較的短期間の擬似会話のログを記録した短期データと、比較的長期間の擬似会話のログを記録した長期データとを記憶している。擬似会話のログには、入力された会話文と出力された応答文とが含まれる。例えば、短期データは、最後若しくは現在のセッションにおける擬似会話のログ、又は現在から所定時間前までの期間に行われた擬似会話のログを記録している。また例えば、長期データは、過去に行われた一切の擬似会話のログを記録している。
【００４０】
また記憶部１４は、複数の単語を記録したデータベースである単語データを記憶している。単語データは、各単語間の関係をネットワークで表現した意味ネットワークを実現する構造のデータベースとなっている。図３は、意味ネットワークの例を示す概念図である。複数の単語は、お互いに矢印（リンク）で繋がっており、矢印には、である（ｉｓ  ａ）又は持つ（ｈａｓ）等の種類がある。矢印の根元の単語は下位概念であり、矢印の先の単語は上位概念である。具体的には、単語データは、上位概念の単語と下位概念の単語とを関連付けた階層構造のデータベースである。
【００４１】
更に、単語データは、夫々の単語に関連付けて、当該単語を特徴付ける複数の数値からなる単語特徴ベクトルを記録している。単語特徴ベクトルは、本発明における単語特徴データに相当する。単語特徴ベクトルは、個性ベクトルｑと同数の要素からなる実数値ベクトルである。各単語に関連付けられた単語特徴ベクトルは、設計者の主観等に基づいて任意に予め生成され、単語データに記録されている。単語特徴ベクトルを生成する際には、いくつかの単語について任意に単語特徴ベクトルを生成した後、意味ネットワークにおける各単語間の関係に基づいて各単語の単語特徴ベクトルを計算してもよい。例えば、対象の単語にｉ個の矢印を介して関係する単語の単語特徴ベクトルをｗi とし、ｋを所定の整数とし、γを１未満の正の実数として、γi ・ｗi （ｉ＝１〜ｋ）の要素の平均を要素としたベクトルを生成し、各要素が−１以上１以下となるように規格化することにより、対象の単語の単語特徴ベクトルを計算してもよい。ここで、平均として、相加平均、調和平均、加重平均及び一般化平均等、各種の平均を用いることができる。なお、擬似会話装置１は、一部の単語について単語特徴ベクトルを単語データに記録しておき、必要になった時点で対象の単語の単語特徴ベクトルを計算して単語データに記録する処理を行う形態であってもよい。
【００４２】
また記憶部１４は、複数の文を記録したデータベースである文データを記憶している。文データは、夫々の文に関連付けて、当該文を特徴付ける複数の数値からなる文特徴ベクトルを記録している。文特徴ベクトルは、本発明における文特徴データに相当する。文特徴ベクトルは、個性ベクトルｑと同数の要素からなる実数値ベクトルである。各文に関連付けられた文特徴ベクトルは、文中に含まれる単語の単語特徴ベクトルの要素の平均を要素としたベクトルを作成することによって求められ、文データに記録されている。また文特徴ベクトルは、文の構造を分析した上で、構造上の役割に応じて各単語に重みを付け、文中に含まれる単語の単語特徴ベクトルの要素の重み付平均を計算することによって生成されてもよい。また文特徴ベクトルは、設計者の主観等に基づいて任意に生成されてもよい。なお、擬似会話装置１は、一部の文について文特徴ベクトルを文データに記録しておき、必要になった時点で対象の文の文特徴ベクトルを計算して文データに記録する処理を行う形態であってもよい。
【００４３】
また記憶部１４は、複数のテンプレート文を記録したデータベースであるテンプレート文データを記憶している。テンプレート文とは、一部の単語を不特定にした不特定部分を含んでいる文であり、不特定部分に単語を代入することにより通常の文を生成することができる。例えば、テンプレート文は、「あなたは＊が好きですか？」、「必ず＊をしなければならない。」及び「＊を頂戴！」等の文であり、文中の＊は不特定部分である。テンプレート文データは、夫々のテンプレート文に関連付けて、当該テンプレート文を特徴付ける複数の数値からなるテンプレート文特徴ベクトルを記録している。テンプレート文特徴ベクトルは、本発明におけるテンプレート文特徴データに相当する。テンプレート文特徴データは、文特徴データと同様にして生成される。
【００４４】
また記憶部１４は、応答文を出力する際に使用できる表示フォントの情報を記録したフォントデータを記憶している。フォントデータには、複数種類の表示フォントの情報が記録されている。一の表示フォントの情報には、その表示フォントを規定するための書体、スタイル、サイズ、色及び文字飾り等を設定した情報が含まれている。またフォントデータには、各種類の表示フォントの情報に関連付けて、その種類の表示フォントを特徴付ける複数の数値からなるフォント特徴ベクトルを記録している。フォント特徴ベクトルは、個性ベクトルｑと同数の要素からなる実数値ベクトルである。各表示フォントを特徴づけるフォント特徴ベクトルの要素の値は、予め任意に定められている。特定の種類の表示フォントを特徴づけるフォント特徴ベクトルとして、特定の状態の個性ベクトルと同じベクトルが定められている。例えば、赤色で太字のゴシック体である表示フォントのフォント特徴ベクトルとして、怒りの状態を示す個性ベクトルと同等のベクトルが定められている。
【００４５】
また記憶部１４は、応答文と共に出力すべき画像の情報を記録した画像データを記録している。画像データには、複数種類の画像を表すデジタルデータが記録されている。画像を表すデジタルデータはビットマップ形式等の所定のデータ形式で構成されている。また画像データには、各種類の画像に関連付けて、その画像を特徴づける複数の数値からなる画像特徴ベクトルを記録している。画像特徴ベクトルは、個性ベクトルｑと同数の要素からなる実数値ベクトルである。各画像を特徴づける画像特徴ベクトルの要素の値は、予め任意に定められている。特定の画像を特徴づける画像特徴ベクトルとして、特定の状態の個性ベクトルと同じベクトルが定められている。例えば、怒っているキャラクターの画像の画像特徴ベクトルとして、怒りの状態を表す個性ベクトルと同等のベクトルが定められている。
【００４６】
また記憶部１４は、複数のテンプレート応答を記録したデータベースであるテンプレート応答データを記憶している。テンプレート応答は、特定の会話文と応答文との組である。会話文及び応答文は、一部の単語を不特定にした不特定部分を含んでいてもよい。不特定部分は会話文と応答文とで共通していてもよく、互いに異なっていてもよい。テンプレート応答は、会話文が入力された場合に、入力された会話文が含まれるテンプレート応答に含まれる応答文を出力するためのものである。図４は、テンプレート応答の例を示す概念図である。図４中では、複数のテンプレート応答の夫々に番号を付して区別している。Ｎｏ．１のテンプレート応答は、会話文「私は＊が好きです」と応答文「なぜ＊が好きですか？」とを含む。文中の＊は不特定部分である。Ｎｏ．１のテンプレート応答に従えば、「私は動物が好きです」という会話文が入力された場合は、「なぜ動物が好きですか？」という応答文が出力される。
【００４７】
テンプレート応答データに記録された複数のテンプレート応答の間では、会話文及び応答文の両方が互いに異なっているものもあり、会話文及び応答文の一方が互いに共通になっているものもある。図４には、互いに会話文が共通している四種類のテンプレート応答を示している。Ｎｏ．２のテンプレート応答は、応答文「では＊’のことを知ってる？」を含む。文中の＊’は、不特定部分であり、＊に対する下位概念又は同位概念の単語等、＊に何らかの関連のある概念の単語であるとする。例えば、＊に動物が対応した場合は、＊’には動物に対する下位概念の魚、又は同位概念の植物等が対応する。Ｎｏ．２のテンプレート応答に従えば、「私は動物が好きです」という会話文が入力された場合、例えば「では魚のことを知ってる？」という応答文が出力される。なお、図４には会話文及び応答文の両方に不定部分を含む例を示しているが、テンプレート応答データに記録されたテンプレート応答は、会話文及び応答文の一方又は両方に不定部分を含んでいないものであってもよい。
【００４８】
テンプレート応答データは、夫々のテンプレート応答に関連付けて、そのテンプレート応答を特徴付ける複数の数値からなるテンプレート応答特徴ベクトルを記録している。テンプレート応答特徴ベクトルは、個性ベクトルｑと同数の要素からなる実数値ベクトルである。会話文が共通するテンプレート応答同士は、互いにテンプレート応答特徴ベクトルが異なっている。各テンプレート応答を特徴づけるテンプレート応答特徴ベクトルの要素の値は、予め任意に定められている。特定のテンプレート応答を特徴づけるテンプレート応答特徴ベクトルとして、特定の状態の個性ベクトルと同じベクトルが定められている。例えば、無関心さを示す応答文「＊なんて興味ないなあ…」を含むＮｏ．３のテンプレート応答には、無関心の状態を示す個性ベクトルと同等のテンプレート応答特徴ベクトルが関連付けられている。また例えば、否定的な反応を示す応答文「＊なんて嫌い！特に＊’とか最悪！」を含むＮｏ．４のテンプレート応答には、否定的な反応をする状態を示す個性ベクトルと同等のテンプレート応答特徴ベクトルが関連付けられている。テンプレート応答特徴ベクトルは、本発明におけるテンプレート応答特徴データに相当する。
【００４９】
また記憶部１４は、擬似会話装置１が予め定められた所定の状態になった場合に応答文として出力すべき文を記録した固定文データを記憶している。例えば、固定文データには、所定のエラーが発生した場合に擬似会話装置１が出力すべきエラーメッセージが記録されている。また固定文データには、同一の会話文が繰り返しユーザから入力された場合に応答文として出力すべき文が、同一の会話文を既に入力されている回数に関連付けて記録されている。例えば、同一の会話文を既に入力されている一回の回数に関連付けて、「同じ内容ですよ」という文が記録され、二回の回数に関連付けて、「同じ内容ではつまらないのでやめてね」という文が記録され、三回以上の回数に関連付けて、「もう話したくはありません」という文が記録されている。
【００５０】
また記憶部１４は、擬似会話が従うべき会話ルールを記憶している。会話ルールは、会話文が疑問文である場合は応答文が疑問文であってはいけない、又は会話文と応答文とに含まれるキーワードの概念が離れすぎてはいけない等、擬似会話を不自然だと感じさせないためのルールである。
【００５１】
外部データベース３は、一又は複数のコンピュータで構成されており、種々の単語に関係した文を記憶したデータベースである。外部データベース３は、記憶内容が随時更新されており、任意の単語に関連する文を当該単語に基づいて検索することができる構成となっている。例えば、外部データベース３は、各単語を説明する文を各単語に関連付けて記録した事典データベースである。また例えば、外部データベース３は、ウェブログ又は電子掲示板のデータを記録したデータベースであってもよい。擬似会話装置１は、ＵＲＬ（Uniform Resource Locator）等、外部データベース３へアクセスするために必要な情報を記憶部１４に記憶している。なお、外部データベース３へアクセスするために必要な情報は、コンピュータプログラム４１に含まれていてもよい。
【００５２】
次に、本発明の擬似会話装置１が実行する処理を説明する。コンピュータプログラム４１は、ユーザからの指示によって個性ベクトルｑを定める初期設定処理、擬似会話を行う擬似会話処理、及び時間経過に伴って感情ベクトルｅを変動させる感情変動処理を実行するためのプログラムを含んでいる。またコンピュータプログラム４１は、個性ベクトルｑを更新することによって人工無脳の個性を成長させる成長処理を実行するためのプログラムを含んでいる。
【００５３】
図５は、擬似会話装置１が実行する初期設定処理の手順を示すフローチャートである。擬似会話装置１のＣＰＵ１１は、ＲＡＭ１２にロードしたコンピュータプログラム４１に従って、以下の処理を実行する。ユーザは、入力装置２を操作することにより、初期設定処理の開始要求を入力装置２へ入力し、入力装置２は、初期設定処理の開始指示を、通信ネットワークＮを通じて擬似会話装置１へ送信する。擬似会話装置１は、通信インタフェース１５で初期設定処理の開始指示を受信し、ＣＰＵ１１は、入力装置２との通信セッションを開始する処理を行う（Ｓ１１）。このとき、ＣＰＵ１１は、初期設定処理を開始したことを示す情報を通信インタフェース１５から入力装置２へ送信させる。入力装置２は、擬似会話装置１からの情報を受信し、単語を入力するための入力画面をディスプレイに表示する。ユーザは、入力装置２を操作することにより、任意の単語を入力装置２へ入力する。このとき、ユーザは、動物の名前又は手近にある文物の名前等、好みの単語を入力する。入力装置２は、入力された単語を擬似会話装置１へ送信し、擬似会話装置１は、送信された単語を通信インタフェース１５で受信することにより、単語を入力される（Ｓ１２）。
【００５４】
ＣＰＵ１１は、次に、入力された単語の単語特徴ベクトルに基づいて個性ベクトルを生成する（Ｓ１３）。具体的には、ＣＰＵ１１は、入力された単語を、記憶部１４で記憶する単語データから検索し、検索した単語に関連付けて単語データに記録されている単語特徴ベクトルを読み出し、読み出した単語特徴ベクトルを個性ベクトルとする。このとき、検索した単語に関連付けて単語特徴ベクトルが記録されていない場合は、ＣＰＵ１１は、意味ネットワークにおける単語間の関係に基づいて単語特徴ベクトルを計算し、単語データに記録する処理を行う。なお、ステップＳ１３では、ＣＰＵ１１は、単語特徴ベクトルをそのまま個性ベクトルとするのではなく、単語特徴ベクトルに対して何らかの演算を行うことにより個性ベクトルを生成してもよい。例えば、ＣＰＵ１１は、単語特徴ベクトルと同数の要素からなる予め定められたベクトルの転置ベクトルと入力された単語の単語特徴ベクトルとの積をとることにより、個性ベクトルを生成してもよい。この場合は、予め定められたベクトルに応じて単語特徴ベクトルを変更したベクトルが個性ベクトルとなる。
【００５５】
なお、擬似会話装置１は、ステップＳ１２で任意の文を入力され、ステップＳ１３で文に基づいて個性ベクトルを生成する形態であってもよい。この形態の場合は、ＣＰＵ１１は、ステップＳ１３で、入力された文の形態素解析を行い、文中に含まれる単語の単語特徴ベクトルを単語データから読み出し、単語特徴ベクトルの要素の平均を要素としたベクトルを作成することにより個性ベクトルを生成してもよい。またＣＰＵ１１は、文中の最初の名詞等のキーワードを文から抽出し、キーワードの単語特徴ベクトルを個性ベクトルとする処理を行ってもよい。
【００５６】
ＣＰＵ１１は、次に、生成した個性ベクトルを記憶部１４に記憶させる（Ｓ１４）。ＣＰＵ１１は、次に、人工無脳を特徴付けるための他の初期情報が入力装置２から入力されたか否かを判定する（Ｓ１５）。個性ベクトルを生成するための単語以外の初期情報としては、人口無脳の応答文に含まれる語尾、人工無脳が好きな単語、嫌いな単語、及び特に興味のある単語がある。他に、初期情報には、表示フォントの初期設定、及び応答文と共に出力される画像の初期設定が含まれる。ユーザは、これらの初期情報を必要があれば入力する。入力装置２は初期情報を擬似会話装置１へ送信し、擬似会話装置１は、初期情報を通信インタフェース１５で受信することにより初期情報を入力される。他の初期情報が入力された場合は（Ｓ１５：ＹＥＳ）、ＣＰＵ１１は、入力された初期情報を記録するように、記憶部１４で記憶する設定データを更新する（Ｓ１６）。他の初期情報の入力がない場合（Ｓ１５：ＮＯ）、又はステップＳ１６が終了した後は、ＣＰＵ１１は、入力装置２との通信セッションを終了する処理を行い（Ｓ１７）、初期設定処理を終了する。このとき、ＣＰＵ１１は、通信セッションを終了する直前に、初期設定処理を終了することを示す情報を入力装置２へ送信する。
【００５７】
図６、図７、図８及び図９は、擬似会話装置１が実行する擬似会話処理の手順を示すフローチャートである。擬似会話装置１のＣＰＵ１１は、ＲＡＭ１２にロードしたコンピュータプログラム４１に従って、以下の処理を実行する。ユーザは、入力装置２を操作することにより、擬似会話処理の開始要求を入力装置２へ入力し、入力装置２は、擬似会話処理の開始指示を通信ネットワークＮを通じて擬似会話装置１へ送信する。擬似会話装置１は、通信インタフェース１５で初期設定処理の開始指示を受信し、ＣＰＵ１１は、入力装置２との通信セッションを開始する処理を行う（Ｓ２０１）。このとき、ＣＰＵ１１は、擬似会話処理を開始したことを示す情報を通信インタフェース１５から入力装置２へ送信させる。入力装置２は、擬似会話装置１からの情報を受信し、会話文を入力するための入力画面をディスプレイに表示する。なお、擬似会話装置１は、初期設定処理を行ったときに通信セッションを終了せずに継続して擬似会話処理を実行してもよい。
【００５８】
ユーザは、入力装置２を操作することにより、任意の会話文を入力装置２へ入力し、入力装置２は、入力された単語を擬似会話装置１へ送信する。擬似会話装置１は、送信された会話文を通信インタフェース１５で受信することにより、会話文を入力される（Ｓ２０２）。ＣＰＵ１１は、次に、入力された会話文の形態素解析を行い、会話文を特徴付けるキーワードを抽出する（Ｓ２０３）。ステップＳ２０３では、ＣＰＵ１１は、会話文に含まれる名詞を抽出し、抽出した名詞の中から、「私」等のキーワードとしては相応しくないと予め定められた名詞を除去し、残った名詞の内で会話文中で最初に出現する名詞をキーワードとして抽出する。またＣＰＵ１１は、会話文中に設定された好きな単語又は嫌いな単語が含まれる場合に、これらの単語をキーワードとして抽出する処理を行ってもよい。またＣＰＵ１１は、会話文中に固有名詞が含まれる場合に固有名詞をキーワードとして抽出する処理を行ってもよい。またＣＰＵ１１は、個性ベクトルに最も近い単語特徴ベクトルが関連付けられた単語をキーワードとして抽出する処理を行ってもよい。またＣＰＵ１１は、キーワードとして相応しい名詞が会話文に含まれていない場合に形容詞等の他の品詞の単語をキーワードとして抽出する処理を行ってもよい。
【００５９】
ＣＰＵ１１は、次に、記憶部１４から個性ベクトルｑを読み出し（Ｓ２０４）、フィルタベクトルＦを用いた個性ベクトルｑの調整を行うか否かを判定する（Ｓ２０５）。ステップＳ２０５では、ＣＰＵ１１は、予め定められたアルゴリズムで判定を行う。例えば、ＣＰＵ１１は、短期データに含まれる擬似会話の応答回数をカウントし、擬似会話の応答回数が予め定められた所定回数以下である場合は個性ベクトルｑの調整を行うと判定し、擬似会話の応答回数が所定回数を超過した後は個性ベクトルｑの調整を行わないと判定する。またＣＰＵ１１は、逆の判定を行ってもよい。またＣＰＵ１１は、予め定められた確率又は個性ベクトルｑの関数で与えられる確率で個性ベクトルｑの調整を行うか否かを決定してもよい。またＣＰＵ１１は、抽出したキーワードに応じて判定を行ってもよい。例えば、ＣＰＵ１１は、キーワードが好きな単語である場合に個性ベクトルｑの調整を行わないと判定するか、又はキーワードが嫌いな単語である場合に個性ベクトルｑの調整を行うと判定してもよい。また例えば、ＣＰＵ１１は、「つまらない」又は「飽きた」等の所定の会話文を所定回数入力された場合に個性ベクトルｑの調整を行うと判定してもよい。
【００６０】
個性ベクトルｑの調整を行うと判定した場合は（Ｓ２０５：ＹＥＳ）、ＣＰＵ１１は、個性ベクトルｑの各要素にフィルタベクトルＦの各要素を乗ずることにより、個性ベクトルｑを調整する（Ｓ２０６）。調整された個性ベクトルｑはＲＡＭ１２に記憶される。フィルタベクトルＦを用いて個性ベクトルｑを調整することにより、個性ベクトルｑで表される人工無脳の本来の個性と、調整後の個性ベクトルｑで表される表層的な個性とを実現することができる。また状況に応じて、フィルタベクトルＦを用いた個性ベクトルｑの調整を行うか否かを切り替えることにより、会話に慣れると本来の個性が出やすくなる等、表層的な個性の変化を実現することができる。
【００６１】
ステップＳ２０６が終了した後、又はステップＳ２０５で個性ベクトルｑの調整を行わないと判定した場合は（Ｓ２０５：ＮＯ）、ＣＰＵ１１は、記憶部１４が記憶する短期データに、入力された会話文と同一の会話文が所定数以上含まれているか否かを判定する（Ｓ２０７）。同一の会話文が短期データに所定数以上含まれている場合は（Ｓ２０７：ＹＥＳ）、ＣＰＵ１１は、入力された会話文と同一の会話文が短期データに記録された回数に関連付けられた文を固定文データから取得する（Ｓ２０８）。なお、固定文データには、ステップＳ２０７で用いる所定数以上の回数に関連付けて、文を記録してあることとする。例えば、所定数を１としておき、入力された会話文と同一の会話文が短期データに一回記録されている場合は、ステップＳ２０８では、一回の回数に関連付けられた「同じ内容ですよ」という文を取得する。尚、ステップＳ２０７で用いる所定数は２以上の数であってもよい。またステップＳ２０７では、ＣＰＵ１１は、同一の会話文が所定数以上連続して入力されたか否かを判定する処理を行ってもよい。
【００６２】
ステップＳ２０７で同一の会話文が短期データに所定数以上含まれていない場合は（Ｓ２０７：ＮＯ）、ＣＰＵ１１は、記憶部１４が記憶するテンプレート応答データに、入力された会話文に相当する会話文を含むテンプレート応答が記録されているか否かを判定する（Ｓ２０９）。ステップＳ２０９では、ＣＰＵ１１は、入力された会話文に実質的に一致する会話文を含むテンプレート応答を検索することにより、判定を行う。入力された会話文に実質的に一致する会話文は、入力された会話文に一致する会話文、又は入力された会話文からキーワードを除いた部分と不特定部分以外の部分が一致する会話文である。入力された会話文に相当する会話文を含むテンプレート応答が記録されている場合は（Ｓ２０９：ＹＥＳ）、ＣＰＵ１１は、テンプレート応答データから、入力された会話文に応じた一のテンプレート応答を選択する（Ｓ２１０）。ステップＳ２１０では、ＣＰＵ１１は、入力された会話文に相当する会話文を含むテンプレート応答が一つしかない場合に、該当するテンプレート応答を選択する。またステップＳ２１０では、ＣＰＵ１１は、入力された会話文に相当する会話文を含むテンプレート応答が複数ある場合に、テンプレート応答に関連付けられたテンプレート応答特徴ベクトルが個性ベクトルｑに最も近い文を取得する。ＣＰＵ１１は、個性ベクトルｑとテンプレート特徴ベクトルとの差のノルムを計算し、計算したノルムが最小となる文を取得する。またＣＰＵ１１は、ノルムの逆数比に比例してテンプレート応答を選択する処理を行ってもよい。個性ベクトルｑが調整されている場合は、ステップＳ２１１では調整された後の個性ベクトルｑが使用される。
【００６３】
ＣＰＵ１１は、次に、取得したテンプレート応答に含まれる応答文を用いて、文を生成する（Ｓ２１１）。ステップＳ２１０で選択したテンプレート応答に含まれる応答文が不定部分を含んでいない場合は、ＣＰＵ１１は、選択したテンプレート応答から応答文を抽出することにより文を生成する。また選択したテンプレート応答に含まれる応答文がキーワードに対応する不定部分を含んでいる場合は、ＣＰＵ１１は、応答文の不定部分にキーワードを代入することにより、文を生成する。また選択したテンプレート応答に含まれる応答文がキーワードの下位概念の単語に対応する不定部分を含んでいる場合は、ＣＰＵ１１は、キーワードの下位概念の単語を単語データから読み出し、読み出した単語を応答文の不定部分に代入することにより、文を生成する。
【００６４】
ステップＳ２０８又はステップＳ２１１が終了した後は、ＣＰＵ１１は、取得した文から応答文を生成する処理を行う（Ｓ２１２）。ステップＳ２１２では、ＣＰＵ１１は、記憶部１４に記憶している設定データに基づいて、不要な単語を削除する、主語を付け加える及び語尾を付加する等、文を整形することにより、文を応答文にする処理を行う。ＣＰＵ１１は、次に、応答文を出力する際に使用すべき表示フォント及び応答文と共に出力すべき画像を設定する処理を行う（Ｓ２１３）。ステップＳ２１３では、ＣＰＵ１１は、記憶部１４で記憶するフォントデータから各表示フォントに関連付けられたフォント特徴ベクトルを読み出し、各フォント特徴ベクトルと個性ベクトルｑとを比較する。具体的には、ＣＰＵ１１は、個性ベクトルｑとフォント特徴ベクトルとの差のノルムを計算し、ノルムが最小となる表示ベクトルを選択し、選択した表示ベクトルのノルムが所定の閾値以下となったか否かを判定する。ノルムが閾値以下である場合は、ＣＰＵ１１は、選択した表示ベクトルを応答文を出力する際に使用する表示ベクトルに設定すべく、設定データに含まれる表示フォントの設定を変更する。ノルムが閾値より大きい場合は、ＣＰＵ１１は、表示フォントの設定は変更しない。同様に、ＣＰＵ１１は、ステップＳ２１３で、記憶部１４で記憶する画像データから各画像に関連付けられた画像特徴ベクトルを読み出し、各画像特徴ベクトルと個性ベクトルｑとの差のノルムを計算する。またＣＰＵ１１は、計算したノルムが最小となる画像を選択し、選択した画像のノルムが所定の閾値以下となったか否かを判定する。ＣＰＵ１１は、ノルムが閾値以下である場合は、選択した画像を応答文と共に出力すべき画像に設定すべく、設定データに含まれる画像の設定を変更し、ノルムが閾値より大きい場合は、画像の設定は変更しない。
【００６５】
ＣＰＵ１１は、次に、設定データで設定された表示フォントの情報、及び設定データで設定された画像を表すデジタルデータと共に、生成した応答文を入力装置２へ出力する処理を行う（Ｓ２１４）。ステップＳ２１４では、ＣＰＵ１１は、表示フォントの情報、画像及び応答文を通信インタフェース１５から入力装置２へ送信させる。なお、ステップＳ２１４では、擬似会話装置１は、応答文に伴って他のデータをも出力する処理を行ってもよい。ＣＰＵ１１は、次に、入力された会話文、及び当該会話文に対して出力した応答文を、記憶部１４が記憶する短期データに記録する（Ｓ２１５）。またＣＰＵ１１は、応答文を出力してから経過した時間をカウントする。
【００６６】
入力装置２は、擬似会話装置１から送信された表示フォントの情報、画像を表すデジタルデータ及び応答文を受信し、受信した応答文をディスプレイに表示する。このとき、入力装置２は、受信した表示フォントの情報に基づいた表示フォントで応答文を表示する。また入力装置２は、受信したデジタルデータで表される画像を応答文と共に表示する。応答文に伴った他のデータを受信した場合は、入力装置２は、応答文に加えて受信したデータを出力する。応答文を確認したユーザは、必要に応じて、応答文に対して再度会話文を入力装置２へ入力し、入力装置２は入力された会話文を擬似会話装置１へ送信する。また擬似会話を終了したいと思ったユーザは、入力装置２を操作することにより、擬似会話の終了要求を入力装置２へ入力し、入力装置２は、擬似会話の終了指示を擬似会話装置１へ送信する。
【００６７】
ステップＳ２１５が終了した後は、ＣＰＵ１１は、入力装置２から送信された会話文を通信インタフェース１５で受信することによる会話文の入力があったか否かを判定する（Ｓ２１６）。会話文を入力された場合は（Ｓ２１６：ＹＥＳ）、ＣＰＵ１１は、処理をステップＳ２０３へ戻す。会話文の入力がない場合は（Ｓ２１６：ＮＯ）、ＣＰＵ１１は、入力装置２から送信された擬似会話の終了指示を通信インタフェース１５で受信することによる終了指示の入力があったか否かを判定する（Ｓ２１７）。終了指示の入力がない場合は（Ｓ２１７：ＮＯ）、ＣＰＵ１１は、最後に応答文を出力してから予め定められている所定時間が経過したか否かを判定する（Ｓ２１８）。所定時間がまだ経過していない場合は（Ｓ２１８：ＮＯ）、ＣＰＵ１１は、処理をステップＳ２１６へ戻す。ステップＳ２１７で終了指示を入力された場合（Ｓ２１７：ＹＥＳ）、又はステップＳ２１８で所定時間が経過した場合は（Ｓ２１８：ＹＥＳ）、ＣＰＵ１１は、入力装置２との通信セッションを終了する処理を行い（Ｓ２１９）、擬似会話処理を終了する。このとき、ＣＰＵ１１は、通信セッションを終了する直前に、擬似会話処理を終了することを示す情報を入力装置２へ送信する。
【００６８】
ステップＳ２０９で、テンプレート応答データに、入力された会話文に相当する会話文を含むテンプレート応答が記録されていない場合は（Ｓ２０９：ＮＯ）、ＣＰＵ１１は、応答文の候補となる文を文データから取得するか否かを判定する（Ｓ２２０）。ステップＳ２２０以降で応答文を生成する方法としては、文データに記録された文を利用する方法と、外部データベース３に記憶された文を利用する方法と、テンプレート文を用いて文を生成する方法とがある。ステップＳ２２０は、応答文を生成する方法として文データに記録された文を利用する方法を用いるか否かを判定する処理である。ステップＳ２２０では、ＣＰＵ１１は、予め定められたアルゴリズムで、応答文を生成するために文データから文を取得するか否かを決定する。例えば、ＣＰＵ１１は、予め定められた確率又は個性ベクトルｑの関数で与えられる確率で、文データから文を取得するか否かを決定する。また例えば、ＣＰＵ１１は、外部データベース３との通信速度を参照し、通信速度が所定値以下である場合に、文データから文を取得すると判定してもよい。また例えば、ＣＰＵ１１は、「つまらない」又は「飽きた」等の所定の会話文を所定回数入力された場合に、文データからは文を取得しないと判定してもよい。
【００６９】
ステップＳ２２０で文データから文を取得すると判定した場合は（Ｓ２２０：ＹＥＳ）、ＣＰＵ１１は、文データに記録された複数の文を記憶部１４から読み出す。ＣＰＵ１１は、次に、読み出した複数の文からなる全体集合Ｓを定義し、キーワードを含む文からなる正例集合Ｓtrue、及び全体集合Ｓと正例集合Ｓtrueとの差集合である負例集合Ｓfalse を生成する（Ｓ２２１）。負例集合Ｓfalse はＳfalse ＝Ｓ＼Ｓtrueで得られる。ＣＰＵ１１は、次に、応答文の候補となる文を正例集合Ｓtrueから取得するか否かを判定する（Ｓ２２２）。ステップＳ２２２では、ＣＰＵ１１は、予め定められたアルゴリズムで判定を行う。例えば、ＣＰＵ１１は、予め定められた確率又は個性ベクトルｑの関数で与えられる確率で、文を正例集合から取得するか又は負例集合から取得するかを判定する。例えば、ＣＰＵ１１は、確率Ｐで文を正例集合Ｓtrueから取得すると判定し、確率１−Ｐで文を負例集合Ｓfalse から取得すると判定する。
【００７０】
ステップＳ２２２で文を正例集合Ｓtrueから取得すると判定した場合は（Ｓ２２２：ＹＥＳ）、ＣＰＵ１１は、正例集合Ｓtrueが空集合であるか否かを判定する（Ｓ２２３）。正例集合Ｓtrueが空集合である場合は（Ｓ２２３：ＹＥＳ）、ＣＰＵ１１は、後述するステップＳ２２９へ進める。正例集合Ｓtrueが空集合ではない場合は（Ｓ２２３：ＮＯ）、ＣＰＵ１１は、正例集合Ｓtrueに含まれる文の内、文に関連付けられた文特徴ベクトルが個性ベクトルｑに最も近い文を取得する（Ｓ２２４）。文特徴ベクトルをｖとすると、ステップＳ２２４では、ＣＰＵ１１は、個性ベクトルｑと文特徴ベクトルｖとの差のノルム｜ｑ−ｖ｜を計算し、計算したノルムが最小となる文を取得する。またＣＰＵ１１は、ノルムの逆数比に比例して文を選択する処理を行ってもよい。該当する文が複数存在する場合は、ＣＰＵ１１は、複数の文の中からランダムに一つの文を取得する。個性ベクトルｑが調整されている場合は、ステップＳ２２４では調整された後の個性ベクトルｑが使用される。
【００７１】
ＣＰＵ１１は、次に、取得した文が入力された会話文と一致するか否かを判定する（Ｓ２２５）。なお、ステップＳ２２５では、ＣＰＵ１１は、個性ベクトルｑと文特徴ベクトルとの差のノルムが所定の閾値以下となるか否かを判定することにより、取得した文が入力された会話文と実質的に一致するか否かを判定する処理を行ってもよい。取得した文が入力された会話文と一致しない場合は（Ｓ２２５：ＮＯ）、ＣＰＵ１１は、入力された会話文と取得した文との関係が会話ルールに合致しているか否かを判定する（Ｓ２２６）。例えば、ＣＰＵ１１は、会話文が疑問文であるのに対して、取得した文が疑問文である場合は、会話ルールに合致していないと判定する。
【００７２】
ステップＳ２２６で、入力された会話文と取得した文との関係が会話ルールに合致している場合は（Ｓ２２６：ＹＥＳ）、ＣＰＵ１１は、記憶部１４が記憶する短期データに、取得した文から生成した応答文が含まれているか否かを判定する（Ｓ２２７）。ステップＳ２２５で文が入力された会話文と一致する場合（Ｓ２２５：ＹＥＳ）、ステップＳ２２６で文が会話ルールに合致していない場合（Ｓ２２６：ＮＯ）、又はステップＳ２２７で文から生成した応答文が短期データに含まれている場合は（Ｓ２２７：ＹＥＳ）、ＣＰＵ１１は、取得した文を正例集合Ｓtrueから削除し（Ｓ２２８）、処理をステップＳ２２３へ戻す。なお、ＣＰＵ１１は、正例集合Ｓtrueを生成する際に、短期データに含まれる文を予め正例集合Ｓtrueから削除しておく処理を行ってもよい。
【００７３】
ステップＳ２２２で文を負例集合Ｓfalse から取得すると判定した場合は（Ｓ２２２：ＮＯ）、ＣＰＵ１１は、負例集合Ｓfalse が空集合であるか否かを判定する（Ｓ２２９）。負例集合Ｓfalse が空集合ではない場合は（Ｓ２２９：ＮＯ）、ＣＰＵ１１は、負例集合Ｓfalse に含まれる文の内、文に関連付けられた文特徴ベクトルが個性ベクトルｑに最も近い文を取得する（Ｓ２３０）。ステップＳ２３０では、ＣＰＵ１１は、ステップＳ２２４と同様の処理により文を取得する。ＣＰＵ１１は、次に、取得した文が入力された会話文と一致するか否かを判定する（Ｓ２３１）。なお、ステップＳ２３１では、ＣＰＵ１１は、個性ベクトルｑと文特徴ベクトルとの差のノルムが所定の閾値以下となるか否かを判定することにより、取得した文が入力された会話文と実質的に一致するか否かを判定する処理を行ってもよい。取得した文が入力された会話文と一致しない場合は（Ｓ２３１：ＮＯ）、ＣＰＵ１１は、入力された会話文と取得した文との関係が会話ルールに合致しているか否かを判定する（Ｓ２３２）。入力された会話文と取得した文との関係が会話ルールに合致している場合は（Ｓ２３２：ＹＥＳ）、ＣＰＵ１１は、記憶部１４が記憶する短期データに、取得した文から生成した応答文が含まれているか否かを判定する（Ｓ２３３）。ステップＳ２３１で文が入力された会話文と一致する場合（Ｓ２３１：ＹＥＳ）、ステップＳ２３２で文が会話ルールに合致していない場合（Ｓ２３２：ＮＯ）、又はステップＳ２３３で文から生成した応答文が短期データに含まれている場合は（Ｓ２３３：ＹＥＳ）、ＣＰＵ１１は、取得した文を負例集合Ｓfalse から削除し（Ｓ２３４）、処理をステップＳ２２９へ戻す。
【００７４】
ステップＳ２２７で短期データに取得した文から生成した応答文が含まれていない場合（Ｓ２２７：ＮＯ）、又はステップＳ２３３で短期データに取得した文から生成した応答文が含まれていない場合は（Ｓ２３３：ＮＯ）、ＣＰＵ１１は、処理をステップＳ２１２へ進める。
【００７５】
ステップＳ２２９で負例集合Ｓfalse が空集合である場合は（Ｓ２２９：ＹＥＳ）、ＣＰＵ１１は、正例集合Ｓtrueが空集合であるか否かを判定する（Ｓ２３５）。正例集合Ｓtrueが空集合ではない場合は（Ｓ２３５：ＮＯ）、ＣＰＵ１１は、処理をステップＳ２２４へ進める。
【００７６】
ステップＳ２２０で文データから文を取得しないと判定した場合（Ｓ２２０：ＮＯ）、又はステップＳ２３５で正例集合Ｓtrueが空集合である場合は（Ｓ２３５：ＹＥＳ）、ＣＰＵ１１は、応答文の候補となる文をテンプレート文から生成するか否かを判定する（Ｓ２３６）。ステップＳ２３６では、ＣＰＵ１１は、予め定められたアルゴリズムで、テンプレート文から文を生成するか否かを判定する。例えば、ＣＰＵ１１は、予め定められた確率又は個性ベクトルｑの関数で与えられる確率で、テンプレート文から文を生成するか否かを判定する。また例えば、ＣＰＵ１１は、外部データベース３との通信速度を参照し、通信速度が所定値以下である場合に、テンプレート文から文を生成すると判定してもよい。
【００７７】
ステップＳ２３６でテンプレート文から文を生成すると判定した場合は（Ｓ２３６：ＹＥＳ）、ＣＰＵ１１は、記憶部１４で記憶するテンプレート文データから、テンプレート文特徴ベクトルが個性ベクトルｑに最も近いテンプレート文を取得する（Ｓ２３７）。テンプレート文特徴ベクトルをｕとすると、ステップＳ２３７では、ＣＰＵ１１は、個性ベクトルｑとテンプレート文特徴ベクトルｕとの差のノルム｜ｑ−ｕ｜を計算し、計算したノルムが最小となるテンプレート文を取得する。またＣＰＵ１１は、ノルムの逆数比に比例してテンプレート文を選択する処理を行ってもよい。該当するテンプレート文が複数存在する場合は、ＣＰＵ１１は、複数のテンプレート文の中からランダムに一つのテンプレート文を取得する。個性ベクトルｑが調整されている場合は、ステップＳ２３７では調整された後の個性ベクトルｑが使用される。
【００７８】
ＣＰＵ１１は、次に、取得したテンプレート文の不特定部分にキーワードを代入することによって、文を生成する（Ｓ２３８）。ＣＰＵ１１は、次に、生成した文が入力された会話文と一致するか否かを判定する（Ｓ２３９）。生成した文が入力された会話文と一致しない場合は（Ｓ２３９：ＮＯ）、ＣＰＵ１１は、入力された会話文と生成した文との関係が会話ルールに合致しているか否かを判定する（Ｓ２４０）。入力された会話文と生成した文との関係が会話ルールに合致している場合は（Ｓ２４０：ＹＥＳ）、ＣＰＵ１１は、記憶部１４が記憶する短期データに、生成した文から生成した応答文が含まれているか否かを判定する（Ｓ２４１）。ステップＳ２３９で文が入力された会話文と一致する場合（Ｓ２３９：ＹＥＳ）、ステップＳ２４０で文が会話ルールに合致していない場合（Ｓ２４０：ＮＯ）、又はステップＳ２４１で、生成した文から生成した応答文が短期データに含まれている場合は（Ｓ２４１：ＹＥＳ）、ＣＰＵ１１は、テンプレート文データから、テンプレート文特徴ベクトルが次に個性ベクトルｑに近いテンプレート文を取得し（Ｓ２４２）、処理をステップＳ２３８へ戻す。ステップＳ２４１で文データに生成した文が含まれていない場合は（Ｓ２４１：ＮＯ）、ＣＰＵ１１は、処理をステップＳ２１２へ進める。
【００７９】
ステップＳ２３６でテンプレート文から文を生成しないと判定した場合は（Ｓ２３６：ＮＯ）、ＣＰＵ１１は、外部データベース３からキーワードを含む任意の文を取得する（Ｓ２４３）。具体的には、ＣＰＵ１１は、所定のコマンドを通信インタフェース１５に外部データベース３へ送信することにより、外部データベース３が記憶する文の中からキーワードを含む文を検索し、キーワードを含む任意の文を外部データベース３から送信される。ＣＰＵ１１は、次に、取得した文が入力された会話文と一致するか否かを判定する（Ｓ２４４）。取得した文が入力された会話文と一致する場合は（Ｓ２４４：ＹＥＳ）、ＣＰＵ１１は、処理をステップＳ２４３へ戻す。取得した文が入力された会話文と一致しない場合は（Ｓ２４４：ＮＯ）、ＣＰＵ１１は、入力された会話文と取得した文との関係が会話ルールに合致しているか否かを判定する（Ｓ２４５）。入力された会話文と取得した文との関係が会話ルールに合致していない場合は（Ｓ２４５：ＮＯ）、ＣＰＵ１１は、処理をステップＳ２４３へ戻す。
【００８０】
ステップＳ２４５で、入力された会話文と取得した文との関係が会話ルールに合致している場合は（Ｓ２４５：ＹＥＳ）、ＣＰＵ１１は、記憶部１４が記憶する短期データに、取得した文から生成した応答文が含まれているか否かを判定する（Ｓ２４６）。取得した文から生成した応答文が短期データに含まれている場合は（Ｓ２４６：ＹＥＳ）、ＣＰＵ１１は、処理をステップＳ２４３へ戻す。取得した文から生成した応答文が短期データに含まれていない場合は（Ｓ２４６：ＮＯ）、ＣＰＵ１１は、記憶部１４で記憶している文データに、外部データベース３から取得した文が記録されているか否かを判定する（Ｓ２４７）。取得した文が文データに含まれていない場合は（Ｓ２４７：ＮＯ）、ＣＰＵ１１は、外部データベース３から取得した文を、記憶部１４で記憶している文データに追加する処理を行う（Ｓ２４８）。ステップＳ２４８が終了した後、又はステップＳ２４７で文データに取得した文が含まれている場合は（Ｓ２４７：ＹＥＳ）、ＣＰＵ１１は、処理をステップＳ２１２へ進める。擬似会話装置１は、このように外部データベース３から文を取得することにより、擬似会話に利用できる語彙を増加させることができる。なお、ＣＰＵ１１は、ステップＳ２３６で無条件でテンプレート文から文を生成すると判定し、ステップＳ２３９で文が入力された会話文と一致する場合、又はステップＳ２４０で文が会話ルールに合致していない場合に、外部データベースから文を取得すべく処理をステップＳ２４３へ進める処理を行ってもよい。
【００８１】
擬似会話装置１は、擬似会話処理と並行して、個性ベクトルｑに含まれる感情ベクトルeを変化させる感情変動処理を実行する。図１０は、擬似会話装置１が実行する感情変動処理の手順を示すフローチャートである。擬似会話装置１のＣＰＵ１１は、ＲＡＭ１２にロードしたコンピュータプログラム４１に従って、以下の処理を実行する。ＣＰＵ１１は、擬似会話処理と並行して、擬似会話処理により行われる擬似会話の回数をカウントする（Ｓ３１）。ＣＰＵ１１は、次に、カウントした擬似会話の回数が所定回数になったか否かを判定する（Ｓ３２）。所定回数は例えば１０の倍数とする。カウントした擬似会話の回数が所定回数になった場合は（Ｓ３２：ＹＥＳ）、ＣＰＵ１１は、擬似会話の回数に応じた外部摂動ベクトルδを生成する（Ｓ３３）。外部摂動ベクトルδの各要素の値は、擬似会話の回数の関数で与えられる。例えば、ある要素の値は正の定数であり、別の要素の値はサイン関数に従って計算される。ある要素の値は正の定数であることは、その要素に対応する人工無脳の感情が擬似会話の繰り返しに伴って一定の割合で変化していくことを示す。またある要素の値がサイン関数に従って計算されることは、その要素に対応する人工無脳の感情が浮き沈みすることを示す。またステップＳ３３では、ＣＰＵ１１は、外部摂動ベクトルδのいずれかの要素の値をランダムに決定してもよい。このように外部摂動ベクトルδを定め、外部摂動ベクトルδを用いて感情ベクトルｅを変化させることにより、擬似会話の繰り返しにより人工無脳のユーザに対する感情が高まっていくこと又は人工無脳の感情が起伏すること等、人工無脳の感情の変動を表現することができる。
【００８２】
ＣＰＵ１１は、次に、生成した外部摂動ベクトルδを用いて（４）式の計算を実行することで新たな感情ベクトルｅを計算し、計算した感情ベクトルｅを記憶部１４に記憶させることにより感情ベクトルｅを更新する（Ｓ３４）。ステップＳ３４が終了した後、又はステップＳ３２で擬似会話の回数が所定回数ではない場合は（Ｓ３２：ＮＯ）、ＣＰＵ１１は、擬似会話処理が終了したか否かを判定する（Ｓ３５）。擬似会話処理がまだ終了していない場合は（Ｓ３５：ＮＯ）、ＣＰＵ１１は、処理をステップＳ３１へ戻す。擬似会話処理が終了した場合は（Ｓ３５：ＹＥＳ）、ＣＰＵ１１は、感情変動処理を終了する。なお、本実施の形態においては、擬似会話の回数に応じて感情ベクトルｅの変化を計算する処理を行ったが、擬似会話装置１は、擬似会話処理を実行中の経過時間を測定し、経過時間に応じて感情ベクトルｅの変化を計算する処理を行う形態であってもよい。なお、擬似会話装置１は、その他のタイミングで感情変動処理を実行する形態であってもよい。例えば、ＣＰＵ１１は、ステップＳ２０７で同一の会話文が短期データに所定数以上含まれている場合に、感情変動処理を実行してもよい。
【００８３】
擬似会話装置１は、ユーザの好みに合わせて個性ベクトルｑを更新することによって人工無脳の個性を成長させる成長処理を実行する。図１１は、擬似会話装置１が実行する成長処理の手順を示すフローチャートである。擬似会話装置１のＣＰＵ１１は、ＲＡＭ１２にロードしたコンピュータプログラム４１に従って、以下の処理を実行する。図１１に示すように、ＣＰＵ１１は、インタラクティブＧＡ（遺伝的アルゴリズム）を用いてユーザの評価の高い個性ベクトルｑを生成する。ＧＡは、複数のデータを用意し、個々のデータを、データ内容を遺伝子とした個体とみなし、複数の個体に交叉及び突然変異を行わせることで次世代の個体を生成し、次世代の個体から優秀な個体を選別することを繰り返すことにより、適切な個体を生成する手法である。ここで、交叉とは、交叉率に基づいて個体間で遺伝子の一部を入れ替える処理である。また突然変異とは、突然変異率に基づいて個体の遺伝子にランダムな摂動を与える処理であり、突然変異によって個体は微少な変化をする。インタラクティブＧＡは、優秀な個体を選別する際に、ユーザからの指示に基づいて選別を行う手法である。
【００８４】
ＣＰＵ１１は、まず、計算に使用する個性ベクトルｑの個体数Ｎp 、最大世代Ｎg、交叉率Ｐc 及び突然変異率Ｐmを設定する（Ｓ４０１）。ステップＳ４０１では、ＣＰＵ１１は、個体数Ｎp 、最大世代Ｎg、交叉率Ｐc 及び突然変異率Ｐmとして、予め定められた値を設定してもよく、ユーザが操作する入力装置２から入力された値を設定してもよい。ＣＰＵ１１は、次に、世代ｔを０に初期化する（Ｓ４０２）。ＣＰＵ１１は、次に、現在記憶部１４に記憶している個性ベクトルｑを含む複数の個性ベクトルを生成する（Ｓ４０３）。ステップＳ４０３では、ＣＰＵ１１は、ランダムに複数の個性ベクトルを生成し、生成した複数の個性ベクトルに現在の個性ベクトルｑを加えた群を個性ベクトルの初期個体群としてＲＡＭ１２に記憶する。初期個体群に含まれる個性ベクトルの数を個体数Ｎp とする。即ち、ＣＰＵ１１は、（Ｎp −１）個の個性ベクトルをランダムに生成する。
【００８５】
ＣＰＵ１１は、次に、Ｎp 個の個性ベクトルの夫々についてユーザから評価を受ける評価処理を行う（Ｓ４０４）。ステップＳ４０４では、ＣＰＵ１１は、個性ベクトルの夫々を用いて、図５〜７のフローチャートで説明した擬似会話処理を実行し、擬似会話を所定回数繰り返した後、入力装置２から評価点を入力される。ユーザは、自分の好む又は適切と感じる人工無脳の個性ベクトルにより高い評価点を与えるように、個性ベクトルの夫々に対して評価点を入力する。このようにして、Ｎp 個の個性ベクトルの夫々について評価点が入力され、ＣＰＵ１１は、各個性ベクトルに関連付けて評価点をＲＡＭ１２に記憶させる。ＣＰＵ１１は、次に、Ｎp 個の個性ベクトルの中から評価点が最高である個性ベクトルをエリートとして選択する（Ｓ４０５）。評価点が最高である個性ベクトルが複数ある場合は、ＣＰＵ１１は、ランダムで一つのエリートを選択してもよく、複数のエリートを選択してもよい。ＣＰＵ１１は、選択したエリートの個性ベクトルをＲＡＭ１２に記憶させる。
【００８６】
ＣＰＵ１１は、次に、世代ｔの値が最大世代Ｎg の値より小さいか否かを判定する（Ｓ４０６）。世代ｔの値が最大世代Ｎg 値より小さい場合は（Ｓ４０６：ＹＥＳ）、ＣＰＵ１１は、Ｎp 個の個性ベクトルをランダムに２個体づつペアリングし、各ペアを親として交叉率Ｐc で交叉を適用し、２個体の子を作る（Ｓ４０７）。ステップＳ４０７で用いる交叉は、一点交叉、一様交叉及び単峰性正規分布交差等、任意の方法を用いてもよい。ステップＳ４０７により、Ｎp 個の個性ベクトルから次世代のＮp個の個性ベクトルが生成される。ＣＰＵ１１は、次に、生成した次世代のＮp 個の個性ベクトルの夫々に対して、突然変異率Ｐm の確率で突然変異を行わせる（Ｓ４０８）。ＣＰＵ１１が個性ベクトルを突然変異させる具体的な方法には、従来のＧＡで用いられている方法を用いればよい。
【００８７】
ＣＰＵ１１は、次に、突然変異を適用した後の次世代のＮp 個の個性ベクトルの何れかを、ステップＳ４０５で選択したエリートの個性ベクトルと入れ替えることにより、次世代のＮp 個の個性ベクトルに旧世代のエリートの個性ベクトルを追加する（Ｓ４０９）。エリートと入れ替える個性ベクトルは、ランダムに選択すればよい。エリートを追加した後のＮp 個の個性ベクトルを次世代個体群とする。なお、ＣＰＵ１１は、ステップＳ４０７及びＳ４０８で、エリート以外の個性ベクトルについて処理を行い、ステップＳ４０９では処理後の個性ベクトルにエリートを単純に加えることにより、次世代個体群を生成する処理を行ってもよい。ＣＰＵ１１は、次に、世代ｔをインクリメントする（Ｓ４１０）。ＣＰＵ１１は、次に、処理をステップＳ４０４へ戻して、次世代個体群に含まれる各個性ベクトルについて評価点を入力される評価処理を行う。
【００８８】
ステップＳ４０６で世代ｔの値が最大世代Ｎg の値に等しい場合は（Ｓ４０６：ＮＯ）、ＣＰＵ１１は、選択したエリートの個性ベクトルを記憶部１４に記憶することにより、個性ベクトルｑを更新する（Ｓ４１１）。エリートの個性ベクトルが複数ある場合は、ＣＰＵ１１は、複数のエリートからランダムに一つの個性ベクトルを選択する。ステップＳ４１１が終了した後、ＣＰＵ１１は、成長処理を終了する。
【００８９】
なお、本実施の形態においては、成長処理により個性ベクトルｑを更新する処理を行ったが、擬似会話装置１は、同様の処理手順を有する成長処理によりその他のデータを更新する処理を行う形態であってもよい。例えば、擬似会話装置１は、個性ベクトルｑに含まれる自我ベクトルｐのみを成長処理により更新する形態であってもよい。また擬似会話装置１は、個性ベクトルｑに加えて、感受性ベクトルｓ、フィルタベクトルＦ又は設定データに含まれる各種の数値等、人工無脳の個性に関係する要素を一次元的に並べたベクトルを成長処理により更新する処理を行う形態であってもよい。また擬似会話装置１は、まだ記憶部１４に個性ベクトルｑを記憶していない段階で成長処理を実行することにより、個性ベクトルｑを生成する処理を行う形態であってもよい。
【００９０】
以上詳述したごとく、本発明においては、擬似会話装置１は、会話文に対して生成する応答文を特徴付けるための個性ベクトルｑを記憶しておき、ユーザから入力された会話文に応じて、個性ベクトルに基づいて応答文を生成する。このように、本発明においては、個性ベクトルを設定することによって、会話文に対する人工無脳による応答に個性を持たせることができる。また本発明においては、擬似会話装置１は、個性ベクトルｑに応じて、応答文の語尾、応答文と共に出力する画像、及び応答文の表示フォントを調整する。これにより、見た目で人工無脳の個性がユーザに伝わりやすくなる。特に、感情ベクトルの変化に応じて画像及び表示フォントが変化するので、人工無脳の感情の変化がユーザに伝わりやすい。また本発明においては、擬似会話装置１は、ユーザから入力された単語又は文に基づいて個性ベクトルを生成することにより、ユーザからの指示に応じた個性を人工無脳に付与することができる。また本発明においては、擬似会話装置１は、インタラクティブＧＡを用いて、ユーザからの評価がより高くなるように個性ベクトルｑを成長させる。このようにして、会話文に対して生成する応答文を特徴付けるための個性ベクトルｑをユーザの好みに合わせて設定すると共に、ユーザの好みに合うように成長させることができるので、ユーザが人工無脳に対する愛着を抱き易くなる。また人工無脳の個性がユーザの好みに合ったものとなり、適切に成長するので、人工無脳による擬似会話にユーザが飽き難くなり、ユーザが人工無脳を長く愛用することも可能となる。
【００９１】
なお、本実施の形態においては、一つの擬似会話装置１に対して、一つの入力装置２が通信ネットワークＮを介して接続されている形態を示したが、擬似会話装置１には、複数の入力装置２が通信ネットワークＮを介して接続されていてもよい。擬似会話装置１は、複数の入力装置２が接続されている場合は、夫々の入力装置２から入力された会話文に対して応答文を生成し、夫々の入力装置２に対して応答文を出力する処理を行う。複数の入力装置２が接続された擬似会話装置１は、一つの個性ベクトルを記憶する形態であってもよく、複数の入力装置２の夫々について個性ベクトルを記憶する形態であってもよい。
【００９２】
また本実施の形態においては、通信ネットワークＮを介して会話文の入力及び応答文の出力を行う形態を示したが、本発明は、通信ネットワークＮを介さずに擬似会話の処理を行う形態であってもよい。例えば、擬似会話装置１は、ＰＣ、携帯電話機又はゲーム機等、ユーザによって使用されるコンピュータであり、キーボード等の入力部とディスプレイ等の出力部を備える形態であってもよい。この形態では、擬似会話装置１は、ユーザが操作する入力部から会話文を入力され、生成した応答文を出力部に出力する処理を行う。
【００９３】
また擬似会話装置１は、本実施の形態における記憶部１４が記憶するデータの一部又は全部を、通信ネットワークＮを介して接続された記憶装置に記憶しておく形態であってもよい。この形態では、擬似会話装置１は、必要に応じて通信ネットワークＮを介して記憶装置からデータを読み出し、擬似会話を行うための処理を実行する。
【産業上の利用可能性】
【００９４】
本発明は、通信ネットワークＮを介してユーザとの間で擬似会話を行う会話ロボットとして実用化できる。また本発明は、ウェブログ、電子メール又はツイッター等の方法によりユーザから入力されたコメントに対して応答文を返すシステムとして実用化できる。また本発明は、携帯電話機又はゲーム機等を擬似会話装置１とした会話ゲームとして実用化できる。
【符号の説明】
【００９５】
１  擬似会話装置
１１  ＣＰＵ
１４  記憶部
１５  通信インタフェース
２  入力装置
３  外部データベース
４  記録媒体
４１  コンピュータプログラム
【図１】
2012141713.tif 000003
【図２】
2012141713.tif 000004
【図３】
2012141713.tif 000005
【図４】
2012141713.tif 000006
【図５】
2012141713.tif 000007
【図６】
2012141713.tif 000008
【図７】
2012141713.tif 000009
【図８】
2012141713.tif 000010
【図９】
2012141713.tif 000011
【図１０】
2012141713.tif 000012
【図１１】
2012141713.tif 000013