(57)【特許請求の範囲】
【請求項１】
検索要求に含まれる検索条件に従って検索を実施する検索エンジンと、
検索結果の複数の情報のスコアの算出を行う複数のスコアリングエンジンと、
ユーザからの検索要求を受けて前記検索エンジンに検索を実行させる検索要求処理部と、
複数のユーザまたは複数の検索のための条件に対応する各スコアリングエンジンの重み値情報を格納するスコアリングエンジン重み値データベースと、
前記検索エンジンが検索し、前記スコアリングエンジンが算出したスコアを反映した検索結果に、前記スコアリングエンジン重み値データベースに格納されている重み値情報を反映させて、ユーザに提示する検索結果を作成する検索結果応答部と、
提示された検索結果に対してユーザが選択行動を行ったときに、当該選択行動にもとづく情報に応じて前記スコアリングエンジン重み値データベースに格納されている重み値情報を更新する検索結果行動取得部と、
を有する検索システム。
【請求項２】
前記検索結果行動取得部は、
提示された検索結果に対してユーザが選択行動を行ったときに、直前のユーザの選択行動に応じてスコアリング重み値データベースにおけるエントリを更新した時刻から、現在までの経過時間を基に重み値を減衰させる重み値減衰手段を含む、請求項１に記載の検索システム。
【請求項３】
前記検索結果行動取得部は、
スコアリングエンジンが算出したスコア値情報が含まれている検索結果における情報をユーザが選択した場合に、選択したユーザのユーザ識別子と選択された検索結果に対して各スコアスコアリングエンジンが算出したスコア値情報を取得し、前記ユーザ識別子とスコアリングエンジンのエントリをスコアリング重み値データベースから検索し、該当するエントリが前記スコアリング重み値データベースに存在しない場合には、当該エントリをスコアリング重み値データベースに作成する、請求項２に記載の検索システム。
【請求項４】
前記検索結果行動取得部は、
スコアリングエンジンが算出したスコア値情報が含まれている検索結果における情報をユーザが選択した場合に、検索に用いられた検索条件と選択された検索結果に対して各スコアスコアリングエンジンが算出したスコア値情報を取得し、前記検索条件とスコアリングエンジンのエントリをスコアリング重み値データベースから検索し、該当するエントリが前記スコアリング重み値データベースに存在しない場合には、当該エントリをスコアリング重み値データベースに作成する、請求項２に記載の検索システム。
【請求項５】
前記重み値減衰手段は、
該当するエントリがスコアリング重み値データベースに存在する場合に、重み値を減衰させる、請求項３または４に記載の検索システム。
【請求項６】
ユーザからの検索要求に応じて検索エンジンに検索を要求する検索要求部と、
前記検索エンジンが検索結果を出力した場合に、複数のスコアリングエンジンにスコアリングを要求するスコアリング要求部と、
スコアリングエンジン重み値データベースに格納されている各ユーザまたは各検索条件に対応した各スコアリングエンジンの重み値情報を基に、各スコアリングエンジンの重み率を計算するスコアリングエンジン重み率計算部と、
スコアリングエンジン重み率計算部による各スコアリングエンジンの重み率に従って、各スコアリングエンジンが算出したスコアを集計するスコア集計部と、
前記スコア集計部が集計したスコアに従って検索結果を並び替え、検索結果を出力する検索結果・スコア情報出力部と、
をさらに有する請求項１から５のいずれか１項に記載の検索システム。
【請求項７】
検索のための条件と条件が属するカテゴリとの対応情報を格納する検索条件カテゴリデータベースを備え、
前記スコアリングエンジン重み率計算部は、
前記検索条件カテゴリデータベースから、検索要求に含まれる検索条件が属するカテゴリと同一のカテゴリに属する全ての条件に関する重み値情報が示す重み値の和に対する当該検索条件の重み値の比率を、検索条件に対応したスコアリングエンジンの重み率とする、請求項６に記載の検索システム。
【請求項８】
ユーザが入力した検索条件に応じて、検索要求処理部に検索要求を送信する検索要求入力部と、検索結果・スコア情報出力部から検索結果を受信してユーザに対して検索結果を提示する検索結果提示部とを有する操作端末を含む、請求項６または７に記載の検索システム。
【請求項９】
データベースと、検索エンジンおよびスコアリングエンジンを含み、プログラムにしたがって処理を実行するプロセッサとを有する検索システムによる検索方法であって、
前記プロセッサがユーザからの検索要求を受けると、検索要求に含まれる検索条件に従って前記検索エンジンによる検索を実行し、
前記プロセッサは、検索結果の複数の情報のスコアを複数の前記スコアリングエンジンによって算出し、
前記プロセッサは、複数のユーザまたは複数の検索のための条件に対応する各スコアリングエンジンの重み値情報を格納するスコアリングエンジン重み値データベースを前記データベースに設け、
前記プロセッサは、前記検索エンジンによって検索し、前記スコアリングエンジンによって算出したスコアを反映した検索結果に、前記スコアリングエンジン重み値データベースに格納されている重み値情報を反映させて、ユーザに提示する検索結果を作成し、
前記プロセッサは、提示された検索結果に対するユーザの選択行動情報を取得し、取得した選択行動情報を前記スコアリングエンジン重み値データベースに反映させる、検索方法。
【請求項１０】
前記プロセッサは、提示された検索結果に対してユーザが選択行動を行ったときに、直前のユーザの選択行動に応じてスコアリング重み値データベースにおけるエントリを更新した時刻から、現在までの経過時間を基に重み値を減衰させる、請求項９に記載の検索方法。
【請求項１１】
前記プロセッサは、スコアリングエンジンが算出したスコア値情報が含まれている検索結果における情報をユーザが選択した場合に、選択したユーザのユーザ識別子と選択された検索結果に対して各スコアスコアリングエンジンが算出したスコア値情報を取得し、
前記プロセッサは、前記ユーザ識別子とスコアリングエンジンのエントリをスコアリング重み値データベースから検索し、
前記プロセッサは、該当するエントリが前記スコアリング重み値データベースに存在しない場合には、当該エントリをスコアリング重み値データベースに作成する、請求項１０に記載の検索方法。
【請求項１２】
前記プロセッサは、スコアリングエンジンが算出したスコア値情報が含まれている検索結果における情報をユーザが選択した場合に、検索に用いられた検索条件と選択された検索結果に対して各スコアスコアリングエンジンが算出したスコア値情報を取得し、
前記プロセッサは、前記検索条件とスコアリングエンジンのエントリをスコアリング重み値データベースから検索し、
前記プロセッサは、該当するエントリが前記スコアリング重み値データベースに存在しない場合には、当該エントリをスコアリング重み値データベースに作成する、請求項１０記載の検索方法。
【請求項１３】
前記プロセッサは、該当するエントリがスコアリング重み値データベースに存在する場合に、重み値を減衰させる、請求項１１または１２に記載の検索方法。
【請求項１４】
コンピュータに実行させるためのプログラムであって、
検索要求に含まれる検索条件に従って検索エンジンで検索を実施する処理と、
検索結果の複数の情報のスコアを複数のスコアリングエンジンで算出する処理と、
複数のユーザまたは複数の検索のための条件に対応する各スコアリングエンジンの重み値情報を格納するスコアリングエンジン重み値データベースを生成する処理と、
前記検索エンジンが検索し、前記スコアリングエンジンが算出したスコアを反映した検索結果に、前記スコアリングエンジン重み値データベースに格納されている重み値情報を反映させて、ユーザに提示する検索結果を作成する処理と、
提示された検索結果に対するユーザの選択行動情報を取得し、取得した選択行動情報を前記スコアリングエンジン重み値データベースに反映させる処理と、
を前記コンピュータに実行させるためのプログラム。
【請求項１５】
提示された検索結果に対してユーザが選択行動を行ったときに、直前のユーザの選択行動に応じてスコアリング重み値データベースにおけるエントリを更新した時刻から、現在までの経過時間を基に重み値を減衰させる処理を前記コンピュータに実行させるための請求項１４に記載のプログラム。
【請求項１６】
スコアリングエンジンが算出したスコア値情報が含まれている検索結果における情報をユーザが選択した場合に、選択したユーザのユーザ識別子と選択された検索結果に対して各スコアスコアリングエンジンが算出したスコア値情報を取得する処理と、
前記ユーザ識別子とスコアリングエンジンのエントリをスコアリング重み値データベースから検索する処理と、
該当するエントリが前記スコアリング重み値データベースに存在しない場合には、当該エントリをスコアリング重み値データベースに作成する処理と、
を前記コンピュータに実行させるための請求項１４または１５に記載のプログラム。
【請求項１７】
スコアリングエンジンが算出したスコア値情報が含まれている検索結果における情報をユーザが選択した場合に、検索に用いられた検索条件と選択された検索結果に対して各スコアスコアリングエンジンが算出したスコア値情報を取得する処理と、
前記検索条件とスコアリングエンジンのエントリをスコアリング重み値データベースから検索する処理と、
該当するエントリが前記スコアリング重み値データベースに存在しない場合には、当該エントリをスコアリング重み値データベースに作成する処理と、
を前記コンピュータに実行させるための請求項１４または１５に記載のプログラム。
【請求項１８】
該当するエントリがスコアリング重み値データベースに存在する場合に、重み値を減衰させる処理を前記コンピュータに実行させるための請求項１６または１７に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報内に十分なリンクや特徴語を含まない情報を対象として検索を行う検索システム、検索方法、およびその方法をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
検索システムの一例が、特開２００２−３２４０１号公報（以下では、特許文献１と称する）に開示されている。この文献に開示された検索システムは、段落００１５−００１６に記載されているように、ユーザのプロファイル情報と個々のプロファイルに対する文書の適合度情報とを有し、ユーザが検索を行うときに入力した検索条件に加えて、検索システムがあらかじめ保持しているユーザのプロファイル情報と適合度情報とにもとづいて、検索結果の各文書のスコア計算を行い、スコアが高い順に配置された検索結果としての各文書の一覧表内の順序を変更するものである。【０００３】
また、検索システムの別の例が、特開２００６−３３１２９５号公報（以下では、特許文献２と称する）に開示されている。この文献に開示された検索システムは、段落００４９−００５６に記載されているように、ユーザが過去にアクセスしたＷｅｂページの閲覧時間を操作履歴として蓄積し、検索を行うときに、検索結果の各Ｗｅｂページのスコア計算を行った後、スコアが高い順に配置された検索結果の順序を、操作履歴を考慮して変更するものである。
【発明の開示】
【０００４】
しかし、特許文献１に記載された検索システムでは、ユーザのプロファイル情報を自動的に生成できない。また、ユーザのプロファイル情報を自動的に更新できない。システムにおいてユーザのプロファイル情報を生成する場合に、あらかじめユーザにプロファイル情報を登録させ、ユーザのプロファイル情報を自動的に生成する機能を持たないからである。
【０００５】
また、特許文献１に記載された検索システムでは、複数のスコアリングエンジン間のスコアの重み付けを自動的に変更できない。ユーザのプロファイル情報にもとづく文書の適合度情報によるスコアリングや、ユーザの検索履歴情報にもとづくスコアリングなどの、検索システムが保持するスコア計算アルゴリズムを、固定的な重み付けによってしか組み合わせることしかできないからである。
【０００６】
特許文献２に記載された検索システムでは、ユーザの操作履歴を収集し、操作履歴に応じて、スコアが高い順に配置された検索結果の順序を変更する。しかし、その検索システムにおいて、操作履歴の反映対象は、過去にユーザが閲覧したＷｅｂページに限られる。つまり、ユーザが過去に閲覧したことがないＷｅｂページにはユーザのプロファイル情報（この例では、操作履歴）を反映することはできない。
【０００７】
本発明の目的の一例は、検索処理において広く活用されるユーザのプロファイル情報を自動的に生成し、プロファイル情報を自動的に更新できる検索システム、検索方法およびプログラムを提供することである。
【０００８】
本発明の一側面の検索システムは、検索要求に含まれる検索条件に従って検索を実施する検索エンジンと、検索結果の複数の情報のスコアの算出を行う複数のスコアリングエンジンと、ユーザからの検索要求を受けて検索エンジンに検索を実行させる検索要求処理部と、複数のユーザまたは複数の検索のための条件に対応する各スコアリングエンジンの重み値情報を格納するスコアリングエンジン重み値データベースと、検索エンジンが検索し、スコアリングエンジンが算出したスコアを反映した検索結果に、スコアリングエンジン重み値データベースに格納されている重み値情報を反映させて、ユーザに提示する検索結果を作成する検索結果応答部と、提示された検索結果に対してユーザが選択行動を行ったときに、選択行動にもとづく情報に応じてスコアリングエンジン重み値データベースに格納されている重み値情報を更新する検索結果行動取得部と、を有する。
【０００９】
また、本発明の一側面の検索方法は、データベースと、検索エンジンおよびスコアリングエンジンを含み、プログラムにしたがって処理を実行するプロセッサとを有する検索システムによる検索方法であって、プロセッサがユーザからの検索要求を受けると、検索要求に含まれる検索条件に従って検索エンジンによる検索を実行し、プロセッサは、検索結果の複数の情報のスコアを複数のスコアリングエンジンによって算出し、プロセッサは、複数のユーザまたは複数の検索のための条件に対応する各スコアリングエンジンの重み値情報を格納するスコアリングエンジン重み値データベースをデータベースに設け、プロセッサは、検索エンジンによって検索し、スコアリングエンジンによって算出したスコアを反映した検索結果に、スコアリングエンジン重み値データベースに格納されている重み値情報を反映させて、ユーザに提示する検索結果を作成し、プロセッサは、提示された検索結果に対するユーザの選択行動情報を取得し、取得した選択行動情報をスコアリングエンジン重み値データベースに反映させるものである。
【００１０】
さらに、本発明の一側面のプログラムは、コンピュータに実行させるためのプログラムであって、検索要求に含まれる検索条件に従って検索エンジンで検索を実施する処理と、検索結果の複数の情報のスコアを複数のスコアリングエンジンで算出する処理と、複数のユーザまたは複数の検索のための条件に対応する各スコアリングエンジンの重み値情報を格納するスコアリングエンジン重み値データベースを生成する処理と、検索エンジンが検索し、スコアリングエンジンが算出したスコアを反映した検索結果に、スコアリングエンジン重み値データベースに格納されている重み値情報を反映させて、ユーザに提示する検索結果を作成する処理と、提示された検索結果に対するユーザの選択行動情報を取得し、取得した選択行動情報をスコアリングエンジン重み値データベースに反映させる処理と、をコンピュータに実行させるものである。
【図面の簡単な説明】
【００１１】
【図１】図１は本発明による検索システムの一実施形態の主要構成を示すブロック図である。
【図２】図２は第１の実施形態における検索システムの一構成例を示すブロック図である。
【図３】図３はスコアリングエンジン重み値ＤＢに記憶されるデータの例を示す説明図である。
【図４】図４は第１の実施形態における検索結果クリック行動取得部のスコアリング重み値ＤＢへのスコアリングエンジンの重み値情報の反映動作を示すフローチャートである。
【図５】図５は第１の実施形態においてユーザ検索要求を行ったときの検索システムの動作を示すフローチャートである。
【図６】図６はスコアリングエンジンの重み値算出アルゴリズムの具体例を説明するための説明図である。
【図７】図７は第２の実施形態における検索システムの一構成例を示すブロック図である。
【図８】図８はスコアリングエンジン重み値ＤＢに記憶されるデータの例を示す説明図である。
【図９】図９はキーワードカテゴリＤＢに記憶されるデータの例を示す説明図である。
【図１０】図１０は第２の実施形態における検索結果クリック行動取得部のスコアリング重み値ＤＢへのスコアリングエンジンの重み値情報の反映動作を示すフローチャートである。
【図１１】図１１は第２の実施形態においてユーザ検索要求を行ったときの検索システムの動作を示すフローチャートである。
【符号の説明】
【００１２】
１    検索要求処理部
２    検索結果応答部
３    検索結果行動取得部
１００    ユーザ
１１０    操作端末
１１１    検索要求入力部
１１２    検索結果表示部
１２０    ネットワーク
１３０    検索システム
１３１    検索結果クリック行動取得部
１３２    スコアリングエンジン重み値ＤＢ
１３３    キーワードカテゴリＤＢ
１４０    検索要求処理部
１４１    検索処理制御部
１４２    検索要求部
１４３    スコアリング要求部
１４４    スコア集計部
１４５    スコアリングエンジン重み率計算部
１４６    検索結果・スコア情報応答部
１５０    検索エンジン
１５１、１５２    検索エンジン
１６１、１６２    スコアリングエンジン
【発明を実施するための最良の形態】
【００１３】
図１は、本発明による検索システムの一実施形態の主要構成を示すブロック図である。【００１４】
図１に示すように、本発明の一実施形態による検索システムは、検索要求に含まれる検索条件（例えば、検索キーワード）に従って検索を実施する検索エンジン１５０と、検索結果の複数の情報のスコアの算出を行う複数のスコアリングエンジン１６１，１６２とを使用して情報の検索を行うものである。さらに、本発明の一実施形態による検索システムは、ユーザからの検索要求を受けて検索エンジン１５０に検索を実行させる検索要求処理部１と、複数のユーザまたは複数の検索のための条件に対応する各スコアリングエンジンの重み値情報を格納するスコアリングエンジン重み値データベース１３２と、検索エンジン１５０が検索し、スコアリングエンジン１６１，１６２が算出したスコアを反映した検索結果に、スコアリングエンジン重み値データベース１３２に格納されている重み値情報を反映させて、ユーザに提示する検索結果を作成する検索結果応答部２と、提示された検索結果に対するユーザの選択行動情報を取得し、取得した選択行動情報をスコアリングエンジン重み値データベース１３２に反映させる検索結果行動取得部３と、を有する。【００１５】
検索要求処理部１は、後で説明する、図２に示す検索処理制御部１４１および検索要求部１４２に相当する。ユーザとは、例えば、後述する、図３に示すユーザＸ，Ｙである。検索のための条件とは、例えば、後述する、図８に示すキーワードα，βである。【００１６】
スコアリングエンジンの重み値情報とは、例えば、図３や図８に示す重み値のデータである。検索結果応答部２は、図２に示す検索結果・スコア情報応答部１４６に相当する。検索結果行動取得部３は、図２に示す検索結果クリック行動取得部１３１の一部に相当する。【００１７】
なお、図１には、１つの検索エンジン１５０が示されているが、検索エンジンは複数存在してもよい。【００１８】
また、検索結果行動取得部１は、提示された検索結果に対してユーザが選択行動を行ったときに、直前のユーザの選択行動に応じてスコアリング重み値データベースにおけるエントリを更新した時刻から、現在までの経過時間を基に重み値を減衰させる重み値減衰手段を含んでもよい。重み値減衰手段は、図２に示す検索結果クリック行動取得部１３１の一部に相当する。【００１９】
以下、本発明の実施形態を図面を参照して説明する。【００２０】
（第１の実施形態）
第１の実施形態の検索システムの構成を説明する。図２は、第１の実施形態における検索システムの一構成例を示すブロック図である。【００２１】
図２には、検索システム１３０にネットワーク（通信ネットワーク）１２０を介して通信可能に接続される操作端末１１０も示されている。操作端末１１０は、パーソナルコンピュータ等の端末装置であり、ユーザ１００が検索要求を入力するための検索要求入力部１１１と、検索結果を表示してユーザ１００に提示する検索結果表示部１１２とを含む。ユーザ１００は、検索要求入力部１１１に検索キーワード等の検索条件を入力する。なお、ネットワーク１２０は、例えば、ＬＡＮやインターネットである。【００２２】
検索システム１３０には、それぞれ検索機能を実現する手段である複数の検索エンジン（第１検索エンジンおよび第２検索エンジン）１５１，１５２と、複数のスコアリングエンジン（第１スコアリングエンジンおよび第２スコアリングエンジン）１６１，１６２とが接続されている。【００２３】
それぞれの検索エンジン１５１，１５２は、一例として、主たる検索対象の情報が異なっている検索エンジンである。例えば、営業情報システムに対応付けられている検索エンジンと、人事情報システムに対応付けられている検索エンジンとである。ただし、それらは、理解を容易にするための一例であって、検索エンジン１５１，１５２は、それらに限られるわけではない。【００２４】
それぞれのスコアリングエンジン１６１，１６２は、一例として、スコアを算出する基にするメタ情報が異なっているスコアリングエンジンである。例えば、検索キーワードを多く含む情報に対して高いスコアを与えるスコアリングエンジンと、検索キーワードの含有率を考慮せず利用者からの参照回数が多い情報に対してスコアを与えるスコアリングエンジンとである。ただし、それらは、理解を容易にするための一例であって、スコアリングエンジン１６１，１６２は、それらに限られるわけではない。【００２５】
また、検索エンジン１５１，１５２は、それぞれ、例えば、検索処理を実行するためのソフトウェアをＣＰＵ（Central  Processing  Unit）などのプロセッサが実行することで実現される。スコアリングエンジン１６１，１６２は、例えば、スコアを算出するソフトウェアで実現される。図２には、２つの検索エンジン１５１，１５２と２つのスコアリングエンジン１６１，１６２とが接続されているが、検索エンジンとスコアリングエンジンとは、それぞれ３つ以上存在してもよい。【００２６】
検索システム１３０は、検索結果クリック行動取得部１３１と、スコアリングエンジン重み値データベース（ＤＢ）１３２と、検索要求処理部１４０とを含む。検索結果クリック行動取得部１３１は、検索結果表示部１１２に表示された検索結果に対するユーザ１００によるクリック行動情報（選択行動情報）をネットワーク１２０を介して操作端末１１０から取得し、スコアリングエンジン重み値ＤＢ１３２に反映させる。スコアリングエンジン重み値ＤＢ１３２は、各ユーザ毎の各スコアリングエンジンの重み値情報を格納する。【００２７】
なお、検索システム１３０は、一例として、プログラムに従って処理を実行するＣＰＵが搭載されたサーバ装置で実現される。その場合、スコアリングエンジン重み値ＤＢ１３２を格納するディスク装置等のデータベース装置は、サーバ装置に内蔵されていてもよいし、サーバ装置の外側に設置されていてもよい。また、例えばサーバ装置による検索システム１３０を検索装置と捉え、検索装置と操作端末１１０とを含むシステムを検索システムと捉えることもできる。【００２８】
検索要求処理部１４０は、検索処理制御部１４１と、検索要求部１４２と、スコアリング処理要求部１４３と、スコア集計部１４４と、スコアリングエンジン重み率計算部１４５と、検索結果・スコア情報応答部１４６とを含む。検索処理制御部１４１は、操作端末１１０の検索要求入力部１１１から要求された検索要求に応じて、検索システム１３０での一連の検索処理を制御する。検索要求部１４２は、検索処理制御部１４１の指示に応じて、検索システム１３０に接続されている複数の検索エンジン１５１，１５２に検索を要求する。スコアリング処理要求部１４３は、検索処理制御部１４１の指示に応じて、検索システム１３０に接続されている複数のスコアリングエンジン１６１，１６２にスコアリングを要求する。【００２９】
スコア集計部１４４は、スコアリングエンジン重み率計算部１４５が計算した各スコアリングエンジンの重み率に従って、各スコアリングエンジン１６１，１６２が算出したスコアを集計する。スコアリングエンジン重み率計算部１４５は、スコアリングエンジン重み値ＤＢ１３２に格納されている各ユーザに対応した各スコアリングエンジンの重み値情報を基に、各スコアリングエンジンの重み率を計算する。検索結果・スコア情報応答部１４６は、スコア集計部１４４が集計したスコアに従って検索結果を並び替え、並び替え後の検索結果を操作端末１１０に応答する。操作端末１１０において、検索結果は、検索結果表示部１１２に表示される。【００３０】
図３は、スコアリングエンジン重み値ＤＢ１３２に記憶されるデータの例を示す説明図である。図３に示す例では、スコアリングエンジン重み値ＤＢ１３２には、ユーザ識別子フィールド２０１と、スコアリングエンジン識別子フィールド２０２と、重み値フィールド２０３と、最終更新時刻フィールド２０４とが含まれる。図３において、「エンジン１」はスコアリングエンジン１６１（第１のスコアリングエンジンに相当）を示し、「エンジン２」はスコアリングエンジン１６２（第２のスコアリングエンジンに相当）を示す。【００３１】
ユーザ識別子フィールド２０１には、ユーザ識別子（ユーザＩＤ）のデータが設定される。スコアリングエンジン識別子フィールド２０２には、ユーザ識別子フィールド２０１に設定されたユーザ識別子に対応するスコアリングエンジンの識別子（スコアリングエンジン識別子）が設定される。重み値フィールド２０３には、ユーザ識別子フィールド２０１に設定されたユーザ識別子に対応する重み値（スコアリングエンジン重み値）が設定される。最終更新時刻フィールド２０４には、エントリ（図における行に相当）が設定された時刻や重み値が更新された時刻が設定される。【００３２】
次に、図４および図５のフローチャートを参照して、本実施形態の検索システムの動作を説明する。【００３３】
まず、ユーザ１００が検索結果表示部１１２に表示された検索結果の文書をクリックしたときの検索結果クリック行動取得部１３１のスコアリング重み値ＤＢ１３２へのスコアリングエンジンの重み値情報の反映動作を、図４のフローチャートを参照して説明する。【００３４】
検索結果表示部１１２がユーザ１００に対して表示する検索結果には、検索結果の各文書に対する各スコアリングエンジンが算出したスコア値情報が埋め込まれている。検索結果クリック行動取得部１３１は、ユーザ１００の検索結果のクリックイベントをネットワーク１２０を介して取得すると（ステップＳ３０１）、クリックしたユーザのユーザ識別子とクリックされた検索結果に対して各スコアスコアリングエンジンが算出したスコア値情報を取得する（ステップＳ３０２）。なお、一例として、ユーザ１００は、検索システムのサービスを受けるときにログイン操作を行う。その場合には、検索結果クリック行動取得部１３１は、ログイン操作時に入力されたユーザＩＤからユーザ識別子を特定する。また、ＩＰアドレス等からユーザ識別子を特定してもよい。【００３５】
検索結果クリック行動取得部１３１は、該当するユーザ識別子とスコアリングエンジンのエントリをスコアリング重み値ＤＢ１３２から検索する（ステップＳ３０３）。該当するエントリがスコアリング重み値ＤＢ１３２に存在すれば、当該エントリの最終更新時刻から現在までの経過時間をもとに重み値を減衰させる（ステップＳ３０４）。該当するエントリがスコアリング重み値ＤＢ１３２に存在しなければ、当該エントリをスコアリング重み値ＤＢ１３２に作成する（ステップＳ３０５）。すなわち、ユーザ識別子と検索システムに存在する全てのスコアリングエンジンの識別子との組み合わせをスコアリング重み値ＤＢ１３２に設定する。【００３６】
そして、検索結果クリック行動取得部１３１は、クリックされた検索結果の文書に対して各スコアリングエンジンが算出したスコア値を、当該ユーザに対する当該スコアリングエンジンの重み値として、当該エントリに加算する（ステップＳ３０６）。最後に、当該エントリの最終更新時刻を現在の時刻に設定する（ステップＳ３０７）。【００３７】
次に、ユーザ１００が検索要求入力部１１１に検索キーワードを入力して検索要求を行ったときの検索システム１３０の動作を図５のフローチャートを参照して説明する。【００３８】
検索システム１３０における検索要求処理部１４０内の検索処理制御部１４１は、操作端末１１０内の検索要求入力部１１１からネットワーク１２０を介して検索要求を受信すると、検索要求情報にもとづいて、検索キーワードと検索を要求したユーザのユーザ識別子とを取得する（ステップＳ４０１）。検索処理制御部１４１は、検索要求部１４２に、検索キーワードとユーザ識別子とを渡して、検索の実行を指示する。指示に応じて、検索要求部１４２は、検索キーワードを用いて、各検索エンジン１５１，１５２に検索を要求する（ステップＳ４０２）。【００３９】
それぞれの検索エンジン１５１，１５２が蓄積文書の検索を行う検索エンジンである場合には、検索エンジン１５１，１５２は、文書データベース（図示せず）から、検索キーワードにもとづいて文書検索を行う。そして、検索結果を、検索要求部１４２に出力する。また、検索エンジン１５１，１５２としてＷｅｂブラウザが用いられることもある。【００４０】
検索結果が出力されると、検索処理制御部１４１は、スコアリング要求部１４３に、スコア値の算出処理を実行するように指示する。指示に応じて、スコアリング要求部１４３は、検索要求部１４２が各検索エンジンから受け取った検索結果に対して、各スコアリングエンジン１６１，１６２にスコア値の算出を要求する（ステップＳ４０３）。要求に応じて、スコアリングエンジン１６１，１６２は、スコア値を算出する。【００４１】
スコアリングエンジン重み率計算部１４５は、スコアリングエンジン重み値ＤＢ１３２から、当該ユーザに関するスコアリングエンジン重み情報エントリを全て選択する（ステップＳ４０４）。【００４２】
スコアリングエンジン重み率計算部１４５は、当該ユーザに関する全スコアリングエンジンの重み値を加算し、当該ユーザのスコアリングエンジン重み合計値を算出する（ステップＳ４０５）。そして、スコアリングエンジン重み率計算部１４５は、各スコアリングエンジンの重み値を、当該ユーザのスコアリング重み合計値で除算し、各スコアリングエンジンの当該ユーザにおける重み率を算出する（ステップＳ４０６）。【００４３】
最後に、スコア集計部１４４は、各スコアリングエンジン１６１，１６２が算出したスコア値とスコアリングエンジン重み率計算部１４５が算出した重み率に従って、検索結果の文書のスコアを算出し、文書のスコアに従って検索結果を並び替える。すなわち、検索結果の文書のスコアを、［スコアリングエンジン１６１によるスコア１×第１のスコアリングエンジンの重み率＋スコアリングエンジン１６２によるスコア２×第２のスコアリングエンジンの重み率］とし、スコアが高い順に検索結果を並び替える。そして、検索結果・スコア情報応答部１４６は、検索結果表示部１１２に検索結果を送信し、ユーザに検索結果を提示する（ステップＳ４０７）。【００４４】
次に、本実施形態の動作におけるスコアリングエンジンの重み値算出アルゴリズムの具体例を、図６の説明図を参照して説明する。【００４５】
図６に示すように、例えばユーザＸとユーザＹが、それぞれ、まずキーワードαで検索して検索結果をクリックし、次にキーワードβで検索して検索結果をクリックしたとする。【００４６】
ステップＳ４０７の処理で提示された検索結果に文書Ｂが含まれている場合に、ユーザＸがキーワードαで検索した検索結果の文書Ｂをクリックしたときに、文書Ｂのスコア値に関して、スコアリングエンジン１６１によるスコア１が０．７、スコアリングエンジン１６２によるスコア２が０．５、文書Ｂの全体スコア値が１．２だったとする。この時点でのユーザＸに関するスコアリングエンジンの重み率は、第１のスコアリングエンジンの重み率が、０．７／１．２＝０．５８、第２のスコアリングエンジンの重み率が、０．５／１．２＝０．４２である。【００４７】
ステップＳ４０７の処理で提示された検索結果に文書Ａが含まれている場合に、ユーザＹがキーワードαで検索した検索結果の文書Ａをクリックしたときに、文書Ａのスコア値に関して、スコアリングエンジン１６１によるスコア１が０．７、スコアリングエンジン１６２によるスコア２が０．７、文書Ａの全体スコア値が１．４だったとする。この時点でのユーザＹに関するスコアリングエンジンの重み率は、第１のスコアリングエンジンの重み率が、０．７／１．４＝０．５、第２のスコアリングエンジンの重み率が、０．７／１．４＝０．５である。【００４８】
その後、ステップＳ４０７の処理で提示された検索結果に文書Ｅが含まれている場合に、ユーザＸがキーワードβで検索した検索結果の文書Ｅをクリックしたときに、文書Ｅのスコア値に関して、スコアリングエンジン１６１によるスコア１が０．５、スコアリングエンジン１６２によるスコア２が０．３、文書Ｂの全体スコア値が０．８だったとする。キーワードαで検索した検索結果の文書Ｂをクリックしてからキーワードβで検索した検索結果の文書Ｅをクリックするまでのスコアリングエンジン重み値減衰率が０．８であるとすると、この時点でのユーザＸに関するスコアリングエンジンの重み率は、第１のスコアリングエンジンの重み率に関して、０．５８×０．８＋０．５／０．８＝１．０９、第２のスコアリングエンジンの重み率に関して、０．４２×０．８＋０．３／０．８＝０．７１になる。【００４９】
なお、スコアリングエンジン重み値は、図４に示されたステップＳ３０４の処理で減衰される。また、一例として、減衰率として、１週間の経過時間に対して０．９といった例が考えられる。【００５０】
また、ステップＳ４０７の処理で提示された検索結果に文書Ｆが含まれている場合に、ユーザＹがキーワードβで検索した検索結果の文書Ｆをクリックしたときに、文書Ｆのスコア値に関して、スコアリングエンジン１６１によるスコア１が０．１、スコアリングエンジン１６２によるスコア２が０．５、文書Ａの全体スコア値が０．６だったとする。キーワードαで検索した検索結果の文書Ａをクリックしてからキーワードβで検索した検索結果の文書Ｆをクリックするまでのスコアリングエンジン重み値減衰率が０．８であるとすると、この時点でのユーザＹに関するスコアリングエンジンの重み率は、第１のスコアリングエンジンの重み率に関して、０．５×０．８＋０．１／０．６＝０．５７、第２のスコアリングエンジンの重み率に関して、０．５×０．８＋０．５／０．６＝１．２３になる。【００５１】
以上に説明したように、本実施形態では、検索結果クリック行動取得部１３１が、ユーザ毎のスコアリングエンジンの重み情報を、ユーザの検索クリック行動によって生成したり更新するので、ユーザのプロファイル情報であるユーザ毎のスコアリングエンジンの重み情報が、自動的に生成されたり更新されることになる。【００５２】
また、本実施形態では、スコアリングエンジン１６１，１６２とは別に、スコアリング処理要求部１４３とスコア集計部１４４とを備えているので、複数のスコアリングエンジンを追加することが容易である。【００５３】
さらに、スコアリングエンジン重み率計算部１４４と、スコアリングエンジン重み値ＤＢ１３２と、検索結果クリック行動取得部１３１とを備えているので、ユーザの検索結果クリック行動情報を基に、個々のユーザに対応したスコアリングエンジンの重み情報を自動的に生成したりして更新し、スコアリングエンジンの重み情報によって、ユーザ毎にスコアリングエンジンの重み率を決定することができる。【００５４】
（第２の実施形態）
第２の実施形態の検索システムの構成を説明する。図７は、第２の実施形態における検索システムの一構成例を示すブロック図である。【００５５】
第２の実施形態の検索システムは、第１の実施形態の構成に加えて、キーワードカテゴリＤＢ１３３を備えている。また、本実施形態では、スコアリングエンジン重み値ＤＢ１３２は、各キーワードにおける各スコアリングエンジンの重み値情報を格納する。キーワードカテゴリＤＢ１３３は、キーワードとカテゴリとの対応情報を格納する。カテゴリの一例として、「技術分野に関連するキーワード」、「営業・顧客情報に関連するキーワード」、「社内手続に関連するキーワード」が挙げられる。ただし、それらは、単なる一例である。【００５６】
図８は、第２の実施形態におけるスコアリングエンジン重み値ＤＢ１３２に記憶されるデータの例を示す説明図である。図８に示す例では、スコアリングエンジン重み値ＤＢ１３２には、ユーザ識別子フィールド７０１と、スコアリングエンジン識別子フィールド７０２と、重み値フィールド７０３と、最終更新時刻フィールド７０４とが含まれる。図８において、「エンジン１」はスコアリングエンジン１６１（第１のスコアリングエンジンに相当）を示し、「エンジン２」はスコアリングエンジン１６２（第２のスコアリングエンジンに相当）を示す。【００５７】
図９は、キーワードカテゴリＤＢ１３３に記憶されるデータの例を示す説明図である。図９に示す例では、キーワードカテゴリＤＢ１３３には、キーワードフィールド８０１と、カテゴリフィールド８０２とが含まれる。【００５８】
次に、図１０および図１１のフローチャートを参照して、本実施形態の検索システムの動作を説明する。【００５９】
まず、ユーザ１００が検索結果表示部１１２によって表示された検索結果の文書をクリックしたときの検索結果クリック行動取得部１３１のコアリング重み値ＤＢ１３２へのスコアリングエンジンの重み値情報の反映動作を、図１０のフローチャートを参照して説明する。【００６０】
検索結果表示部１１２がユーザ１００に対して表示する検索結果には、検索結果の各文書に対する各スコアリングエンジンが算出したスコア値情報が含まれている。検索結果クリック行動取得部１３１は、ユーザ１００の検索結果のクリックイベントをネットワーク１２０を介して取得すると（ステップＳ８０１）、検索に用いられたキーワードとクリックされた検索結果に対して各スコアスコアリングエンジンが算出したスコア値情報を取得する（ステップＳ８０２）。【００６１】
検索結果クリック行動取得部１３１は、該当するキーワードとスコアリングエンジンのエントリをスコアリング重み値ＤＢ１３２から検索する（ステップＳ８０３）。該当するエントリがスコアリング重み値ＤＢ１３２に存在すれば、当該エントリの最終更新時刻から現在までの経過時間を元に重み値を減衰させる（ステップＳ８０４）。該当するエントリがスコアリング重み値ＤＢ１３２に存在しなければ、当該エントリをスコアリング重み値ＤＢ１３２に作成する（ステップＳ８０５）。すなわち、キーワードと検索システムに存在する全てのスコアリングエンジンの識別子との組み合わせをスコアリング重み値ＤＢ１３２に設定する。【００６２】
そして、検索結果クリック行動取得部１３１は、クリックされた検索結果の文書に対して各スコアリングエンジンが算出したスコア値を、当該キーワードに対する当該スコアリングエンジンの重み値として、当該エントリに加算する（ステップＳ８０６）。最後に、当該エントリの最終更新時刻を現在の時刻に設定する（ステップＳ８０７）。【００６３】
次に、ユーザ１００が検索要求入力部１１１に検索キーワードを入力して検索要求を行ったときの検索システム１３０の動作を、図１１のフローチャートを参照して説明する。【００６４】
検索システム１３０における検索要求処理部１４０内の検索処理制御部１４１は、操作端末１１０内の検索要求入力部１１１からネットワーク１２０を介して検索要求を受信すると、検索要求情報から、検索キーワードと検索を要求したユーザのユーザ識別子とを取得する（ステップＳ１００１）。検索処理制御部１４１は、検索要求部１４２に、検索キーワードとユーザ識別子とを渡して、検索の実行を指示する。指示に応じて、検索要求部１４２は、検索キーワードを用いて、各検索エンジン１５１，１５２に検索を要求する（ステップＳ１００２）。【００６５】
それぞれの検索エンジン１５１，１５２が蓄積文書の検索を行う検索エンジンである場合には、検索エンジン１５１，１５２は、文書データベース（図示せず）から、検索キーワードにもとづいて文書検索を行う。そして、検索結果を、検索要求部１４２に出力する。また、検索エンジン１５１，１５２としてＷｅｂブラウザが用いられることもある。【００６６】
検索結果が出力されると、検索処理制御部１４１は、スコアリング要求部１４３に、スコア値の算出処理を実行するように指示する。指示に応じて、スコアリング要求部１４３は、検索要求部１４２が各検索エンジンから受け取った検索結果の結合を用いて、各スコアリングエンジン１６１，１６２にスコア値の算出を要求する（ステップＳ１００３）。要求に応じて、スコアリングエンジン１６１，１６２は、スコア値を算出する。【００６７】
スコアリングエンジン重み率計算部１４５は、キーワードカテゴリＤＢ１３２から当該検索キーワードが属するカテゴリを検索する（ステップＳ１００４）。そして、スコアリングエンジン重み率計算部１４５は、キーワードカテゴリＤＢ１３２から当該検索キーワードが属するカテゴリ（同一カテゴリ）のキーワードを全て選択する（ステップＳ１００５）。スコアリングエンジン重み率計算部１４５は、スコアリングエンジン重み値ＤＢ１３２から、当該検索キーワードが属するカテゴリのキーワードに関するスコアリングエンジン重み情報エントリを全て選択する（ステップＳ１００６）。【００６８】
スコアリングエンジン重み率計算部１４５は、当該検索キーワードが属するカテゴリのキーワードに関する全スコアリングエンジンの重み値を加算し、当該カテゴリのスコアリングエンジン重み合計値を算出する（ステップＳ１００７）。スコアリングエンジン重み率計算部１４５は、各スコアリングエンジンの重み値を、当該カテゴリのスコアリング重み合計値で除算し、当該検索キーワードに関して、各スコアリングエンジンの同一カテゴリにおける重み率を算出する（ステップＳ１００８）。【００６９】
最後に、スコア集計部１４４は、各スコアリングエンジン１６１，１６２が算出したスコア値とスコアリングエンジン重み率計算部１４５が算出した重み率に従って、検索結果の文書のスコアを算出し、文書のスコアに従って検索結果を並び替える。そして、検索結果・スコア情報応答部１４６は、検索結果表示部１１２に検索結果を送信し、ユーザに検索結果を提示する（ステップＳ１００９）。【００７０】
次に、第２の実施形態の動作におけるスコアリングエンジンの重み値算出アルゴリズムの具体例を説明する。第２の実施形態でも、図６に示されたユーザＸ，Ｙの選択を例にする。【００７１】
図６に示すように、例えばユーザＸとユーザＹが、それぞれ、まずキーワードαで検索して検索結果をクリックし、次にキーワードβで検索して検索結果をクリックしたとする。【００７２】
ユーザＸがキーワードαで検索した検索結果の文書Ｂをクリックし、ユーザＹがキーワードαで検索した検索結果の文書Ａをクリックした場合、文書Ｂのスコア値に関して、スコアリングエンジン１６１によるスコア１が０．７、スコアリングエンジン１６２によるスコア２が０．５、文書Ｂの全体スコア値が１．２だったとする。文書Ａのスコア値に関して、スコアリングエンジン１６１によるスコア１が０．７、スコアリングエンジン１６２によるスコア２が０．７、文書Ａの全体スコア値が１．４だったとする。この時点でのキーワードαに関するスコアリングエンジンの重み率は、第１のスコアリングエンジンの重み率が、０．７／１．２＋０．７／１．４＝１．０８、第２のスコアリングエンジンの重み率が、０．５／１．２＋０．７／１．４＝０．９２である。【００７３】
その後、ユーザＸがキーワードβで検索した検索結果の文書Ｅをクリックし、ユーザＹがキーワードβで検索した検索結果の文書Ｆをクリックした場合、文書Ｅのスコア値に関して、スコアリングエンジン１６１によるスコア１が０．５、スコアリングエンジン１６２によるスコア２が０．３、文書Ｂの全体スコア値が０．８だったとする。文書Ｆのスコア値に関して、スコアリングエンジン１６１によるスコア１が０．１、スコアリングエンジン１６２によるスコア２が０．５、文書Ａの全体スコア値が０．６だったとする。この時点でのキーワードβに関するスコアリングエンジンの重み率は、第１のスコアリングエンジンの重み率が、０．５／０．８＋０．１／０．６＝０．７９、第２のスコアリングエンジンの重み率が、０．３／０．８＋０．５／０．６＝１．２０になる。【００７４】
本実施形態では、検索結果クリック行動取得部１３１が、キーワード毎のスコアリングエンジンの重み情報を、ユーザの検索クリック行動によって生成したり更新するので、検索キーワードのカテゴリ毎のプロファイル情報である検索キーワードのカテゴリ毎のスコアリングエンジンの重み情報を、自動的に生成したり更新することができる。【００７５】
また、本実施の形態では、スコアリングエンジン重み率計算部１４４と、スコアリングエンジン重み値ＤＢ１３２と、キーワードカテゴリＤＢ１３３と、検索結果クリック行動取得部１３１とを備えているので、ユーザの検索結果クリック行動情報を元に、検索キーワードのカテゴリ毎のスコアリングエンジンの重み情報を自動的に生成したりして更新し、スコアリングエンジンの重み情報によって、検索キーワードのカテゴリ毎にスコアリングエンジンの重み率を決定することができる。【００７６】
なお、第１の実施形態では、ユーザ毎にスコアリングエンジンの重み値を算出する場合について説明し、第２の実施形態では、検索キーワード毎にスコアリングエンジンの重み値を算出する場合について説明したが、これらを組み合わせて、ユーザ毎に、かつ検索キーワード毎に、スコアリングエンジンの重み値を算出して格納し、スコアリングエンジンの重み率をユーザ毎に、かつ検索キーワード毎に算出してもよい。【００７７】
本発明の効果の一例として、ユーザのプロファイル情報を自動的に生成したり更新したりすることができる。また、本発明の効果の一例として、複数のスコアリングエンジンのスコアの重み付けを自動的に変更できる。【００７８】
特許文献１に記載されたシステムでは、複数のスコア計算機能（以下、スコアリングエンジンと称する）を動的に追加することができない。ユーザのプロファイル情報にもとづく文書の適合度情報によるスコアリングや、ユーザの検索履歴情報にもとづくスコアリングなどの、あらかじめ検索システムが保持しているスコア計算アルゴリズムによってしか、検索結果の文書のスコア計算を行うことができないからである。これに対し、本発明の効果の一例として、上述したように、複数のスコアリングエンジンを動的に追加できる。【００７９】
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。【００８０】
この出願は、２００８年２月２７日に出願された日本出願の特願２００８−０４５６６０の内容が全て取り込まれており、この日本出願を基礎として優先権を主張するものである。
【図１】
0005418493.tif 000002
【図２】
0005418493.tif 000003
【図３】
0005418493.tif 000004
【図４】
0005418493.tif 000005
【図５】
0005418493.tif 000006
【図６】
0005418493.tif 000007
【図７】
0005418493.tif 000008
【図８】
0005418493.tif 000009
【図９】
0005418493.tif 000010
【図１０】
0005418493.tif 000011
【図１１】
0005418493.tif 000012