(57)【要約】      （修正有）【課題】広い話題をカバーし、利用者の発話に的確に対応してしかも娯楽性が高い自然な会話を実現する。【解決手段】出版された著作物やネット上の著作物を、対話プログラムのベースとして、システム構築者が計算機の記録媒体に入力しておく。システムはその著作物を基にして、意味的ネットワークを、計算機のメモリー上に、構造体の配列として実装する。その意味的ネットワーク内部で、利用者の発言にマッチする文を最も高密度に格納している部分を、システムはパターン認識計算によって求める。その、マッチする文が密集する部分を、システムは、システムと利用者の話題の焦点であると見なし、その部分からシステムが文を選択して返答文として利用者に返す、それとともに、その焦点を中心に、システムが答える返答文の話題を、システムは意味ネットワーク上で自然に拡散させてゆく。【選択図】図２
2008310784.tif 000002
【特許請求の範囲】
意味的ネットワークをベースとして用いる対話プログラム
【請求項１】
同一の単語が二つの文の中でそれぞれ用いられている場合、ないしは、互いに類義語である二つの単語がそれぞれ二つの文の中で用いられている場合、前記の二つの文が互いに直接に連結した二文であると呼ぶ場合に、複数の文から成る集合体であって、構成要素である文の９０％以上が互いに直接ないしは間接に連結している事を特徴とし、かつ１０文以上から成る事を特徴とする前記複数の文から成る集合体を、文ベースの意味的ネットワーク、と呼ぶ場合、
処理手段と、記憶手段と、入力手段と出力手段を備え、
前記の処理手段は、著作物を処理して文ベースの意味的ネットワークを構築して、前記の記憶手段の中に記憶し、
前記の入力手段より、一文ないしは二個以上の文を入力された時に、
前記処理手段は、利用者が入力した前記一文ないしは二個以上の文と直接に連結した文をヒット文として前記の文要素の意味的ネットワークの中から検索し、しかも、前記処理手段は、前記の文要素の意味ネットワークの中でヒット文が密に分布している部分から前記ヒット文を優先的に選択し、
前記出力手段は、前期処理手段が選択した文を、前記処理手段から読み出して、返答文として出力することを特徴とする、
会話装置。
【請求項２】
前記返答文が利用者に提示された後に、前記入力手段からの入力された指示に従って、前期処理手段が意味ネットワークの中から、前記返答文に直接に連結した文を、次の返答文として選択し、前記処理手段から読み出して、返答文として出力することを特徴とする、請求項１の会話装置。
【請求項３】
会話装置と利用者が会話を続けた時、利用者の発言を会話装置が要約して利用者に提示する事を特徴とした、請求項１の会話装置。
【請求項４】
会話装置と利用者の会話のログを会話装置がとり、会話が終了した時点での日時を会話装置が記録し、前記日時をファイル名の中に明示的に含むファイルの中に、前記会話の前期ログを会話装置が記録媒体の中に記録する事を特徴とする、請求項１の会話装置。
【請求項４】
請求項１の文要素の意味的ネットワークの中にあるｊ番目のヒット文の近傍における、ヒット文の密度の低さの指標として、ｉ番目の任意のヒット文全部にわたる和、
ｓ＝Σ√√（ｉ−ｊ）ｘ（ｉ−ｊ）
を会話装置が計算し、ｓの値が低いヒット文ほど、より、ヒット文が密に分布している部分に存在していると会話装置が判定する事を特徴とした請求項１の会話装置。
【請求項５】
同一の単語が二つの文の中で用いられている場合、ないしは、互いに類義語である二つの単語がそれぞれ二つの文の中で用いられている場合、前記の二つの文が互いに連結した二文であると呼ぶ、請求項１の会話装置において、システムの構築者があらかじめ、キーワードを特定しておき、前記キーワードとして特定された単語のみを、前記単語として会話装置が認識する事を特徴とする、請求項１の会話装置。
【請求項６】
請求項１の会話装置において、システムの構築者があらかじめ、反キーワードを特定しておき、前記の反キーワードとして特定された単語ではない単語のみを、利用者が入力した前記一文ないしは二個以上の文の中からキーワードとして切り出す事を特徴とする、請求項１の会話装置。
【請求項７】
請求項１の会話装置において、会話装置が利用者に漢字かな混じり文を入力させ、会話装置は、利用者が入力した前記一文ないしは二個以上の文の中から、漢字を含む文字列をキーワードとして切り出し、ひらがなだけから成る文字列はキーワードとしては切り出さない事を特徴とする、前記の二つの文が互いに連結した二文であると呼ぶ、請求項１の会話装置。
【請求項８】
著作物から、システムを用いて、前記の文要素の意味ネットワークを算出する事を特徴とする、請求項１の会話装置であって、同一の単語が二つの文の中でそれぞれ用いられている場合、ないしは、互いに類義語である二つの単語がそれぞれ二つの文の中で用いられている場合、に前記の二つの文が互いに連結した二文であると呼ぶのみならず、著作物の中で互いに隣接する二文をも互いに連結した二文であると呼ぶ事を特徴とする、請求項１の会話装置。
【請求項９】
著作物から、会話装置を用いて、前記の文要素の意味的ネットワークを算出する操作として、処理手段は記憶手段中に格納されたプログラムに従って著作物の中にある文に通し番号をつけ、さらに、処理手段は、通し番号ｉの任意の文を、構造体の配列のｉ番目の要素の中に文字列として格納して、前記の文ベースの意味的ネットワークを構造体の配列として、計算機システム上で実装する事を特徴とする、請求項１の会話装置。
【請求項１０】
請求項１から請求項９までのいずれかに記載されている処理手段の処理をコンピューターに実行させる対話プログラム
【請求項１１】
請求項１から請求項９までのいずれかに記載されている処理手段の処理をコンピューターに実行させる対話プログラムを記録したコンピューター読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】本発明は、利用者と対話装置の対話において、広い話題に対話装置が対応しつつも、対話装置が利用者に的確に応答出来る、対話装置の技術に関する。
【背景技術】
【０００２】従来から、対話装置は、コンピューターを、対話プログラムというコンピュータープログラムで駆動して実現される事が多い。従来から実現されてきた対話プログラムは、限られた話題、限られた専門的な話題についてのみ利用者と会話するのに用いられるものが多かった。これは、広い話題を対話装置がカバーしようとすると、利用者が対話装置に入力した文に対する、対話装置の応答が散漫になってしまうためであった。【０００３】これを防ぐために、従来技術であるＥＬＩＺＡ型の対話プログラムにおいては、利用者が入力した文を対話装置が形態素解析して、その結果得られた文の中の要素を対話装置が取り出して、その部分を用いておうむ返しの返答文を対話装置が構築し、利用者に返答していた。
【非特許文献１】Ｊ．  Ｗｅｉｚｅｎｂａｕｍ，”ＥＬＩＺＡ−−Ａ  Ｃｏｍｐｕｔｅｒ  Ｐｒｏｇｒａｍ  Ｆｏｒ  ｔｈｅ  Ｓｔｕｄｙ  ｏｆ  Ｎａｔｕｒａｌ  Ｌａｎｇｕａｇｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｂｅｔｗｅｅｎ  Ｍａｎ  ａｎｄ  Ｍａｃｈｉｎｅ”，Ｃｏｍｍｕｎ．ＡＣＭ  １０［１］３６−４５（１９６６）
【０００４】しかし、ＥＬＩＺＡ型の対話プログラムでは、どうしても対話装置の返答が型にはまってしまっていて、利用者が知らない新しい情報を利用者が対話装置との対話から得るのが難しく、利用者から見て、対話装置との対話が単調に見えてしまう、という欠点があった。【０００５】広い話題に的確に答える技術としては、マイクロソフト社のアプリケーションソフトであるオフィスでヘルプ機能として活用されている、オフィスアシスタントが、挙げられる。オフィスアシスタントの対話装置は、マイクロソフト社製のソフトウェアーであるオフィスの使用方法を記述している膨大なマニュアルを、対話装置作成者がカテゴリー別に小分けしたものを、利用者への返答のためのベースとして用いていると考えられる。利用者が対話装置に対してなした質問に応じて、オフィスアシスタントは、その質問に関連の高そうなカテゴリーを全てコンピューターの画面上にリストアップ表示する。即ち、それら各カテゴリー毎の内容を表す短い文を、コンピューター上のオフィスアシスタントが利用者に対して画面表示し、利用者は、その短い文を、マウスを用いて選択する事によって、利用者が必要としている情報を含んでいそうなカテゴリーを利用者はオフィスアシスタントに指示する。すると、オフィスアシスタントは利用者が選択したカテゴリーの内容（ソフトウェアーの操作説明文）を、詳細にコンピューター画面上に表示する、という手法をとっている。利用者は、必要に応じて、画面上のマウス操作によって、リンクしている関連情報に、アクセスする事も出来る。オフィスアシスタント以外の技術としても、利用者の要望に応じて、話題を切り替える方法は、日本の特許出願にも見られる。
【特許文献１】特許公開２００５−１１０２８
【０００６】日本の特許出願が開示している関連したアプローチとしては、複数の対話プログラムを準備し、それを、適宜切り替えるという方法も提案されている。この方法に於いては、利用者が、利用者に対応している対話プログラムが切り替えようとする場合、対話装置側では、利用者に対応するためのシナリオを遷移させる。対話装置がシナリオを遷移させる際、対話装置と利用者との間の対話を、より自然に繋げてゆくため、技術的に解決すべき点がこれまで存在してきた。そのため、応答様式の連続性を改善する対話方法が幾つか提案されている、
【特許文献１】特許公開２００７−７９３９７
【０００７】さて、対話プログラムの技術分野から離れた、サイエンスの分野では、認知心理学者が中心となって、これまで、概念と概念の結びつきを説明する事を目的にする研究が多く行なってきている。認知心理学者たちは、この分野で非常に精度の高いモデルをも提案してきた。しかし、いずれも、サイエンスとしてのみの興味が中心で研究がなされ、コンピューター上で、対話プログラムを実装して、性能を改善する、という、実用的な分野への応用が考慮される事は、無かった。【０００８】ここで、ひとまず、認知心理学によって従来得られている知見を短く纏める。歴史的に見ると、まず、コリンズとキリアンが階層的ネットワーク・モデルを提案した。コリンズとロフタスは、この階層的ネットワーク・モデルを大きく修正して活性化拡散モデルを考案した。この活性化拡散モデルを用いると、意味記憶の概念表象に関する認知心理学の実験結果の殆どを、説明出来る。この活性化拡散モデルは、グラフによって視覚的に表現される事が多い。活性化拡散モデルを表現するグラフに於いては、各概念がそれぞれ一つのノードで表され、意味的に関連のある概念ノード同士がリンクで結び付けられて、意味的関連性に基づくネットワーク構造が形成される。このネットワーク構造を、意味的ネットワークと呼ぶ。図１に、意味的ネットワークの簡単な模式図を示す。概念間の結びつきは、その二つの概念の間の意味的関連が強いほど密接なものになっている。概念の間の持つ属性はその概念と直接結びついていると仮定されており、概念と同様に一つの属性が一つのノードとして表されていると考えられる。例えば、図１では、‘桜’という概念に、‘木’という属性が直接結合している。また、このモデルは、活性化の拡散という考え方を取り入れており、ある概念が処理された時には、その概念自身が活性化されるだけではなくて、その概念と結びついた意味的に関連のある概念に対しても、活性化が広がっていくと、考えている。このモデルは、意味記憶の概念表象に関する多くの実験結果を十分に説明する事が出来る。たとえば、先行刺激の処理が意味的に関連のある後続刺激の処理を促進するという、意味的プライミング効果の現象（１９７５年にメイヤーが発見した）も、活性化の拡散の考え方によってうまく説明されるのである
【非特許文献２】グラフィック認知心理学、森敏明、井上毅、松井孝雄、共著、サイエンス社  ２００６年  東京
【０００９】  従来から知られている認知心理学によれば、人間の持つ概念は、意味的ネットワークという図表で模式的に表す事が出来るのである。概念が人間の頭の中で次々に浮かんでくる様子は、意味的ネットワークのダイアグラムの中での活性化された部位の中心点が、次々に拡散していく様子によって、模式的に表現出来るのである。しかし、具体的に意味的ネットワークを構築するための方式や定義には様々なものがあり、しかも、技術的明晰さを以って、コンピューター上で、コンピュータープログラムによって、意味的ネットワークが実装された事は無かった。
【発明の開示】
【００１０】オフィスアシスタントが採用した方法によれば、対話装置は利用者の技術的質問に対して、極めて精度良く、回答を出す。しかし、対話プログラムのベースとして用いられるべきデータを、カテゴリーに分けるのには、高度な知識を持つ作業者の多大な労働が必要であると予想される。また、対話装置と利用者との会話の流れに、カテゴリー独特の断続があり（対話内容のカテゴリーが変わる時に、対話内容に大きな飛びが発生してしまう）、そのために、会話としての娯楽性や自然さや連続性にまだまだ改善の余地がある、という問題があった。
【発明が解決しようとする課題】
【００１１】本発明は、広い話題をカバーし、利用者の発話に的確に対応してしかも娯楽性が高い自然な会話を実現することを目的にするものである。
【課題を解決するための手段】
【００１２】広い話題をスムーズに会話するための方法を考案するために、本発明では認知心理学で活性化拡散モデルと呼ばれるモデルの知見を、発展・拡充させた新モデルを構築した。それをもとに、対話プログラムをコンピューター上で実装した。従来から言われている、意味的ネットワークという概念には普遍性がある。しかし具体的に、個々の意味的ネットワークをグラフで図示する場合は、実際に誰が意味ネットワークを構築したかよって、構築される意味的ネットワークが異なっている、という事実に本発明の発明者は注目した。この事実は、辞書やシソーラス（類語辞典）などの普遍的な情報源だけ用いて作成した意味的ネットワークでは、個別の具体的なケースをカバーしきれない事を強く示唆すると、本発明の発明者は考える。本発明では、本発明の発明者は、各個人の特性を如実にあらわすところの、各個人の著作物をベースとして用いて、一定のコンピュータープログラムに従って、コンピューター対話装置上で、その著作物独自の意味的ネットワークを構築する方法を考案した。
【００１３】  従来技術における意味的ネットワークのグラフにおいては、一つのノードは一つの概念を示すが、従来技術に於いては、一つの概念は単語によって表現されるのが普通であった（図１）。本発明が与える意味的ネットワークでも、一つのノードは一つの概念を示すのは従来と同じであるが、本発明では概念を単語によってではなく、文によって表現する。即ち、従来技術では、意味的ネットワークを図式的に表現したものは、互いに線分で結ばれた多数の単語の集合体であった。しかし、本発明の意味的ネットワークを図式的に表現したものは、互いに線分で結ばれた多数の文の集合体である。本発明で考案された意味的ネットワークを、文ベースの意味的ネットワークと呼ぶ事とする。
【００１４】先にも述べたように、学術的な観点からすると、意味的ネットワークの定義には様々なものがある。しかし、本発明では、辞書や類語辞典だけを用いるのではなく、著作物としての文章（例えば、出版された書籍や、インターネット上で公開された文章、演説や説教をテープ起こしして得られた文章など）をもベースとして用いて、各著作物に対して、コンピューターによって、各著作物固有の意味的ネットワークを構築する。利用者が入力文を、コンピューターのキーボードなどの入力手段を介して、対話装置に入力した場合、その入力文の中に含まれている単語を、対話装置（例えば、対話プログラムを搭載したコンピューター）は、切り出し、キーワードと見なす。コンピューターとプログラムの組み合わせによって対話装置を構築する事を、本発明は推奨するが、その代わりの方策として、対話装置を、カスタムＩＣやゲートアレーを使用した専用機器で構築しても差し支えない。そのキーワード、ないしは、そのキーワードの類義語を含む文を、対話装置は、文ベースの意味的ネットワークの中から探し、見つけ出した文に、対話装置はフラッグ１を立てる（印を付ける）。文ベースの意味的ネットワークの中で、印を付けられた文（印を付けられたノード）が最も密集して存在している部分が、話題の焦点であると、対話装置は判断し、密集して存在している部分から、印を付けられた文を対話装置は選んで、利用者に返答として返す。その際、あらかじめ、密度を計算するための一定の数学的な方法を決めておき、その数学的方法を実装するコンピュータープログラムによって、印の付けられた文の存在密度をコンピューターによって計算するのである。密度を計算するための、この方法の詳細は後で述べる。
【発明の効果】
【００１５】本発明は、利用者と対話装置の対話において、対話装置が話題の焦点の在り処を明確かつ具体的に密度として数値化する事によって、広い話題に対話装置が対応しつつも、対話装置が利用者からの個別の言葉に的確に応答出来る、対話装置を実現する。しかも、本発明の対話装置は、意味的ネットワークをベースとして用いるので、対話装置と利用者との間の会話で、話題となっている概念が、自然に遷移する。対話装置は、意味的ネットワーク構築する際、著作物をベースにする。その様にして得られた意味的ネットワークをベースとして、対話装置は利用者と対話するので、単なるオウム返しだけの対話の場合と違って、利用者は対話装置との会話によって、豊かな情報を獲得出来る。
【発明を実施するための最良の形態】
【００１６】対話装置が、著作物をベースにして、文ベースの意味的ネットワークを構築する際の最良の方法の一つを以下に述べる。全体の流れ図は、図２に示す。対話装置の構築者は、あらかじめ、著作物のコンテンツを対話装置の記憶手段（コンピューターの記憶素子）に入力しておく。即ち、ベースとして利用するべき著作物のコンテンツを、対話装置作成者は、対話装置内の記憶素子内にあらかじめ格納しておく。対話装置は、記録媒体に格納されたその著作物の中に含まれる文に、文番号を、通し番号で振る。文番号の振り方については、図６に流れ図を示して、後で詳しく説明する。【００１７】対話装置は、意味的ネットワークの一つのノードには一つの文を格納する。後に述べる様に、本発明の実施例では、この文ベースの意味的ネットワークをコンピューター上で実装するにあたって、本発明の発明者は、Ｃ言語でいうところの構造体の配列を用いる事を推奨する。この構造体を構造体Ａと呼ぶ事にする。対話プログラムをＣ言語で構築する場合には、著作物を文の集合体として見做し、任意の一つの文を構造体の配列の一つの要素の中に格納する事が望ましい。構造体の配列を使う事によって、コンピューター上でのコンパクトな操作で、文を処理する事が可能となる。【００１８】即ち、著作物の中の文の１番目の文は、構造体の配列の１番目の要素として、コンピューター対話装置のメモリーに格納する事が望ましいのである。この様にすると、一つの著作物全体を一つの構造体の配列として、コンピューターのメモリー内に格納出来る。この構造体の配列こそが、本発明でいうところの、文ベースの意味的ネットワークを、コンピューター上で実装したところのものである。この構造体の配列の任意の一つの要素は、文番号、文の中身、および、フラッグ、著者、既に回答文として用いられた事があるか否かの情報、という五つの情報を一つに括って、コンピューター内の記憶装置内に記録したところのものである。図３に構造体Ａの一例の一部分を示す。既に回答文として用いられた事があるか否かの情報は、対話プログラム起動直後には初期値としてはすべてＮＯとしておく（図２、図５参照）。対話プログラム起動後に回答文として用いられたら、その時点でＹＥＳにする。【００１９】  “意味的ネットワークの一つのノードには一つの文を格納する”という事を、‘構造体Ａの配列’という情報技術用語を用いて、より具体的に表現すると、“対話装置が、任意のＪに対して、構造体Ａ［Ｊ］．文の中身、に、著作物のＪ番目の文を格納する”となる（図２参照）。会話プログラム内で実装されるこの操作の流れ図を、図６に示す。【００２０】ある著作物の中で隣接している二つの文が在った際には、対話装置はそれら二つの文を、それぞれ、互いに直接結合している二つのノードの中に格納するものとする。同一の単語が二つの文の中で用いられている場合には、それら二つの文が直接連結しているものと見なし、たとえ、それら二つの文が著作物の中では隣接していなくても、対話装置は、それらの二つの文を格納しているノードは、本発明が提案する文ベースの意味的ネットワークの中でも直接結合しているノードである見なしても差し支えない。類語辞典の中で互いに類語とされてい���二つの単語が、それぞれ、二つの文の中で用いられている場合には、対話装置は、それらの二つの文を格納しているノードは、本発明が提案する文ベースの意味的ネットワークの中では直接結合しているものとみなしても、差し支えない。【００２１】対話装置が使用する意味的ネットワークとしては、単一の著作物から構成されたものを用いるのが最良であるが、二個以上の著作物から二個以上の文ベースの意味的ネットワークを構成して、対話装置で使用しても差し支えない。但し、著作物の著者が二名以上である場合には、意味的ネットワークの一つのノードには、文のみを格納するのではなく、著作物の著者名をも格納する事が好ましい。【００２２】本発明を実施するための最良の方法の一つとして、対話装置は、利用者の発言内容を逐一記録する事が望ましい。計算機上で、利用者の発言内容の逐一記録する際のデータ構造としても、Ｃ言語でいうところの構造体を用いる事が望ましい。即ち、利用者が一個の文を入力文として対話装置に入力した場合には、それを構造体Ｂの配列の一要素内に格納する事が望ましい。もっと具体的に言えば、対話装置は、利用者の要望に応じて、利用者による入力文を主語と述語に分けて、それぞれを、構造体Ｂ［Ｌ］．主語、構造体Ｂ［Ｌ］述語、に格納する事が望ましい（図２参照）。しかし、利用者が、入力文を主語と述語に分けない事を望んだ場合には、対話装置は、入力文を、一文として、構造体Ｂ．文の中身、に格納してもよい（図４参照）。【００２３】次に、先にも述べた様に、対話装置はその入力文の中から、キーワードを切り出す（図２参照）。対話装置がキーワードを切り出す方法としては、利用者が入力した文を対話装置が形態素解析して単語に分割する方法があげられる。あらかじめ、助詞等の意味の軽い単語は反キーワードとしてあらかじめ対話装置の構築者が登録しておき、対話装置は、対話装置が切り出した単語の内で、除外語以外の単語を全て、キーワードと見なしても良い。あるいは、形容詞や名詞や動詞等の、意味の重い単語をあらかじめ重要語として対話装置構築者が登録しておき、対話装置が切り出した単語のうちで、重要語として登録された語だけを、対話装置がキーワードとして切り出しても良い。【００２４】しかし、日本語の漢字カナ混じり文においては、多くの場合、意味の重い単語は、漢字を含むのが常であり、平仮名だけから成り立つもので意味の重い単語は稀である。従って、日本語の漢字カナ混じり文を利用者が対話装置に入力した場合には、対話装置はまず、全角二文字からなる文字列をすべて、その入力文の中から切り出し、切り出した全角二文字から成る文字列のうちから、漢字を含むものを、有意なキーワードと見なし、ひらがなだけからなる全角二文字は意味が薄い文字列として捨て去る、という方法を取る事が望ましい。この方法によれば、キーワード集や、反キーワード集を使わなくても、精度の比較的高いキーワード切り出しを、対話装置が簡便に実行する事が出来る。即ち、全角文字、２文字から成る文字列であって、一文字目に平仮名を含まないものを、キーワードとして切り出すだけでも、相当、精度の高いキーワード切り出しが、複雑な形態素解析をしなくても実行出来る。この方法の流れ���を、図７に示す。【００２５】次に、対話装置は、文ベースの意味的ネットワークの中から、前記キーワードないしは、キーワードの類語を少なくとも一個含む文を全て検索し、その文を格納したノードにフラッグを立てる（印を付ける）。但し、その文が、既に対話装置から利用者への返答文として一度でも使われたものであるならば、フラッグは立てない。同じ事をもう少し詳しく言うと、対話装置は、構造体Ａの配列を、第ゼロ要素、第１要素、第２要素、と参照していき、キーワードを含む文を格納している要素を見付けたら、その要素のフラッグを、オフからオンに変える。この事を、構造体という技術用語を用いて表現すると、
“任意のＪに対して、構造体Ａ［Ｊ］．回答として用いられた事在り＝ＮＯ  であり、
かつ、
構造体Ａ［Ｊ］．文の中身  がキーワードを含むならば、
構造体Ａ［Ｊ］．フラッグ＝１、と対話装置はする”
となる（図２参照）。
対話装置がより柔軟に、利用者に返答するようにしたい場合には、
“任意のＪに対して、
構造体Ａ［Ｊ］．回答として用いられた事在り＝ＮＯ  であり、
かつ、
構造体Ａ［Ｊ］．文の中身  がキーワードないしはキーワードの類語を含む
ならば、
構造体Ａ［Ｊ］．フラッグ＝１、と対話装置はする”
としても、差し支えない。この際、二つの単語が類語であるかないかは、類語辞典を用いて判断する事が望ましい。類語辞典としては、例えば、ＲＯＧＥＴ‘Ｓ  ＩＮＴＥＲＮＡＴＩＯＮＡＬ  ＴＨＥＳＡＵＲＵＳ  ＦＯＵＲＴＨ  ＥＤＩＴＩＯＮ，及び、ＦＩＦＴＨや、角川類語新辞典を用いる事が望ましい。【００２６】フラッグを立てられたノードが二個以上あるいはそれ以上多数個存在する場合には、対話装置は、文ベースの意味的ネットワークの中で、印を付けられた（フラッグ＝１の）ノードが密集している部分を、パターン認識の手法によって、探し出す事が望ましい。本発明の発明者は、この、印を付けられたノードが密集している部分こそが、利用者と対話装置との間の会話の焦点であると考える。フラッグ＝１、が付与された文が密集している部分こそが、利用者が最も興味を持っている話題の中心に、非常に高い確率で符合する、という事実を本発明の発明者は発見したのだ。会話の焦点の中に含まれており、かつ、印が付けられている（フラッグ＝１の）文を、対話装置は返答として利用者に返す。こうして、対話装置は、利用者の言葉に対して焦点を外す事が少ない、的を得た回答が出来る。【００２７】マーカーが付けられた文（ヒット文）が密集している部分を、パターン認識の手法を用いて、特定するためには、対話装置は、ヒット文の密度の低さの指標ｓを計算する事が望ましい。以下に、対話プログラムが指標ｓを計算する具体的な方法を述べる。【００２８】Ｉ番目の文が、そのキーワードないしはそのキーワードの類語を含んでいる文、即ちヒット文（フラッグ＝１のノードに格納された文）であったとする。その時、ある特定のヒット文（Ｊ番目のヒット文）の近傍における、ヒット文の密度の低さの指標Ｓを、数式で定義する。即ち
“対話装置は、構造体Ａ［Ｊ］．フラッグ＝１、なる任意のＪに対してＳ（Ｊ）を計算する”（図２参照）のだ。
そのための最良の方法の一つを、以下に述べる。即ち、文ベースの意味的ネットワークの中で、任意のヒット文の文番号をＩとする時、全部のＩにわたる和、
Ｓ（Ｊ）＝Σ√√（Ｉ−Ｊ）×（Ｉ−Ｊ）、
を計算する。ここで、Σは、全てのＩについての和をあらわす。この計算を対話プログラム内で実行するための流れ図を、図９に示す。Ｓの値が高いヒット文ほど、より、ヒット文が疎に分布している部分に存在していると対話装置は判定する。逆に言うと、Ｓの値が低いヒット文ほど、より、ヒット文が蜜に分布している部分に存在していると対話装置は判定する。そこで、“対話装置は、Ｓ（Ｊ）に最小にするＪを探す”（図２参照）。Ｓ（Ｊ）に最小にするＪを探す操作を対話プログラムが実行する際の流れ図を図１０に示す。
Ｓの値に最小値を与えるＪの値を対話装置が計算で算出し、
そのＪの値に対して、対話装置が構造体Ａ［Ｊ］．文の中身、を利用者に返せば、
対話装置は、利用者の言葉に対して焦点を外す事が少ない、的を得た回答をした事になる。【００２９】以下に、本発明の実施形態をさらに具体的に述べる。【００３０】利用者が入力した文に対して、対話装置がＪ番目のヒット文を最初の返答として返した場合、利用者が、「どうして？」と尋ねた場合には、対話装置はＪー１番目の文を返答し、利用者が、「それで？」と尋ねた場合には、対話装置はＪ＋１番目の文を返答する事が望ましい（図２参照）。【００３１】利用者が入力した文に対して、対話装置あるヒット文を、最初の返答としてユーザーに返した場合、利用者が続けて二個目の返答を対話装置に求めた場合には、対話装置が一回目の返答に用いたヒット文の文番号に、文番号が最も近いヒット文を、対話装置は利用者に二個目の返答文として返答する事が望ましい。もちろん、利用者が要望した場合には、対話装置が一回目の返答に用いた文の文番号に、文番号が最も遠いヒット文を、対話装置は利用者に二個目の返答文として返答しても良い。【００３２】対話装置が利用者に返答文を返した後に、利用者が次の入力文を対話装置に入力した場合には、利用者の一回目の入力文を処理したのと同じ処理を繰り返せば良い（図２参照）。【００３３】利用者が対話装置と会話を継続した場合、前にも述べた様に、利用者の発言した文を対話装置は、コンピューター対話装置内の記憶手段内に蓄積していく事が望ましい。すると、利用者が発言した文の集合体が得られる。文と文の結合関係を一つ、ないしは二つ以上、対話装置構築者があらかじめ定義しておき、対話装置はその定義に従って、利用者が発言した文の集合体から、文ベースの意味的ネットワークを構築する。この文ベースの意味的ネットワークを現すのに使う構造体を、構造体Ｂと呼ぶ。この文ベースの意味的ネットワーク図式的にあらわすと、ノード（文）とエッジ（結合関係）から成るグラフが構成される。このグラフが枝分かれトポロジー、即ち、樹状のトポロジーを持つ場合は、枝分かれしているグラフには、必ず、根元に相当するノードの文が存在する。本発明では、この、根にあるノードの文、ないしはそれに近いノードの文は、利用者の一連の発言の要である、即ち根幹部分であると見なし、この文を対話装置は、利用者の一連の発言の内容を要約する文であると見なす。逆に、枝分かれしているグラフで末端の部分（グラフの葉の部分）は、重要性の低い文であると、対話装置は見なす。この要の文、即ち、根幹部分の文を対話装置が利用者に、要約文として返答すると、利用者は自らの考えのポイントを改めて明確にされて、自らで自分の考えを整理するのを助けられる。【００３４】ここで、具体的に文章（利用者が発言した文の集合体）の要約の作り方を示す。まず、文の集合に含まれるすべての文を対話プログラムは構造体の配列（構造体Ｂの配列）に格納する。この際、一個の構造体の配列の要素には、一個の文を格納するのが良い。これを実装するため、図２では、あらかじめ
“Ｌ＝０”、“カウント＝０”
としておき（図２参照）、
“構造体Ｂ［Ｌ］．主語  ＝  入力文の主語”
“構造体Ｂ［Ｌ］．述語  ＝  入力文の述語”
というふうに、入力文を一個、構造体Ｂの配列の第Ｌ成分に代入し終わったら、
“Ｌ＝Ｌ＋１”としておく（図２参照）。対話装置構築者は、構造体Ｂの配列の各要素にフラッグをあらわす変数をも加えておく事が望ましい。構造体Ｂの配列に格納された文を対話プログラムが要約する流れ図は、図１１に示す。即ち、利用者が発言した文の集合体の中の任意の文に対して、その文の述語を記している文字列の中に、利用者が発言した他のある文の中で主語として用いられている単語が含まれているかどうかを対話装置はチェックする。そして、文の述語を記している文字列の中に、他のある文の中で主語として用いられている単語が含まれている文は、対話装置はこれをグラフの根か枝であると見なして、対話装置はそのフラッグ変数の値を０のままにしておく即ち、“構造体Ｂ［Ｊ］．フラッグ＝０”とする（図６参照）。文の述語を記している文字列の中に、他の任意の文の中で主語として用いられている言葉をあらわす文字列を、一つも含まない文は、対話装置は、これをグラフの葉と見なして、フラッグ変数の値を０から１に変える。即ち“構造体Ｂ．［Ｊ］．フラッグ＝１”とする（図６参照）。【００３５】例えば、
Ａ：東京は日本の首都だ。
Ｂ：日本は東洋の一部だ。
Ｃ：東洋には古い歴史がある。
Ｄ：日本には様々な祭りがある。
という、文Ａ，Ｂ，Ｃ、Ｄがある場合、Ａが根であり、Ｂが枝であり、ＣとＤが葉である。【００３６】次に対話プログラムはフラッグ変数の値が１である文を全て、文の集合体から除外する。そして、除外し終えたら、カウントを０から１に上げる（図１１参照）。残った文の集合体の任意の要素は、元々の文の集合（利用者が発言した文の集合体）をあらわすグラフの根ないしは枝であって、葉ではない。故に、文の要点、ないしは、要点に近い文は、残った文の集合体の中に含まれていると、対話プログラムは判定する。【００３７】必要に応じて、残った文の集合体に対して、対話プログラムがグラフを与え、その新たなグラフから対話プログラムが葉を除外する、という操作を対話プログラムが繰り返して、操作を一回終える毎に、カウントを一ずつ加えて行っても良い（図１１参照）。この様にして、何段階にもわたって葉を除外する手続きを対話プログラムが続けて、カウントを上げていくと、根ないしは根に近い枝（根幹）のみが残るので、残った文を、対話プログラムは要約度の高い要約文と見なすのである。図１１では、この操作をカウント２まで繰り返している例を示す。対話装置は、対話装置と利用者とがとりかわした対話のログをテキストファイルとして、日付付きで記録する事が望ましい。【００３８】本発明を実装するコンピューターとしては、ＤＥＬＬ社のデスクトップコンピューター、ディメンジョン８４００を用いた。入力手段としてはＤｅｌｌ  Ｑｕｉｅｔ日本語キーボードとＤｅｌｌマウスを備え、処理手段としての、ＣＰＵはインテルＰｅｎｔｉｕｍ（Ｒ）４プロセッサー（３ＧＨｚ）、記憶手段としては、１６０ＧＢハードディスクと、１ＧＢのメモリーを備えている。出力手段としては、１７インチのＴＦＴモニターを使用している。ＯＳとしては、マイクロソフト社製のウィンドウＸＰ、プログラミング言語としては、Ｃ言語を用い、Ｃ言語のコンパイラーとしては、ＶｉｓｕａｌＣ＋＋バージョン４を用いた。コンピューター対話装置の模式図を図１２に示す。ＶｉｓｕａｌＣ＋＋バージョン４使用のための優れた参考書としては、
【非特許文献２】プログラミングＷｉｎｄｏｗｓ９５  Ｃｈａｒｌｅｓ  Ｐｅｔｚｏｌｄ著  Ｍｉｃｒｏｓｏｆｔ  Ｐｒｅｓｓが、あげられる。
【実施例】
【００３９】以下に本発明の対話プログラムと利用者との対話の例を示す。【００４０】ようこそ！何か私にお話ください．
対話装置が受け答えをするので、思い付く事をすべて付け加えて下さい。
Ｙｏｕ  ｓａｉｄ：疲れを取るには風呂が良い．
対話装置：納豆は夜食べると良いと考えられます
Ｙｏｕ  ｓａｉｄ：私は良い食事を取りたい．
対話装置：ですから、塩分の取り過ぎということにはならないでしょう
対話装置：カリウムを含む食材を選べば、カリウムはナトリウム（塩分）を私たちの体から排出してくれます
Ｙｏｕ  ｓａｉｄ：カリウム
対話装置：果物にはカリウムが含まれているので、果物を食べると、血圧を下げてくれる効果が期待されます
Ｙｏｕ  ｓａｉｄ：気分転換に運動をしたい．
対話装置：手軽な運動を継続して行うには
対話装置：適度な運動を、日常生活の中で継続して行うことが重要でしょう
対話装置：「バス停を１つか２つ手前で降りて歩く、買い物の時、ついでに散歩する、階段を使う、用事の合間にラジオ体操する」など、自分の生活の流れに合わせて、手軽な運動を、行なっていきましょう
Ｙｏｕ  ｓａｉｄ：ダイエットしたい．
対話装置：健康を維持しながら、効果的にダイエットするには、炭水化物、たんぱく質、脂質、ビタミン、ミネラル、の五大栄養素をバランスよくとることが必要です
対話装置：特に、ほとんどのビタミンとミネラルは体内では合成できないので、必ず食事からしかとれません。
【産業上の利用可能性】
【００４１】本発明には、引きこもりのため、医師と会話するのにも苦痛を感じる人の治療の道具の一つとしての用途、娯楽のための用途、オンラインマニュアルとしての用途、教材作りのための機材としての用途が考えられる。
【図面の簡単な説明】
【図１】  従来技術における意味的ネットワークの一例
【図２】  対話プログラム対話装置の全体の流れ図
【図３】  構造体Ａの一例
【図４】  構造体Ｂの一例
【図５】  対話装置が、任意のＭに対して  構造体Ａ［Ｍ］．回答として用いられた事在り＝ＮＯ  とする流れ図
【図６】  任意のＪに対して、対話装置が構造体Ａ［Ｊ］．文の中身に、著作物の文を一文ずつ順に格納する流れ図
【図７】  対話装置が入力文から、キーワード［０］、キーワード［１］、キーワード［２］、・・・を切り出す流れ図
【図８】  対話装置が、任意のＪに対して、構造体Ａ［Ｊ］．回答として用いられた事在り＝ＮＯ  であり、かつ、構造体Ａ［Ｊ］．文の中身  がキーワードを含むならば、構造体Ａ［Ｊ］．フラッグ＝１  とする、流れ図
【図９】  対話装置が、構造体Ａ［Ｊ］．フラッグ＝１なる任意のＪに対してＳ（Ｊ）を計算する流れ図
【図１０】  対話装置がＳ（Ｊ）に最小値を与えるＪを探す流れ図
【図１１】  対話装置が、構造体Ｂに格納された文を要約する流れ図
【図１２】  対話装置
【図１】
2008310784.tif 000003
【図２】
2008310784.tif 000004
【図３】
2008310784.tif 000005
【図４】
2008310784.tif 000006
【図５】
2008310784.tif 000007
【図６】
2008310784.tif 000008
【図７】
2008310784.tif 000009
【図８】
2008310784.tif 000010
【図９】
2008310784.tif 000011
【図１０】
2008310784.tif 000012
【図１１】
2008310784.tif 000013
【図１２】
2008310784.tif 000014