説明

擬似会話装置及びコンピュータプログラム

【課題】人工無脳による擬似会話の内容をユーザの好みに合わせた内容に調整することができる擬似会話装置及びコンピュータプログラムを提供する。
【解決手段】人工無脳の処理を実行する擬似会話装置1は、ユーザから入力される会話文と応答文とでなる擬似会話を特徴付けるための複数の数値からなる個性ベクトル(特徴データ)を記憶部14に記憶する。擬似会話装置1は、ユーザから入力された会話文に応じて、個性ベクトルと同数の数値からなる文特徴ベクトル(文特徴データ)が個性ベクトルに近い文を文データから抽出し、抽出した文から、会話文に対する応答文を生成する。このように、個性ベクトルに基づいて応答文を生成することにより、人工無脳に個性を付与する。個性ベクトルは、ユーザの指示に応じて設定され、ユーザの好みに合わせて成長させることができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、人間とコンピュータとの間で擬似的な会話を行う所謂人工無脳と呼ばれる処理を行う擬似会話装置及びコンピュータプログラムに関する。
【背景技術】
【0002】
従来、人工無脳又は人工無能と呼ばれる擬似会話システムが知られている。人工無脳のシステムは、通常、ユーザが使用する端末装置と、人工無脳を実現するためのコンピュータプログラムを実行するコンピュータである擬似会話装置とからなる。ユーザは端末装置を用いて会話文を入力し、擬似会話装置は、入力された会話文を解析し、会話文中のキーワードに対応付けられている応答文をデータベースから抽出し、抽出した応答文を端末装置へ出力する。ユーザによる会話文の入力と擬似会話装置からの応答文の出力とを繰り返すことにより、あたかも人間同士の会話のように、ユーザと擬似会話装置との間で擬似的な会話を続けることができる。特許文献1には、人工無脳の例が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2004−178299号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来の人工無脳では、擬似会話装置からの応答文の内容はデータベースの内容に制限されるので、擬似的な会話の内容には限界がある。また人工無脳では、応答文を生成するためのルールは予め定められているので、応答の個性は固定されたものとなる。このため、擬似的な会話の内容は変化に乏しいものになり易く、また応答の個性をユーザの好みに合わせて調整することは難しい。従って、ユーザは人工無脳に対して愛着が湧き難く、人工無脳を利用することに飽き易くなるという問題がある。
【0005】
本発明は、斯かる事情に鑑みてなされたものであって、その目的とするところは、人工無脳による応答の個性を成長することが可能なように設定することにより、擬似的な会話の内容をユーザの好みに合わせた内容に調整することができる擬似会話装置及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【0006】
本発明に係る擬似会話装置は、会話文を入力する入力手段と、入力された会話文の形態素解析を行い、前記会話文に応じた応答文を生成する応答文生成手段と、生成した応答文を出力する手段とを備え、会話文の入力と応答文の出力との繰り返しでなる擬似会話を行う擬似会話装置において、擬似会話を特徴付けるための複数の数値からなる特徴データを記憶する特徴データ記憶手段と、複数の文を、前記特徴データと同数の数値からなり、夫々の文を特徴付ける文特徴データと関連付けて記憶してある文記憶手段とを備え、前記応答文生成手段は、前記入力手段により入力された会話文の形態素解析の結果に基づいて、前記会話文からキーワードを抽出する手段と、前記文記憶手段が記憶している複数の文から、キーワードを含む文の集合、及び前記キーワードを含まない文の集合を作成する手段と、特定のアルゴリズムに従って、応答文の候補となる文を、前記キーワードを含む文の集合及び前記キーワードを含まない文の集合のいずれから抽出するかを判定する手段と、前記キーワードを含む文の集合から応答文の候補となる文を抽出すると判定された場合に、前記キーワードを含む文の集合から、文特徴データが前記特徴データに最も近い文を抽出する手段と、前記キーワードを含まない文の集合から応答文の候補となる文を抽出すると判定された場合に、前記キーワードを含まない文の集合から、文特徴データが前記特徴データに最も近い文を抽出する手段と、抽出した文を応答文とする手段とを有することを特徴とする。
【0007】
本発明に係る擬似会話装置は、複数の単語を、前記特徴データと同数の数値からなり、夫々の単語を特徴付ける単語特徴データと関連付けて記憶してある単語記憶手段と、前記入力手段により、単語又は文を入力され、入力された単語に前記単語記憶手段で関連付けられている単語特徴データ、又は入力された文に含まれる単語に前記単語記憶手段で関連付けられている単語特徴データに基づいて、前記特徴データを生成する手段と、生成した前記特徴データを特徴データ記憶手段に記憶させる手段とを更に備えることを特徴とする。
【0008】
本発明に係る擬似会話装置は、一部の単語を不特定にした不特定部分を含んでいる複数のテンプレート文を、前記特徴データと同数の数値からなり、夫々のテンプレート文を特徴付けるテンプレート文特徴データと関連付けて記憶してあるテンプレート文記憶手段を更に備え、前記応答文生成手段は、特定のアルゴリズムに従って、応答文の候補となる文を、テンプレート文を用いて生成するか否かを判定する手段と、応答文の候補となる文をテンプレート文を用いて生成すると判定された場合に、前記テンプレート文記憶手段で記憶している複数のテンプレート文から、テンプレート文特徴データが前記特徴データに最も近いテンプレート文を抽出する手段と、抽出したテンプレート文の不特定部分に前記キーワードを代入した文を生成する手段と、生成した文を応答文とする手段とを更に有することを特徴とする。
【0009】
本発明に係る擬似会話装置は、入力されるべき特定の会話文と応答文の候補になる文との組み合わせでなる複数のテンプレート応答を、前記特徴データと同数の数値からなり、夫々のテンプレート応答を特徴付けるテンプレート応答特徴データと関連付けて記憶してあるテンプレート応答記憶手段を更に備え、前記応答文生成手段は、前記入力手段により入力された会話文と実質的に同一の会話文が含まれるテンプレート応答が前記テンプレート応答記憶手段に記憶されているか否かを判定する手段と、入力された会話文と実質的に同一の会話文が含まれるテンプレート応答が記憶されている場合に、入力された会話文と実質的に同一の会話文が含まれるテンプレート応答が単数であるときは、前記テンプレート応答を選択し、入力された会話文と実質的に同一の会話文が含まれる複数のテンプレート応答があるときは、前記複数のテンプレート応答から、テンプレート応答特徴データが前記特徴データに最も近いテンプレート応答を選択する手段と、選択したテンプレート応答に含まれる応答文の候補になる文を用いて応答文を生成する手段とを更に有することを特徴とする。
【0010】
本発明に係る擬似会話装置は、前記特徴データと同数の数値からなり、前記特徴データを調整するための調整データを記憶してある手段を更に備え、前記応答文生成手段は、前記特徴データを用いて応答文を生成する前に、前記特徴データに含まれる各数値に前記調整データ中の対応する数値を乗算することによって、前記特徴データを調整する手段を更に有することを特徴とする。
【0011】
本発明に係る擬似会話装置は、前記特徴データは、擬似会話に応じて変動する数値からなる変動データと、変動しない数値からなる非変動データとからなり、前記特徴データ記憶手段が記憶する前記特徴データに含まれる変動データの数値を、擬似会話の継続に応じて変動させる手段を更に備えることを特徴とする。
【0012】
本発明に係る擬似会話装置は、複数の特徴データを生成する手段と、前記応答文生成手段に、複数の特徴データの夫々を用いて応答文を生成させ、複数の特徴データの夫々について、擬似会話に対する評価を示す評価点を入力される評価手段と、遺伝的アルゴリズムを用いて、評価点の高い特徴データの遺伝子が残るように、複数の特徴データに交叉及び突然変異を行わせることにより、次世代の複数の特徴データを生成する遺伝手段と、該遺伝手段及び前記評価手段での処理を繰り返した後に、評価点が最大である特徴データを、前記特徴データ記憶手段に記憶させる手段とを更に備えることを特徴とする。
【0013】
本発明に係る擬似会話装置は、文を記憶してある外部のデータベースに接続されてあり、前記応答文生成手段は、特定のアルゴリズムに従って、応答文の候補となる文を、前記外部のデータベースから取得するか否かを判定する手段と、応答文の候補となる文を前記外部のデータベースから取得すると判定された場合に、前記キーワードを含む文を前記外部のデータベースから取得する手段と、取得した文を応答文とする手段とを更に有することを特徴とする。
【0014】
本発明に係るコンピュータプログラムは、コンピュータに、該コンピュータへ入力された会話文に応じた応答文を生成させる処理を実行させるコンピュータプログラムにおいて、入力された会話文の形態素解析を行い、当該形態素解析の結果に基づいて、前記会話文からキーワードを抽出するステップと、予め記憶された複数の文の内で抽出したキーワードを含む文の集合、及び前記キーワードを含まない文の集合を作成するステップと、特定のアルゴリズムに従って、応答文の候補となる文を、前記キーワードを含む文の集合及び前記キーワードを含まない文の集合のいずれから抽出するかを判定するステップと、前記キーワードを含む文の集合から応答文の候補となる文を抽出すると判定された場合に、会話文及び応答文からなる擬似会話を特徴づけるための複数の数値からなる予め定められた特徴データに、該特徴データと同数の数値からなって各文について予め定められている各文を特徴付ける文特徴データが最も近い文を、前記キーワードを含む文の集合から抽出するステップと、前記キーワードを含まない文の集合から応答文の候補となる文を抽出すると判定された場合に、前記キーワードを含まない文の集合から、前記文特徴データが前記特徴データに最も近い文を抽出するステップと、抽出した文を応答文とするステップとを含む処理をコンピュータに実行させることを特徴とする。
【0015】
本発明においては、ユーザから入力された会話文に対して応答文を出力する擬似会話装置は、会話文に対して生成する応答文を特徴付けるための特徴データを記憶しておく。擬似会話装置は、ユーザから入力された会話文に応じて、予め記憶している文の中から特徴データに基づいて文を抽出することにより、応答文を生成する。これにより、人工無脳に特徴データを用いて個性を持たせ、人工無脳による会話文に対する個性に応じた応答を実現することができる。
【0016】
また本発明においては、擬似会話装置は、ユーザから入力された単語又は文に基づいて特徴データを生成することにより、ユーザからの指示に応じた個性を人工無脳に付与する。
【0017】
また本発明においては、擬似会話装置は、ユーザから入力された会話文に応じて、予め記憶しているテンプレート文の中から特徴データに基づいて文を抽出し、テンプレート文を用いて応答文を生成する。これにより、人工無脳による会話文に対する個性に応じた応答を実現することができる。
【0018】
また本発明においては、擬似会話装置は、会話文と応答文との組み合わせからなる複数のテンプレート応答を予め記憶しておき、入力された会話文が含まれるテンプレート応答を特徴データに基づいて選択し、選択したテンプレート応答に含まれる応答文を用いる。これにより、人工無脳による会話文に対する個性に応じた応答を実現することができる。
【0019】
また本発明においては、擬似会話装置は、特徴データを調整するための調整データを記憶し、特徴データに調整データを乗じることにより、特徴データを調整し、調整後の特徴データを用いて応答文を生成する。これにより、特徴データで表される人工無脳の本来の個性と、調整後の調整データで表される表層的な個性とを実現することができる。
【0020】
また本発明においては、擬似会話装置は、特徴データの一部分を、擬似会話の継続に応じて変動させる。これにより、感情の変化のような人工無脳の個性の変動を表現することができる。
【0021】
また本発明においては、擬似会話装置は、複数の特徴データを生成し、特徴データに基づいて生成した応答文をユーザにより評価し、遺伝的アルゴリズムを用いて、ユーザからの評価が高くなるように特徴データを変化させることにより、人工無脳の個性を成長させる。
【発明の効果】
【0022】
本発明にあっては、人工無脳により会話文に対して生成する応答文を特徴付けるための特徴データを用いて人工無脳に個性を付与し、ユーザの好みに合わせて個性を設定することができるので、ユーザが人工無脳に対する愛着を抱き易くなる等、本発明は優れた効果を奏する。
【図面の簡単な説明】
【0023】
【図1】本発明の擬似会話装置を用いた擬似会話システムの構成を示す概念図である。
【図2】擬似会話装置の内部構成を示すブロック図である。
【図3】意味ネットワークの例を示す概念図である。
【図4】テンプレート応答の例を示す概念図である。
【図5】擬似会話装置が実行する初期設定処理の手順を示すフローチャートである。
【図6】擬似会話装置が実行する擬似会話処理の手順を示すフローチャートである。
【図7】擬似会話装置が実行する擬似会話処理の手順を示すフローチャートである。
【図8】擬似会話装置が実行する擬似会話処理の手順を示すフローチャートである。
【図9】擬似会話装置が実行する擬似会話処理の手順を示すフローチャートである。
【図10】擬似会話装置が実行する感情変動処理の手順を示すフローチャートである。
【図11】擬似会話装置が実行する成長処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0024】
以下本発明をその実施の形態を示す図面に基づき具体的に説明する。
図1は、本発明の擬似会話装置を用いた擬似会話システムの構成を示す概念図である。インターネット等の通信ネットワークNに、本発明の擬似会話装置1と、ユーザが操作することによって会話文を入力するための入力装置2とが接続されている。入力装置2は、パーソナルコンピュータ(PC)又は携帯電話機等、入出力機構と通信機能とを備えるコンピュータである。ユーザは、入力装置2を操作することによって会話文を入力装置2へ入力し、入力装置2は、入力された会話文を通信ネットワークNを通じて擬似会話装置1へ送信する。擬似会話装置1は、通信ネットワークNを通じて入力装置2から送信された会話文を受信し、会話文に応じた応答文を生成し、生成した応答文を通信ネットワークNを通じて入力装置2へ送信する。入力装置2は、通信ネットワークNを通じて擬似会話装置1から送信された応答文を受信し、ディスプレイに応答文を表示する等の方法で応答文を出力する。擬似会話装置1は、入力装置2との間で会話文と応答文とを交換することにより、所謂人工無脳を実現する。また通信ネットワークNには、擬似会話装置1及び入力装置2とは別のコンピュータでなる外部データベース3が接続されている。
【0025】
図2は、擬似会話装置1の内部構成を示すブロック図である。擬似会話装置1は、PC又はサーバ装置等の汎用のコンピュータを用いて構成されている。擬似会話装置1は、演算を行うCPU11と、演算に伴って発生する一時的な情報を記憶するRAM12と、光ディスク等の記録媒体4から情報を読み取るCD−ROMドライブ等のドライブ部13と、ハードディスク等の記憶部14とを備えている。CPU11は、記録媒体4からコンピュータプログラム41をドライブ部13に読み取らせ、読み取ったコンピュータプログラム41を記憶部14に記憶させる。コンピュータプログラム41は必要に応じて記憶部14からRAM12へロードされ、ロードされたコンピュータプログラム41に基づいてCPU11は擬似会話装置1に必要な処理を実行する。
【0026】
更に擬似会話装置1は、通信ネットワークNに接続されている通信インタフェース15を備えている。擬似会話装置1は、入力装置2から送信された会話文を通信インタフェース15で受信し、応答文を通信インタフェース15から入力装置2へ送信する。また擬似会話装置1は、通信インタフェース15と外部データベース3との間で、通信ネットワークNを通じてデータを送受信する。通信インタフェース15は、本発明における入力手段に相当する。
【0027】
記憶部14は、擬似会話の内容を特徴付ける複数の数値からなる個性ベクトルを記憶している。個性ベクトルは、本発明における特徴データに相当する。個性ベクトルは、会話文から応答文を生成するロジックに影響し、人工無脳の個性を表現している。個性ベクトルは、更に、夫々に複数の数値を含む感情ベクトル及び自我ベクトルからなる。感情ベクトルは、本発明における変動データに相当する。感情ベクトルは、時間の経過に伴って数値が変動するベクトルであり、時間の経過に伴って変化する人工無脳の感情を表現している。自我ベクトルは、本発明における非変動データに相当する。自我ベクトルは、時間の経過に伴って数値が変動しないベクトルであり、時間の経過に伴って変化しない人工無脳の自我を表現している。
【0028】
感情ベクトルは、夫々に実数値である複数の要素からなる実数値ベクトルである。感情ベクトルをeとすると、感情ベクトルeは下記(1)式のように表される。
e={e1 ,e2 ,…,en} …(1)
【0029】
感情ベクトルeに含まれる各要素ei は−1≦ei≦1を満たし、人間の相反する感情を数値で表す。例えば、感情ベクトルeは、以下の3種類の感情の夫々を表すe1 ,e2 ,e3からなる。ei =0は平常時の値であるとする。
1 :快(1)⇔不快(−1)
2 :好意(1)⇔嫌悪(−1)
3 :興奮(1)⇔冷静(−1)
【0030】
また記憶部14は、感情ベクトルの変動し易さを表した感受性ベクトルを記憶している。感受性ベクトルは、時間経過に伴った感情への外部摂動に対する人口無脳の感情の変動し易さ又は頑強さを表現している。感受性ベクトルは、感情ベクトルeと同数の要素からなり、各要素は実数値である。感受性ベクトルをsとすると、感受性ベクトルsは下記(2)式のように表される。
s={s1 ,s2 ,…,sn} …(2)
【0031】
感受性ベクトルsに含まれる各要素si は−1≦si≦1を満たす。si の絶対値はeiの変動し易さを示す。si =0である場合は、外部摂動に対してei が変動しないことを示す。si >0の場合は、ポジティブな外部摂動に対してei がポジティブに変動し、ネガティブな外部摂動に対してei がネガティブに変動することを示す。si <0の場合は、ポジティブな外部摂動に対してei がネガティブに変動し、ネガティブな外部摂動に対してei がポジティブに変動することを示す。感情への外部摂動は、同様に、感情ベクトルeと同数の要素からなる実数ベクトルで表される。外部摂動ベクトルをδとすると、外部摂動ベクトルδは下記(3)式のように表される。
δ={δ1 ,δ2 ,…,δn} …(3)
【0032】
時刻tにおける感情ベクトルe、感受性ベクトルs及び外部摂動ベクトルδを、夫々et 、st 及びδtとすると、時刻t+1における感情ベクトルet+1 は、下記(4)式で表される。ここで、stTはst の転置ベクトルである。
t+1 =et +stTδt …(4)
【0033】
自我ベクトルは、夫々に実数値である複数の要素からなる実数値ベクトルである。自我ベクトルをpとすると、自我ベクトルpは下記(5)式のように表される。
p={p1 ,p2 ,…,pm} …(5)
【0034】
自我ベクトルpに含まれる各要素pi は、人間の具体的な性格を数値で表している。例えば、自我ベクトルpは、以下のように、エゴグラムで自我を表すための五つの要素の夫々を表すp1 〜p5 からなる。
1 :CP(信念に従って行動しようとする父親のような心。自分の価値観や考え方を譲らず、批判的である。)
2 :NP(思いやりをもって他者のために世話をする母親のような心。優しく、受容的である。)
3 :A(事実に基づいて検討・判断する大人の心。冷静で客観的である。)
4 :FC(自分の欲求・感情に従って行動する自由な子供のような心。明るく、無邪気である。)
5 :AC(自分の感情を抑えて他人に良く思われようとする従順な子供の心。)
【0035】
感情ベクトルe及び自我ベクトルpからなる個性ベクトルをqとすると、個性ベクトルqは下記(6)式のように表される。
q={e1 ,e2 ,…,en,p1 ,p2 ,…,pm} …(6)
【0036】
また記憶部14は、個性ベクトルqを調整するためのフィルタベクトルを記憶している。フィルタベクトルは、本発明における調整データに相当する。人間は、自分の個性をある程度隠そうとする性質があるので、この性質をフィルタベクトルで表現する。フィルタベクトルは、個性ベクトルqと同数の要素からなり、各要素は実数値である。フィルタベクトルをFとすると、フィルタベクトルFは下記(7)式のように表される。
F={F1 ,F2 ,…,Fn,Fn+1 ,Fn+2 ,…,Fn+m } …(7)
【0037】
フィルタベクトルFの要素の内、F1 ,F2 ,…,Fnは感情ベクトルeに対応する要素であり、Fn+1 ,Fn+2 ,…,Fn+m は自我ベクトルpに対応する要素である。フィルタベクトルFに含まれる各要素Fi は−1≦Fi≦1を満たす。Fi =0である場合は、本来の個性に関わらず表層的には無個性になることを示す。Fi >0の場合は、本来の個性をある程度表に出すことを示す。Fi <0の場合は、本来の個性とは逆の個性を表に出すことを示す。本発明では、個性ベクトルqの各要素と、当該要素に対応するフィルタベクトルFの要素との乗算を取ることにより、個性ベクトルqを調整する。即ち、調整後の個性ベクトルは、{F11 ,F22 ,…,Fnn ,Fn+11,Fn+22,…,Fn+mm}となる。
【0038】
また記憶部14は、個性ベクトルq以外に応答文を生成する方法に影響する各種の設定内容を記録した設定データを記憶している。設定データには、応答文で使用する語尾、人工無脳からユーザへ質問する頻度、会話文に不明な単語が含まれる場合の対処法、擬似会話のログを保存する期間等が含まれる。会話文に不明な単語が含まれる場合の対処法としては、質問をする又は外部データベース3から検索する等の方法がある。また設定データには、応答文を出力して入力装置2のディスプレイに表示する際の表示フォントの初期設定、及び応答文と共に出力する画像の初期設定が含まれる。
【0039】
また記憶部14は、直近の擬似会話の内容を含む比較的短期間の擬似会話のログを記録した短期データと、比較的長期間の擬似会話のログを記録した長期データとを記憶している。擬似会話のログには、入力された会話文と出力された応答文とが含まれる。例えば、短期データは、最後若しくは現在のセッションにおける擬似会話のログ、又は現在から所定時間前までの期間に行われた擬似会話のログを記録している。また例えば、長期データは、過去に行われた一切の擬似会話のログを記録している。
【0040】
また記憶部14は、複数の単語を記録したデータベースである単語データを記憶している。単語データは、各単語間の関係をネットワークで表現した意味ネットワークを実現する構造のデータベースとなっている。図3は、意味ネットワークの例を示す概念図である。複数の単語は、お互いに矢印(リンク)で繋がっており、矢印には、である(is a)又は持つ(has)等の種類がある。矢印の根元の単語は下位概念であり、矢印の先の単語は上位概念である。具体的には、単語データは、上位概念の単語と下位概念の単語とを関連付けた階層構造のデータベースである。
【0041】
更に、単語データは、夫々の単語に関連付けて、当該単語を特徴付ける複数の数値からなる単語特徴ベクトルを記録している。単語特徴ベクトルは、本発明における単語特徴データに相当する。単語特徴ベクトルは、個性ベクトルqと同数の要素からなる実数値ベクトルである。各単語に関連付けられた単語特徴ベクトルは、設計者の主観等に基づいて任意に予め生成され、単語データに記録されている。単語特徴ベクトルを生成する際には、いくつかの単語について任意に単語特徴ベクトルを生成した後、意味ネットワークにおける各単語間の関係に基づいて各単語の単語特徴ベクトルを計算してもよい。例えば、対象の単語にi個の矢印を介して関係する単語の単語特徴ベクトルをwi とし、kを所定の整数とし、γを1未満の正の実数として、γi ・wi (i=1〜k)の要素の平均を要素としたベクトルを生成し、各要素が−1以上1以下となるように規格化することにより、対象の単語の単語特徴ベクトルを計算してもよい。ここで、平均として、相加平均、調和平均、加重平均及び一般化平均等、各種の平均を用いることができる。なお、擬似会話装置1は、一部の単語について単語特徴ベクトルを単語データに記録しておき、必要になった時点で対象の単語の単語特徴ベクトルを計算して単語データに記録する処理を行う形態であってもよい。
【0042】
また記憶部14は、複数の文を記録したデータベースである文データを記憶している。文データは、夫々の文に関連付けて、当該文を特徴付ける複数の数値からなる文特徴ベクトルを記録している。文特徴ベクトルは、本発明における文特徴データに相当する。文特徴ベクトルは、個性ベクトルqと同数の要素からなる実数値ベクトルである。各文に関連付けられた文特徴ベクトルは、文中に含まれる単語の単語特徴ベクトルの要素の平均を要素としたベクトルを作成することによって求められ、文データに記録されている。また文特徴ベクトルは、文の構造を分析した上で、構造上の役割に応じて各単語に重みを付け、文中に含まれる単語の単語特徴ベクトルの要素の重み付平均を計算することによって生成されてもよい。また文特徴ベクトルは、設計者の主観等に基づいて任意に生成されてもよい。なお、擬似会話装置1は、一部の文について文特徴ベクトルを文データに記録しておき、必要になった時点で対象の文の文特徴ベクトルを計算して文データに記録する処理を行う形態であってもよい。
【0043】
また記憶部14は、複数のテンプレート文を記録したデータベースであるテンプレート文データを記憶している。テンプレート文とは、一部の単語を不特定にした不特定部分を含んでいる文であり、不特定部分に単語を代入することにより通常の文を生成することができる。例えば、テンプレート文は、「あなたは*が好きですか?」、「必ず*をしなければならない。」及び「*を頂戴!」等の文であり、文中の*は不特定部分である。テンプレート文データは、夫々のテンプレート文に関連付けて、当該テンプレート文を特徴付ける複数の数値からなるテンプレート文特徴ベクトルを記録している。テンプレート文特徴ベクトルは、本発明におけるテンプレート文特徴データに相当する。テンプレート文特徴データは、文特徴データと同様にして生成される。
【0044】
また記憶部14は、応答文を出力する際に使用できる表示フォントの情報を記録したフォントデータを記憶している。フォントデータには、複数種類の表示フォントの情報が記録されている。一の表示フォントの情報には、その表示フォントを規定するための書体、スタイル、サイズ、色及び文字飾り等を設定した情報が含まれている。またフォントデータには、各種類の表示フォントの情報に関連付けて、その種類の表示フォントを特徴付ける複数の数値からなるフォント特徴ベクトルを記録している。フォント特徴ベクトルは、個性ベクトルqと同数の要素からなる実数値ベクトルである。各表示フォントを特徴づけるフォント特徴ベクトルの要素の値は、予め任意に定められている。特定の種類の表示フォントを特徴づけるフォント特徴ベクトルとして、特定の状態の個性ベクトルと同じベクトルが定められている。例えば、赤色で太字のゴシック体である表示フォントのフォント特徴ベクトルとして、怒りの状態を示す個性ベクトルと同等のベクトルが定められている。
【0045】
また記憶部14は、応答文と共に出力すべき画像の情報を記録した画像データを記録している。画像データには、複数種類の画像を表すデジタルデータが記録されている。画像を表すデジタルデータはビットマップ形式等の所定のデータ形式で構成されている。また画像データには、各種類の画像に関連付けて、その画像を特徴づける複数の数値からなる画像特徴ベクトルを記録している。画像特徴ベクトルは、個性ベクトルqと同数の要素からなる実数値ベクトルである。各画像を特徴づける画像特徴ベクトルの要素の値は、予め任意に定められている。特定の画像を特徴づける画像特徴ベクトルとして、特定の状態の個性ベクトルと同じベクトルが定められている。例えば、怒っているキャラクターの画像の画像特徴ベクトルとして、怒りの状態を表す個性ベクトルと同等のベクトルが定められている。
【0046】
また記憶部14は、複数のテンプレート応答を記録したデータベースであるテンプレート応答データを記憶している。テンプレート応答は、特定の会話文と応答文との組である。会話文及び応答文は、一部の単語を不特定にした不特定部分を含んでいてもよい。不特定部分は会話文と応答文とで共通していてもよく、互いに異なっていてもよい。テンプレート応答は、会話文が入力された場合に、入力された会話文が含まれるテンプレート応答に含まれる応答文を出力するためのものである。図4は、テンプレート応答の例を示す概念図である。図4中では、複数のテンプレート応答の夫々に番号を付して区別している。No.1のテンプレート応答は、会話文「私は*が好きです」と応答文「なぜ*が好きですか?」とを含む。文中の*は不特定部分である。No.1のテンプレート応答に従えば、「私は動物が好きです」という会話文が入力された場合は、「なぜ動物が好きですか?」という応答文が出力される。
【0047】
テンプレート応答データに記録された複数のテンプレート応答の間では、会話文及び応答文の両方が互いに異なっているものもあり、会話文及び応答文の一方が互いに共通になっているものもある。図4には、互いに会話文が共通している四種類のテンプレート応答を示している。No.2のテンプレート応答は、応答文「では*’のことを知ってる?」を含む。文中の*’は、不特定部分であり、*に対する下位概念又は同位概念の単語等、*に何らかの関連のある概念の単語であるとする。例えば、*に動物が対応した場合は、*’には動物に対する下位概念の魚、又は同位概念の植物等が対応する。No.2のテンプレート応答に従えば、「私は動物が好きです」という会話文が入力された場合、例えば「では魚のことを知ってる?」という応答文が出力される。なお、図4には会話文及び応答文の両方に不定部分を含む例を示しているが、テンプレート応答データに記録されたテンプレート応答は、会話文及び応答文の一方又は両方に不定部分を含んでいないものであってもよい。
【0048】
テンプレート応答データは、夫々のテンプレート応答に関連付けて、そのテンプレート応答を特徴付ける複数の数値からなるテンプレート応答特徴ベクトルを記録している。テンプレート応答特徴ベクトルは、個性ベクトルqと同数の要素からなる実数値ベクトルである。会話文が共通するテンプレート応答同士は、互いにテンプレート応答特徴ベクトルが異なっている。各テンプレート応答を特徴づけるテンプレート応答特徴ベクトルの要素の値は、予め任意に定められている。特定のテンプレート応答を特徴づけるテンプレート応答特徴ベクトルとして、特定の状態の個性ベクトルと同じベクトルが定められている。例えば、無関心さを示す応答文「*なんて興味ないなあ…」を含むNo.3のテンプレート応答には、無関心の状態を示す個性ベクトルと同等のテンプレート応答特徴ベクトルが関連付けられている。また例えば、否定的な反応を示す応答文「*なんて嫌い!特に*’とか最悪!」を含むNo.4のテンプレート応答には、否定的な反応をする状態を示す個性ベクトルと同等のテンプレート応答特徴ベクトルが関連付けられている。テンプレート応答特徴ベクトルは、本発明におけるテンプレート応答特徴データに相当する。
【0049】
また記憶部14は、擬似会話装置1が予め定められた所定の状態になった場合に応答文として出力すべき文を記録した固定文データを記憶している。例えば、固定文データには、所定のエラーが発生した場合に擬似会話装置1が出力すべきエラーメッセージが記録されている。また固定文データには、同一の会話文が繰り返しユーザから入力された場合に応答文として出力すべき文が、同一の会話文を既に入力されている回数に関連付けて記録されている。例えば、同一の会話文を既に入力されている一回の回数に関連付けて、「同じ内容ですよ」という文が記録され、二回の回数に関連付けて、「同じ内容ではつまらないのでやめてね」という文が記録され、三回以上の回数に関連付けて、「もう話したくはありません」という文が記録されている。
【0050】
また記憶部14は、擬似会話が従うべき会話ルールを記憶している。会話ルールは、会話文が疑問文である場合は応答文が疑問文であってはいけない、又は会話文と応答文とに含まれるキーワードの概念が離れすぎてはいけない等、擬似会話を不自然だと感じさせないためのルールである。
【0051】
外部データベース3は、一又は複数のコンピュータで構成されており、種々の単語に関係した文を記憶したデータベースである。外部データベース3は、記憶内容が随時更新されており、任意の単語に関連する文を当該単語に基づいて検索することができる構成となっている。例えば、外部データベース3は、各単語を説明する文を各単語に関連付けて記録した事典データベースである。また例えば、外部データベース3は、ウェブログ又は電子掲示板のデータを記録したデータベースであってもよい。擬似会話装置1は、URL(Uniform Resource Locator)等、外部データベース3へアクセスするために必要な情報を記憶部14に記憶している。なお、外部データベース3へアクセスするために必要な情報は、コンピュータプログラム41に含まれていてもよい。
【0052】
次に、本発明の擬似会話装置1が実行する処理を説明する。コンピュータプログラム41は、ユーザからの指示によって個性ベクトルqを定める初期設定処理、擬似会話を行う擬似会話処理、及び時間経過に伴って感情ベクトルeを変動させる感情変動処理を実行するためのプログラムを含んでいる。またコンピュータプログラム41は、個性ベクトルqを更新することによって人工無脳の個性を成長させる成長処理を実行するためのプログラムを含んでいる。
【0053】
図5は、擬似会話装置1が実行する初期設定処理の手順を示すフローチャートである。擬似会話装置1のCPU11は、RAM12にロードしたコンピュータプログラム41に従って、以下の処理を実行する。ユーザは、入力装置2を操作することにより、初期設定処理の開始要求を入力装置2へ入力し、入力装置2は、初期設定処理の開始指示を、通信ネットワークNを通じて擬似会話装置1へ送信する。擬似会話装置1は、通信インタフェース15で初期設定処理の開始指示を受信し、CPU11は、入力装置2との通信セッションを開始する処理を行う(S11)。このとき、CPU11は、初期設定処理を開始したことを示す情報を通信インタフェース15から入力装置2へ送信させる。入力装置2は、擬似会話装置1からの情報を受信し、単語を入力するための入力画面をディスプレイに表示する。ユーザは、入力装置2を操作することにより、任意の単語を入力装置2へ入力する。このとき、ユーザは、動物の名前又は手近にある文物の名前等、好みの単語を入力する。入力装置2は、入力された単語を擬似会話装置1へ送信し、擬似会話装置1は、送信された単語を通信インタフェース15で受信することにより、単語を入力される(S12)。
【0054】
CPU11は、次に、入力された単語の単語特徴ベクトルに基づいて個性ベクトルを生成する(S13)。具体的には、CPU11は、入力された単語を、記憶部14で記憶する単語データから検索し、検索した単語に関連付けて単語データに記録されている単語特徴ベクトルを読み出し、読み出した単語特徴ベクトルを個性ベクトルとする。このとき、検索した単語に関連付けて単語特徴ベクトルが記録されていない場合は、CPU11は、意味ネットワークにおける単語間の関係に基づいて単語特徴ベクトルを計算し、単語データに記録する処理を行う。なお、ステップS13では、CPU11は、単語特徴ベクトルをそのまま個性ベクトルとするのではなく、単語特徴ベクトルに対して何らかの演算を行うことにより個性ベクトルを生成してもよい。例えば、CPU11は、単語特徴ベクトルと同数の要素からなる予め定められたベクトルの転置ベクトルと入力された単語の単語特徴ベクトルとの積をとることにより、個性ベクトルを生成してもよい。この場合は、予め定められたベクトルに応じて単語特徴ベクトルを変更したベクトルが個性ベクトルとなる。
【0055】
なお、擬似会話装置1は、ステップS12で任意の文を入力され、ステップS13で文に基づいて個性ベクトルを生成する形態であってもよい。この形態の場合は、CPU11は、ステップS13で、入力された文の形態素解析を行い、文中に含まれる単語の単語特徴ベクトルを単語データから読み出し、単語特徴ベクトルの要素の平均を要素としたベクトルを作成することにより個性ベクトルを生成してもよい。またCPU11は、文中の最初の名詞等のキーワードを文から抽出し、キーワードの単語特徴ベクトルを個性ベクトルとする処理を行ってもよい。
【0056】
CPU11は、次に、生成した個性ベクトルを記憶部14に記憶させる(S14)。CPU11は、次に、人工無脳を特徴付けるための他の初期情報が入力装置2から入力されたか否かを判定する(S15)。個性ベクトルを生成するための単語以外の初期情報としては、人口無脳の応答文に含まれる語尾、人工無脳が好きな単語、嫌いな単語、及び特に興味のある単語がある。他に、初期情報には、表示フォントの初期設定、及び応答文と共に出力される画像の初期設定が含まれる。ユーザは、これらの初期情報を必要があれば入力する。入力装置2は初期情報を擬似会話装置1へ送信し、擬似会話装置1は、初期情報を通信インタフェース15で受信することにより初期情報を入力される。他の初期情報が入力された場合は(S15:YES)、CPU11は、入力された初期情報を記録するように、記憶部14で記憶する設定データを更新する(S16)。他の初期情報の入力がない場合(S15:NO)、又はステップS16が終了した後は、CPU11は、入力装置2との通信セッションを終了する処理を行い(S17)、初期設定処理を終了する。このとき、CPU11は、通信セッションを終了する直前に、初期設定処理を終了することを示す情報を入力装置2へ送信する。
【0057】
図6、図7、図8及び図9は、擬似会話装置1が実行する擬似会話処理の手順を示すフローチャートである。擬似会話装置1のCPU11は、RAM12にロードしたコンピュータプログラム41に従って、以下の処理を実行する。ユーザは、入力装置2を操作することにより、擬似会話処理の開始要求を入力装置2へ入力し、入力装置2は、擬似会話処理の開始指示を通信ネットワークNを通じて擬似会話装置1へ送信する。擬似会話装置1は、通信インタフェース15で初期設定処理の開始指示を受信し、CPU11は、入力装置2との通信セッションを開始する処理を行う(S201)。このとき、CPU11は、擬似会話処理を開始したことを示す情報を通信インタフェース15から入力装置2へ送信させる。入力装置2は、擬似会話装置1からの情報を受信し、会話文を入力するための入力画面をディスプレイに表示する。なお、擬似会話装置1は、初期設定処理を行ったときに通信セッションを終了せずに継続して擬似会話処理を実行してもよい。
【0058】
ユーザは、入力装置2を操作することにより、任意の会話文を入力装置2へ入力し、入力装置2は、入力された単語を擬似会話装置1へ送信する。擬似会話装置1は、送信された会話文を通信インタフェース15で受信することにより、会話文を入力される(S202)。CPU11は、次に、入力された会話文の形態素解析を行い、会話文を特徴付けるキーワードを抽出する(S203)。ステップS203では、CPU11は、会話文に含まれる名詞を抽出し、抽出した名詞の中から、「私」等のキーワードとしては相応しくないと予め定められた名詞を除去し、残った名詞の内で会話文中で最初に出現する名詞をキーワードとして抽出する。またCPU11は、会話文中に設定された好きな単語又は嫌いな単語が含まれる場合に、これらの単語をキーワードとして抽出する処理を行ってもよい。またCPU11は、会話文中に固有名詞が含まれる場合に固有名詞をキーワードとして抽出する処理を行ってもよい。またCPU11は、個性ベクトルに最も近い単語特徴ベクトルが関連付けられた単語をキーワードとして抽出する処理を行ってもよい。またCPU11は、キーワードとして相応しい名詞が会話文に含まれていない場合に形容詞等の他の品詞の単語をキーワードとして抽出する処理を行ってもよい。
【0059】
CPU11は、次に、記憶部14から個性ベクトルqを読み出し(S204)、フィルタベクトルFを用いた個性ベクトルqの調整を行うか否かを判定する(S205)。ステップS205では、CPU11は、予め定められたアルゴリズムで判定を行う。例えば、CPU11は、短期データに含まれる擬似会話の応答回数をカウントし、擬似会話の応答回数が予め定められた所定回数以下である場合は個性ベクトルqの調整を行うと判定し、擬似会話の応答回数が所定回数を超過した後は個性ベクトルqの調整を行わないと判定する。またCPU11は、逆の判定を行ってもよい。またCPU11は、予め定められた確率又は個性ベクトルqの関数で与えられる確率で個性ベクトルqの調整を行うか否かを決定してもよい。またCPU11は、抽出したキーワードに応じて判定を行ってもよい。例えば、CPU11は、キーワードが好きな単語である場合に個性ベクトルqの調整を行わないと判定するか、又はキーワードが嫌いな単語である場合に個性ベクトルqの調整を行うと判定してもよい。また例えば、CPU11は、「つまらない」又は「飽きた」等の所定の会話文を所定回数入力された場合に個性ベクトルqの調整を行うと判定してもよい。
【0060】
個性ベクトルqの調整を行うと判定した場合は(S205:YES)、CPU11は、個性ベクトルqの各要素にフィルタベクトルFの各要素を乗ずることにより、個性ベクトルqを調整する(S206)。調整された個性ベクトルqはRAM12に記憶される。フィルタベクトルFを用いて個性ベクトルqを調整することにより、個性ベクトルqで表される人工無脳の本来の個性と、調整後の個性ベクトルqで表される表層的な個性とを実現することができる。また状況に応じて、フィルタベクトルFを用いた個性ベクトルqの調整を行うか否かを切り替えることにより、会話に慣れると本来の個性が出やすくなる等、表層的な個性の変化を実現することができる。
【0061】
ステップS206が終了した後、又はステップS205で個性ベクトルqの調整を行わないと判定した場合は(S205:NO)、CPU11は、記憶部14が記憶する短期データに、入力された会話文と同一の会話文が所定数以上含まれているか否かを判定する(S207)。同一の会話文が短期データに所定数以上含まれている場合は(S207:YES)、CPU11は、入力された会話文と同一の会話文が短期データに記録された回数に関連付けられた文を固定文データから取得する(S208)。なお、固定文データには、ステップS207で用いる所定数以上の回数に関連付けて、文を記録してあることとする。例えば、所定数を1としておき、入力された会話文と同一の会話文が短期データに一回記録されている場合は、ステップS208では、一回の回数に関連付けられた「同じ内容ですよ」という文を取得する。尚、ステップS207で用いる所定数は2以上の数であってもよい。またステップS207では、CPU11は、同一の会話文が所定数以上連続して入力されたか否かを判定する処理を行ってもよい。
【0062】
ステップS207で同一の会話文が短期データに所定数以上含まれていない場合は(S207:NO)、CPU11は、記憶部14が記憶するテンプレート応答データに、入力された会話文に相当する会話文を含むテンプレート応答が記録されているか否かを判定する(S209)。ステップS209では、CPU11は、入力された会話文に実質的に一致する会話文を含むテンプレート応答を検索することにより、判定を行う。入力された会話文に実質的に一致する会話文は、入力された会話文に一致する会話文、又は入力された会話文からキーワードを除いた部分と不特定部分以外の部分が一致する会話文である。入力された会話文に相当する会話文を含むテンプレート応答が記録されている場合は(S209:YES)、CPU11は、テンプレート応答データから、入力された会話文に応じた一のテンプレート応答を選択する(S210)。ステップS210では、CPU11は、入力された会話文に相当する会話文を含むテンプレート応答が一つしかない場合に、該当するテンプレート応答を選択する。またステップS210では、CPU11は、入力された会話文に相当する会話文を含むテンプレート応答が複数ある場合に、テンプレート応答に関連付けられたテンプレート応答特徴ベクトルが個性ベクトルqに最も近い文を取得する。CPU11は、個性ベクトルqとテンプレート特徴ベクトルとの差のノルムを計算し、計算したノルムが最小となる文を取得する。またCPU11は、ノルムの逆数比に比例してテンプレート応答を選択する処理を行ってもよい。個性ベクトルqが調整されている場合は、ステップS211では調整された後の個性ベクトルqが使用される。
【0063】
CPU11は、次に、取得したテンプレート応答に含まれる応答文を用いて、文を生成する(S211)。ステップS210で選択したテンプレート応答に含まれる応答文が不定部分を含んでいない場合は、CPU11は、選択したテンプレート応答から応答文を抽出することにより文を生成する。また選択したテンプレート応答に含まれる応答文がキーワードに対応する不定部分を含んでいる場合は、CPU11は、応答文の不定部分にキーワードを代入することにより、文を生成する。また選択したテンプレート応答に含まれる応答文がキーワードの下位概念の単語に対応する不定部分を含んでいる場合は、CPU11は、キーワードの下位概念の単語を単語データから読み出し、読み出した単語を応答文の不定部分に代入することにより、文を生成する。
【0064】
ステップS208又はステップS211が終了した後は、CPU11は、取得した文から応答文を生成する処理を行う(S212)。ステップS212では、CPU11は、記憶部14に記憶している設定データに基づいて、不要な単語を削除する、主語を付け加える及び語尾を付加する等、文を整形することにより、文を応答文にする処理を行う。CPU11は、次に、応答文を出力する際に使用すべき表示フォント及び応答文と共に出力すべき画像を設定する処理を行う(S213)。ステップS213では、CPU11は、記憶部14で記憶するフォントデータから各表示フォントに関連付けられたフォント特徴ベクトルを読み出し、各フォント特徴ベクトルと個性ベクトルqとを比較する。具体的には、CPU11は、個性ベクトルqとフォント特徴ベクトルとの差のノルムを計算し、ノルムが最小となる表示ベクトルを選択し、選択した表示ベクトルのノルムが所定の閾値以下となったか否かを判定する。ノルムが閾値以下である場合は、CPU11は、選択した表示ベクトルを応答文を出力する際に使用する表示ベクトルに設定すべく、設定データに含まれる表示フォントの設定を変更する。ノルムが閾値より大きい場合は、CPU11は、表示フォントの設定は変更しない。同様に、CPU11は、ステップS213で、記憶部14で記憶する画像データから各画像に関連付けられた画像特徴ベクトルを読み出し、各画像特徴ベクトルと個性ベクトルqとの差のノルムを計算する。またCPU11は、計算したノルムが最小となる画像を選択し、選択した画像のノルムが所定の閾値以下となったか否かを判定する。CPU11は、ノルムが閾値以下である場合は、選択した画像を応答文と共に出力すべき画像に設定すべく、設定データに含まれる画像の設定を変更し、ノルムが閾値より大きい場合は、画像の設定は変更しない。
【0065】
CPU11は、次に、設定データで設定された表示フォントの情報、及び設定データで設定された画像を表すデジタルデータと共に、生成した応答文を入力装置2へ出力する処理を行う(S214)。ステップS214では、CPU11は、表示フォントの情報、画像及び応答文を通信インタフェース15から入力装置2へ送信させる。なお、ステップS214では、擬似会話装置1は、応答文に伴って他のデータをも出力する処理を行ってもよい。CPU11は、次に、入力された会話文、及び当該会話文に対して出力した応答文を、記憶部14が記憶する短期データに記録する(S215)。またCPU11は、応答文を出力してから経過した時間をカウントする。
【0066】
入力装置2は、擬似会話装置1から送信された表示フォントの情報、画像を表すデジタルデータ及び応答文を受信し、受信した応答文をディスプレイに表示する。このとき、入力装置2は、受信した表示フォントの情報に基づいた表示フォントで応答文を表示する。また入力装置2は、受信したデジタルデータで表される画像を応答文と共に表示する。応答文に伴った他のデータを受信した場合は、入力装置2は、応答文に加えて受信したデータを出力する。応答文を確認したユーザは、必要に応じて、応答文に対して再度会話文を入力装置2へ入力し、入力装置2は入力された会話文を擬似会話装置1へ送信する。また擬似会話を終了したいと思ったユーザは、入力装置2を操作することにより、擬似会話の終了要求を入力装置2へ入力し、入力装置2は、擬似会話の終了指示を擬似会話装置1へ送信する。
【0067】
ステップS215が終了した後は、CPU11は、入力装置2から送信された会話文を通信インタフェース15で受信することによる会話文の入力があったか否かを判定する(S216)。会話文を入力された場合は(S216:YES)、CPU11は、処理をステップS203へ戻す。会話文の入力がない場合は(S216:NO)、CPU11は、入力装置2から送信された擬似会話の終了指示を通信インタフェース15で受信することによる終了指示の入力があったか否かを判定する(S217)。終了指示の入力がない場合は(S217:NO)、CPU11は、最後に応答文を出力してから予め定められている所定時間が経過したか否かを判定する(S218)。所定時間がまだ経過していない場合は(S218:NO)、CPU11は、処理をステップS216へ戻す。ステップS217で終了指示を入力された場合(S217:YES)、又はステップS218で所定時間が経過した場合は(S218:YES)、CPU11は、入力装置2との通信セッションを終了する処理を行い(S219)、擬似会話処理を終了する。このとき、CPU11は、通信セッションを終了する直前に、擬似会話処理を終了することを示す情報を入力装置2へ送信する。
【0068】
ステップS209で、テンプレート応答データに、入力された会話文に相当する会話文を含むテンプレート応答が記録されていない場合は(S209:NO)、CPU11は、応答文の候補となる文を文データから取得するか否かを判定する(S220)。ステップS220以降で応答文を生成する方法としては、文データに記録された文を利用する方法と、外部データベース3に記憶された文を利用する方法と、テンプレート文を用いて文を生成する方法とがある。ステップS220は、応答文を生成する方法として文データに記録された文を利用する方法を用いるか否かを判定する処理である。ステップS220では、CPU11は、予め定められたアルゴリズムで、応答文を生成するために文データから文を取得するか否かを決定する。例えば、CPU11は、予め定められた確率又は個性ベクトルqの関数で与えられる確率で、文データから文を取得するか否かを決定する。また例えば、CPU11は、外部データベース3との通信速度を参照し、通信速度が所定値以下である場合に、文データから文を取得すると判定してもよい。また例えば、CPU11は、「つまらない」又は「飽きた」等の所定の会話文を所定回数入力された場合に、文データからは文を取得しないと判定してもよい。
【0069】
ステップS220で文データから文を取得すると判定した場合は(S220:YES)、CPU11は、文データに記録された複数の文を記憶部14から読み出す。CPU11は、次に、読み出した複数の文からなる全体集合Sを定義し、キーワードを含む文からなる正例集合Strue、及び全体集合Sと正例集合Strueとの差集合である負例集合Sfalse を生成する(S221)。負例集合Sfalse はSfalse =S\Strueで得られる。CPU11は、次に、応答文の候補となる文を正例集合Strueから取得するか否かを判定する(S222)。ステップS222では、CPU11は、予め定められたアルゴリズムで判定を行う。例えば、CPU11は、予め定められた確率又は個性ベクトルqの関数で与えられる確率で、文を正例集合から取得するか又は負例集合から取得するかを判定する。例えば、CPU11は、確率Pで文を正例集合Strueから取得すると判定し、確率1−Pで文を負例集合Sfalse から取得すると判定する。
【0070】
ステップS222で文を正例集合Strueから取得すると判定した場合は(S222:YES)、CPU11は、正例集合Strueが空集合であるか否かを判定する(S223)。正例集合Strueが空集合である場合は(S223:YES)、CPU11は、後述するステップS229へ進める。正例集合Strueが空集合ではない場合は(S223:NO)、CPU11は、正例集合Strueに含まれる文の内、文に関連付けられた文特徴ベクトルが個性ベクトルqに最も近い文を取得する(S224)。文特徴ベクトルをvとすると、ステップS224では、CPU11は、個性ベクトルqと文特徴ベクトルvとの差のノルム|q−v|を計算し、計算したノルムが最小となる文を取得する。またCPU11は、ノルムの逆数比に比例して文を選択する処理を行ってもよい。該当する文が複数存在する場合は、CPU11は、複数の文の中からランダムに一つの文を取得する。個性ベクトルqが調整されている場合は、ステップS224では調整された後の個性ベクトルqが使用される。
【0071】
CPU11は、次に、取得した文が入力された会話文と一致するか否かを判定する(S225)。なお、ステップS225では、CPU11は、個性ベクトルqと文特徴ベクトルとの差のノルムが所定の閾値以下となるか否かを判定することにより、取得した文が入力された会話文と実質的に一致するか否かを判定する処理を行ってもよい。取得した文が入力された会話文と一致しない場合は(S225:NO)、CPU11は、入力された会話文と取得した文との関係が会話ルールに合致しているか否かを判定する(S226)。例えば、CPU11は、会話文が疑問文であるのに対して、取得した文が疑問文である場合は、会話ルールに合致していないと判定する。
【0072】
ステップS226で、入力された会話文と取得した文との関係が会話ルールに合致している場合は(S226:YES)、CPU11は、記憶部14が記憶する短期データに、取得した文から生成した応答文が含まれているか否かを判定する(S227)。ステップS225で文が入力された会話文と一致する場合(S225:YES)、ステップS226で文が会話ルールに合致していない場合(S226:NO)、又はステップS227で文から生成した応答文が短期データに含まれている場合は(S227:YES)、CPU11は、取得した文を正例集合Strueから削除し(S228)、処理をステップS223へ戻す。なお、CPU11は、正例集合Strueを生成する際に、短期データに含まれる文を予め正例集合Strueから削除しておく処理を行ってもよい。
【0073】
ステップS222で文を負例集合Sfalse から取得すると判定した場合は(S222:NO)、CPU11は、負例集合Sfalse が空集合であるか否かを判定する(S229)。負例集合Sfalse が空集合ではない場合は(S229:NO)、CPU11は、負例集合Sfalse に含まれる文の内、文に関連付けられた文特徴ベクトルが個性ベクトルqに最も近い文を取得する(S230)。ステップS230では、CPU11は、ステップS224と同様の処理により文を取得する。CPU11は、次に、取得した文が入力された会話文と一致するか否かを判定する(S231)。なお、ステップS231では、CPU11は、個性ベクトルqと文特徴ベクトルとの差のノルムが所定の閾値以下となるか否かを判定することにより、取得した文が入力された会話文と実質的に一致するか否かを判定する処理を行ってもよい。取得した文が入力された会話文と一致しない場合は(S231:NO)、CPU11は、入力された会話文と取得した文との関係が会話ルールに合致しているか否かを判定する(S232)。入力された会話文と取得した文との関係が会話ルールに合致している場合は(S232:YES)、CPU11は、記憶部14が記憶する短期データに、取得した文から生成した応答文が含まれているか否かを判定する(S233)。ステップS231で文が入力された会話文と一致する場合(S231:YES)、ステップS232で文が会話ルールに合致していない場合(S232:NO)、又はステップS233で文から生成した応答文が短期データに含まれている場合は(S233:YES)、CPU11は、取得した文を負例集合Sfalse から削除し(S234)、処理をステップS229へ戻す。
【0074】
ステップS227で短期データに取得した文から生成した応答文が含まれていない場合(S227:NO)、又はステップS233で短期データに取得した文から生成した応答文が含まれていない場合は(S233:NO)、CPU11は、処理をステップS212へ進める。
【0075】
ステップS229で負例集合Sfalse が空集合である場合は(S229:YES)、CPU11は、正例集合Strueが空集合であるか否かを判定する(S235)。正例集合Strueが空集合ではない場合は(S235:NO)、CPU11は、処理をステップS224へ進める。
【0076】
ステップS220で文データから文を取得しないと判定した場合(S220:NO)、又はステップS235で正例集合Strueが空集合である場合は(S235:YES)、CPU11は、応答文の候補となる文をテンプレート文から生成するか否かを判定する(S236)。ステップS236では、CPU11は、予め定められたアルゴリズムで、テンプレート文から文を生成するか否かを判定する。例えば、CPU11は、予め定められた確率又は個性ベクトルqの関数で与えられる確率で、テンプレート文から文を生成するか否かを判定する。また例えば、CPU11は、外部データベース3との通信速度を参照し、通信速度が所定値以下である場合に、テンプレート文から文を生成すると判定してもよい。
【0077】
ステップS236でテンプレート文から文を生成すると判定した場合は(S236:YES)、CPU11は、記憶部14で記憶するテンプレート文データから、テンプレート文特徴ベクトルが個性ベクトルqに最も近いテンプレート文を取得する(S237)。テンプレート文特徴ベクトルをuとすると、ステップS237では、CPU11は、個性ベクトルqとテンプレート文特徴ベクトルuとの差のノルム|q−u|を計算し、計算したノルムが最小となるテンプレート文を取得する。またCPU11は、ノルムの逆数比に比例してテンプレート文を選択する処理を行ってもよい。該当するテンプレート文が複数存在する場合は、CPU11は、複数のテンプレート文の中からランダムに一つのテンプレート文を取得する。個性ベクトルqが調整されている場合は、ステップS237では調整された後の個性ベクトルqが使用される。
【0078】
CPU11は、次に、取得したテンプレート文の不特定部分にキーワードを代入することによって、文を生成する(S238)。CPU11は、次に、生成した文が入力された会話文と一致するか否かを判定する(S239)。生成した文が入力された会話文と一致しない場合は(S239:NO)、CPU11は、入力された会話文と生成した文との関係が会話ルールに合致しているか否かを判定する(S240)。入力された会話文と生成した文との関係が会話ルールに合致している場合は(S240:YES)、CPU11は、記憶部14が記憶する短期データに、生成した文から生成した応答文が含まれているか否かを判定する(S241)。ステップS239で文が入力された会話文と一致する場合(S239:YES)、ステップS240で文が会話ルールに合致していない場合(S240:NO)、又はステップS241で、生成した文から生成した応答文が短期データに含まれている場合は(S241:YES)、CPU11は、テンプレート文データから、テンプレート文特徴ベクトルが次に個性ベクトルqに近いテンプレート文を取得し(S242)、処理をステップS238へ戻す。ステップS241で文データに生成した文が含まれていない場合は(S241:NO)、CPU11は、処理をステップS212へ進める。
【0079】
ステップS236でテンプレート文から文を生成しないと判定した場合は(S236:NO)、CPU11は、外部データベース3からキーワードを含む任意の文を取得する(S243)。具体的には、CPU11は、所定のコマンドを通信インタフェース15に外部データベース3へ送信することにより、外部データベース3が記憶する文の中からキーワードを含む文を検索し、キーワードを含む任意の文を外部データベース3から送信される。CPU11は、次に、取得した文が入力された会話文と一致するか否かを判定する(S244)。取得した文が入力された会話文と一致する場合は(S244:YES)、CPU11は、処理をステップS243へ戻す。取得した文が入力された会話文と一致しない場合は(S244:NO)、CPU11は、入力された会話文と取得した文との関係が会話ルールに合致しているか否かを判定する(S245)。入力された会話文と取得した文との関係が会話ルールに合致していない場合は(S245:NO)、CPU11は、処理をステップS243へ戻す。
【0080】
ステップS245で、入力された会話文と取得した文との関係が会話ルールに合致している場合は(S245:YES)、CPU11は、記憶部14が記憶する短期データに、取得した文から生成した応答文が含まれているか否かを判定する(S246)。取得した文から生成した応答文が短期データに含まれている場合は(S246:YES)、CPU11は、処理をステップS243へ戻す。取得した文から生成した応答文が短期データに含まれていない場合は(S246:NO)、CPU11は、記憶部14で記憶している文データに、外部データベース3から取得した文が記録されているか否かを判定する(S247)。取得した文が文データに含まれていない場合は(S247:NO)、CPU11は、外部データベース3から取得した文を、記憶部14で記憶している文データに追加する処理を行う(S248)。ステップS248が終了した後、又はステップS247で文データに取得した文が含まれている場合は(S247:YES)、CPU11は、処理をステップS212へ進める。擬似会話装置1は、このように外部データベース3から文を取得することにより、擬似会話に利用できる語彙を増加させることができる。なお、CPU11は、ステップS236で無条件でテンプレート文から文を生成すると判定し、ステップS239で文が入力された会話文と一致する場合、又はステップS240で文が会話ルールに合致していない場合に、外部データベースから文を取得すべく処理をステップS243へ進める処理を行ってもよい。
【0081】
擬似会話装置1は、擬似会話処理と並行して、個性ベクトルqに含まれる感情ベクトルeを変化させる感情変動処理を実行する。図10は、擬似会話装置1が実行する感情変動処理の手順を示すフローチャートである。擬似会話装置1のCPU11は、RAM12にロードしたコンピュータプログラム41に従って、以下の処理を実行する。CPU11は、擬似会話処理と並行して、擬似会話処理により行われる擬似会話の回数をカウントする(S31)。CPU11は、次に、カウントした擬似会話の回数が所定回数になったか否かを判定する(S32)。所定回数は例えば10の倍数とする。カウントした擬似会話の回数が所定回数になった場合は(S32:YES)、CPU11は、擬似会話の回数に応じた外部摂動ベクトルδを生成する(S33)。外部摂動ベクトルδの各要素の値は、擬似会話の回数の関数で与えられる。例えば、ある要素の値は正の定数であり、別の要素の値はサイン関数に従って計算される。ある要素の値は正の定数であることは、その要素に対応する人工無脳の感情が擬似会話の繰り返しに伴って一定の割合で変化していくことを示す。またある要素の値がサイン関数に従って計算されることは、その要素に対応する人工無脳の感情が浮き沈みすることを示す。またステップS33では、CPU11は、外部摂動ベクトルδのいずれかの要素の値をランダムに決定してもよい。このように外部摂動ベクトルδを定め、外部摂動ベクトルδを用いて感情ベクトルeを変化させることにより、擬似会話の繰り返しにより人工無脳のユーザに対する感情が高まっていくこと又は人工無脳の感情が起伏すること等、人工無脳の感情の変動を表現することができる。
【0082】
CPU11は、次に、生成した外部摂動ベクトルδを用いて(4)式の計算を実行することで新たな感情ベクトルeを計算し、計算した感情ベクトルeを記憶部14に記憶させることにより感情ベクトルeを更新する(S34)。ステップS34が終了した後、又はステップS32で擬似会話の回数が所定回数ではない場合は(S32:NO)、CPU11は、擬似会話処理が終了したか否かを判定する(S35)。擬似会話処理がまだ終了していない場合は(S35:NO)、CPU11は、処理をステップS31へ戻す。擬似会話処理が終了した場合は(S35:YES)、CPU11は、感情変動処理を終了する。なお、本実施の形態においては、擬似会話の回数に応じて感情ベクトルeの変化を計算する処理を行ったが、擬似会話装置1は、擬似会話処理を実行中の経過時間を測定し、経過時間に応じて感情ベクトルeの変化を計算する処理を行う形態であってもよい。なお、擬似会話装置1は、その他のタイミングで感情変動処理を実行する形態であってもよい。例えば、CPU11は、ステップS207で同一の会話文が短期データに所定数以上含まれている場合に、感情変動処理を実行してもよい。
【0083】
擬似会話装置1は、ユーザの好みに合わせて個性ベクトルqを更新することによって人工無脳の個性を成長させる成長処理を実行する。図11は、擬似会話装置1が実行する成長処理の手順を示すフローチャートである。擬似会話装置1のCPU11は、RAM12にロードしたコンピュータプログラム41に従って、以下の処理を実行する。図11に示すように、CPU11は、インタラクティブGA(遺伝的アルゴリズム)を用いてユーザの評価の高い個性ベクトルqを生成する。GAは、複数のデータを用意し、個々のデータを、データ内容を遺伝子とした個体とみなし、複数の個体に交叉及び突然変異を行わせることで次世代の個体を生成し、次世代の個体から優秀な個体を選別することを繰り返すことにより、適切な個体を生成する手法である。ここで、交叉とは、交叉率に基づいて個体間で遺伝子の一部を入れ替える処理である。また突然変異とは、突然変異率に基づいて個体の遺伝子にランダムな摂動を与える処理であり、突然変異によって個体は微少な変化をする。インタラクティブGAは、優秀な個体を選別する際に、ユーザからの指示に基づいて選別を行う手法である。
【0084】
CPU11は、まず、計算に使用する個性ベクトルqの個体数Np 、最大世代Ng、交叉率Pc 及び突然変異率Pmを設定する(S401)。ステップS401では、CPU11は、個体数Np 、最大世代Ng、交叉率Pc 及び突然変異率Pmとして、予め定められた値を設定してもよく、ユーザが操作する入力装置2から入力された値を設定してもよい。CPU11は、次に、世代tを0に初期化する(S402)。CPU11は、次に、現在記憶部14に記憶している個性ベクトルqを含む複数の個性ベクトルを生成する(S403)。ステップS403では、CPU11は、ランダムに複数の個性ベクトルを生成し、生成した複数の個性ベクトルに現在の個性ベクトルqを加えた群を個性ベクトルの初期個体群としてRAM12に記憶する。初期個体群に含まれる個性ベクトルの数を個体数Np とする。即ち、CPU11は、(Np −1)個の個性ベクトルをランダムに生成する。
【0085】
CPU11は、次に、Np 個の個性ベクトルの夫々についてユーザから評価を受ける評価処理を行う(S404)。ステップS404では、CPU11は、個性ベクトルの夫々を用いて、図5〜7のフローチャートで説明した擬似会話処理を実行し、擬似会話を所定回数繰り返した後、入力装置2から評価点を入力される。ユーザは、自分の好む又は適切と感じる人工無脳の個性ベクトルにより高い評価点を与えるように、個性ベクトルの夫々に対して評価点を入力する。このようにして、Np 個の個性ベクトルの夫々について評価点が入力され、CPU11は、各個性ベクトルに関連付けて評価点をRAM12に記憶させる。CPU11は、次に、Np 個の個性ベクトルの中から評価点が最高である個性ベクトルをエリートとして選択する(S405)。評価点が最高である個性ベクトルが複数ある場合は、CPU11は、ランダムで一つのエリートを選択してもよく、複数のエリートを選択してもよい。CPU11は、選択したエリートの個性ベクトルをRAM12に記憶させる。
【0086】
CPU11は、次に、世代tの値が最大世代Ng の値より小さいか否かを判定する(S406)。世代tの値が最大世代Ng 値より小さい場合は(S406:YES)、CPU11は、Np 個の個性ベクトルをランダムに2個体づつペアリングし、各ペアを親として交叉率Pc で交叉を適用し、2個体の子を作る(S407)。ステップS407で用いる交叉は、一点交叉、一様交叉及び単峰性正規分布交差等、任意の方法を用いてもよい。ステップS407により、Np 個の個性ベクトルから次世代のNp個の個性ベクトルが生成される。CPU11は、次に、生成した次世代のNp 個の個性ベクトルの夫々に対して、突然変異率Pm の確率で突然変異を行わせる(S408)。CPU11が個性ベクトルを突然変異させる具体的な方法には、従来のGAで用いられている方法を用いればよい。
【0087】
CPU11は、次に、突然変異を適用した後の次世代のNp 個の個性ベクトルの何れかを、ステップS405で選択したエリートの個性ベクトルと入れ替えることにより、次世代のNp 個の個性ベクトルに旧世代のエリートの個性ベクトルを追加する(S409)。エリートと入れ替える個性ベクトルは、ランダムに選択すればよい。エリートを追加した後のNp 個の個性ベクトルを次世代個体群とする。なお、CPU11は、ステップS407及びS408で、エリート以外の個性ベクトルについて処理を行い、ステップS409では処理後の個性ベクトルにエリートを単純に加えることにより、次世代個体群を生成する処理を行ってもよい。CPU11は、次に、世代tをインクリメントする(S410)。CPU11は、次に、処理をステップS404へ戻して、次世代個体群に含まれる各個性ベクトルについて評価点を入力される評価処理を行う。
【0088】
ステップS406で世代tの値が最大世代Ng の値に等しい場合は(S406:NO)、CPU11は、選択したエリートの個性ベクトルを記憶部14に記憶することにより、個性ベクトルqを更新する(S411)。エリートの個性ベクトルが複数ある場合は、CPU11は、複数のエリートからランダムに一つの個性ベクトルを選択する。ステップS411が終了した後、CPU11は、成長処理を終了する。
【0089】
なお、本実施の形態においては、成長処理により個性ベクトルqを更新する処理を行ったが、擬似会話装置1は、同様の処理手順を有する成長処理によりその他のデータを更新する処理を行う形態であってもよい。例えば、擬似会話装置1は、個性ベクトルqに含まれる自我ベクトルpのみを成長処理により更新する形態であってもよい。また擬似会話装置1は、個性ベクトルqに加えて、感受性ベクトルs、フィルタベクトルF又は設定データに含まれる各種の数値等、人工無脳の個性に関係する要素を一次元的に並べたベクトルを成長処理により更新する処理を行う形態であってもよい。また擬似会話装置1は、まだ記憶部14に個性ベクトルqを記憶していない段階で成長処理を実行することにより、個性ベクトルqを生成する処理を行う形態であってもよい。
【0090】
以上詳述したごとく、本発明においては、擬似会話装置1は、会話文に対して生成する応答文を特徴付けるための個性ベクトルqを記憶しておき、ユーザから入力された会話文に応じて、個性ベクトルに基づいて応答文を生成する。このように、本発明においては、個性ベクトルを設定することによって、会話文に対する人工無脳による応答に個性を持たせることができる。また本発明においては、擬似会話装置1は、個性ベクトルqに応じて、応答文の語尾、応答文と共に出力する画像、及び応答文の表示フォントを調整する。これにより、見た目で人工無脳の個性がユーザに伝わりやすくなる。特に、感情ベクトルの変化に応じて画像及び表示フォントが変化するので、人工無脳の感情の変化がユーザに伝わりやすい。また本発明においては、擬似会話装置1は、ユーザから入力された単語又は文に基づいて個性ベクトルを生成することにより、ユーザからの指示に応じた個性を人工無脳に付与することができる。また本発明においては、擬似会話装置1は、インタラクティブGAを用いて、ユーザからの評価がより高くなるように個性ベクトルqを成長させる。このようにして、会話文に対して生成する応答文を特徴付けるための個性ベクトルqをユーザの好みに合わせて設定すると共に、ユーザの好みに合うように成長させることができるので、ユーザが人工無脳に対する愛着を抱き易くなる。また人工無脳の個性がユーザの好みに合ったものとなり、適切に成長するので、人工無脳による擬似会話にユーザが飽き難くなり、ユーザが人工無脳を長く愛用することも可能となる。
【0091】
なお、本実施の形態においては、一つの擬似会話装置1に対して、一つの入力装置2が通信ネットワークNを介して接続されている形態を示したが、擬似会話装置1には、複数の入力装置2が通信ネットワークNを介して接続されていてもよい。擬似会話装置1は、複数の入力装置2が接続されている場合は、夫々の入力装置2から入力された会話文に対して応答文を生成し、夫々の入力装置2に対して応答文を出力する処理を行う。複数の入力装置2が接続された擬似会話装置1は、一つの個性ベクトルを記憶する形態であってもよく、複数の入力装置2の夫々について個性ベクトルを記憶する形態であってもよい。
【0092】
また本実施の形態においては、通信ネットワークNを介して会話文の入力及び応答文の出力を行う形態を示したが、本発明は、通信ネットワークNを介さずに擬似会話の処理を行う形態であってもよい。例えば、擬似会話装置1は、PC、携帯電話機又はゲーム機等、ユーザによって使用されるコンピュータであり、キーボード等の入力部とディスプレイ等の出力部を備える形態であってもよい。この形態では、擬似会話装置1は、ユーザが操作する入力部から会話文を入力され、生成した応答文を出力部に出力する処理を行う。
【0093】
また擬似会話装置1は、本実施の形態における記憶部14が記憶するデータの一部又は全部を、通信ネットワークNを介して接続された記憶装置に記憶しておく形態であってもよい。この形態では、擬似会話装置1は、必要に応じて通信ネットワークNを介して記憶装置からデータを読み出し、擬似会話を行うための処理を実行する。
【産業上の利用可能性】
【0094】
本発明は、通信ネットワークNを介してユーザとの間で擬似会話を行う会話ロボットとして実用化できる。また本発明は、ウェブログ、電子メール又はツイッター等の方法によりユーザから入力されたコメントに対して応答文を返すシステムとして実用化できる。また本発明は、携帯電話機又はゲーム機等を擬似会話装置1とした会話ゲームとして実用化できる。
【符号の説明】
【0095】
1 擬似会話装置
11 CPU
14 記憶部
15 通信インタフェース
2 入力装置
3 外部データベース
4 記録媒体
41 コンピュータプログラム

【特許請求の範囲】
【請求項1】
会話文を入力する入力手段と、入力された会話文の形態素解析を行い、前記会話文に応じた応答文を生成する応答文生成手段と、生成した応答文を出力する手段とを備え、会話文の入力と応答文の出力との繰り返しでなる擬似会話を行う擬似会話装置において、
擬似会話を特徴付けるための複数の数値からなる特徴データを記憶する特徴データ記憶手段と、
複数の文を、前記特徴データと同数の数値からなり、夫々の文を特徴付ける文特徴データと関連付けて記憶してある文記憶手段とを備え、
前記応答文生成手段は、
前記入力手段により入力された会話文の形態素解析の結果に基づいて、前記会話文からキーワードを抽出する手段と、
前記文記憶手段が記憶している複数の文から、キーワードを含む文の集合、及び前記キーワードを含まない文の集合を作成する手段と、
特定のアルゴリズムに従って、応答文の候補となる文を、前記キーワードを含む文の集合及び前記キーワードを含まない文の集合のいずれから抽出するかを判定する手段と、
前記キーワードを含む文の集合から応答文の候補となる文を抽出すると判定された場合に、前記キーワードを含む文の集合から、文特徴データが前記特徴データに最も近い文を抽出する手段と、
前記キーワードを含まない文の集合から応答文の候補となる文を抽出すると判定された場合に、前記キーワードを含まない文の集合から、文特徴データが前記特徴データに最も近い文を抽出する手段と、
抽出した文を応答文とする手段と
を有することを特徴とする擬似会話装置。
【請求項2】
複数の単語を、前記特徴データと同数の数値からなり、夫々の単語を特徴付ける単語特徴データと関連付けて記憶してある単語記憶手段と、
前記入力手段により、単語又は文を入力され、
入力された単語に前記単語記憶手段で関連付けられている単語特徴データ、又は入力された文に含まれる単語に前記単語記憶手段で関連付けられている単語特徴データに基づいて、前記特徴データを生成する手段と、
生成した前記特徴データを特徴データ記憶手段に記憶させる手段と
を更に備えることを特徴とする請求項1に記載の擬似会話装置。
【請求項3】
一部の単語を不特定にした不特定部分を含んでいる複数のテンプレート文を、前記特徴データと同数の数値からなり、夫々のテンプレート文を特徴付けるテンプレート文特徴データと関連付けて記憶してあるテンプレート文記憶手段を更に備え、
前記応答文生成手段は、
特定のアルゴリズムに従って、応答文の候補となる文を、テンプレート文を用いて生成するか否かを判定する手段と、
応答文の候補となる文をテンプレート文を用いて生成すると判定された場合に、前記テンプレート文記憶手段で記憶している複数のテンプレート文から、テンプレート文特徴データが前記特徴データに最も近いテンプレート文を抽出する手段と、
抽出したテンプレート文の不特定部分に前記キーワードを代入した文を生成する手段と、
生成した文を応答文とする手段と
を更に有することを特徴とする請求項1又は2に記載の擬似会話装置。
【請求項4】
入力されるべき特定の会話文と応答文の候補になる文との組み合わせでなる複数のテンプレート応答を、前記特徴データと同数の数値からなり、夫々のテンプレート応答を特徴付けるテンプレート応答特徴データと関連付けて記憶してあるテンプレート応答記憶手段を更に備え、
前記応答文生成手段は、
前記入力手段により入力された会話文と実質的に同一の会話文が含まれるテンプレート応答が前記テンプレート応答記憶手段に記憶されているか否かを判定する手段と、
入力された会話文と実質的に同一の会話文が含まれるテンプレート応答が記憶されている場合に、入力された会話文と実質的に同一の会話文が含まれるテンプレート応答が単数であるときは、前記テンプレート応答を選択し、入力された会話文と実質的に同一の会話文が含まれる複数のテンプレート応答があるときは、前記複数のテンプレート応答から、テンプレート応答特徴データが前記特徴データに最も近いテンプレート応答を選択する手段と、
選択したテンプレート応答に含まれる応答文の候補になる文を用いて応答文を生成する手段と
を更に有することを特徴とする請求項1乃至3の何れか一つに記載の擬似会話装置。
【請求項5】
前記特徴データと同数の数値からなり、前記特徴データを調整するための調整データを記憶してある手段を更に備え、
前記応答文生成手段は、
前記特徴データを用いて応答文を生成する前に、前記特徴データに含まれる各数値に前記調整データ中の対応する数値を乗算することによって、前記特徴データを調整する手段を更に有すること
を特徴とする請求項1乃至4の何れか一つに記載の擬似会話装置。
【請求項6】
前記特徴データは、擬似会話に応じて変動する数値からなる変動データと、変動しない数値からなる非変動データとからなり、
前記特徴データ記憶手段が記憶する前記特徴データに含まれる変動データの数値を、擬似会話の継続に応じて変動させる手段を更に備えること
を特徴とする請求項1乃至5の何れか一つに記載の擬似会話装置。
【請求項7】
複数の特徴データを生成する手段と、
前記応答文生成手段に、複数の特徴データの夫々を用いて応答文を生成させ、複数の特徴データの夫々について、擬似会話に対する評価を示す評価点を入力される評価手段と、
遺伝的アルゴリズムを用いて、評価点の高い特徴データの遺伝子が残るように、複数の特徴データに交叉及び突然変異を行わせることにより、次世代の複数の特徴データを生成する遺伝手段と、
該遺伝手段及び前記評価手段での処理を繰り返した後に、評価点が最大である特徴データを、前記特徴データ記憶手段に記憶させる手段と
を更に備えることを特徴とする請求項1乃至6の何れか一つに記載の擬似会話装置。
【請求項8】
文を記憶してある外部のデータベースに接続されてあり、
前記応答文生成手段は、
特定のアルゴリズムに従って、応答文の候補となる文を、前記外部のデータベースから取得するか否かを判定する手段と、
応答文の候補となる文を前記外部のデータベースから取得すると判定された場合に、前記キーワードを含む文を前記外部のデータベースから取得する手段と、
取得した文を応答文とする手段とを更に有すること
を特徴とする請求項1乃至7の何れか一つに記載の擬似会話装置。
【請求項9】
コンピュータに、該コンピュータへ入力された会話文に応じた応答文を生成させる処理を実行させるコンピュータプログラムにおいて、
入力された会話文の形態素解析を行い、当該形態素解析の結果に基づいて、前記会話文からキーワードを抽出するステップと、
予め記憶された複数の文の内で抽出したキーワードを含む文の集合、及び前記キーワードを含まない文の集合を作成するステップと、
特定のアルゴリズムに従って、応答文の候補となる文を、前記キーワードを含む文の集合及び前記キーワードを含まない文の集合のいずれから抽出するかを判定するステップと、
前記キーワードを含む文の集合から応答文の候補となる文を抽出すると判定された場合に、会話文及び応答文からなる擬似会話を特徴づけるための複数の数値からなる予め定められた特徴データに、該特徴データと同数の数値からなって各文について予め定められている各文を特徴付ける文特徴データが最も近い文を、前記キーワードを含む文の集合から抽出するステップと、
前記キーワードを含まない文の集合から応答文の候補となる文を抽出すると判定された場合に、前記キーワードを含まない文の集合から、前記文特徴データが前記特徴データに最も近い文を抽出するステップと、
抽出した文を応答文とするステップと
を含む処理をコンピュータに実行させることを特徴とするコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate