(57)【特許請求の範囲】
【請求項１】
既存の文書情報および所定の文書情報に関連する関連情報を、情報を表示する表示部に表示させることにより、前記関連情報をユーザに提示する情報処理装置において、
前記既存の文書情報に対応付ける前記関連情報を取得する取得手段と、
前記所定の文書情報に基づいて、前記既存の文書情報の検索方法を選択する検索方法選択手段と、
前記検索方法選択手段により選択された前記検索方法に基づいて、前記所定の文書情報に関連する前記既存の文書情報を検索する検索手段と、
前記検索手段により検索された前記既存の文書情報に対応付けられている前記関連情報の前記表示部への表示を制御する表示制御手段と
を備え、
前記検索方法選択手段は、前記検索手段による検索に要する処理時間に応じて、
複数の前記既存の文書情報のすべてについて前記所定の文書情報との類似度を算出し、前記類似度が最大になる前記既存の文書情報を検索する検索方法、
または所定の順序リストの順番で複数の前記既存の文書情報のうちの１つを選択し、選択した前記既存の文書情報について前記所定の文書情報との類似度を算出し、所定の閾値以上の前記類似度を算出したか否かを判定することを繰り返すことにより、前記類似度が所定の閾値以上になる前記既存の文書情報を検索する検索方法
を選択し、
前記表示制御手段は、
前記所定の文書情報に関連する前記検索手段により検索された前記既存の文書情報に対応付けられている前記関連情報である第１の関連情報を所定の提示順リストにリスト化し、前記第１の関連情報を前記所定の提示順リストの順番で定期的に前記表示部に表示させ、
所定のイベント発生に対応する前記所定の文書情報に関連する前記検索手段により検索された前記既存の文書情報に対応付けられている前記関連情報である第２の関連情報を前記所定のイベント発生時に前記表示部に表示させ、
前記第１の関連情報を前記表示部に表示させるタイミングと前記第２の関連情報を前記表示部に表示させるタイミングとが重なる場合、予め設定された優先順位により、前記第１の関連情報または前記第２の関連情報のいずれか一方を前記表示部に表示させる
ことを特徴とする情報処理装置。
【請求項２】
複数の前記既存の文書情報を前記順序リストにリスト化するリスト化手段と、
前記リスト化手段によりリスト化された前記順序リストの順序を変更するリスト変更手段と
をさらに備え、
前記検索手段は、前記リスト化手段により、前記順序リストにリスト化されている前記既存の文書情報との類似度を算出して、前記類似度が所定の閾値以上になる前記既存の文書情報を検索し、
前記リスト変更手段は、前記検索手段により検索された前記既存の文書情報の前記順序リストにおける順序を変更する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記所定の閾値を前記既存の文書量に応じて設定する閾値設定手段をさらに備える
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記既存の文書情報および前記所定の文書情報から属性情報を抽出する属性情報抽出手段をさらに備える
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記属性情報抽出手段により抽出された前記属性情報に基づいて、１または複数の前記既存の文書情報をグループ化して文書情報群を作成するグループ化手段をさらに備え、
前記取得手段は、前記文書情報群に対応付ける前記関連情報を取得し、
前記検索手段は、前記所定の文書情報に関連する前記文書情報群を検索する
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記既存の文書情報の特徴語に関連付けて、前記取得手段により取得された前記関連情報を用いてデータベースを構築するデータベース構築手段をさらに備え、
前記検索手段は、前記データベース構築手段により構築された前記データベースから、前記所定の文書情報に関連する前記既存の文書情報を検索する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記イベント発生を検知する検知手段をさらに備える
ことを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記既存の文書情報および前記所定の文書情報は電子メールである
ことを特徴とする請求項１に記載の情報処理装置。
【請求項９】
既存の文書情報および所定の文書情報に関連する関連情報を、情報を表示する表示部に表示させることにより、前記関連情報をユーザに提示する情報処理装置の情報処理方法において、
前記既存の文書情報に対応付ける前記関連情報の取得を制御する取得制御ステップと、
前記所定の文書情報に基づいて、前記既存の文書情報の検索方法を選択する検索方法選択ステップと、
前記検索方法選択ステップの処理により選択された前記検索方法に基づいて、前記所定の文書情報に関連する前記既存の文書情報を検索する検索ステップと、
前記検索ステップの処理により検索された前記既存の文書情報に対応付けられている前記関連情報の前記表示部への表示を制御する表示制御ステップと
を含み、
前記検索方法選択ステップの処理において、前記検索ステップの処理による検索に要する処理時間に応じて、
複数の前記既存の文書情報のすべてについて前記所定の文書情報との類似度を算出し、前記類似度が最大になる前記既存の文書情報を検索する検索方法、
または所定の順序リストの順番で複数の前記既存の文書情報のうちの１つを選択し、選択した前記既存の文書情報について前記所定の文書情報との類似度を算出し、所定の閾値以上の前記類似度を算出したか否かを判定することを繰り返すことにより、前記類似度が所定の閾値以上になる前記既存の文書情報を検索する検索方法
を選択し、
前記表示制御ステップの処理において、
前記所定の文書情報に関連する前記検索ステップの処理により検索された前記既存の文書情報に対応付けられている前記関連情報である第１の関連情報を所定の提示順リストにリスト化し、前記第１の関連情報を前記所定の提示順リストの順番で定期的に前記表示部に表示させ、
所定のイベント発生に対応する前記所定の文書情報に関連する前記検索ステップの処理により検索された前記既存の文書情報に対応付けられている前記関連情報である第２の関連情報を前記所定のイベント発生時に前記表示部に表示させ、
前記第１の関連情報を前記表示部に表示させるタイミングと前記第２の関連情報を前記表示部に表示させるタイミングとが重なる場合、予め設定された優先順位により、前記第１の関連情報または前記第２の関連情報のいずれか一方を前記表示部に表示させる
ことを特徴とする情報処理方法。
【請求項１０】
既存の文書情報および所定の文書情報に関連する関連情報を、情報を表示する表示部に表示させることにより、前記関連情報をユーザに提示する情報処理装置を制御するプログラムであって、
前記既存の文書情報に対応付ける前記関連情報の取得を制御する取得制御ステップと、
前記所定の文書情報に基づいて、前記既存の文書情報の検索方法を選択する検索方法選択ステップと、
前記検索方法選択ステップの処理により選択された前記検索方法に基づいて、前記所定の文書情報に関連する前記既存の文書情報を検索する検索ステップと、
前記検索ステップの処理により検索された前記既存の文書情報に対応付けられている前記関連情報の前記表示部への表示を制御する表示制御ステップと
を含み、
前記検索方法選択ステップの処理において、前記検索ステップの処理による検索に要する処理時間に応じて、
複数の前記既存の文書情報のすべてについて前記所定の文書情報との類似度を算出し、前記類似度が最大になる前記既存の文書情報を検索する検索方法、
または所定の順序リストの順番で複数の前記既存の文書情報のうちの１つを選択し、
選択した前記既存の文書情報について前記所定の文書情報との類似度を算出し、所定の閾値以上の前記類似度を算出したか否かを判定することを繰り返すことにより、前記類似度が所定の閾値以上になる前記既存の文書情報を検索する検索方法
を選択し、
前記表示制御ステップの処理において、
前記所定の文書情報に関連する前記検索ステップの処理により検索された前記既存の文書情報に対応付けられている前記関連情報である第１の関連情報を所定の提示順リストにリスト化し、前記第１の関連情報を前記所定の提示順リストの順番で定期的に前記表示部に表示させ、
所定のイベント発生に対応する前記所定の文書情報に関連する前記検索ステップの処理により検索された前記既存の文書情報に対応付けられている前記関連情報である第２の関連情報を前記所定のイベント発生時に前記表示部に表示させ、
前記第１の関連情報を前記表示部に表示させるタイミングと前記第２の関連情報を前記表示部に表示させるタイミングとが重なる場合、予め設定された優先順位により、前記第１の関連情報または前記第２の関連情報のいずれか一方を前記表示部に表示させる
ことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項１１】
既存の文書ファイルおよび所定の文書ファイルに関連する関連情報を、情報を表示する表示部に表示させることにより、前記関連情報をユーザに提示する情報処理装置を制御するコンピュータに、
前記既存の文書情報に対応付ける前記関連情報の取得を制御する取得制御ステップと、
前記所定の文書情報に基づいて、前記既存の文書情報の検索方法を選択する検索方法選択ステップと、
前記検索方法選択ステップの処理により選択された前記検索方法に基づいて、前記所定の文書情報に関連する前記既存の文書情報を検索する検索ステップと、
前記検索ステップの処理により検索された前記既存の文書情報に対応付けられている前記関連情報の前記表示部への表示を制御する表示制御ステップと
を含み、
前記検索方法選択ステップの処理において、前記検索ステップの処理による検索に要する処理時間に応じて、
複数の前記既存の文書情報のすべてについて前記所定の文書情報との類似度を算出し、前記類似度が最大になる前記既存の文書情報を検索する検索方法、
または所定の順序リストの順番で複数の前記既存の文書情報のうちの１つを選択し、
選択した前記既存の文書情報について前記所定の文書情報との類似度を算出し、所定の閾値以上の前記類似度を算出したか否かを判定することを繰り返すことにより、前記類似度が所定の閾値以上になる前記既存の文書情報を検索する検索方法
を選択し、
前記表示制御ステップの処理において、
前記所定の文書情報に関連する前記検索ステップの処理により検索された前記既存の文書情報に対応付けられている前記関連情報である第１の関連情報を所定の提示順リストにリスト化し、前記第１の関連情報を前記所定の提示順リストの順番で定期的に前記表示部に表示させ、
所定のイベント発生に対応する前記所定の文書情報に関連する前記検索ステップの処理により検索された前記既存の文書情報に対応付けられている前記関連情報である第２の関連情報を前記所定のイベント発生時に前記表示部に表示させ、
前記第１の関連情報を前記表示部に表示させるタイミングと前記第２の関連情報を前記表示部に表示させるタイミングとが重なる場合、予め設定された優先順位により、前記第１の関連情報または前記第２の関連情報のいずれか一方を前記表示部に表示させる
処理を実行させるプログラム。
【請求項１２】
前記既存の文書情報および前記所定の文書情報から属性情報を抽出する属性情報抽出ステップをさらに含む
ことを特徴とする請求項１１に記載のプログラム。
【請求項１３】
前記属性情報抽出ステップの処理により抽出された前記属性情報に基づいて、１または複数の前記既存の文書情報をグループ化して文書情報群を作成するグループ化ステップをさらに含む
ことを特徴とする請求項１２に記載のプログラム。
【請求項１４】
前記既存の文書情報の特徴語に関連付けて、前記取得制御ステップの処理により取得が制御された前記関連情報を用いてデータベースを構築するデータベース構築ステップをさらに含む
ことを特徴とする請求項１１に記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置および方法、記録媒体、並びにプログラムに関し、特に、例えば、電子メールに含まれる情報の中から、ユーザの興味があると思われる単語および関連情報を取得してデータベースに蓄積し、その関連情報を効果的に表示させるようにした情報処理装置および方法、記録媒体、並びにプログラムに関する。
【０００２】
【従来の技術】
従来、パーソナルコンピュータのデスクトップ（表示画面）に、いわゆるデスクトップマスコットと呼ばれるキャラクタを表示させるアプリケーションプログラムが存在する。
【０００３】
デスクトップマスコットは、例えば、電子メールの着信等をユーザに通知する機能やデスクトップ上を移動する機能などを有している。
【０００４】
ところで、例えば、ユーザが、電子メールとして送信する文書等を入力している時や、受信した文書を閲覧している時などに、対象としている文書に関連する情報（以下、関連情報と記載する）を、デスクトップマスコットが提示するようになれば、ユーザによって利便性が向上するとともに、デスクトップマスコットに対して一層愛着を感じるようになると考えられる。
【０００５】
そこで、例えば、特開２００１−３１２５１５号公報には、電子メールなどの処理済みのテキストファイルを用いて自動的にデータベースを構築し、送受信などの対象とした文書に関連する関連情報をユーザに提示する方法が提案されている。
【０００６】
【発明が解決しようとする課題】
しかしながら、上記公報の発明において、状況によっては、対象となる文書に関連する関連情報の抽出処理に時間がかかり、ユーザに対して、関連情報の提示が遅れてしまう課題があった。
【０００７】
そのため、ユーザは、タイミングの悪い関連情報の提示には、興味を示さない場合があった。
【０００８】
本発明はこのような状況に鑑みてなされたものであり、状況に応じて、タイミングを逸せずに関連情報を提示することができるようにするものである。
【０００９】
【課題を解決するための手段】
本発明の情報処理装置は、既存の文書情報に対応付ける関連情報を取得する取得手段と、所定の文書情報に基づいて、既存の文書情報の検索方法を選択する検索方法選択手段と、検索方法選択手段により選択された検索方法に基づいて、所定の文書情報に関連する既存の文書情報を検索する検索手段と、検索手段により検索された既存の文書情報に対応付けられている関連情報の表示部への表示を制御する表示制御手段とを備え、検索方法選択手段は、検索手段による検索に要する処理時間に応じて、複数の既存の文書情報のすべてについて所定の文書情報との類似度を算出し、類似度が最大になる既存の文書情報を検索する検索方法、または所定の順序リストの順番で複数の既存の文書情報のうちの１つを選択し、選択した既存の文書情報について所定の文書情報との類似度を算出し、所定の閾値以上の類似度を算出したか否かを判定することを繰り返すことにより、類似度が所定の閾値以上になる既存の文書情報を検索する検索方法を選択し、表示制御手段は、所定の文書情報に関連する検索手段により検索された既存の文書情報に対応付けられている関連情報である第１の関連情報を所定の提示順リストにリスト化し、第１の関連情報を所定の提示順リストの順番で定期的に表示部に表示させ、所定のイベント発生に対応する所定の文書情報に関連する検索手段により検索された既存の文書情報に対応付けられている関連情報である第２の関連情報を所定のイベント発生時に表示部に表示させ、第１の関連情報を表示部に表示させるタイミングと第２の関連情報を表示部に表示させるタイミングとが重なる場合、予め設定された優先順位により、第１の関連情報または第２の関連情報のいずれか一方を表示部に表示させることを特徴とする。
【００１３】
複数の既存の文書情報を所定の順序リストにリスト化するリスト化手段と、リスト化手段によりリスト化された順序リストの順序を変更するリスト変更手段とをさらに設けることができ、検索手段は、リスト化手段により、順序リストにリスト化されている既存の文書情報との類似度を算出して、類似度が所定の閾値以上になる既存の文書情報を検索し、リスト変更手段は、検索手段により検索された既存の文書情報の順序リストにおける順序を変更することができる。
【００１４】
所定の閾値を既存の文書量に応じて設定する閾値設定手段をさらに設けることができる。
【００１５】
既存の文書情報および所定の文書情報から属性情報を抽出する属性情報抽出手段をさらに設けることができる。
【００１６】
属性情報抽出手段により抽出された属性情報に基づいて、１または複数の既存の文書情報をグループ化して文書情報群を作成するグループ化手段をさらに設けることができ、取得手段は、文書情報群に対応付ける関連情報を取得し、検索手段は、所定の文書情報に関連する文書情報群を検索することができる。
【００１７】
既存の文書情報の特徴語に関連付けて、取得手段により取得された関連情報を用いてデータベースを構築するデータベース構築手段をさらに設けることができ、検索手段は、データベース構築手段により構築されたデータベースから、所定の文書情報に関連する既存の文書情報を検索することができる。
【００１８】
イベント発生を検知する検知手段をさらに設けることができる。
【００１９】
既存の文書情報および所定の文書情報は電子メールであるものとすることができる。
【００２０】
本発明の情報処理方法は、既存の文書情報に対応付ける関連情報の取得を制御する取得制御ステップと、所定の文書情報に基づいて、既存の文書情報の検索方法を選択する検索方法選択ステップと、検索方法選択ステップの処理により選択された検索方法に基づいて、所定の文書情報に関連する既存の文書情報を検索する検索ステップと、検索ステップの処理により検索された既存の文書情報に対応付けられている関連情報の表示部への表示を制御する表示制御ステップとを含み、検索方法選択ステップの処理において、検索ステップの処理による検索に要する処理時間に応じて、複数の既存の文書情報のすべてについて所定の文書情報との類似度を算出し、類似度が最大になる既存の文書情報を検索する検索方法、または所定の順序リストの順番で複数の既存の文書情報のうちの１つを選択し、選択した既存の文書情報について所定の文書情報との類似度を算出し、所定の閾値以上の類似度を算出したか否かを判定することを繰り返すことにより、類似度が所定の閾値以上になる既存の文書情報を検索する検索方法を選択し、表示制御ステップの処理において、所定の文書情報に関連する検索ステップの処理により検索された既存の文書情報に対応付けられている関連情報である第１の関連情報を所定の提示順リストにリスト化し、第１の関連情報を所定の提示順リストの順番で定期的に表示部に表示させ、所定のイベント発生に対応する所定の文書情報に関連する検索ステップの処理により検索された既存の文書情報に対応付けられている関連情報である第２の関連情報を所定のイベント発生時に表示部に表示させ、第１の関連情報を表示部に表示させるタイミングと第２の関連情報を表示部に表示させるタイミングとが重なる場合、予め設定された優先順位により、第１の関連情報または第２の関連情報のいずれか一方を表示部に表示させることを特徴とする。
【００２１】
本発明の記録媒体に記録されているプログラムは、既存の文書情報に対応付ける関連情報の取得を制御する取得制御ステップと、所定の文書情報に基づいて、既存の文書情報の検索方法を選択する検索方法選択ステップと、検索方法選択ステップの処理により選択された検索方法に基づいて、所定の文書情報に関連する既存の文書情報を検索する検索ステップと、検索ステップの処理により検索された既存の文書情報に対応付けられている関連情報の表示部への表示を制御する表示制御ステップとを含み、検索方法選択ステップの処理において、検索ステップの処理による検索に要する処理時間に応じて、複数の既存の文書情報のすべてについて所定の文書情報との類似度を算出し、類似度が最大になる既存の文書情報を検索する検索方法、または所定の順序リストの順番で複数の既存の文書情報のうちの１つを選択し、選択した既存の文書情報について所定の文書情報との類似度を算出し、所定の閾値以上の類似度を算出したか否かを判定することを繰り返すことにより、類似度が所定の閾値以上になる既存の文書情報を検索する検索方法を選択し、表示制御ステップの処理において、所定の文書情報に関連する検索ステップの処理により検索された既存の文書情報に対応付けられている関連情報である第１の関連情報を所定の提示順リストにリスト化し、第１の関連情報を所定の提示順リストの順番で定期的に表示部に表示させ、所定のイベント発生に対応する所定の文書情報に関連する検索ステップの処理により検索された既存の文書情報に対応付けられている関連情報である第２の関連情報を所定のイベント発生時に表示部に表示させ、第１の関連情報を表示部に表示させるタイミングと第２の関連情報を表示部に表示させるタイミングとが重なる場合、予め設定された優先順位により、第１の関連情報または第２の関連情報のいずれか一方を表示部に表示させることを特徴とする。
【００２２】
本発明のプログラムは、既存の文書情報に対応付ける関連情報の取得を制御する取得制御ステップと、所定の文書情報に基づいて、既存の文書情報の検索方法を選択する検索方法選択ステップと、検索方法選択ステップの処理により選択された検索方法に基づいて、所定の文書情報に関連する既存の文書情報を検索する検索ステップと、検索ステップの処理により検索された既存の文書情報に対応付けられている関連情報の表示部への表示を制御する表示制御ステップとを含み、検索方法選択ステップの処理において、検索ステップの処理による検索に要する処理時間に応じて、複数の既存の文書情報のすべてについて所定の文書情報との類似度を算出し、類似度が最大になる既存の文書情報を検索する検索方法、または所定の順序リストの順番で複数の既存の文書情報のうちの１つを選択し、選択した既存の文書情報について所定の文書情報との類似度を算出し、所定の閾値以上の類似度を算出したか否かを判定することを繰り返すことにより、類似度が所定の閾値以上になる既存の文書情報を検索する検索方法を選択し、表示制御ステップの処理において、所定の文書情報に関連する検索ステップの処理により検索された既存の文書情報に対応付けられている関連情報である第１の関連情報を所定の提示順リストにリスト化し、第１の関連情報を所定の提示順リストの順番で定期的に表示部に表示させ、所定のイベント発生に対応する所定の文書情報に関連する検索ステップの処理により検索された既存の文書情報に対応付けられている関連情報である第２の関連情報を所定のイベント発生時に表示部に表示させ、第１の関連情報を表示部に表示させるタイミングと第２の関連情報を表示部に表示させるタイミングとが重なる場合、予め設定された優先順位により、第１の関連情報または第２の関連情報のいずれか一方を表示部に表示させる処理を実行させる。
【００２６】
既存の文書情報および所定の文書情報から属性情報を抽出する属性情報抽出ステップをさらに含むことができる。
【００２７】
属性情報抽出ステップの処理により抽出された属性情報に基づいて、１または複数の既存の文書情報をグループ化して文書情報群を作成するグループ化ステップをさらに含むことができる。
【００２８】
既存の文書情報の特徴語に関連付けて、取得制御ステップの処理により取得が制御された関連情報を用いてデータベースを構築するデータベース構築ステップをさらに含むことができる。
【００２９】
本発明の情報処理装置および方法、並びにプログラムにおいては、既存の文書情報に対応付ける関連情報が取得され、所定の文書情報に基づいて、既存の文書情報の検索方法が選択され、選択された検索方法に基づいて、所定の文書情報に関連する既存の文書情報が検索され、検索された既存の文書情報に対応付けられている関連情報が表示部に表示される。既存の文書情報の検索方法の選択においては、既存の文書情報の検索に要する処理時間に応じて、複数の既存の文書情報のすべてについて所定の文書情報との類似度を算出し、類似度が最大になる既存の文書情報を検索する検索方法、または所定の順序リストの順番で複数の既存の文書情報のうちの１つを選択し、選択した既存の文書情報について所定の文書情報との類似度を算出し、所定の閾値以上の類似度を算出したか否かを判定することを繰り返すことにより、類似度が所定の閾値以上になる既存の文書情報を検索する検索方法が選択される。関連情報の表示部への表示制御においては、所定の文書情報に関連する検索された既存の文書情報に対応付けられている関連情報である第１の関連情報が所定の提示順リストにリスト化され、第１の関連情報が所定の提示順リストの順番で定期的に表示部に表示され、所定のイベント発生に対応する所定の文書情報に関連する検索された既存の文書情報に対応付けられている関連情報である第２の関連情報が所定のイベント発生時に表示部に表示され、第１の関連情報を表示部に表示させるタイミングと第２の関連情報を表示部に表示させるタイミングとが重なる場合、予め設定された優先順位により、第１の関連情報または第２の関連情報のいずれか一方が表示部に表示される。
【００３０】
【発明の実施の形態】
以下、図を参照して、本発明の実施の形態について説明する。
【００３１】
図１は、本発明を適用したデスクトップマスコット（以下、エージェントと記載する）をデスクトップ上に表示するアプリケーションプログラム（以下、エージェントプログラムと記載する）、電子メールを送受信するアプリケーションプログラム（以下、メーラ（mailer）２と記載する）、および、文書作成または編集するワードプロセッサプログラム３の機能を説明する図である。エージェントプログラム１乃至ワードプロセッサ３は、例えば、パーソナルコンピュータ（詳細は、図２を参照して後述する）にインストールされて実行されるものである。
【００３２】
エージェントプログラム１は、処理の対象となる文書の関連情報（後述）を蓄積してデータベースを構築する蓄積部１１、処理の対象となる文書に対応する関連情報をユーザに提示する提示部１２、および、エージェント７２（図１４）の表示等を制御するエージェント制御部１３から構成される。
【００３３】
蓄積部１１の文書取得部２１は、メーラ２によって送受信した文書やワードプロセッサプログラム３によって編集された文書などのうち、自己が未処理の文書を取得して文書属性処理部２２および文書内容処理部２３に供給する。なお、以下においては、主に、メーラ２により電子メールとして送受信した文書を例として説明する。
【００３４】
文書属性処理部２２は、文書取得部２１から供給される文書の属性情報を抽出し、属性情報に基づき、文書をグループ化して、文書内容処理部２３および文書特徴データベース作成部２４に供給する。電子メールである場合、文書の属性情報としてヘッダに記述されている情報（対象となっているメールを特定するメッセージID、参照しているメールのメッセージID（References,In-Reply-To）、宛先（To,Cc,Bcc）、送信元（From）、日付（Date）、あるいは標題（Subject））などが抽出される。そして、抽出された属性情報に基づいて、１または複数の文書がグループ化される。以下、属性情報に基づいてグループ化された文書群（メールグループ）を「話題」と称する。
【００３５】
文書内容処理部２３は、文書属性処理部２２でグループ化された文書群（話題）の文面を抽出し、形態素解析を施して、単語（特徴語）に分類する。単語は、品詞（名詞、形容詞、動詞、副詞、接続詞、感動詞、助詞、および助動詞）別に分類される。ただし、広範囲に亘って分布している単語、すなわち、例えば、ほぼ全ての文書に含まれている、「こんにちは」、「よろしく」あるいは「お願いします」等の名詞以外の品詞は、後述する、関連情報を検索するためのキーワードには成り得ないので、不要語として除外される。
【００３６】
文書内容処理部２３は、不要語が除外された各単語の出現頻度および複数の文書に亘る分布状況を求め、グループ化された文書群（話題）毎に、各単語の重み（文書の主旨に関係する程度を示す値）を演算する。これにより、話題毎に、各単語の重みを構成要素とする特徴ベクトルが算出される。例えば、全話題の単語（特徴語）数の総計がｎ個の場合、すべての話題の特徴ベクトルは、ｎ次元空間のベクトルとなり、次式（１）で表わされる。
特徴ベクトル＝(単語1の重みw1,単語2の重みw2,・・・単語nの重みwn)  （１）
【００３７】
重みの演算には、例えば、tf・idf法（Salton,G.:Automatic Text Processing:The Transformation,Analysis, and Retrieval of Information by Computer,Addison-Wesley,1989）等が用いられる。この方法を用いると、例えば、話題Ａに含まれる単語がｎ個あった場合、話題Ａの特徴ベクトルのうち、含まれる単語の該当する構成要素には重みが与えられ、話題Ａに含まれない単語の構成要素は、頻度が０であるため、重みの値は０となる。
【００３８】
なお、本発明においては、話題毎に特徴ベクトルを算出するものとして説明するが、これに限らず、文書毎、または、その他の単位毎（例えば、所定期間（１週間）に蓄積された文書群毎）に特徴ベクトルを算出することも勿論可能である。
【００３９】
文書特徴データベース作成部２４は、文書属性処理部２２でグループ化された文書群（話題）毎の各文書の属性情報と、文書内容処理部２３で算出された話題毎の特徴ベクトル（すなわち、話題内に含まれる全ての単語の重み）を時系列順にデータベース化してハードディスクドライブなどよりなる記憶部４９（図２）に記録する。文書特徴データベース作成部２４はまた、単語の重みに基づいて、所定の条件を満たす単語を選択し、その単語を、関連情報を検索するための検索用キーワード（重要語）として記録する。文書特徴データベース作成部２４はさらに、検索用キーワードを関連情報検索部２５に供給し、それに対応して関連情報検索部２５から返される関連情報を、検索用キーワードに対応付けて記録する。
【００４０】
関連情報検索部２５は、文書特徴データベース作成部２４が選択して記録した検索用キーワードに対する関連情報を検索し、検索結果のインデックスを文書特徴データベース作成部２４に返す。キーワードの関連情報を検索するには、例えば、インタネット上の検索エンジンを用いる方法がある。この場合、WebページのURL（Uniform Resource Locator）やWebページのタイトルが、関連情報として文書特徴データベース作成部２４に返される。
【００４１】
提示部１２のイベント管理部３１は、メーラ２が電子メールの送信や受信を終えたことや、編集中の文書のテキストデータ量が所定の閾値を超えたことを検知して、データベース問い合わせ部３２に通知する。以下、メーラ２が電子メールの送信や受信を終えたことや、編集中の文書のテキストデータ量が所定の閾値を超えたことをイベント発生と記載する。
【００４２】
イベント管理部３１は、内部にタイマ３１Ａを内蔵しており、所定時間が経過したか否かを監視し、所定時間が経過した場合、その旨をデータベース問い合わせ部３２に通知する。
【００４３】
データベース問い合わせ部３２は、イベント管理部３１からのイベント発生の通知に対応して、イベント発生に対応する文書（例えば、受信した電子メール）を取得し、文書内容処理部２３の処理と同様に、その文書の形態素解析を施して、不要語を除外した単語を抽出し、各単語の重みを演算する。これにより、イベント発生に対応する文書の特徴ベクトルが算出される。
【００４４】
データベース問い合わせ部３２はまた、文書特徴データベース作成部２４が作成したデータベースを検索し、算出したイベント発生に対応する文書の特徴ベクトルと、データベースに記録されている話題毎の特徴ベクトルとの内積から類似度をそれぞれ算出する。データベース問い合わせ部３２は、類似度が最も高い話題を抽出し、抽出した話題に含まれる各単語のうち、重みが所定の条件（詳細については図１１を参照して後述する）を満たすものを選択し、選択された単語（重要語）に対応する関連情報を、イベント管理部３１を介して、あるいは、直接、関連情報提示部３３に供給する。
【００４５】
関連情報提示部３３は、イベント管理部３１を介して、あるいは、直接、データベース問い合わせ部３２から供給される関連情報を表示部４８（デスクトップ）上に表示させる。
【００４６】
なお、蓄積部１１によるデータベースの更新は、所定のタイミングにおいて実行される。データベースの更新処理は、図３３のフローチャートを参照して後述する。また、蓄積部１１によるデータベースの更新時に、記憶部４９に記録した特徴ベクトルが、例えば、メールのやりとりの回数、送受信の状態、または、品詞の種類（特定の地域や名称を示す固有名詞など）に応じて修正される。さらに、提示部１２による関連情報の提示処理は、イベント管理部３１がメール２の送受信などのイベント発生を検知する毎に実行されるか、あるいは、イベント管理部３１がタイマ３１Ａを監視することによって所定時間毎に実行される。
【００４７】
図２は、エージェントプログラム１がインストールされて実行されるパーソナルコンピュータの構成例を示している。
【００４８】
パーソナルコンピュータは、CPU（Central Processing Unit）４１を内蔵している。CPU４１にはバス４４を介して、入出力インタフェース４５が接続されている。入出力インタフェース４５には、キーボード、マウスなどの入力デバイスよりなる入力部４６、処理結果としての例えば音声信号を出力する出力部４７、処理結果としての画像を表示するディスプレイなどよりなる表示部４８、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部４９、LAN(Local Area Network)やインタネットを介してデータを通信するモデムなどよりなる通信部５０、および、磁気ディスク５２、光ディスク５３、光磁気ディスク５４、または半導体メモリ５５などのプログラム格納媒体に対してデータを読み書きするドライブ５１が接続されている。バス４４には、ROM（Read Only Memory）４２およびRAM（Random Access Memory）４３が接続されている。
【００４９】
本発明のエージェントプログラム１は、磁気ディスク５２、光ディスク５３、光磁気ディスク５４、または半導体メモリ５５に格納された状態でパーソナルコンピュータに供給され、ドライブ５１によって読み出されて、記憶部４９に内蔵されるハードディスクドライブにインストールされている。記憶部４９にインストールされているエージェントプログラム１は、入力部４６に入力されるユーザからのコマンドに対応するCPU４１の指令によって、記憶部４９からRAM４３にロードされて実行される。なお、パーソナルコンピュータの起動時において自動的にエージェントプログラム１が実行されるように設定しておくようにしてもよい。
【００５０】
また記憶部４９に内蔵されるハードディスクドライブには、エージェントプログラム１、メーラ２、およびワードプロセッサ３の他、WWW（World Wide Web）ブラウザなどのアプリケーションプログラムもインストールされており、エージェントプログラム１と同様に、入力部４６に入力されるユーザからの起動コマンドに対応するCPU４１の指令によって、記憶部４９からRAM４３にロードされて実行される。
【００５１】
次に、図３のフローチャートを参照して、エージェントプログラム１のデータベース作成処理について説明する。このデータベース作成処理は、エージェントプログラム１が実行する処理のうちの１つであり、エージェントプログラム１が実行された場合において、データベースが未だ作成されていないときに開始される。
【００５２】
ステップＳ１において、文書取得部２１は、未処理の文書（例えば、エージェントプログラム１が実行される以前に送受信された電子メール）を、記憶部４９に内蔵されるハードディスクドライブから取得して文書属性処理部２２および文書内容処理部２３に供給する。
【００５３】
ステップＳ２において、文書属性処理部２２は、ステップＳ１の処理で文書取得部２１により取得され供給された電子メールの文書から属性情報（メッセージID等のヘッダ情報）を抽出し、その属性情報に基づき、文書をグループ化して（すなわち、話題毎にグループ化して）、文書内容処理部２３および文書特徴データベース作成部２４に供給する。
【００５４】
ステップＳ３において、文書内容処理部２３は、ステップＳ２の処理で文書属性処理部２２によりグループ化された文書群（話題）の本文のテキストデータを抽出し、さらにテキストデータの形態素解析を施し、不要語を除く単語（特徴語）を抽出する。ステップＳ４において、文書内容処理部２３は、ステップＳ３の処理で抽出された各単語の出現頻度、複数の文書に亘る分布状況を求め、話題毎に、各単語の重みを、例えば、tf・idf法を用いて演算する。これにより話題毎の特徴ベクトルが算出される。
【００５５】
ステップＳ５において、文書特徴データベース作成部２４は、ステップＳ２の処理で文書属性処理部２２によりグループ化された話題毎の各文書の属性情報と、ステップＳ３の処理で文書内容処理部２３により算出されたその話題内に含まれる全ての単語の重み（特徴ベクトル）をデータベース化する。
【００５６】
具体的には、図４に示されるように、グループ化された各話題（話題Ａ、話題Ｂ、話題Ｃ、・・・）を時系列順にソートした後、各話題にそれぞれ含まれる全単語１乃至ｎの重みも時系列順にソートして記憶部４９に記録する。ここで、図４においては、例えば、重みＡ１は、話題Ａにおける単語１の重みの値を示し、重みＢ２は、話題Ｂにおける単語２の重みの値を示している。さらに例えば、話題Ｂに単語１が含まれていない場合、重みＢ１は０となる。
【００５７】
そして、図５に示されるように、話題毎に算出された各特徴ベクトルが時系列順にソートされてリスト化される。図５の例の場合、話題Ａの特徴ベクトルＡ、話題Ｂの特徴ベクトルＢ、話題Ｃの特徴ベクトルＣ、話題Ｄの特徴ベクトルＤ、および話題Ｅの特徴ベクトルＥの順にリスト化される。このように、各特徴ベクトルをリスト化することにより、後述する、類似度算出における優先度の順位が付与される。従って、図５の例の場合、特徴ベクトルＡ、特徴ベクトルＢ、・・・の順に類似度が算出される。
【００５８】
なお、各特徴ベクトルを、時系列順にリスト化するだけでなく、例えば、特徴ベクトルを構成する要素の最大値（話題に含まれる重要語の重み）を比較し、要素の大きい順にリスト化するようにしてもよい。
【００５９】
図３の説明に戻る。ステップＳ６において、文書特徴データベース作成部２４は、単語の重みが所定の閾値以上である単語を検索用キーワードに選択するか、あるいは、重みが大きい順にソートされ、予め指定される個数の単語を選択して、関連情報検索部２５に供給する。関連情報検索部２５は、文書特徴データベース作成部２４からの検索用キーワード（重要語）を検索条件として、インタネット上の検索エンジンにアクセスして検索結果を取得し、得られたWebページのURLやタイトルを関連情報として文書特徴データベース作成部２４に出力する。
【００６０】
ステップＳ７において、文書特徴データベース作成部２４は、関連情報検索部２５からの関連情報を検索用キーワードに対応付けて記憶部４９に記録することにより、データベースを作成する。なお、ステップＳ６の処理とステップＳ７の処理は、ステップＳ５までの一連の処理に継続して実行する場合と、一連の処理に継続せず、所定のタイミングにおいて実行する場合がある。
【００６１】
以上のデータベース作成処理が実行されることにより、送受信した電子メールの文書に対応した関連情報がデータベース内に蓄積されることになる。なお、データベース作成処理は、エージェントプログラム１が実行された場合に開始されるものとしたが、任意のタイミングで開始させることも可能である。さらに、このようにして作成されたデータベースは、所定の条件が満たされたときに更新される（更新のタイミングについては、図３４を参照して後述する）。
【００６２】
また、データベース作成処理をユーザが強制的に中断することができるようにするために、中断要求があった場合、中断された時点で処理済みの文書を記録し、再開要求があった場合、未処理の文書から処理を再開するようにしてもよい。
【００６３】
次に、図６のフローチャートを参照して、エージェントプログラム１の関連情報提示処理について説明する。この関連情報提示処理は、図３を用いて上述したデータベース作成処理とは異なり、エージェントプログラム１が実行されている間、繰り返して実行される。
【００６４】
ステップＳ１１において、エージェントプログラム１は、入力部４６に入力されるユーザからのコマンドによって、エージェントプログラム１の終了が指示されたか否かを判定し、エージェントプログラム１の終了が指示されていないと判定した場合、ステップＳ１２に進む。
【００６５】
ステップＳ１２において、イベント管理部３１は、イベント発生（メーラ２の電子メールの送受信の終了等）を監視し、イベント発生が検知されない場合、ステップＳ１１に戻り、上述した処理が繰り返し実行される。
【００６６】
ステップＳ１２において、イベント発生が検知された場合、ステップＳ１３に進み、イベント管理部３１は、イベント発生をデータベース問い合わせ部３２に通知する。データベース問い合わせ部３２は、イベント管理部３１からのイベント発生の通知に対応して、イベント発生に対応する文書（送受信された電子メール）を取得し、その文書の形態素解析を施して、不要語を除外した単語（特徴語）を抽出し、各単語の重みを演算する。これにより、イベント発生に対応する文書の特徴ベクトルが算出される。
【００６７】
ステップＳ１４において、データベース問い合わせ部３２は、文書特徴データベース作成部２４が作成したデータベースを検索し、ステップＳ１３の処理で算出された特徴ベクトルと、データベースに記録されている話題毎の特徴ベクトルとの内積から類似度をそれぞれ算出し、類似度が所定の条件（例えば、類似度が最大、もしくは類似度が所定の閾値以上）を満たすものを抽出（選択）する。
【００６８】
ここで、図７および図９のフローチャートを参照して、類似度に基づいた話題の選択処理について説明する。図７は、類似度が最大になる話題を選択する処理例を示し、図９は、類似度が所定の閾値以上になる話題を選択する処理例を示している。
【００６９】
まず、図７のフローチャートを参照して、類似度が最大になる話題の選択処理について説明する。
【００７０】
ステップＳ３１において、データベース問い合わせ部３２は、図６のステップＳ１３の処理で算出されたイベント発生に対応する文書の特徴ベクトルと、文書特徴データベース作成部２４が作成したデータベースに蓄積されている各話題の特徴ベクトルとの内積から類似度を算出する。
【００７１】
すなわち、図８に示されるように、イベント発生に対応する文書の特徴ベクトルと、データベースにリスト化されている各話題の特徴ベクトルのうち、第１番目にリストアップされている話題Ａの特徴ベクトルＡとの内積から類似度Ａが算出される。
【００７２】
ステップＳ３２において、データベース問い合わせ部３２は、データベースに蓄積されている全ての特徴ベクトルについて類似度をそれぞれ算出したか否かを判定し、未だ算出していない特徴ベクトルがあると判定した場合、ステップＳ３１に戻り、上述したそれ以降の処理を繰り返し実行する。
【００７３】
これにより、イベント発生に対応する文書の特徴ベクトルと、図８に示すデータベースの第２番目以降にリストアップされている話題Ｂの特徴ベクトルＢ乃至話題Ｅの特徴ベクトルＥとの内積から類似度Ｂ乃至類似度Ｅがそれぞれ算出される。
【００７４】
そして、ステップＳ３２において、データベースに蓄積されている全ての特徴ベクトルについて類似度をそれぞれ算出したと判定された場合、ステップＳ３３に進み、データベース問い合わせ部３２は、各特徴ベクトルとの内積から算出される類似度のうち、類似度が最大になる話題を選択する。
【００７５】
以上の処理によって、イベント発生に対応する文書と最も類似する話題が選択される。この処理は、データベースにリスト化されている全ての特徴ベクトルとの内積から類似度を算出するため、図９のフローチャートを参照して次に説明する選択処理に較べ処理時間がかかり、比較的、処理時間に余裕のある場合に適している。しかしながら、類似度が最大になる話題を選択することから、ユーザにとってより興味があると思われる関連情報を提示することができる。図７の選択処理は、例えば、図３６のフローチャートを参照して後述する、関連情報の定期的提示処理などに適している。
【００７６】
次に、図９のフローチャートを参照して、類似度が所定の閾値以上になる話題の選択処理について説明する。
【００７７】
ステップＳ４１において、データベース問い合わせ部３２は、データベースに蓄積されている全ての特徴ベクトルについて類似度をそれぞれ算出したか否かを判定し、未だ算出していない特徴ベクトルがあると判定した場合、ステップＳ４２に進む。
【００７８】
ステップＳ４２において、データベース問い合わせ部３２は、図６のステップＳ１３の処理で算出されたイベント発生に対応する文書の特徴ベクトルと、文書特徴データベース作成部２４が作成したデータベースに蓄積されている各話題の特徴ベクトルとの内積から類似度を算出する。
【００７９】
すなわち、図１０に示されるように、イベント発生に対応する文書の特徴ベクトルと、データベースにリスト化されている各話題の特徴ベクトルのうち、第１番目にリストアップされている話題Ａの特徴ベクトルＡとの内積から類似度Ａが算出される。
【００８０】
ステップＳ４３において、データベース問い合わせ部３２は、予め設定されている所定の閾値以上の類似度を算出したか否かを判定し、所定の閾値以上の類似度を算出していないと判定した場合、ステップＳ４１に戻り、上述したそれ以降の処理を繰り返し実行する。
【００８１】
これにより、イベント発生に対応する文書の特徴ベクトルと、図１０に示すデータベースの第２番目以降にリストアップされている話題Ｂの特徴ベクトルＢとの内積から類似度Ｂが算出され、ステップＳ４３において、所定の閾値値以上の類似度が算出されるまで、同様にして、各話題の類似度が算出される。
【００８２】
そして、ステップＳ４３において、予め設定されている所定の閾値以上の類似度を算出したと判定された場合、ステップＳ４４に進み、データベース問い合わせ部３２は、いま算出された、所定の閾値以上の類似度を持つ話題を選択する。
【００８３】
例えば、話題Ｃとの類似度Ｃが所定の閾値以上であると判定された場合、話題Ｃが選択される。
【００８４】
また、ステップＳ４１において、データベースに蓄積されている全ての特徴ベクトルについて類似度をそれぞれ算出したと判定された場合、ステップＳ４５に進み、データベース問い合わせ部３２は、各特徴ベクトルとの内積から算出される類似度のうち、類似度が最大になる話題を選択する。
【００８５】
すなわち、ステップＳ４２，４３の処理で、話題Ａ乃至話題Ｅのうち、所定の閾値以上の類似度が算出されなかった場合に、ステップＳ４５の処理が実行され、所定の閾値以上ではないが、その中で類似度が最大になる話題が選択される。もしくは、図３５のフローチャートを参照して後述する関連情報取得処理によって取得された関連情報の中から、優先度の高い関連情報が選択される。
【００８６】
以上の処理によって、イベント発生に対応する文書と類似するとみなせる話題が選択される。この処理は、データベースにリスト化されている特徴ベクトルとの内積から類似度を逐次算出し、所定の閾値以上になる類似度が算出された時点で処理を終了するため、図７のフローチャートを用いて上述した選択処理に較べ処理時間が速く、処理時間に余裕のない場合に適している。従って、図９の選択処理は、例えば、メールを送信し、プロバイダとの接続および送信完了までの待ち時間に、関連情報を提示する場合（イベント発生に対応して関連情報を提示する場合）などに適している。
【００８７】
なお、ステップＳ４３の判定処理で用いられる所定の閾値（類似する話題を抽出する際の範囲）は、予め、特徴抽出に用いる話題内の文書量（例えば、ファイル数やデータサイズなど）に応じて、類似するとみなせる値（範囲）を設定することができる。
【００８８】
具体的には、特徴抽出する話題の文書量またはデータサイズに応じて何段階かの類似度の範囲を設定する。例えば、ある話題に含まれる文書量が１０ファイル以内である場合は類似度を０．０１1以上、１１ファイル以上５０ファイル未満の場合は類似度を０．０３以上、５０ファイル以上である場合は類似度を０．０５以上とする。また例えば、ある話題の文書の容量が５００kB未満である場合は類似度を０．０１以上、５００kB以上である場合は類似度を０．０２以上とする。
【００８９】
以上をまとめると、図７の例の選択処理は、図３６のフローチャートを参照して後述する関連情報の定期的提示処理の場合に利用され、図９の例の選択処理は、イベント発生に対応して、そのタイミングを逸せずに関連情報を提示する場合に利用される。また、図７および図９のいずれの選択方法を利用するかは、ユーザによって予め選択されるか、あるいは、データベース問い合わせ部３２が、提示する関連情報が、定期的なものであるか、イベント発生に対応するものであるかを判断して、自動で選択するようにする。
【００９０】
さらに、図９の選択処理の場合、リストアップされている優先順位に基づいて各話題との類似度が算出され、所定の閾値以上の類似度が算出されたとき、その話題が選択されるため、同じ話題が何度も選択されてしまう恐れがある。そこで、一度、選択された話題の特徴ベクトルは、何度も選択されることがないように、優先順位の最後尾に並べ替えるようにする。
【００９１】
具体的には、例えば、話題内での特徴ベクトルを構成する要素の最大値（重要語の重み）をその話題の優先度の値として、優先度の値を降順に並べたものを優先度の順位として付与する。すなわち、話題自体に推薦（提示）の優先順位を付与し、一度推薦を行った話題を優先順位の最後尾に並べ替えるようにする。このようにすることによって、類似度の範囲内にある話題でも、同じ話題から推薦する頻度が減少する。また、優先順位の変更だけなので、関連情報を大量に検索して準備しておけば、なるべく同じ話題からの推薦が減り、かつ、情報自体も不足することなく用いることができる。
【００９２】
そして、予め設定された類似度の範囲のうち、優先度の高い話題から検索された関連情報を提示するようにする。このようにすると、文書量の減少により、データベースの内容が更新されると、類似度の範囲が変化し、類似度の範囲が狭すぎて関連情報が不足したり、反対に、類似度の範囲が広すぎてユーザにとってあまり関連性が明確でない関連情報が提示されるような事態の発生を抑止することが可能となる。
【００９３】
また、以上においては、類似度の高い話題あるいは類似度が所定の閾値以上の話題を選択するようにしたが、これに限らず、類似度を用いずに話題を選択することも可能である。例えば、イベント発生に対応する文書に含まれる単語（特徴語）と同じ単語が含まれる話題や、あるいは、イベント発生に対応する文書の相手との他の話題などを選択するようにする。すなわち、「○○つながり」のような方法で過去の話題を選択するようにしてもよい。
【００９４】
図６の説明に戻る。ステップＳ１５において、データベース問い合わせ部３２は、ステップＳ１４の処理で抽出された話題に含まれる各単語のうち、重みの時系列推移に着目して、以下に示す条件１および条件２を満たす単語（重要語）を選択する。
【００９５】
ここで、図１１を参照して、単語の選択条件について説明する。図１１は、データベースに蓄積されている単語の重みの時系列推移の例を示している。
【００９６】
例えば、条件１は、「単語の重みが、現時点以前の所定の期間Ｘ（例えば、２週間）、所定の閾値Ａ以下であること」である。また例えば、条件２は、「現時点以前の所定の期間Ｙ（例えば、５週間）において、異なる２以上の話題で、単語の重みが所定の閾値Ｂ以上であること」である。なお、条件３「条件２における異なる２以上の話題のうち、最も古い話題と最も新しい話題が所定の期間Ｚ以上離れていること」を追加すればさらに好ましい。
【００９７】
このような条件を用いることにより、ユーザの興味が高いと思われる単語（重要語）を選択することが可能となる。特に、条件１によって、現時点に近い話題に含まれる単語は除外されるので、ユーザが現時点で意識しており、意外性のないと思われる関連情報（新しすぎる情報）を改めて選択することを避けることができ、かつ、かなり以前の話題に含まれる単語も除外されるので、ユーザが現時点で思い出すことができないと思われる関連情報（古すぎる情報）を改めて選択することも避けることができる。
【００９８】
データベース問い合わせ部３２は、このようにして選択した単語（重要語）に対応する関連情報を、イベント管理部３１を介して、あるいは、直接、関連情報提示部３３に供給する。
【００９９】
ステップＳ１６において、エージェント制御部１３は、ステップＳ１５の処理で選択した単語が含まれている文書の属性情報を、選択（推薦）した理由として表示させるとともに、対応する関連情報を表示するか否かをユーザに問う入力ウィンドウ８１（図１９）をデスクトップに表示させる。
【０１００】
なお、話題は、グループ化された複数の文書からなるため、重要語が含まれる文書も複数存在する場合がある（すなわち、重要語が含まれている文書の属性情報が複数存在する場合がある）。そこで、例えば、重要語が含まれている文書のうち、最古または最新の文書の属性情報を選択した理由として表示させるようにするか、あるいは、任意に指定された文書の属性情報を表示させる。また、入力ウィンドウ８１を表示させずに、直接、デスクトップ上に関連情報を表示させるようにしてもよい。
【０１０１】
ステップＳ１７において、エージェントプログラム１は、入力部４６に入力されるユーザからのコマンドによって、ステップＳ１６の処理で表示された入力ウィンドウ８１に呼応して、ユーザが「見る」ボタンを選択したか否かを判定する。ステップＳ１７において、ユーザが「見る」ボタンを選択したと判定された場合、ステップＳ１８に進む。なお、入力ウィンドウ８１には、「見る」ボタンおよび「見ない」ボタン以外にも他の情報を表示したり、あるいは、表示しないようにすることもできる。
【０１０２】
ステップＳ１８において、関連情報提示部３３は、イベント管理部３１を介してデータベース問い合わせ部３２から供給された関連情報をデスクトップに表示させる。この関連情報は、１または複数個を提示することができる。
【０１０３】
なお、関連情報として表示される情報は、キーワードが付与された所定のデータベースに蓄積された情報であれば、Webページのタイトルでなくてもかまわない。例えば、所定のデータベースに蓄積されている情報のインデックスを表示するようにして、ユーザのアクセス指令に対応して、そのインデックスのさらに詳細な情報を表示させるようにしてもよい。
【０１０４】
ステップＳ１９において、エージェントプログラム１は、入力部４６に入力されるユーザからのコマンドによって、ステップＳ１８の処理により関連情報として表示されたWebページのタイトルに対して、ユーザがアクセスを指令したと判定した場合、ステップＳ２０に進む。ステップＳ２０において、WWWブラウザが起動され、対応するWebページへのアクセスが行われる。
【０１０５】
ステップＳ１９において、ステップＳ１８の処理により関連情報として表示されたWebページのタイトルに対して、ユーザが記録を指令したと判定された場合、ステップＳ２１に進む。ステップＳ２１において、エージェントプログラム１は、対応するWebページのタイトルおよびURLを、提示履歴を表示するスクラップ帳ウィンドウ７４（図１４）に記録する。なお、ステップＳ１９において、ステップＳ１８の処理により関連情報として表示されたWebページのタイトルに対して、ユーザから何の指令もなされずに所定の時間が経過したと判定された場合、ステップＳ２０またはステップＳ２１の処理はスキップされて、ステップＳ１１に戻り、上述した処理が繰り返し実行される。
【０１０６】
なお、ステップＳ１７において、ユーザが「見る」ボタンを選択しないと判定された場合、ステップＳ１８乃至ステップＳ２１の処理はスキップされて、ステップＳ１１に戻り、上述した処理が繰り返し実行される。さらに、ステップＳ１１において、ユーザによりエージェントプログラム１の終了が指示されたと判定された場合、処理は終了される。
【０１０７】
ここで、関連情報提示処理に関して、イベント発生に対応する電子メールを効率よく取得する手法について説明する。
【０１０８】
まず、大多数のメーラがメールの保持形式に関し、次のような４つの特徴を有していることに着目する。第１に、メーラにおける１つのフォルダは、パーソナルコンピュータにおける１つのメールボックスファイルに対応していること。第２に、新たに受信したメールは、特定のフォルダに格納されるようになっており、パーソナルコンピュータでは当該フォルダに対応するファイルの末尾に追加され、このとき、１つのファイルには一般に複数のメールが含まれるので、メールとメールとの境界に、特定の文字列パターン（メーラによって異なる）からなる行が挿入されていること。第３に、送信したメールの記録も、同様の形式で特定のファイルに保存されること。第４に、一般に、送受信したメールが含まれるファイルはサイズが大きいこと（数百KB乃至１MB）。
【０１０９】
以上の第１乃至第４の特徴を考慮して、次の手順によってイベント発生に対応するメールを取得する。始めに、メールボックスファイルの更新日時を検出し、新たなメールが追加されたか否かを判断する。次に、新たにメールが追加されたメールボックスファイルを末尾から先頭方向に１行ずつ操作して、メールとメールとの境界を示す特定の文字列を検出する。境界を示す文字列を検出した場合、その位置からメールボックスファイルの末尾までデータを抽出する。
【０１１０】
このような手法を用いることにより、イベント発生に対応する電子メールを効率的に取得することが可能となる。
【０１１１】
次に、関連情報提示処理に関して、同一のメールに対して何度も関連情報を提示しないようにする手法について説明する。まず、関連情報を提示したメールのメッセージIDを記録するためのデータ構造を設定する。そして、イベントが発生した場合、そのイベントに対応するメールのメッセージIDを取得して、設定したデータ構造と比較する。データ構造の中に同じメッセージIDがある場合、そのメールに対しては既に関連情報を提示しているので、関連情報を提示しない。一方、データ構造の中に同じメッセージIDがない場合、そのメールに対しては関連情報を提示していないので関連情報を提示し、メッセージIDをデータ構造に記録する。
【０１１２】
このような手法を用いることにより、同一のメールに対して何度も関連情報を提示するような事態の発生を抑止することが可能となる。
【０１１３】
次に、図１２および図１３のフローチャートを参照して、図６を用いて説明した関連情報提示処理のうち、主にエージェントの動作および台詞等について、詳細に説明する。
【０１１４】
例えば、エージェントプログラム１が起動されている状態においてメーラ２が起動された場合、ステップＳ６１において、エージェント制御部１３は、例えば、図１４に示されるように、メーラ２のウィンドウ（以下、メーラウィンドウと記載する）７１の表示と重畳しない位置に、エージェント７２を表示（登場）させる。
【０１１５】
なお、エージェント７２の登場は、例えば、図１５Ａ乃至図１５Ｄに示す画像が順次表示されることによって、エージェント７２が前転しながらデスクトップ上に出現する動画が表現される。エージェント７２の登場とともに、エージェント７２の台詞として吹き出し７３と、保存されている関連情報が一覧表示されているスクラップ帳ウィンドウ７４（後述）が表示される。吹き出し７３の中には、例えば、図１６に示されるように、登場の挨拶「おはよう、SAITOさん！」と、自己紹介「ぼく、alfだよ。」の台詞が表示される。
【０１１６】
また、吹き出し７３の表示と同期して、吹き出し７３に表示された台詞の音声信号が音声合成部（図示せず）によって合成されて出力するようにすることができる。なお、吹き出し７３に表示された台詞の音声信号は、吹き出し７３に表示された言語（図１６の例の場合、日本語）、あるいは、吹き出し７３に表示された言語と同じ意味を持つ他の言語（例えば、英語の場合、”Good morning,SAITO"、"I'm Alf"）の音声信号が音声合成部によって合成されて出力されるようにしてもよい。そして、以降に表示される吹き出し７３にも対応する音声信号が同期して出力される。
【０１１７】
なお、吹き出し７３や対応する音声は、出力しなくてもよい。以降、いずれの処理においても、吹き出し７３および対応する音声は、エージェントプログラム１の規定により出力するか否かを設定するようにするか、あるいは、ユーザにより、出力するか否かを任意に設定できるようにする。
【０１１８】
その後、エージェント７２の表示は、ステップＳ６２において、例えば、図１７に示されるように、待機中の様子（手を後に組み、つま先を上下させる）を示す動画に推移される。
【０１１９】
ステップＳ６３において、エージェントプログラム１は、入力部４６に入力されるユーザからのコマンドに応じて、メーラ２が終了されたか否かを判定し、メーラ２が終了されていないと判定した場合、ステップＳ６４に進む。
【０１２０】
ステップＳ６４において（上述した図６のステップＳ１２に対応する）、メーラ２は、ユーザから何らかのコマンド（メールの送受信、メールの編集、あるいは関連情報の編集等）が入力されたか否かを判定し、何らかのコマンドが入力されたと判定した場合、ステップＳ６５に進み、コマンドに対応する処理を開始する。
【０１２１】
ステップＳ６５において、エージェントプログラム１のイベント管理部３１は、メールの送信、受信、または編集のコマンドが入力されたか否かを判定さし、メールの送受信または編集のコマンドが入力されたと判定した場合、ステップＳ６６に進む。
【０１２２】
ステップＳ６６において、エージェント制御部１３は、エージェント７２の表示を、図１７に示した待機中の様子から、例えば、図１８に示されるように、作業中の様子（手足を激しく移動する）を示す動画に推移させる。この間に、図６のステップＳ１３乃至Ｓ１５の処理（ユーザに推薦する関連情報を選択する処理）が実行される。
【０１２３】
ステップＳ６７において、エージェントプログラム１は、コマンドに対応して開始されたメーラ２の処理（例えば、メール送信など）が継続中であるか否かを判定し、メーラ２の作業中の処理が終了するまで判定処理を繰り返し実行する。すなわち、メーラ２の作業中の処理が終了するまで、エージェント制御部１３は、エージェント７２の表示を、図１８に示した作業中の状態のまま待機する。
【０１２４】
ステップＳ６７において、メーラ２の処理が継続中ではない、すなわち、コマンドに対応して開始されたメーラ２の作業中の処理が終了したと判定された場合、ステップＳ６８に進む。
【０１２５】
ステップＳ６８において、エージェントプログラム１は、再度、入力部４６に入力されるユーザからのコマンドに応じて、メーラ２が終了されたか否かを判定し、メーラ２が終了されていないと判定した場合、ステップＳ６９に進む。
【０１２６】
ステップＳ６９（図６のステップＳ１６に対応する）において、エージェント制御部１３は、ステップＳ６７のメーラ２の処理がメール送信であった場合、エージェント７２の吹き出し７３に、例えば、「今、Ａさんにメール送ったけど、某月某日にＡさんと（タイトル）について話していたよね。その中にでてきた（キーワード）について、関連するページを見つけたよ。見てみる？」と表示させる。
【０１２７】
また例えば、ステップＳ６７のメーラ２の処理がメール受信であった場合、台詞の前半が「今、Ａさんからメールがきたけど」となり、ステップＳ６７のメーラ２の処理がメールの編集であった場合、台詞の前半が「今、Ａさんにメールを書いているけど」となる。
【０１２８】
さらにまた例えば、ステップＳ６６の処理（図６のステップＳ１３乃至Ｓ１５のユーザに推薦する関連情報を選択する処理）において、所定の閾値以上の類似度が算出されずに、単にやりとり関係のある話題を選択したり、あるいは、同じ単語が含まれている話題を選択した場合には、すなわち、該当する話題がないという事態を避けるために任意に選択された話題の場合には、台詞を、例えば、「これまで（タイトル）というメールのやりとりがあったよね」や「（キーワード）という単語は、（タイトル）というメールにも出ていたよね」となる。
【０１２９】
なお、「某月某日にＡさんと（タイトル）について話していたよね。」の部分は、関連情報が選択（推薦）された理由に相当するが、関連情報の選択理由の表示を、ステップＳ６９において実行せずに、後述するステップＳ７２の処理（関連情報の表示）の後に表示するようにしてもよい。また、関連情報の選択理由の表示をユーザの指示により任意のタイミング（例えば、メニューで理由をたずねるコマンドを用意するなど）で実行するようにしてもよい。
【０１３０】
また、タイマ３１Ａによる一定時間経過時の提示（定期的提示）に関しては、「今、Ａさんからメールがきたけど」など、特定のイベントを示すような表現ではなく、例えば、「某月某日にＡさんと（タイトル）について話していたよね。」の部分だけを表示するようにする。
【０１３１】
さらに、これらの吹き出し７３は、関連情報を提示する前に表示してもよいし、あるいは、関連情報を提示した後に表示してもよい。
【０１３２】
吹き出し７３に隣接する位置には、例えば、図１９に示されるように、入力ウィンドウ８１が表示される。入力ウィンドウ８１には、図２０に示されるように、関連情報の表示を指示するときに選択する「見る」と示されたボタン、関連情報を表示させない時に選択する「見ない」と示されたボタン、関連情報が選択された背景（選択理由）の再表示を指示するときに選択する「背景をもう一度教えて」と示されたボタンが表示される。
【０１３３】
入力ウィンドウ８１が表示された状態で、ステップＳ７０において、エージェント制御部１３は、エージェント７２の表示を、図１７に示した待機中の様子を示す動画に推移させる。ステップＳ７１（図６のステップＳ１７に対応する）において、エージェントプログラム１は、入力ウィンドウ８１の中の「見る」と示されたボタン、「見ない」と示されたボタン、または「背景をもう一度教えて」と示されたボタンのいずれがユーザにより選択されたか否かを判定する。なお、この入力ウィンドウ８１は、表示しなくてもよい。
【０１３４】
ステップＳ７１において、入力ウィンドウ８１の「見る」と示されたボタンが選択されたと判定された場合、ステップＳ４２に進む。ステップＳ４２（図６のステップＳ１８に対応する）において、エージェント制御部１３は、例えば、図２１および図２２に示されるように、関連情報として推薦URL９１を表示させ、エージェント７２の表示を、表示された推薦URL９１を指し示す動画に推移させるとともに、吹き出し７３に、台詞「どう？」を表示させる。推薦URL９１には、通常、推薦されるWebページのタイトルが表示され、推薦URL９１の上にマウスカーソルが置かれたときだけURLも重畳して表示される。推薦URL９１は、マウスカーソルでドラッグすることにより移動可能である。
【０１３５】
ステップＳ７３（図６のステップＳ１９に対応する）において、エージェントプログラム１は、表示した推薦URL９１に対するユーザのコマンドを検出する。表示される推薦URL９１に対するユーザのコマンドとしては、記録、アクセス、または消去等がある。
【０１３６】
推薦URL９１に対する記録コマンドは、例えば、記録する推薦URL９１をスクラップ帳ウィンドウ７４までドラッグアンドドロップする方法や、マウスで右クリックし、表示されるメニューの中から記録を選択する方法などが考えられる。あるいは、推薦URL９１は、すべて自動的に記録されるようにしてもよい。アクセスコマンドや消去コマンドについても同様に、WWWブラウザのアイコンやゴミ箱のアイコンにドラッグアンドドロップする方法や、マウスで右クリックし、表示されるメニューの中から選択する方法、あるいはクリッカブルにする方法などが考えられる。
【０１３７】
ステップＳ７３において、推薦URL９１に対する記録コマンドが検出された場合、ステップＳ７４（図６のステップＳ２１に対応する）において、エージェント制御部１３は、エージェント７２の表示を、例えば、図２３に示されるように、頷く動作に推移させる。スクラップ帳ウィンドウ７４の中に、記録が指示された推薦URL９１に対応するWebページのタイトルが追加される。
【０１３８】
また、ステップＳ７３で、推薦URL９１に対するアクセスコマンドが検出された場合、ステップＳ７４（図６のステップＳ２０に対応する）において、エージェント制御部１３は、エージェント７２の表示を、例えば、図２４Ａおよび図２４Ｂに示されるように、笑顔となって喜ぶ様子に推移させる。吹き出し７３には、「わーい」と表示され、対応する音声信号が出力される。
【０１３９】
また、ステップＳ７３で、推薦URL９１に対する消去コマンドが検出された場合、ステップＳ７４において、エージェント制御部１３は、エージェント７２の表示を、例えば、図２５Ａおよび図２５Ｂに示されるように、泣き顔となって悲しみ失望した様子に推移させる。吹き出し７３には、「だめかぁ」と表示され、対応する音声信号が出力される。
【０１４０】
ステップＳ７４の処理が終了した後、ステップＳ６２に戻り、それ以降の処理が繰り返し実行される。
【０１４１】
なお、ステップＳ７１において、入力ウィンドウ８１の「見ない」と示されたボタンが選択されたと判定された場合、ステップＳ６２に戻り、それ以降の処理が繰り返し実行される。また、ステップＳ７１において、入力ウィンドウ８１の「背景をもう一度教えて」と示されたボタンが選択されたと判定された場合、ステップＳ６９に戻り、ステップＳ６９乃至Ｓ７１の処理が繰り返される。
【０１４２】
ステップＳ６８において、メーラ２が終了されたと判定された場合、ステップＳ７５に進み、エージェント制御部１３は、吹き出し７３に、「え、そんなぁ」と表示させ、対応する音声信号を出力させた後、ステップＳ７６において、エージェント７２の表示を消失させる（図３０を参照して後述する）。
【０１４３】
ステップＳ６５において、関連情報の編集を指示するコマンドが入力されたと判定された場合、ステップＳ７７に進み、関連情報提示部３３は、関連情報編集用ウィンドウ（図示せず）を表示させ、エージェント制御部１３は、エージェント７２の表示を、図１７に示した待機中の様子から、図２２と同様に、関連情報編集用ウィンドウを指し示す様子に推移させる。その後、ユーザが関連情報編集用ウィンドウに対して編集のための入力を開始すると、ステップＳ７８において、エージェント制御部１３は、エージェント７２の表示を、関連情報編集用ウィンドウを指し示す様子から、図１８に示した作業中の様子を示す動画に推移させる。
【０１４４】
ステップＳ７９において、エージェントプログラム１は、関連情報編集処理が継続中であるか否かを判定し、関連情報編集処理が終了するまで判定処理を繰り返し実行する。すなわち、関連情報編集処理が終了するまで、エージェント制御部１３は、エージェント７２の表示を、図１８に示した作業中の状態のまま待機する。
【０１４５】
ステップＳ７９において、関連情報編集処理が継続中ではない、すなわち、コマンドに対応して開始された関連情報編集処理が終了したと判定された場合、ステップＳ８０に進む。
【０１４６】
ステップＳ８０において、エージェント制御部１３は、エージェント７２の表示を、図２３と同様に、頷く様子に推移させる。吹き出し７３には、「変更したよ」と表示され、対応する音声信号が出力される。その後、処理は、ステップＳ６２に戻り、それ以降の処理が繰り返し実行される。
【０１４７】
ステップＳ６４において、メーラ２に対してユーザから何らかのコマンドが入力されない状態が所定の時間以上継続した場合、ステップＳ８１に進む。ステップＳ８１において、エージェント制御部１３は、エージェント７２の表示を、所定の時間が経過する毎に、移動の状態、遊びの状態、または睡眠の状態に順次推移させる。この待機中の処理の詳細について、図１３のフローチャートを参照して説明する。なお、各処理は、エージェント制御部１３が実行する。
【０１４８】
ステップＳ９１において、エージェント７２の表示は、図１７に示した待機中の状態から、例えば、図２６または図２７に示した画像を用いて表現される移動の状態に推移する。
【０１４９】
エージェント７２の移動は、表示されているウィンドウと重畳しないようにデスクトップ上を横方向あるいは縦方向に行われる。なお、アクティブであるウィンドウ（いまの場合、メーラウィンドウ７１）を検出して、その周囲を横方向あるいは縦方向に行うようにしてもよい。エージェント７２がデスクトップ上を横方向（例えば、右方向）に移動するときには、例えば、図２６Ａ乃至図２６Ｄに示される画像が順次用いられることにより、いわゆるワープしたかのような動画表現が実現される。
【０１５０】
具体的には、エージェント７２の表示は、移動開始位置において、図２６Ａに示されるように、体の向きが移動する方向とされ、その後、指向している方向にジャンプすると、図２６Ｂに示されるように、頭部から順に消滅して行く。そして、移動終了位置において、図２６Ｃに示されるように、脚部から順に表示されて、最終的には、図２６Ｄに示されるように全身が表示される。
【０１５１】
エージェント７２がデスクトップ上を上下方向に移動するときには、例えば、図２７Ａ乃至図２７Ｇに示される画像が順次用いられる。すなわち、エージェント７２は、移動開始位置において、図２７Ａに示されるように、自身の尻尾（先端がコンセントプラグの形状をしている）を手で握り、図２７Ｂに示されるように、尻尾の先端を頭上付近に差し込む。
【０１５２】
その後、エージェント７２の表示は、図２７Ｃ、図２７Ｄに順次示されるように、体の下部から徐々にロープに変身し、図２７Ｅに示されるように、１本のロープになってその状態で移動終了位置まで移動する。移動終了位置においては、図２７Ｆ、図２７Ｇに順次示されるように、頭部から順に復元されて、最終的に全身が表示される。
【０１５３】
このように、エージェント７２の移動を、いわゆるワープによって表現したり、１本のロープに変身させて表現したりすることにより、移動中を表現するために使われるリソース（メモリなど）の量を軽減させることが可能となる。
【０１５４】
図１３の説明に戻る。ステップＳ９２において、イベント（メールの送受信、メールの編集、あるいは関連情報の編集等を指示するコマンドの入力）が発生したか否かが判定される。イベントが発生していないと判定された場合、ステップＳ９３に進む。
【０１５５】
ステップＳ９３において、エージェント７２の表示が移動の状態に推移した後、所定の時間が経過したか否かが判定され、所定の時間が経過したと判定されるまで、ステップＳ９２およびステップＳ９３の処理が繰り返し実行される。ステップＳ９３において、所定の時間が経過したと判定された場合、ステップＳ９４に進む。
【０１５６】
ステップＳ９４において、エージェント７２の表示は、移動の状態から、例えば、図２８に示される画像で表現される「遊び」の状態に推移する。図２８Ａは、エージェント７２が蛇と戯れている状態を示しており、図２８Ｂは、エージェント７２が尻尾の先端を上方に差し込み、そこを支点としてぶら下がり揺れている状態を示している。
【０１５７】
ステップＳ９５において、イベントが発生したか否かが判定される。イベントが発生していないと判定された場合、ステップＳ９６に進む。ステップＳ９６において、エージェント７２の表示が遊びの状態に推移した後、所定の時間が経過したか否かが判定され、所定の時間が経過したと判定されるまで、ステップＳ９５およびステップＳ９６の処理が繰り返し実行される。ステップＳ９６において、所定の時間が経過したと判定された場合、ステップＳ９７に進む。
【０１５８】
ステップＳ９７において、エージェント７２の表示は、遊びの状態から、例えば、図２９に示される画像で表現される「睡眠」の状態に推移する。ステップＳ９８において、イベントが発生したか否かが判定され、イベントが発生するまで判定処理が繰り返し実行される。ステップＳ９８において、イベントが発生したと判定された場合、図１２のステップＳ６５にリターンし、それ以降の処理が実行される。
【０１５９】
なお、ステップＳ９２、またはステップＳ９５において、イベントが発生したと判定された場合も同様に、図１２のステップＳ６５にリターンし、それ以降の処理が実行される。
【０１６０】
また、図１３のフローチャートには図示していないが、待機中の処理が実行されている最中において、メーラ２が終了されたと判定された場合、ステップＳ７６にリターンする。同様に、図１２のステップＳ６３において、メーラ２が終了されたと判定された場合、ステップＳ７６に進む。
【０１６１】
ステップＳ７６において、エージェント制御部１３は、エージェント７２の表示を、例えば、図３０Ａおよび図３０Ｂに示される画像で表現される「消失」の状態に推移させる。図３０Ａは、エージェント７２が手を振りながら背を向けて遠方に立ち去る状態を示しており、図３０Ｂは、エージェント７２が徐々に小さくなってやがて消失される状態を示している。
【０１６２】
なお、エージェント７２の消去とともに、吹き出し７３、スクラップ帳ウィンドウ７４、および推薦URL９１等の表示も消去される。
【０１６３】
以上のように、本発明によれば、電子メール等の文書から重みの高い単語（重要語）を抽出し、関連情報を推薦する一連の処理に対応して、エージェント７２が動作するので、エージェント７２に対して信頼性や親しみが感じられるようになる。
【０１６４】
ところで、上述したエージェント７２の動作および吹き出し７３の中の台詞の表示、並びに、表示された台詞に対応する音声信号の出力については、本発明のエージェントプログラム１だけでなく、他のアプリケーション、例えば、ゲームやワードプロセッサのヘルプ画面等に適用することが可能である。さらに、テレビジョン受像機、ビデオカメラ、またはカーナビゲーション等のディスプレイに表示されるキャラクタに適用することも勿論可能である。
【０１６５】
また、同一のパーソナルコンピュータを複数のユーザが操作する場合、エージェント７２の種類を複数用意して、ユーザ毎に表示されるエージェント７２（図３１）の種類を変えるようにしてもよい。また、エージェント７２は、ユーザが好みのキャラクタを自由に作成し、編集できるようにしてもよい。さらに、同一のユーザが複数のパーソナルコンピュータ上でエージェントプログラム１を利用する場合、異なるパソコン上においても同じエージェント７２が表示されるようにしてもよい。
【０１６６】
なお、以上においては、エージェントプログラム１が実行されている場合、エージェント７２は、常に登場しているものとして説明したが、推薦時にのみ表示させたり、その設定を変更することができる。
【０１６７】
例えば、ユーザは、エージェントプログラム１が実行されている状態で、マウスを右クリックし、図３１に示されるようなメニューボックス１０１を表示させて、その中から、「いろいろな設定をする」の項目を選択することにより、図３２に示されるような設定画面を表示させる。
【０１６８】
図３２の例の設定画面には、複数のタブが配置されており、「エージェント」と示されたタブがアクティブとされているとき、ユーザが選択または入力可能な、エージェントの名前、表示、効果音、推薦間隔、推薦保存数、推薦するときのせりふ、および推薦データ更新などの項目が表示される。
【０１６９】
ユーザは、これらの項目に対して、それぞれ、所望の情報（エージェントの名前）を入力したり、あるいは、所定の項目を選択することによって、自分好みにエージェント７２および吹き出し７３の表示状態、あるいは、推薦する関連情報の推薦間隔時間や保存数などを設定することができる。
【０１７０】
次に、蓄積部１１によるデータベースの更新のタイミングについて説明する。データベースは、図３のフローチャートを用いて上述したデータベース作成処理によって作成されるが、次のような第１乃至第３の状況になった場合、データベースの更新が必要である。
【０１７１】
すなわち、第１の状況として、データベースが作成または更新されてから所定の期間が経過している場合、データベース内の関連情報が古くなってしまうので更新が必要である。第２の状況として、データベースに蓄積されている関連情報のうちの所定の割合が提示済みとなった場合、データベース内の関連情報を繰り返し提示してしまったり、提示する関連情報が不足してしまうので更新が必要である。第３の状況として、特徴抽出に用いた文書が、例えば電子メールである場合、電子メールの送受信を繰り返していると、その文書の内容が変化するので更新が必要である。
【０１７２】
なお、データベースの更新が必要である状況になった場合（例えば、イベント管理部３１がタイマ３１Ａを監視し、所定の期間が経過したとき）、ユーザに対して更新を指示するように促すこともできるし、ユーザに対する促しを実行せずに、自動的にデータベースを実行するように設定することも可能である。また、ユーザが指定する任意のタイミングで更新することも勿論可能である。
【０１７３】
前記第１乃至第３の状況を考慮したデータベース更新処理について、図３３のフローチャートを参照して説明する。このデータベース更新処理は、エージェントプログラム１が実行する処理のうちの１つであり、エージェントプログラム１の起動とともに開始され、エージェントプログラム１が終了されるまで繰り返し実行される。なお、この処理を開始するにあたって、図３を用いて説明したデータベース作成処理が実行されており、データベースが既に作成されているものとする。
【０１７４】
ステップＳ１１１において、エージェントプログラム１の蓄積部１１は、作成済みのデータベースの更新が必要であるか否かを判定し、更新が必要であると判定されるまで待機する。この判断基準は、例えば、図３４に示すようなユーザインタフェースの画面を用いて予めユーザが設定するものとする。図３４の例では、４つの条件が示されており、左端の□（チェックボックス）がユーザによってチェックされた場合、対応する条件が有効となる。なお、１番目の条件では回数が設定可能とされており、３番目の条件では日数が設定可能とされている。
【０１７５】
ステップＳ１１１において、更新が必要であると判定された場合、ステップＳ１１２に進み、さらに蓄積部１１は、データベースを自動的に更新するように設定されているか否かを判定し、自動的に更新するように設定されていないと判定した場合、ステップＳ１１３に進む。一方、ステップＳ１１２において、自動的に更新するように設定されていると判定された場合、ステップＳ１１３の処理はスキップされる。
【０１７６】
ステップＳ１１３において、エージェントプログラム１の提示部１２は、データベースの更新が必要である旨をユーザに通知するとともに、さらに、その通知に対応して、ユーザから更新の指示がなされたか否かを判定する。ユーザから更新の指示がなされたと判定された場合、ステップＳ１１４に進み、ユーザから更新の指示がなされないと判定された場合、ステップＳ１１１に戻り、上述した処理が繰り返し実行される。
【０１７７】
ステップＳ１１４において、エージェントプログラム１の蓄積部１１は、データベースを更新する。具体的には、文書取得部２１乃至文書内容処理部２３が、電子メールのメールボックスファイル（例えば、mbx等の拡張子が付加されていることが多い）を検出し、その更新日時を取得して、以前に取得した更新日時と比較して、異なる日付と異なるファイルサイズであれば、ファイルが更新されていると判断し、追加または変更された部分を抽出する。この場合、メールのグループ化、ヘッダの解析、形態素解析、特徴ベクトル算出等、一連のファイル内の分析が行われ、得られる重要語が関連情報検索部２５に供給される。
【０１７８】
ただし、メールグループ（話題）が変化せず（所定の話題に追加されるメールがなく）、分析の結果、更新以前の重要語（検索用キーワード）と更新後の重要語が同じであれば、重み等の計算値だけを変更し、関連情報検索部２５による関連情報の検索を実行しないようにしてもよい。また、関連情報をインタネット等のネットワーク上で検索する場合、ネットワークに接続されているか否かが検出され、ネットワークに接続されていない場合、関連情報の検索を行わず、それ以後、ネットワークに接続されたときに関連情報を検索するか否かをユーザに問うようにしてもよい。
【０１７９】
「同じ関連情報を何度も推薦（提示）しないようにするために、あるメールグループの関連情報を、所定の回数以上推薦したら更新が必要と判断する」との条件に関連して、取得したメールと類似性の高いメールグループ（話題）を選択する際に、同じメールグループから何度も推薦を行わないように、上述したようにして、メールグループ自体に推薦の優先度の順位を付与し、一度推薦を行ったメールグループを優先順位の最後尾に並び替えるようにする。
【０１８０】
以上説明したように、データベース更新処理においては、追加された文書や変更された文書だけを処理の対象とするので、データベース作成処理を繰り返し実行する場合に比べて、処理時間が短縮される。
【０１８１】
また、データベース更新処理において、ユーザの興味をより反映することができるようにするために、算出された単語の重み（特徴ベクトル）を修正するようにしてもよい。
【０１８２】
ところで、図６のフローチャートを用いて説明したエージェントプログラム１の関連情報提示処理は、メールの送受信の終了などのイベント発生時に、そのタイミングを逸することなく、イベント発生に対応する文書の関連情報を提示するようにした。しかしながら、頻繁にメールの送受信を行わないユーザの場合、その関連情報を提示する機会が極端に少なくなる。そこで、イベント発生とは別に、定期的に提示するための関連情報を予めデータベースに蓄積しておき、ユーザに対して、所定期間毎に関連情報を提示することによって、関連情報提示の機会を多くすることができる。
【０１８３】
次に、図３５のフローチャートを参照して、関連情報を定期的に提示するための関連情報を取得する処理について説明する。この関連情報取得処理は、エージェントプログラム１が実行する処理のうちの１つであり、エージェントプログラム１が実行された場合において、関連情報の取得が必要であると判断されたときに開始される。
【０１８４】
ステップＳ１２１において、文書取得部２１は、所定期間に新規に蓄積された文書（例えば、最新７日分に新規に送受信された電子メール）を、記憶部４９に内蔵されるハードディスクドライブから取得して文書属性処理部２２および文書内容処理部２３に供給する。以下、このような送受信メールをコンテクストメールと称する。
【０１８５】
ステップＳ１２２において、文書属性処理部２２は、ステップＳ１２１の処理で文書取得部２１により取得されたコンテクストメールの文書から属性情報（メッセージID等のヘッダ情報）を抽出し、文書内容処理部２３および文書特徴データベース作成部２４に供給する。
【０１８６】
ステップＳ１２３において、文書内容処理部２３は、ステップＳ１２２の処理で文書属性処理部２２より供給されたコンテクストメールの本文のテキストデータを抽出し、さらにテキストデータの形態素解析を施し、（予め、蓄積部１１で取得してある）不要語を除く単語（特徴語）を抽出する。そして、文書内容処理部２３は、抽出された各単語の出現頻度、複数の文書に亘る分布状況を求め、コンテクストメール毎に、各単語の重みを、例えば、tf・idf法を用いて演算する。これにより、コンテクストメール毎の特徴ベクトルが算出される。
【０１８７】
ステップＳ１２４において、文書特徴データベース作成部２４は、ステップＳ１２３の処理で算出された各コンテクストメールの特徴ベクトルと、データベースに記録されている話題毎の特徴ベクトルとの内積から類似度をそれぞれ算出し、類似度が所定の条件を満たすものを抽出（選択）する。ここでは、図７のフローチャートを用いて説明した、類似度が最大になる話題の選択処理が用いられる。
【０１８８】
ステップＳ１２５において、文書特徴データベース作成部２４は、ステップＳ１２４の処理で選択された話題に関連付けられている関連情報（WebページのURLやWebページのタイトルなど）およびその話題の検索用キーワード（重要語）を取得する。
【０１８９】
ステップＳ１２６において、文書特徴データベース作成部２４は、ステップＳ１２２の処理で抽出されたコンテクストメールの属性情報と、ステップＳ１２５の処理で取得した関連情報を検索用キーワードに対応付けてリスト化し、記憶部４９に記録する。具体的には、コンテクストメールが時系列順にソートされ、各コンテクストメールに類似する話題に関連付けられている関連情報が時系列順にソートされてリスト化される。または、検索用キーワード（重要語）の重みが大きい順にソートされ、各検索用キーワードに対応する関連情報がソートされてリスト化される。なお、リストの順番は、これに限られるものではない。
【０１９０】
以上の処理によって、定期的に提示するための関連情報が提示順にリスト化されて記録される。
【０１９１】
次に、図３６のフローチャートを参照して、関連情報の定期的提示処理について説明する。この関連情報の定期的提示処理は、図６を用いて上述した関連情報提示処理と同様に、エージェントプログラム１が実行されている間、繰り返して実行される。
【０１９２】
ステップＳ１３１において、エージェントプログラム１は、入力部４６に入力されるユーザからのコマンドによって、エージェントプログラム１の終了が指示されたか否かを判定し、エージェントプログラム１の終了が指示されていないと判定した場合、ステップＳ１３２に進む。
【０１９３】
ステップＳ１３２において、イベント管理部３１は、タイマ３１Ａを監視し、所定時間（例えば、１０分）が経過したか否か、すなわち、関連情報提示のタイミングであるか否かを判定し、所定時間が経過していないと判定した場合、ステップＳ１３１に戻り、上述した処理が繰り返し実行される。
【０１９４】
ステップＳ１３２において、所定時間が経過したと判定された場合、ステップＳ１３３に進み、イベント管理部３１は、所定時間が経過した（関連情報提示のタイミングである）旨をデータベース問い合わせ部３２に通知する。データベース問い合わせ部３２は、イベント管理部３１からの通知に対応して、データベースを参照し、定期的に提示するために提示順にリスト化されている関連情報のうち、次に提示すべき（優先度の高い）関連情報を取得し、イベント管理部３１を介して、あるいは、直接、関連情報提示部３３に供給する。
【０１９５】
ステップＳ１３４において、エージェント制御部１３は、ステップＳ１３３の処理で取得された関連情報に対応するコンテクストメールの属性情報を、選択（推薦）した理由としてデスクトップに表示させ、関連情報提示部３３は、データベース問い合わせ部３２から供給された関連情報をデスクトップに表示させる。また、推薦理由は表示しなくてもよく、エージェントプログラム１の規定により表示するか否かを設定するようにするか、あるいは、ユーザにより、表示するか否かを任意に設定できるようにする。
【０１９６】
なお、図６のステップＳ１６の処理で説明したように、関連情報を表示するか否かユーザに問う入力ウィンドウ８１（図１９）をデスクトップに表示させるようにしてもよい。その場合、エージェントプログラム１は、入力部４６に入力されるユーザからのコマンドによって、ステップＳ１３４の処理で表示された入力ウィンドウ８１に呼応して、ユーザが「見る」ボタンを選択したか否かを判定し、「見る」ボタンが選択されたとき、関連情報提示部３３は、関連情報をデスクトップに表示させる。
【０１９７】
ステップＳ１３５において、エージェントプログラム１は、入力部４６に入力されるユーザからのコマンドによって、ステップＳ１３４の処理により関連情報として表示されたWebページのタイトルに対して、ユーザがアクセスを指令したと判定した場合、ステップＳ１３６に進む。ステップＳ１３６において、WWWブラウザが起動され、対応するWebページへのアクセスが行われる。
【０１９８】
ステップＳ１３５において、ステップＳ１３４の処理により関連情報として表示されたWebページのタイトルに対して、ユーザが記録を指令したと判定された場合、ステップＳ１３７に進む。ステップＳ１３７において、エージェントプログラム１は、対応するWebページのタイトルおよびURLをスクラップ帳ウィンドウ７４（図１４）に記録する。なお、ステップＳ１３５において、ステップＳ１３４の処理により関連情報として表示されたWebページのタイトルに対して、ユーザから何の指令もなされずに所定の時間が経過したと判定された場合、ステップＳ１３６またはステップＳ１３７の処理はスキップされて、ステップＳ１３８に進む。なお、推薦されたURLやタイトルの履歴は自動的に記録されるようにしてもよい。
【０１９９】
ステップＳ１３８において、データベース問い合わせ部３２は、いま表示した関連情報をリスト（データベース）から削除し、ステップＳ１３９において、定期的に提示するためにリスト化されている残りの関連情報が所定数（例えば、５個）以上あるか否かを判定し、所定数以上ないと判定した場合、ステップＳ１４０に進む。ステップＳ１４０において、図３５を用いて上述した関連情報取得処理が実行される。
【０２００】
すなわち、定期的に提示するためにリスト化されていた関連情報が不足していまい、それ以降推薦することができないという事態を避けるために、ステップＳ１３９の判定処理が実行される。そして、予めリストに用意した関連情報の残りが所定数より少なくなった場合、ステップＳ１４０の関連情報取得処理が再実行される。
【０２０１】
この場合、関連情報が記録されているデータベースに、どの関連情報が定期的に推薦するために使用されたのかを示すデータを付加しておく。このようにすることで、ステップＳ１４０の関連情報取得処理が再実行された場合、未使用の（使用されたというデータが付加されていない）関連情報を取得（補給）することができる。あるいは、定期的に推薦するために使用された関連情報は、データベースから削除しておき、データベースに残されている関連情報から取得するようにしてもよい。
【０２０２】
このような手法を用いることにより、同一の関連情報を何度も提示するような事態の発生を抑制することができる。
【０２０３】
ステップＳ１３９において、定期的に提示するためにリスト化されている残りの関連情報が所定数以上あると判定された場合、または、ステップＳ１４０の処理の後、ステップＳ１３１に戻り、上述した処理が繰り返し実行される。さらにステップＳ１３１において、ユーザによりエージェントプログラム１の終了が指示されたと判定された場合、処理は終了される。
【０２０４】
このように、エージェントプログラム１を実行中、所定の期間毎に、提示用リストにリストアップされている関連情報が順次提示される。ただし、関連情報が定期的に提示されるタイミングと、イベント発生に対応して関連情報が提示されるタイミングが重なる場合、いずれの推薦方法を利用するかの優先順位を予め設定しておくようにすることができる。通常は、イベント発生に対応して提示される関連情報を優先する方が、ユーザに対して、より興味のある情報を提示することができる。
【０２０５】
次に、図３７のフローチャートを参照して、図３６を用いて説明した、関連情報の定期的提示処理のうち、主にエージェントの動作および台詞等について、詳細に説明する。
【０２０６】
例えば、エージェントプログラム１が起動されている状態において、ステップＳ１５１において（図３６のステップＳ１３２に対応する）、関連情報提示のタイミングであるか否かが判定され、関連情報提示のタイミングであると判定されるまで待機する。この間に、図３６のステップＳ１３３の処理（ユーザに推薦する関連情報を取得する処理）が実行される。
【０２０７】
ステップＳ１５１において、関連情報提示のタイミングであると判定された場合、ステップＳ１５２に進み、エージェント制御部１３は、例えば、図３８に示されるように、ユーザが、現在作業中（使用中）のウィンドウ（以下、作業中ウィンドウと記載する）１１１の表示と重畳しない位置に、エージェント７２を表示（登場）させる。
【０２０８】
なお、エージェント７２の登場は、例えば、図１５Ａ乃至図１５Ｄに示した画像が順次表示されることによって、エージェント７２が前転しながらデスクトップ上に出現する動画が表現される。エージェント７２の登場とともに、エージェント７２の台詞として吹き出し７３と、保存されている関連情報が一覧表示されているスクラップ帳ウィンドウ７４が表示される。吹き出し７３の中には、例えば、登場の挨拶「こんにちは、SAITOさん！」と、自己紹介「ぼく、alfだよ。」の台詞が表示される。
【０２０９】
ただし、関連情報が提示される毎に、「こんにちは、SAITOさん！ぼく、alfだよ。」の台詞が表示されると、ユーザにとっては、煩わしいと感じることがあるため、例えば、そのような自己紹介付きの挨拶は、その日の最初（１回目）の関連情報提示のタイミング時にのみ表示させるようにして、その日の２回目以降の関連情報提示のタイミング時には、何も表示させないか、あるいは、例えば、「こんにちは！」のみの台詞を表示させるようにする。また、エージェント７２の動作も、時間がかかる動作ではなく、比較的短い時間で表示されるような動作に変更してもよい。
【０２１０】
また、吹き出し７３の表示と同期して、吹き出し７３に表示された台詞と同じ意味を持つ言語（いまの場合、日本語）もしくは同じ意味を持つ他の言語（例えば、英語）の音声信号が同期して出力されるようにしてもよい。
【０２１１】
ステップＳ１５３（図３６のステップＳ１３４に対応する）において、エージェント制御部１３は、エージェント７２の吹き出し７３に、例えば、「（タイトル）というメールがあったよね。その中にでてきた（キーワード）について、関連するページを見つけたよ。見てみる？」と表示させる（図２０）。また例えば、台詞の前半を「最近、（タイトル）というメールがあったね。」や「このメール、過去の（タイトル）に似ているね。」などと表示させてもよい。
【０２１２】
吹き出し７３に隣接する位置には、入力ウィンドウ８１（図２０）が表示される。そして、ステップＳ１５４において、エージェント制御部１３は、入力ウィンドウ８１が表示された状態で、エージェント７２の表示を、図１７に示した待機中の様子を示す動画に推移させる。ステップＳ１５５において、エージェントプログラム１は、入力ウィンドウ８１の中の「見る」と示されたボタン、「見ない」と示されたボタン、または「背景をもう一度教えて」と示されたボタンのいずれがユーザにより選択されたか否かを判定する。
【０２１３】
ステップＳ１５５において、入力ウィンドウ８１の「見る」と示されたボタンが選択されたと判定された場合、ステップＳ１５６に進む。ステップＳ１５６（図３６のステップＳ１３４に対応する）において、エージェント制御部１３は、関連情報として推薦URL９１を表示させ、エージェント７２の表示を、表示された推薦URL９１を指し示す動画に推移させるとともに、吹き出し７３に、台詞「どう？」を表示させる（図２２）。
【０２１４】
なお、関連情報の定期的提示処理の場合には、関連情報の有無を問う入力ウィンドウ８１を表示せずに（ステップＳ１５３乃至Ｓ１５５の処理を実行せずに）、エージェント７２の登場とともに、関連情報を提示（推薦）するようにしてもよい。
【０２１５】
ステップＳ１５７（図３６のステップＳ１３５に対応する）において、エージェントプログラム１は、表示した推薦URL９１に対するユーザのコマンドを検出する。表示される推薦URL９１に対するユーザのコマンドとしては、記録、アクセス、または消去等がある。
【０２１６】
ステップＳ１５７において、推薦URL９１に対する記録コマンドが検出された場合、ステップＳ１５８（図３６のステップＳ１３７に対応する）において、エージェント制御部１３は、エージェント７２の表示を、例えば、図２３に示したように、頷く動作に推移させる。スクラップ帳ウィンドウ７４の中に、記録が指示された推薦URL９１に対応するWebページのタイトルが追加される。
【０２１７】
また、ステップＳ１５７で、推薦URL９１に対するアクセスコマンドが検出された場合、ステップＳ７４（図３６のステップＳ１３６に対応する）において、エージェント制御部１３は、エージェント７２の表示を、例えば、図２４Ａおよび図２４Ｂに示したように、笑顔となって喜ぶ様子に推移させる。吹き出し７３には、「わーい」と表示され、対応する音声信号が出力される。
【０２１８】
また、ステップＳ１５７で、推薦URL９１に対する消去コマンドが検出された場合、ステップＳ１５８において、エージェント制御部１３は、エージェント７２の表示を、例えば、図２５Ａおよび図２５Ｂに示したように、泣き顔となって悲しみ失望した様子に推移させる。吹き出し７３には、「だめかぁ」と表示され、対応する音声信号が出力される。
【０２１９】
ステップＳ１５８の処理を終了した後、エージェント７２の消去とともに、吹き出し７３、スクラップ帳ウィンドウ７４、および推薦URL９１等の表示が消去され、ステップＳ１５１に戻り、上述した処理が繰り返し実行される。
【０２２０】
また、ステップＳ１５５において、入力ウィンドウ８１の「見ない」と示されたボタンが選択されるか、あるいは、ユーザから何の指令もなされずに所定の時間が経過したと判定された場合、やはり、エージェント７２の消去とともに、吹き出し７３、スクラップ帳ウィンドウ７４、および推薦URL９１等の表示が消去され、ステップＳ１５１に戻り、上述した処理が繰り返し実行される。
【０２２１】
さらに、ステップＳ１５５において、入力ウィンドウ８１の「背景をもう一度教えて」と示されたボタンが選択されたと判定された場合、ステップＳ１５３に戻り、ステップＳ１５３乃至Ｓ１５５の処理が繰り返される。
【０２２２】
また、図３７のフローチャートには図示していないが、エージェント７２が表示されている状態で、エージェントプログラム１が終了された場合、エージェント制御部１３は、エージェント７２を、例えば、図３０Ａおよび図３０Ｂに示した画像で表現される「消失」の状態に推移させるようにしてもよい。
【０２２３】
以上のように、エージェントプログラム１が実行中において、メーラ２が起動されていなくても（イベントが発生しなくても）、定期的に関連情報を推薦するとともに、その一連の処理に対応して、エージェント７２が動作することができる。
【０２２４】
また、上述したように、イベント発生に対応した関連情報の推薦方法、および、定期的な関連情報の推薦方法といったように２つ以上の推薦方法がある場合、エージェント７２の提示動作を変化させるようにすることもできる。
【０２２５】
例えば、関連情報の定期的提示処理の場合、エージェント７２の表示を、図３９に示される画像で表現される「控えめな推薦」の状態にする。すなわち、定期的推薦の場合は、その時点においてユーザの作業状況と関連性が高いものではないため、エージェント７２をユーザが煩わしさを感じない程度（控えめ）に表示させるようにし、また、エージェント７２の台詞に関しても、ユーザからの要求がない限り提示させないようにする。
【０２２６】
また例えば、イベント発生時における関連情報の提示処理の場合、エージェント７２の表示を、図４０Ａ乃至図４０Ｅに示される画像で表現される「積極的な推薦」の状態にする。具体的には、図４０Ａ乃至図４０Ｅに示す画像が順次表示されることによって、エージェント７２が飛び跳ね回転しながら、関連情報を強くアピールするようにする。
【０２２７】
このようにすることで、ユーザは、動作の激しいエージェント７２が提示している関連情報は、いま自分が特に興味があると思われる情報であると判断することができる。また、ユーザは、控えめな動作のエージェント７２が提示している関連情報は、作業状況に関連するものではないが、意外性のある情報であると判断して、作業の合間などに見ることができる。
【０２２８】
ところで、ユーザは、日々メールのやりとりをしている場合が多く、その都度、新規の受信メールや新規の送信メールが増えていく。そのため、メールが蓄積される毎に、図３５を用いて上述した関連情報取得処理を実行すると（コンテクストメールを更新し、関連情報を再取得すると）、処理回数が増えてしまう。そこで、所定の期間毎に関連情報リストの更新を実行するようにする。
【０２２９】
次に、図４１のフローチャートを参照して、関連情報リストの更新処理について説明する。
【０２３０】
ステップＳ１７１において、エージェントプログラム１のイベント管理部３１は、内蔵のタイマ３１Ａを監視し、更新が必要か否か、すなわち、所定期間（例えば、１週間）が経過したか否かを判定し、更新が必要であると判定されるまで監視を続ける。そして、ステップＳ１７１において、更新が必要であると判定された場合、ステップＳ１７２に進み、図３５を用いて上述した関連情報取得処理が実行され、データベースに蓄積されている関連情報リストが更新される。
【０２３１】
従って、図４２に示されるように、所定の期間Ａに蓄積されたコンテクストメールから、そのメールに対応する関連情報が取得され、取得された関連情報を次の期間（いまの場合、期間Ｂ）で推薦するために提示順にリスト化される。そして、期間Ａに取得された関連情報が期間Ｂにおいて、リスト順に定期的に推薦される。
【０２３２】
さらに、所定の期間Ｂに蓄積されたコンテクストメールから、そのメールに対応する関連情報が取得され、取得された関連情報を次の期間（いまの場合、期間Ｃ）で推薦するために提示順にリスト化される。そして、期間Ｂに取得された関連情報が期間Ｃにおいて、リスト順に定期的に推薦される。
【０２３３】
このように、所定の期間毎に関連情報リストを更新することによって、処理回数を減らすとともに、関連する話題を検索する際に、ユーザが忘れていると思われる古すぎる話題や意外性のない新しすぎる話題を避ける処理における設定時期も時系列的に新しい期間に移行されるため、新しすぎる情報や古すぎる情報が提示されることも避けることができる。
【０２３４】
またさらに、以上においては、エージェントプログラム１の実行中、関連情報の定期的提示処理が繰り返し実行されるものとして説明したが、これに限らず、図４３および図４４を用いて次に説明する特定のアプリケーションの動作に応じて、関連情報の定期的提示処理を実行することも可能である。
【０２３５】
まず、図４３のフローチャートを参照して、特定アプリケーションのアクティブ時における関連情報の定期的提示処理について説明する。この処理は、エージェントプログラム１が実行する処理のうちの１つであり、エージェントプログラム１の起動とともに開始され、エージェントプログラム１が終了されるまで繰り返し実行される。
【０２３６】
ステップＳ１８１において、エージェントプログラム１のイベント管理部３１は、内蔵のタイマ３１Ａを用いて、定期的に特定のアプリケーションの状態を監視し、特定のアプリケーション（例えば、メーラ２）がアクティブであるか否かを判定し、特定のアプリケーションがアクティブになるまで判定処理を繰り返し実行する。未だ、この時点では、関連情報の定期的提示処理は、実行されていない。
【０２３７】
ステップＳ１８１において、特定のアプリケーションがアクティブであると判定された場合、ステップＳ１８２に進み、図３６を用いて上述した関連情報の定期的提示処理が実行される。その後、ステップＳ１８１に戻り、上述した処理が繰り返し実行される。
【０２３８】
ステップＳ１８１において、特定のアプリケーションがアクティブではなくなったと判定された場合、ステップＳ１８３に進み、エージェントプログラム１は、関連情報の定期的提示処理を一時停止させる。その後、ステップＳ１８１に戻り、上述した処理が繰り返し実行される。
【０２３９】
この処理によって、特定のアプリケーションがアクティブの間、関連情報の定期的提示処理が繰り返し実行される。例えば、メーラ２がアクティブになるタイミングを検知し、そこから、メーラ２が非アクティブになるまでの間、定期的に関連情報を推薦することによって、ユーザは、メール２の内容に関連する情報を受け入れやすくなる。
【０２４０】
次に、図４４のフローチャートを参照して、特定アプリケーションのアクティブ時における関連情報の非提示処理について説明する。この処理は、エージェントプログラム１が実行する処理のうちの１つであり、エージェントプログラム１の起動とともに開始され、エージェントプログラム１が終了されるまで繰り返し実行される。
【０２４１】
ステップＳ１９１において、図３６を用いて説明した関連情報の定期的提示処理が実行される。ステップＳ１９２において、エージェントプログラム１のイベント管理部３１は、内蔵のタイマ３１Ａを用いて、定期的に特定のアプリケーションの状態を監視し、特定のアプリケーション（例えば、ワードプロセッサプログラム３）がアクティブであるか否かを判定し、特定のアプリケーションが非アクティブであると判定した場合、ステップＳ１９１に戻り、上述した処理を繰り返す。
【０２４２】
ステップＳ１９２において、特定のアプリケーションがアクティブになったと判定された場合、ステップＳ１９３に進み、エージェントプログラム１は、関連情報の定期的提示処理を一時停止させ、ステップＳ１９２に戻り、上述した処理を繰り返し実行する。
【０２４３】
この処理によって、特定のアプリケーションがアクティブになったとき、関連情報の定期的提示処理が一時停止され、定期的推薦を行わないようにする。例えば、ワードプロセッサプログラム３などの文書作成や、表計算ソフトなどがアクティブになったタイミングを検知し、そこから非アクティブになるまでの間、定期的推薦を一時停止する。すなわち、ユーザが集中して作業している場合には、推薦が受け入れ難くなっていると判断されるため、集中が必要なアプリケーションのアクティブ時には、定期的推薦をしないようにすることができる。
【０２４４】
このように、特定のアプリケーションのアクティブおよび非アクティブを検知して、定期的推薦を行ったり、あるいは、定期的推薦をしないようにすることができる。
【０２４５】
ところで、図３５のフローチャートを用いて説明した関連情報の取得処理においては、１通のコンテクストメールに対して、最も類似する話題を抽出し、その話題に対応付けられている関連情報を１つ取得するものとしたが、抽出された話題の特徴ベクトルの値によって、予め用意する関連情報の数を変化させるようにすることもできる。
【０２４６】
例えば、図４５Ａに示されるように、コンテクストメールＡに最も類似する過去の話題がＸであり、その話題Ｘの特徴ベクトル（単語ａの重み，単語ｂの重み，単語ｃの重み，単語ｄの重み）が（0.25，0.07，0，0.11）であった場合、要素の最大値（＝0.25）に応じて、図４５Ｂに示されるように、関連情報数が２５（個）に変更される。また、コンテクストメールＢに最も類似する過去の話題がＹであり、その話題Ｙの特徴ベクトルが（0，0.13，0，0.08）であった場合、要素の最大値（＝0.13）に応じて、関連情報数が１３（個）に変更される。さらに、コンテクストメールＣに最も類似する過去の話題がＺであり、その話題Ｚの特徴ベクトルが（0.35，0.20，0.09，0）であった場合、要素の最大値（0.35）に応じて、関連情報数が３５（個）に変更される。
【０２４７】
このように、コンテクストメールに類似する話題の特徴ベクトルを構成する要素の最大値（話題に含まれる重要語の重み）に応じて、比例的に関連情報の取得数を変更することができる。
【０２４８】
以上においては、コンテクストメールに類似する話題を抽出し、その話題に対応付けられている関連情報をリスト化し、優先度の高いものから順に提示するようにしたが、これに限らず、ランダムに提示することも勿論可能である。さらに、コンテクストメールに類似する話題に対応付けられている関連情報リストを、所定のイベント発生のタイミングで表示する場合の検索対象としてもよい。すなわち、提示する方法に限らず、検索する話題や関連情報リストを同一にすることも可能である。
【０２４９】
さらにまた以上においては、イベント発生に対応して関連情報を提示する方法、定期的に関連情報を提示する方法、特定アプリケーションの動作に応じて関連情報を定期的に提示する方法などを説明してきたが、これらの推薦方法の優先順位は、ユーザが任意に設定することができる。従って、例えば、イベント発生に対応する提示処理が最優先に設定されている状態で、イベント発生のタイミングと定期的提示処理のタイミングが重なった場合、設定されている優先順位に基づいて、イベント発生に対応する関連情報が優先して提示される。
【０２５０】
本発明のエージェントプログラム１は、上述したようにメーラ２によって送受信される文書やワードプロセッサプログラム３で編集される文書の他、例えば、チャット、電子ニュース、電子掲示板等の文書や音声信号をテキスト化した文書など、属性情報としてタイムスタンプが付与されている文書に対応して動作するようにさせることができる。
【０２５１】
上述した一連の処理を実行するエージェントプログラム１は、パーソナルコンピュータに予め組み込まれるか、あるいは、記録媒体からインストールされる。
【０２５２】
上述した一連の処理は、ハードウェアに実行させることもできるが、通常、ソフトウェアにより実行させる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するエージェントプログラム１が、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０２５３】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを記録する記録媒体は、図２に示されるように、プログラムが記録されている磁気ディスク５２（フレキシブルディスクを含む）、光ディスク５３（CD-ROM（Compact Disk-Read Only Memory），DVD（Digital Versatile Disk）を含む）、光磁気ディスク５４（MD(Mini-Disk)を含む）、もしくは半導体メモリ５５などよりなるパッケージメディア、または、プログラムが一時的もしくが永続的に記録されるROM４２や記憶部４９を構成するハードディスクなどにより構成される。記録媒体へのプログラムの記録は、必要に応じてルータ、モデムなどのインターフェースを介して、公衆回線網、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【０２５４】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２５５】
【発明の効果】
本発明の情報処理装置および方法、並びにプログラムによれば、既存の文書情報に対応付ける関連情報を取得し、所定の文書情報に基づいて、既存の文書情報の検索方法を選択し、選択された検索方法に基づいて、所定の文書情報に関連する既存の文書情報を検索し、検索された既存の文書情報に対応付けられている関連情報を表示するようにしたので、状況に応じて、タイミングを逸せずに関連情報を提示することができる。
【図面の簡単な説明】
【図１】本発明を適用したエージェントプログラムの機能ブロックの一構成例を示す図である。
【図２】エージェントプログラムをインストールして実行させるパーソナルコンピュータの構成例を示すブロック図である。
【図３】エージェントプログラムのデータベース作成処理を説明するフローチャートである。
【図４】図３のステップＳ５の処理を説明するための図である。
【図５】図３のステップＳ５の処理を説明するための他の図である。
【図６】エージェントプログラムの関連情報提示処理を説明するフローチャートである。
【図７】図６のステップＳ１４の処理における、類似度に基づいた話題の選択処理を説明するフローチャートである。
【図８】図７の処理を説明するための図である。
【図９】図６のステップＳ１４の処理における、類似度に基づいた話題の選択処理を説明するフローチャートである。
【図１０】図９の処理を説明するための図である。
【図１１】図６のステップＳ１５の処理を説明するための図である。
【図１２】図６のエージェントの動作等を説明するフローチャートである。
【図１３】図１２のステップＳ８１の待機中の処理の詳細を説明するフローチャートである。
【図１４】デスクトップ上に表示されたエージェントの表示例を示す図である。
【図１５】エージェントが登場するときの表示例を示す図である。
【図１６】エージェントの台詞である吹き出しの表示例を示す図である。
【図１７】エージェントが待機中であるときの表示例を示す図である。
【図１８】エージェントが作業中であるときの表示例を示す図である。
【図１９】デスクトップ上に表示された入力ウィンドウの表示例を示す図である。
【図２０】入力ウィンドウの表示例を示す図である。
【図２１】デスクトップ上に表示された推薦URLの表示例を示す図である。
【図２２】エージェンが指示中であるときの表示例を示す図である。
【図２３】デスクトップ上に表示されたスクラップ帳ウィンドウの表示例を示す図である。
【図２４】エージェントが喜びの状態であるときの表示例を示す図である。
【図２５】エージェントが悲しみの状態であるときの表示例を示す図である。
【図２６】エージェントが横方向に移動するときの表示例を示す図である。
【図２７】エージェントが縦方向に移動するときの表示例を示す図である。
【図２８】エージェントが遊びの状態であるときの表示例を示す図である。
【図２９】エージェントが睡眠の状態であるときの表示例を示す図である。
【図３０】エージェントが立ち去るときの表示例を示す図である。
【図３１】メニューボックスの表示例を示す図である。
【図３２】設定画面の表示例を示す図である。
【図３３】エージェントプログラムのデータベース更新処理を説明するフローチャートである。
【図３４】データベースを更新させる条件を入力するユーザインタフェースの表示例を示す図である。
【図３５】エージェントプログラムの関連情報取得処理を説明するフローチャートである。
【図３６】エージェントプログラムの関連情報の定期的提示処理を説明するフローチャートである。
【図３７】図３６のエージェントの動作等を説明するフローチャートである。
【図３８】デスクトップ上に表示されたエージェントの表示例を示す図である。
【図３９】定期的推薦の場合におけるエージェントの表示例を示す図である。
【図４０】イベント発生時の推薦の場合におけるエージェントの表示例を示す図である。
【図４１】エージェントプログラムの関連情報リストの更新処理を説明するフローチャートである。
【図４２】図４１の処理を説明するための図である。
【図４３】特定アプリケーションのアクティブ時における関連情報提示処理を説明するフローチャートである。
【図４４】他の例の特定アプリケーションのアクティブ時における関連情報提示処理を説明するフローチャートである。
【図４５】話題の特徴ベクトルによって、用意する関連情報の数を変化させる例を説明する図である。
【符号の説明】
１  エージェントプログラム，  ２  メーラ，  １１  蓄積部，  １２  提示部，  １３  エージェント制御部，  ２１  文書取得部，  ２２  文書属性処理部，  ２３  文書内容処理部，  ２４  文書特徴データベース作成部，  ２５  関連情報検索部，  ３１  イベント管理部，  ３２  データベース問い合わせ部，  ３３  関連情報提示部，  ５２  磁気ディスク，  ５３  光ディスク，  ５４  光磁気ディスク，  ５５  半導体メモリ，  ７２  エージェント，  ７３  吹き出し，  ７４  スクラップ帳ウィンドウ，  ８１  入力ウィンドウ，  ９１推薦URL
【図１】
0004088950.tif 000002
【図２】
0004088950.tif 000003
【図３】
0004088950.tif 000004
【図４】
0004088950.tif 000005
【図５】
0004088950.tif 000006
【図６】
0004088950.tif 000007
【図７】
0004088950.tif 000008
【図８】
0004088950.tif 000009
【図９】
0004088950.tif 000010
【図１０】
0004088950.tif 000011
【図１１】
0004088950.tif 000012
【図１２】
0004088950.tif 000013
【図１３】
0004088950.tif 000014
【図１４】
0004088950.tif 000015
【図１５】
0004088950.tif 000016
【図１６】
0004088950.tif 000017
【図１７】
0004088950.tif 000018
【図１８】
0004088950.tif 000019
【図１９】
0004088950.tif 000020
【図２０】
0004088950.tif 000021
【図２１】
0004088950.tif 000022
【図２２】
0004088950.tif 000023
【図２３】
0004088950.tif 000024
【図２４】
0004088950.tif 000025
【図２５】
0004088950.tif 000026
【図２６】
0004088950.tif 000027
【図２７】
0004088950.tif 000028
【図２８】
0004088950.tif 000029
【図２９】
0004088950.tif 000030
【図３０】
0004088950.tif 000031
【図３１】
0004088950.tif 000032
【図３２】
0004088950.tif 000033
【図３３】
0004088950.tif 000034
【図３４】
0004088950.tif 000035
【図３５】
0004088950.tif 000036
【図３６】
0004088950.tif 000037
【図３７】
0004088950.tif 000038
【図３８】
0004088950.tif 000039
【図３９】
0004088950.tif 000040
【図４０】
0004088950.tif 000041
【図４１】
0004088950.tif 000042
【図４２】
0004088950.tif 000043
【図４３】
0004088950.tif 000044
【図４４】
0004088950.tif 000045
【図４５】
0004088950.tif 000046