(57)【要約】【課題】言葉と言葉との関係性に着目することによって、的確な検索結果を表示する。【解決手段】１台以上の計算機によって構成され、テキスト情報を検索する検索システムであって、前記計算機は、ユーザが入力した検索条件を解析することによって、当該検索条件に含まれる語の間の第１の関連性を取得する手段と、蓄積されている前記テキスト情報を解析することによって、当該テキスト情報に含まれる語の間の第２の関連性を取得する手段と、前記取得した第１の関連性と第２の関連性との類似度によって、入力された検索条件に合致するものとして出力するテキスト情報を選択する手段とを備える。【選択図】図１
2012003603.tif 000002
【特許請求の範囲】
【請求項１】
１台以上の計算機によって構成され、テキスト情報を検索する情報検索システムであって、
前記テキスト情報は、情報コンテンツ内に含まれるテキストデータ及び前記情報コンテンツに付加されるテキストデータの少なくとも一方を含む情報であり、
前記計算機は、
ユーザが入力した検索条件を解析することによって、当該検索条件に含まれる語の間の第１の関連性を取得する手段と、
蓄積されている前記テキスト情報を解析することによって、当該テキスト情報に含まれる語の間の第２の関連性を取得する手段と、
前記取得した第１の関連性と第２の関連性との類似度によって、入力された検索条件に合致するものとして出力するテキスト情報を選択する手段とを備えることを特徴とする情報検索システム。
【請求項２】
前記情報検索システムは、前記ユーザが関連したテキスト情報における語の関連性が記録されたユーザ語彙モデルを管理し、
前記第１の関連性を取得する手段は、
前記入力された検索条件に含まれる語を形態素解析によって抽出し、
前記ユーザ語彙モデルを参照することによって、前記抽出された語の間の関連性が定義された検索クエリ行列を前記第１の関連性を表すものとして生成することを特徴とする請求項１に記載の情報検索システム。
【請求項３】
前記計算機は、前記ユーザ語彙モデルを生成するユーザ語彙モデル生成手段を備え、
前記ユーザ語彙モデル生成手段は、
ユーザがアクセスしたテキスト情報、及びユーザがアクセスしたデータに関連するテキスト情報を特定し、
前記特定されたテキスト情報に含まれる語を形態素解析によって抽出し、
前記抽出された語のうち、所定の共起範囲内に存在する語を収集し、
前記収集された語の登場回数を、前記アクセスの種別によって重み付けした後に集計することによって、語の関連性を求めることを特徴とする請求項２に記載の情報検索システム。
【請求項４】
前記情報検索システムは、前記蓄積されているテキスト情報に含まれる語の関連性が記録されたコンテンツ語彙モデルを管理し、
前記第２の関連性を取得する手段は、
前記蓄積されているテキスト情報に含まれる語を形態素解析によって抽出し、
前記コンテンツ語彙モデルを参照することによって、前記抽出された語の間の関連性が定義されたコンテンツ行列を前記第１の関連性を表すものとして生成することを特徴とする請求項１から３のいずれか一つに記載の情報検索システム。
【請求項５】
前記計算機は、前記コンテンツ語彙モデルを生成するコンテンツ語彙モデル生成手段を備え、
前記コンテンツ語彙モデル生成手段は、
前記蓄積されているテキスト情報に含まれる語を形態素解析によって抽出し、
前記蓄積されているテキスト情報に含まれる語のうち、所定の共起範囲内に存在する語を収集し、
前記収集された語の登場回数を集計することによって、語の関連性を求めることを特徴とする請求項４に記載の情報検索システム。
【請求項６】
前記情報検索システムは、前記第１の関連性を示す検索クエリ行列と、前記第２の関連性を示すコンテンツ行列との間の内積を、前記検索クエリ行列のノルムと前記コンテンツ行列のノルムとの積で除することによって、第１の関連性と第２の関連性との類似度を計算する手段を備えることを特徴とする請求項１から５のいずれか一つに記載の情報検索システム。
【請求項７】
１台以上の計算機によって構成され、テキスト情報を検索する検索システムにおける情報検索方法であって、
前記テキスト情報は、情報コンテンツ内に含まれるテキストデータ又は前記情報コンテンツに付加されるテキストデータの情報であり、
前記計算機は、プログラムを実行するプロセッサと、前記実行されるプログラムを格納するメモリとを備え、
前記方法は、
前記計算機が、ユーザが入力した検索条件を解析することによって、当該検索条件に含まれる語の間の第１の関連性を取得して前記メモリに書き込むステップと、
前記計算機が、蓄積されている前記テキスト情報を解析することによって、当該テキスト情報に含まれる語の間の第２の関連性を取得して前記メモリに書き込むステップと、
前記計算機が、前記取得した第１の関連性と第２の関連性との類似度によって、入力された検索条件に合致するものとして出力するテキスト情報を選択して出力するステップと、を含むことを特徴とする情報検索方法。
【請求項８】
前記方法は、前記計算機が、前記ユーザが関連したテキスト情報における語の関連性が記録されたユーザ語彙モデルを管理するステップを含み、
前記第１の関連性を取得するステップでは、前記計算機が、前記入力された検索条件に含まれる語を形態素解析によって抽出し、前記ユーザ語彙モデルを参照することによって、前記抽出された語の間の関連性が定義された検索クエリ行列を前記第１の関連性を表すものとして生成することを特徴とする請求項７に記載の情報検索方法。
【請求項９】
前記方法は、前記計算機が、ユーザがアクセスしたテキスト情報、及びユーザがアクセスしたデータに関連するテキスト情報を特定し、前記特定されたテキスト情報に含まれる語を形態素解析によって抽出し、前記抽出された語のうち、所定の共起範囲内に存在する語を収集し、前記収集された語の登場回数を、前記アクセスの種別によって重み付けした後に集計することによって、語の関連性を求め、これによって前記ユーザ語彙モデルを生成するステップを含むことを特徴とする請求項８に記載の情報検索方法。
【請求項１０】
前記方法は、前記計算機が、前記蓄積されているテキスト情報に含まれる語の関連性が記録されたコンテンツ語彙モデルを管理するステップを含み、
前記第２の関連性を取得するステップでは、前記計算機が、前記蓄積されているテキスト情報に含まれる語を形態素解析によって抽出し、前記コンテンツ語彙モデルを参照することによって、前記抽出された語の間の関連性が定義されたコンテンツ行列を前記第１の関連性を表すものとして生成することを特徴とする請求項７から９のいずれか一つに記載の情報検索方法。
【請求項１１】
前記方法は、前記計算機が、前記蓄積されているテキスト情報に含まれる語を形態素解析によって抽出し、前記蓄積されているテキスト情報に含まれる語のうち、所定の共起範囲内に存在する語を収集し、前記収集された語の登場回数を集計することによって、語の関連性を求め、これによって前記コンテンツ語彙モデルを生成するステップを含むことを特徴とする請求項１０に記載の情報検索方法。
【請求項１２】
前記方法は、前記計算機が、前記第１の関連性を示す検索クエリ行列と、前記第２の関連性を示すコンテンツ行列との間の内積を、前記検索クエリ行列のノルムと前記コンテンツ行列のノルムとの積で除することによって、第１の関連性と第２の関連性との類似度を計算するステップを含むことを特徴とする請求項７から１１のいずれか一つに記載の情報検索方法。
【請求項１３】
クライアントからの要求に従って、テキスト情報を検索する情報検索サーバであって、
前記テキスト情報は、情報コンテンツ内に含まれるテキストデータ又は前記情報コンテンツに付加されるテキストデータの情報であり、
前記情報検索サーバは、
ユーザが入力した検索条件を解析することによって、当該検索条件に含まれる語の間の第１の関連性を取得する手段と、
蓄積されている前記テキスト情報を解析することによって、当該テキスト情報に含まれる語の間の第２の関連性を取得する手段と、
前記取得した第１の関連性と第２の関連性との類似度によって、入力された検索条件に合致するものとして出力するテキスト情報を選択する手段とを備えることを特徴とする情報検索サーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報検索システムに関し、特に、検索精度を向上する技術に関する。
【背景技術】
【０００２】
一般的な検索システム（検索エンジン）では、前処理と本処理とを行なうことによってコンテンツの検索を実現している。ここで、コンテンツとは、電子文書など電子的に表現されたコンピュータで処理可能な情報である。
【０００３】
前処理では、検索インデックスを生成する。具体的には、検索対象のコンテンツを解析し、コンテンツに含まれる特徴的な文字列（特徴文字列）を取得し、取得した特徴文字列とコンテンツをマッピングし、検索インデックスとして格納領域に保存している。本処理では、検索クエリを解析し、検索処理に用いるキーワード群（検索ターム）を抽出し、抽出された検索タームを用いて、前処理にて生成した検索インデックスを走査し、該当するコンテンツの集合を取得する。その後、該当するコンテンツとの類似度を計算することによって、検索結果をソーティングする。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００７−５０７８０１号公報
【特許文献２】特開２００５−１６５６３２号公報
【特許文献３】特開２０００−２００２８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、言葉は複数の意味を持つことが多い。特に、新語や略語は複数の意味を持つ傾向が顕著である。このため、あるキーワードで検索した場合に、検索結果の上位に予想しない意味の情報が多く並ぶ結果になることもある。このように、検索者の意図と異なる結果では検索者の目的は達成されない。
【０００６】
これに対し、検索者は、検索キーワードを追加するなど、検索クエリを見直して検索を再度実行したり、下位の検索結果まで内容を閲覧するなどの作業が必要となる。このような再検索は、検索者に検索スキル及び作業時間を要求することになり、結果として作業効率や作業の質を下げる要因となっている。
【０００７】
これは、コンテンツと特徴文字列（語彙）との関係性のみで検索を行なっているために生じる問題であり、この問題を現状の検索エンジンで回避することは困難である。
【０００８】
このような問題を解決するために、例えば、特許文献１には、ユーザの個人情報をプロフィール情報として保持し、ユーザの嗜好や関心への適合度を考慮して検索結果リストへの出現順を調整する検索方法が記載されている。しかし、特許文献１に記載された方法では、ユーザから見た同音異義語の重みが異なる場合に対応できない。
【０００９】
また、特許文献２には、コンテンツの特徴ベクトルとユーザの嗜好ベクトルとの類似度に従って、コンテンツを推薦する情報検索方法が提案されている。しかし、特許文献２に記載された方法では、ユーザから見た同音異義語の重みが異なる場合に対応できない。
【００１０】
また、同義語辞書やオントロジを用いて、この問題を解決しようとする方法も存在する（例えば、特許文献３参照）。特許文献３に記載された方法は、検索タームを拡張することによる方法であり、検索漏れを低減することは可能である。しかし、検索者が意図しない文書（検索ノイズ）を排除することは困難であり、むしろ、検索ノイズが増大する要因にもなる。
【００１１】
そこで、本発明は、言葉と言葉との関係性に着目することによって、的確な検索結果を表示する情報検索システムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の代表的な一例によると、語彙と語彙の関係性に着目し、コンテンツと語彙との関係性だけでなく、語彙と語彙の関係性を考慮した検索をする。
【００１３】
具体的には、前処理として、検索対象のコンテンツを解析し、コンテンツに含まれる語彙を取得し、コンテンツと語彙の関連性をコンテンツインデックスとしてマッピングし、語彙と語彙との関連性を分析し、分析された関連性を示すコンテンツ語彙モデルを生成する。そして、検索者（ユーザ）の行動履歴に基づいて、ユーザに関連する語彙を抽出しユーザインデックスを生成する。そして、ユーザがアクセスしたファイルに含まれる語彙間の関連性も分析し、分析された関連性を示すユーザ語彙モデルを生成する。
【００１４】
その後、本処理として、検索クエリから抽出した検索タームを用いて、ユーザ語彙モデルを走査し、検索タームに関連する語彙集合（以下、ユーザ拡張検索ターム）を取得し、検索ターム及び関連する語彙集合の語彙間の関連性を取得し、取得した関連度が登録された検索クエリ行列を生成する。さらに、ユーザ拡張タームを用いて、前処理にて生成したコンテンツインデックスを走査し、ユーザ拡張タームを含むコンテンツの集合を取得する。そして、各コンテンツのコンテンツ語彙モデルを走査し、コンテンツに含まれる語彙間の関連性を取得し、取得した関連度が登録されたコンテンツ行列を生成する。その後、検索クエリ行列とコンテンツ行列との間で類似度を計算し、類似度の計算結果に基づいて、検索結果をソーティングする。
【発明の効果】
【００１５】
本発明の実施の形態によると、コンテンツと語彙との関係性だけでなく、語彙と語彙の関係性を考慮することによって、多義的な語彙であっても、検索者が日常使用している語彙と関連するコンテンツの類似度が高くなる。このため、検索者が嗜好するコンテンツを上位に表示することができ、ユーザの嗜好に近いコンテンツを上位に表示することができ、検索精度を向上することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態の情報検索システムの全体の構成を示すブロック図である。
【図２】本発明の実施の形態のコンテンツ分析サブシステム１０１の構成を示すブロック図である。
【図３】本発明の実施の形態のコンテンツ分析サブシステム１０１によって実行される処理のフローチャートである。
【図４】本発明の実施の形態のコンテンツインデックスＤ１３１の例の説明図である。
【図５】本発明の実施の形態のコンテンツ語彙モデルＤ１３２の例の説明図である。
【図６】本発明の実施の形態のユーザ行動履歴Ｄ１３７の例の説明図である。
【図７】本発明の実施の形態のユーザ分析サブシステム１０２の構成を示すブロック図である。
【図８】本発明の実施の形態のユーザ分析サブシステム１０２によって実行される処理のフローチャートである。
【図９】本発明の実施の形態のユーザインデックスＤ１３５の例の説明図である。
【図１０】本発明の実施の形態のユーザ語彙モデルＤ１３６の例の説明図である。
【図１１】本発明の実施の形態のリポジトリ管理サブシステム１０３の構成を示すブロック図である。
【図１２】本発明の実施の形態のリポジトリ管理サブシステム１０３によって実行される処理のフローチャートである。
【図１３】本発明の実施の形態の情報検索サーバ１０４の構成を示すブロック図である。
【図１４】本発明の実施の形態の情報検索サーバ１０４によって実行される処理のフローチャートである。
【図１５Ａ】本発明の実施の形態の検索クエリ行列生成処理（Ｓ４１２）の詳細な手順を示すフローチャートである。
【図１５Ｂ】本発明の実施の形態の検索クエリ行列生成処理（Ｓ４１２）の詳細な手順を示すフローチャートである。
【図１６】本発明の実施の形態のステップＳ４１２における検索クエリ行列の生成の例の説明図である。
【図１７】本発明の実施の形態の類似コンテンツ抽出処理（Ｓ４１３）の詳細な手順を示すフローチャートである。
【図１８】本発明の実施の形態のコンテンツ行列生成手順（Ｓ４１３４）の詳細な手順を示すフローチャートである。
【図１９】本発明の実施の形態のステップＳ４１３におけるコンテンツ行列の生成の例の説明図である。
【図２０】本発明の実施の形態の類似度算出手順（Ｓ４１３５）の詳細な手順を示すフローチャートである。
【図２１】本発明の実施の形態の情報検索クライアント１０５の構成を示すブロック図である。
【図２２Ａ】本発明の実施の形態の情報検索クライアント１０５によって実行される処理のフローチャートである。
【図２２Ｂ】本発明の実施の形態の情報検索クライアント１０５によって実行される処理のフローチャートである。
【発明を実施するための形態】
【００１７】
＜システムの全体の構成＞
図１は、本発明の実施の形態の情報検索システムの全体の構成を示すブロック図である。
【００１８】
本発明の実施の形態の情報検索システムは、コンテンツ分析サブシステム１０１、ユーザ分析サブシステム１０２、リポジトリ管理サブシステム１０３及び情報検索サーバ１０４を備える。これらの各装置はネットワーク（ＬＡＮ又はＷＡＮ）１０６によって接続されている。本情報検索システムには、ネットワーク１０６を介して、情報検索クライアント１０５が接続される。
【００１９】
コンテンツ分析サブシステム１０１は、検索対象のコンテンツの内容を、検索の実行前にあらかじめ分析する計算機であり、その詳細な構成は図２を用いて後述する。すなわち、コンテンツ分析サブシステム１０１は、コンテンツ内の語彙の関係を分析・抽出する。この語彙の関係は、情報検索サーバ１０４における処理に必要であり、リポジトリ管理サブシステム１０３に保存される。
【００２０】
ユーザ分析サブシステム１０２は、検索を行うユーザのプロファイル情報を、検索の実行前にあらかじめ分析する計算機であり、その詳細な構成は図７を用いて後述する。すなわち、ユーザ分析サブシステム１０２は、ユーザ固有の情報（嗜好、興味範囲など）を語彙の関係として洗い出すことによって、ユーザのプロファイル情報を分析する。この分析結果は、情報検索サーバ１０４における処理に必要であり、リポジトリ管理サブシステム１０３に保存される。
【００２１】
リポジトリ管理サブシステム１０３は、コンテンツ分析サブシステム１０１およびユーザ分析サブシステム１０２で分析された情報を格納するデータベースシステムであり、その詳細な構成は図１１を用いて後述する。すなわち、リポジトリ管理サブシステム１０３は、コンテンツ分析サブシステム１０１及びユーザ分析サブシステム１０２によって分析された情報を、情報検索サーバ１０４からの要求に応じて提示する。
【００２２】
情報検索サーバ１０４は、コンテンツを探索する計算機であり、その詳細な構成は図１３を用いて後述する。すなわち、情報検索サーバ１０４は、情報検索クライアント１０５からの要求に応じて、リポジトリ管理サブシステム１０３から検索対象を抽出し、抽出された分析データから該検索ユーザの分析結果と類似するコンテンツを探索する。この探索結果は情報検索クライアント１０５に提示される。
【００２３】
情報検索クライアント１０５は、検索を行うユーザが操作する計算機であり、その詳細な構成は図２１を用いて後述する。すなわち、情報検索クライアント１０５は、ユーザからの検索要求を受け付け、情報検索サーバ１０４に検索を要求し、情報検索サーバ１０４から検索結果を受信し、検索結果を出力装置を介してユーザに提示する。
【００２４】
なお、図１には、１台の検索クライアントのみを図示したが、複数台（２台以上）の検索クライアントを備えてもよい。
【００２５】
ネットワーク１０６は、その一部又は全部がＬＡＮ又はＷＡＮで構成されるネットワークであり、コンテンツ分析サブシステム１０１、ユーザ分析サブシステム１０２、リポジトリ管理サブシステム１０３、情報検索サーバ１０４及び情報検索クライアント１０５を接続する。
【００２６】
なお、コンテンツ分析サブシステム１０１及びユーザ分析サブシステム１０２から、ネットワーク１０６を経由して、リポジトリ管理サブシステム１０３に分析結果を転送するものとしたが、可搬型記憶媒体（例えば、光ディスク、不揮発性メモリなど）を使用して、分析結果を転送してもよい。
【００２７】
また、コンテンツ分析サブシステム１０１、ユーザ分析サブシステム１０２、リポジトリ管理サブシステム１０３及び情報検索サーバ１０４のうち２以上のシステムを１台の物理的な計算機上に実装することもできる。この場合、各システム間では内部バスを経由してデータを転送することができる。
【００２８】
また、情報検索クライアント１０５と、他のサブシステム（例えば、情報検索サーバ１０４など）を、１台の物理計算機に実装することもできる。
【００２９】
＜コンテンツ分析サブシステム１０１＞
図２は、本発明の実施の形態のコンテンツ分析サブシステム１０１の構成を示すブロック図である。
【００３０】
コンテンツ分析サブシステム１０１は、メモリ１１０、記憶装置１２０、ＣＰＵ１３０、出力装置１４０、入力装置１５０及び通信インターフェース１６０を備え、これらの各構成がバス１７０によって接続される一般的な構成の計算機である。
【００３１】
メモリ１１０は、ＣＰＵ１３０によって実行されるプログラムを格納する。具体的には、システム制御プログラムＰ１０及びコンテンツ分析プログラムＰ１１がメモリ１１０に格納される。また、メモリ１１０には、ＣＰＵ１３０によるプログラムの実行時に、データを一時的に格納するワークエリアが設けられる。
【００３２】
システム制御プログラムＰ１０は、いわゆるオペレーティングシステムであり、コンテンツ分析サブシステム１０１の全体を制御する。
【００３３】
コンテンツ分析プログラムＰ１１は、検索対象のコンテンツの内容を分析するプログラムである。
【００３４】
記憶装置１２０は、電源遮断時にも記憶内容を保持可能な不揮発性の記憶素子であり、例えば、磁気ディスクドライブ（ＨＤＤ）や、フラッシュメモリ（ＳＳＤ）によって構成される。記憶装置１２０には、各種プログラムＤ１００が格納される。この各種プログラムＤ１００には、前述したシステム制御プログラムＰ１０及びコンテンツ分析プログラムＰ１１が含まれており、ＣＰＵ１３０によって実行される際にメモリ１１０にロードされる。
【００３５】
ＣＰＵ１３０は、メモリ１１０に格納されたプログラムを実行する。
【００３６】
出力装置１４０は、入力装置１５０及びインターフェース１６０を備え、これらの各構成がバス１７０によって接続される計算機である。
【００３７】
インターフェース１６０は、所定のプロトコルに従ってネットワーク１０６に接続された装置との間でデータを送受信するネットワークインターフェース（ＮＩＣ）である。
【００３８】
出力装置１４０は、処理の結果を画面に表示するディスプレイや、紙に出力するプリンタなどである。
【００３９】
入力装置１５０は、ユーザがコンテンツ分析サブシステム１０１に指示を与えるためのキーボード、マウスなどである。
【００４０】
コンテンツ分析サブシステム１０１は、コンテンツ分析プログラムＰ１１を実行することによって得られたコンテンツの分析結果を、ネットワーク１０６を介して、リポジトリ管理サブシステム１０３に転送する。次に、この処理の詳細を説明する。
【００４１】
図３は、本発明の実施の形態のコンテンツ分析サブシステム１０１によって実行される処理のフローチャートである。
【００４２】
まず、コンテンツ分析サブシステム１０１は、分析対象となるコンテンツの指定を受けると、分析対象となる全てのコンテンツのリストを生成し（Ｓ１０１）、生成されたリストに含まれるコンテンツのインデックスＤ１３１（図１１参照）をリポジトリ管理サブシステム１０３からを取得する（Ｓ１０２）。ステップＳ１０２において取得されるコンテンツインデックスには、コンテンツの今までの分析結果が含まれており、その構成は図４を用いて後述する。
【００４３】
コンテンツ分析サブシステム１０１によって分析されるコンテンツは、リポジトリ管理サブシステム１０３の記憶装置１２０に格納されているコンテンツ情報Ｄ１３０である。各コンテンツ情報は、情報コンテンツ内に含まれるテキストデータ及び前記情報コンテンツに付加されるテキストデータである。この場合、各コンテンツ情報（各テキストデータ）は、複数の語によって構成される。
【００４４】
また、コンテンツ情報は、情報コンテンツ内に含まれるテキストデータ及び前記情報コンテンツに付加されるテキストデータのうち複数のテキストデータを含む集合体でもよい。この場合、各テキストデータは一つ以上の語によって構成され、各テキストデータが集合体を構成することによって、各コンテンツ情報が複数の語によって構成される。
【００４５】
その後、ループを制御するパラメータｎを１に初期設定する（Ｓ１０３）。
【００４６】
そして、ｎ番目のコンテンツをリポジトリ管理サブシステム１０３のコンテンツ情報Ｄ１３０から読み出し（Ｓ１０４）、読み出したコンテンツにコンテンツ識別子が付与されていない場合、新たにコンテンツ識別子を割り当る（Ｓ１０５）。割り当てられたコンテンツ識別子は、ステップＳ１１２において、リポジトリ管理サブシステム１０３のコンテンツ情報Ｄ１３０（図１１参照）に格納される。
【００４７】
その後、読み出したコンテンツにテキスト情報が含まれるか否かを判定する（Ｓ１０６）。その結果、読み出されたコンテンツにテキスト情報が含まれない場合、コンテンツを解析する必要がないので、ステップＳ１０９に進む。
【００４８】
一方、読み出されたコンテンツにテキスト情報が含まれる場合、形態素解析によって、テキスト情報中に登場する語彙を抽出し、抽出された語彙の出現頻度に基づいてコンテンツインデックスを更新する（Ｓ１０７）。更新されたコンテンツインデックスは、ステップＳ１１２において、リポジトリ管理サブシステム１０３のコンテンツインデックスＤ１３１（図１１参照）に格納される。本明細書において、「語彙」とは、文章を構成する一つ一つの単語又は複合語となる文字列であり、後述する形態素解析によって分解される単位である。
【００４９】
次に、ステップＳ１０７において抽出された語彙の前後の所定の範囲内で登場する語彙を共起語彙として、共起語彙の組み合わせの出現頻度に基づいて、コンテンツ語彙モデルを更新する（Ｓ１０８）。更新されたコンテンツ語彙モデルは、ステップＳ１１２において、リポジトリ管理サブシステム１０３のコンテンツ語彙モデルＤ１３２（図１１参照）に格納される。
【００５０】
ここで、コンテンツ語彙モデルを取得する方法について説明する。
【００５１】
例えば、下記の文章を考える。
「私の上司は笠松さんです。笠松さんは部長をしています。」
この文章は形態素解析によって下記のように単語又は複合語単位の文字列（語彙）に分解される。
【００５２】
「私（私）／の（の）／上司（上司）／は（は）／笠松（笠松）／さん（さん）／です（です）／。（。）／笠松（笠松）／さん（さん）／は（は）／部長（部長）／を（を）／し（する）／て（て）／い（いる）／ます（ます）／。（。）」
【００５３】
なお、カッコ内の文字列は語彙の基本活用形を示す。
【００５４】
その後、分解された文字列（語彙）に対し、共起情報取得処理を実行する。具体的には、語彙のテキスト内出現位置情報に基づき、ある語彙において関連性があると考えられる別の語彙を共起語彙とし、その共起語彙及びその度数を取得する。例えば、ある語彙において所定の範囲内（直前、直後から数語離れた位置）に現れる別の語彙が、統計的に有意に多く現れているのであれば、その二つの語彙間には強い関連性があると考えられる。このことから、ある語彙の前後ｎ個（ただし、ｎ＞０）までの語彙を共起語彙として収集し、収集された語彙の共起する頻度を統計処理することによって、共起する頻度が高い語彙、つまり、関連性の高い語彙を取得することができる。ただし、共起語彙を取得する際には、語彙の基本活用形によって収集・分析を行なう。これは、動詞や形容詞のような活用する語彙を活用した状態のまま処理すると、同じ意味を持つ語彙を別の語彙と判断されることを防ぐためである。また、句読点などの記号が含まれていた場合は、それらは共起語彙として収集しない。
【００５５】
なお、ここでは、ｎ＝４と設定した場合を考える。
【００５６】
そうすると、第１文の「笠松」との共起する語彙は、処理の対象となっている語彙の前４個までの「私」、「の」、「上司」、「は」と、後４個までの「さん」、「です」となる。また、第２文の「笠松」との共起する語彙は、処理の対象となっている語彙の前４個までの「さん」、「です」、と、「さん」、「は」、「部長」、「を」となる。
【００５７】
そして、語彙のペアが共起している頻度を計算し、それを関連度とする。なお、語彙間の関連度を算出する方法として、語彙間の共起回数を計算して設定する方法の他に、統計学におけるｔ検定手法を利用することもできる。これにより、共起語彙の頻度が有意に大きいかを推定することが可能になる。具体的には下式を用いるとよい。
【００５８】
【数１】
2012003603.tif 000003
【００５９】
また、語彙間の関連度を算出する方法として、語彙の出現位置情報に基づく算出方法について説明したが、文章の構造（係り受け）に基づいて関連度を算出することもできる。この場合、構文解析器を用いて係り受け構造を解析し、解析された係り受け関係の頻度情報を関連度とすることができる。
【００６０】
なお、前述した他にも、特開２００３−１６７８９４号公報に開示されている方法を用いて、関連する語彙を取得することもできる。ただし、この場合は事前にコンテンツを適切なカテゴリに分類する手順が必要になる。
【００６１】
さらに、これらの方式を組み合わせて関連度を算出することもできる。本実施の形態では、語彙の出現位置の情報に基づいて語彙間の共起回数を計算して、関連度を設定する方法を用いて説明する。
【００６２】
次に、コンテンツの関係者をユーザ行動履歴に登録することによって、ユーザ行動履歴を更新する（Ｓ１０９）。例えば、コンテンツの作成者や、更新者の情報をコンテンツの属性情報（例えば、ファイルのプロパティや、ファイルのメタデータ）から取得し、取得したユーザのユーザＩＤ、行動種別及びコンテンツＩＤを、新規のエントリ（頻度＝１）としてユーザ行動履歴Ｄ１３７に登録する。なお、ユーザＩＤ、行動種別及びコンテンツＩＤが同一のエントリが既に登録されている場合、頻度に１を加算する。更新されたユーザ行動履歴は、ステップＳ１１２において、リポジトリ管理サブシステム１０３のユーザ行動履歴Ｄ１３７（図１１参照）に格納される。
【００６３】
その後、パラメータｎとステップＳ１０１で生成したリストの要素数とを比較して、次の分析対象のコンテンツが存在するか否かを判定する（Ｓ１１０）。
【００６４】
その結果、次（ｎ＋１番目）のコンテンツが存在する場合、パラメータｎに１を加算し（Ｓ１１１）、ステップＳ１０４に戻り、次のコンテンツを分析する。
【００６５】
一方、次（ｎ＋１番目）のコンテンツが存在しない場合、ステップＳ１０１で生成したリストの中の全てのコンテンツの分析が終了しているので、更新されたコンテンツインデックス、コンテンツ語彙モデル、ユーザ行動履歴をリポジトリ管理サブシステム１０３に転送する（Ｓ１１２）。
【００６６】
リポジトリ管理サブシステム１０３は、これらのデータをコンテンツ分析サブシステム１０１から受信すると、受信したコンテンツ識別子をコンテンツ情報Ｄ１３０に格納し、コンテンツインデックスをコンテンツインデックスＤ１３１に格納し、コンテンツ語彙モデルをコンテンツ語彙モデルＤ１３２に格納し、ユーザ行動履歴をユーザ行動履歴Ｄ１３７に格納する。
【００６７】
図４は、本発明の実施の形態のコンテンツインデックスの例を説明する図である。
【００６８】
コンテンツ分析サブシステム１０１がステップＳ１０７において更新するコンテンツインデックスは、リポジトリ管理サブシステム１０３の記憶装置１２０にコンテンツインデックスＤ１３１として格納されており、語彙、コンテンツＩＤ及び重みを含む。
【００６９】
語彙は、コンテンツにテキスト情報として含まれる単語又は複合語単位の文字列である。コンテンツＩＤは、コンテンツを一意に識別するための識別子であり、当該語彙が含まれるコンテンツを示す。重みは、当該語彙がこのコンテンツに出現する度数を示す。
【００７０】
なお、重みは、当該語彙がこのコンテンツに出現する回数を用いて設定する方法の他、当該語彙がこのコンテンツに出現する回数をコンテンツ内で出現する語彙総数で除することによって正規化した指標を用いる方法や、このコンテンツが含まれるコンテンツ集合における当該語彙の出現確率を用いる方法や、文中の役割（主語、述語、目的語）などに応じて決定する方法や、これらの方式を組み合わせて重みを設定する方法など様々な公知の方法を用いることができる。本実施の形態では、当該語彙がこのコンテンツに出現する方法を用いて説明する。
【００７１】
図５は、本発明の実施の形態のコンテンツ語彙モデルの例を説明する図である。
【００７２】
コンテンツ分析サブシステム１０１がステップＳ１０８において生成するコンテンツ語彙モデルは、コンテンツに含まれる語彙の共起情報であり、リポジトリ管理サブシステム１０３の記憶装置１２０にコンテンツ語彙モデルＤ１３２として格納されており、語彙１、語彙２、コンテンツＩＤ及び関連度を含む。
【００７３】
語彙１及び語彙２は、コンテンツ中の所定の範囲内で共起する語彙の組である。所定の範囲内で共起する語彙とは、前述したように、例えば、ある語彙の前後４個以内に存在する語彙を共起する語彙と定めることができる。
【００７４】
コンテンツＩＤは、語彙１及び語彙２が共起しているコンテンツの識別子である。関連度は、語彙１及び語彙２の組が共起する度数であり、例えば、当該コンテンツ内で語彙１及び語彙２の組が共起した回数を用いることができる。すなわち、共起する回数が多い語彙の組は、その語彙の関連性が高いといえる。
【００７５】
図６は、本発明の実施の形態のユーザ行動履歴の例を説明する図である。
【００７６】
コンテンツ分析サブシステム１０１がステップＳ１０８において生成するユーザ行動履歴は、リポジトリ管理サブシステム１０３の記憶装置１２０にユーザ行動履歴Ｄ１３７として格納されており、ユーザＩＤ、行動種別、コンテンツＩＤ、キーワード及び頻度を含む。
【００７７】
ユーザＩＤは、本情報検索システムを使用するユーザを一意に識別する識別子であり、図示した例では名前が用いられている。
【００７８】
行動種別は、ユーザがコンテンツにアクセスした行動の種別を一意に識別する識別子である。なお、図６に示すユーザ行動履歴には、コンテンツの「作成」、「更新」の他、「閲覧」、「検索」が記録されているが、一部の種別のアクセス（例えば、「作成」、「更新」のみ）が記録されてもよい。また、その他の行動種別（例えば、「メタタグ付与」など）を設定し、該当する行動を記録してもよい。
【００７９】
コンテンツＩＤは、ユーザがアクセスしたコンテンツを一意に識別する識別子である。キーワードは、ユーザがコンテンツに対して行動した際に付随するキーワード（例えば、検索キーワード、メタタグなど）である。頻度は、そのユーザが、その行動によって、そのコンテンツにアクセスした回数である。
【００８０】
例えば、図６に示すユーザ行動履歴では、ユーザ「高取」が「作成」したコンテンツ「ＣＯＮＴ−１」を、ユーザ「高取」が「２」回「更新」し、ユーザ「野崎」が「３」回閲覧し、ユーザ「野崎」が「１」回検索していることが分かる。
【００８１】
なお、行動種別が「作成」又は「更新」など、コンテンツ作成に付随する行動である場合、コンテンツ分析サブシステム１０１がユーザ行動履歴を操作する。また、行動種別が「閲覧」又は「検索」など、コンテンツ作成に直接的には付随しない行動である場合、情報検索サーバ１０４がユーザ行動履歴を操作する。
【００８２】
なお、本実施の形態では、コンテンツインデックスＤ１３１及びコンテンツ語彙モデルＤ１３２の構築方法として、対象となるコンテンツ内に存在するテキスト情報を使用する方法について説明したが、コンテンツ内のテキスト情報だけでなく、コンテンツに付随するテキスト情報（コンテンツの属性、メタタグなど）を利用して、コンテンツインデックスＤ１３１及びコンテンツ語彙モデルＤ１３２を構築することもできる。例えば、コンテンツの属性やメタタグに基づいて、ステップＳ１０７を実行することによって、コンテンツインデックスを構築することができる。
【００８３】
また、同様に、例えば、同じコンテンツに付随するメタタグ同士は関連性があるものと判定して、ステップＳ１０８を実行することによって、コンテンツ語彙モデルを構築することもできる。
【００８４】
これらの情報は、リポジトリ管理サブシステム１０３のコンテンツ語彙モデルＤ１３２に格納されているため、必要な情報をここから適宜抽出し、該当処理を実行すればよい。
【００８５】
＜ユーザ分析サブシステム１０２＞
図７は、本発明の実施の形態のユーザ分析サブシステム１０２の構成を示すブロック図である。
【００８６】
ユーザ分析サブシステム１０２は、前述したコンテンツ分析サブシステム１０１（図２）と、格納されているプログラムが異なる以外は同じ構成を有する。このため、前述したコンテンツ分析サブシステム１０１と同じ構成には同じ符号を付し、その説明は省略する。
【００８７】
すなわち、ユーザ分析サブシステム１０２は、メモリ１１０、記憶装置１２０、ＣＰＵ１３０、出力装置１４０、入力装置１５０及び通信インターフェース１６０を備え、これらの各構成がバス１７０によって接続される計算機である。
【００８８】
メモリ１１０は、ＣＰＵ１３０によって実行されるプログラムを格納する。具体的には、システム制御プログラムＰ１０及びユーザ分析プログラムＰ１２がメモリ１１０に格納される。ユーザ分析プログラムＰ１２は、ユーザがアクセスしたコンテンツの内容に基づいてユーザによるコンテンツの嗜好を分析するプログラムである。
【００８９】
記憶装置１２０に格納される各種プログラムＤ１００には、システム制御プログラムＰ１０及びユーザ分析プログラムＰ１２が含まれており、ＣＰＵ１３０によって実行される際にメモリ１１０にロードされる。
【００９０】
ユーザ分析サブシステム１０２は、ユーザ分析プログラムＰ１２を実行することによって得られたユーザの分析結果を、ネットワーク１０６を介して、リポジトリ管理サブシステム１０３に転送する。次に、この処理の詳細を説明する。
【００９１】
図８は、本発明の実施の形態のユーザ分析サブシステム１０２によって実行される処理のフローチャートである。
【００９２】
図８に示す処理は、定期的に全データを分析し、分析結果は上書き更新される。
【００９３】
まず、ユーザ分析サブシステム１０２は、分析対象となるユーザを取得し、分析対象となる全てのユーザのリストを生成する（Ｓ２０１）。そして、生成されたリストに含まれるユーザのインデックスＤ１３５（図１１参照）をリポジトリ管理サブシステム１０３からを取得する（Ｓ２０２）。ステップＳ２０２において取得されるユーザインデックスファイルには、ユーザの今までの分析結果が含まれており、その構成は図９を用いて後述する。
【００９４】
さらに、ユーザ行動履歴Ｄ１３７（図１１参照）をリポジトリ管理サブシステム１０３からを取得する（Ｓ２０３）。
【００９５】
その後、ループを制御するパラメータｎを１に初期設定する（Ｓ２０４）。
【００９６】
そして、ｎ番目のユーザ情報をリポジトリ管理サブシステム１０３のユーザ情報Ｄ１３４から読み出す（Ｓ２０５）。そして、該当するユーザ情報が存在するか否か、すなわち、ステップＳ２０１で生成されたリストに含まれるユーザの情報がリポジトリ管理サブシステム１０３のユーザ情報Ｄ１３４から読み出すことができたか否かを判定する（Ｓ２０６）。
【００９７】
その結果、ユーザ情報が存在する、すなわち、ユーザ情報がリポジトリ管理サブシステム１０３のユーザ情報Ｄ１３４から読み出すことができた場合、ステップＳ２０８に進む。一方、ユーザ情報が存在しない、すなわち、ユーザ情報がリポジトリ管理サブシステム１０３のユーザ情報Ｄ１３４から読み出すことができなかった場合、当該ユーザの情報はリポジトリ管理サブシステム１０３に登録されていないので、新たにユーザ情報を作成する。このため、ユーザ識別子をユーザに割り当て、このユーザのユーザ情報をリポジトリ管理サブシステム１０３のユーザ情報Ｄ１３４に格納する（Ｓ２０７）。
【００９８】
次に、ユーザインデックスファイルを更新する（Ｓ２０８）。ユーザインデックスファイルは、図９に示すように、ユーザに関連した（当該ユーザが作成、閲覧等のアクセスをした）コンテンツに含まれる語彙の出現度数を示す。具体的には、ステップＳ２０３で取得したユーザ行動履歴Ｄ１３７を参照して、ユーザがアクセスしたコンテンツを特定する。そして、特定されたコンテンツを形態素解析によって抽出した語彙の出現度数を、全コンテンツにわたって集計して重みを求める。なお、既に該当コンテンツが分析済みであり、コンテンツインデックスに該当コンテンツの情報が保持されている場合、それを参照しながら重みを算出することができる。
【００９９】
その後、ユーザ語彙モデル情報（図１０参照）を更新する（Ｓ２０９）。ユーザ語彙モデルは、前述したコンテンツ語彙モデルの更新と同様の方法によって更新することができる。すなわち、ステップＳ２０８において抽出された語彙の前後の所定の範囲内で登場する語彙を共起語彙として、共起語彙の組み合わせの出現頻度を算出する。そして、算出されたコンテンツ毎の共起語彙の組み合わせの出現頻度を、ユーザ行動履歴Ｄ１３７を参照することによって、ユーザ毎にアクセスしたコンテンツを特定し、当該特定されたコンテンツの共起語彙の組み合わせの出現頻度をユーザ毎に集計する。これは、ユーザ行動履歴Ｄ１３７を参照することによって、ユーザ毎にアクセスしたコンテンツを特定し、当該特定されたコンテンツの共起語彙の組み合わせの出現頻度をユーザ毎に集計する。更新されたユーザ語彙モデルは、ステップＳ２１２において、リポジトリ管理サブシステム１０３のユーザ語彙モデルＤ１３６（図１１参照）に格納される。なお、既に該当コンテンツが分析済みであり、コンテンツ語彙モデルに該当コンテンツの情報が保持されている場合、それを参照しながら関連度を算出することができる。
【０１００】
その後、パラメータｎとステップＳ２０１で生成したリストの要素数とを比較して、次の分析対象のユーザが存在するか否かを判定する（Ｓ２１０）。
【０１０１】
その結果、次（ｎ＋１番目）のユーザが存在する場合、パラメータｎに１を加算し（Ｓ２１１）、ステップＳ２０５に戻り、次のユーザを分析する。
【０１０２】
一方、次（ｎ＋１番目）のユーザが存在しない場合、ステップＳ２０１で取得したリストの中の全てのユーザの分析が終了しているので、更新されたユーザインデックス、ユーザ語彙モデルをリポジトリ管理サブシステム１０３に転送する（Ｓ２１２）。
【０１０３】
リポジトリ管理サブシステム１０３は、これらのデータをユーザ分析サブシステム１０１から受信すると、受信したユーザインデックスをユーザインデックスＤ１３５に格納し、ユーザ語彙モデルをユーザ語彙モデルＤ１３６に格納する。
【０１０４】
図９は、本発明の実施の形態のユーザインデックスの例を説明する図である。
【０１０５】
ユーザ分析サブシステム１０２がステップＳ２０８において更新するユーザインデックスは、リポジトリ管理サブシステム１０３の記憶装置１２０にユーザインデックスＤ１３５として格納されており、語彙、ユーザＩＤ及び重みを含む。
【０１０６】
語彙は、コンテンツにテキスト情報として含まれる単語又は複合語単位の文字列である。ユーザＩＤは、ユーザを一意に識別するための識別子であり、当該語彙が含まれるコンテンツにアクセスしたユーザを示す。
【０１０７】
重みは、当該語彙がこのユーザがアクセスしたコンテンツに出現する度数を示す。なお、この重みを算出する際には、アクセスの種別によって重み付け係数を変えて出現回数を加算してもよい。例えば、「作成」には係数１を乗じ、「更新」には係数０．５を乗じることができる。
【０１０８】
図９に示すユーザインデックスによると、ユーザ「高取」がアクセスした全てのコンテンツには語彙「ＢＴ」が１０回出現していることが分かる。
【０１０９】
図１０は、本発明の実施の形態のユーザ語彙モデルの例を説明する図である。
【０１１０】
ユーザ分析サブシステム１０２がステップＳ２０９において生成するユーザ語彙モデルは、ユーザがアクセスしたコンテンツに含まれる語彙の共起情報であり、リポジトリ管理サブシステム１０３の記憶装置１２０にユーザ語彙モデルＤ１３６として格納されており、語彙１、語彙２、ユーザＩＤ及び関連度を含む。
【０１１１】
語彙１及び語彙２は、コンテンツ中の所定の範囲内で共起する語彙の組である。所定の範囲とは、前述したように、例えば、語彙１の前後４個以内に存在する語彙を共起する語彙と定めることができる。
【０１１２】
ユーザＩＤは、語彙１及び語彙２が共起しているコンテンツにアクセスしたユーザの識別子である。関連度は、語彙１及び語彙２の組が共起する度数であり、例えば、当該ユーザがアクセスしたコンテンツ内で語彙１及び語彙２の組が共起した回数を用いることができる。すなわち、関連度が大きい語彙の組は、その語彙の関連性が高く、そのユーザによる嗜好性が高い語彙の組であるといえる。
【０１１３】
図１０に示すユーザ語彙モデルによると、ユーザ「高取」がアクセスした全てのコンテンツには、「ＢＴ」「ＳＯＡ」の組が共起語彙として５回出現していることが分かる。
【０１１４】
なお、本実施の形態では、ユーザインデックスＤ１３５及びユーザ語彙モデルＤ１３６の構築方法として、当該ユーザが作成、閲覧等のアクセスを行なったコンテンツ情報に基づいて構築する方法について説明したが、アクセスしたコンテンツの情報だけでなく、検索やメタタグ付与などの別の行動の対象となったコンテンツの情報を利用して構築することもできる。
【０１１５】
例えば、検索を実行した際に入力される検索キーワードや、ユーザがコンテンツに付与したメタタグは、ユーザの嗜好を表していると考えられる。このため、これらの情報に基づいて、ステップＳ２０８を実行することによって、ユーザインデックスを構築することができる。
【０１１６】
また、同様に、例えば、ユーザが一回の検索時に入力された語彙同士、又は、同じユーザがアクセスしたコンテンツに付随するメタタグ同士は関連性があると判定して、ステップＳ２０９を実行しすることによって、ユーザ語彙モデルを構築することもできる。
【０１１７】
これらの情報は、リポジトリ管理サブシステム１０３のユーザ行動履歴Ｄ１３７に格納されているため、必要な情報をここから適宜抽出し、該当処理を実行すればよい。
【０１１８】
＜リポジトリ管理サブシステム１０３＞
図１１は、本発明の実施の形態のリポジトリ管理サブシステム１０３の構成を示すブロック図である。
【０１１９】
リポジトリ管理サブシステム１０３は、前述したコンテンツ分析サブシステム１０１（図２）と、格納されているプログラムが異なる以外は同じ構成を有する。このため、前述したコンテンツ分析サブシステム１０１と同じ構成には同じ符号を付し、その説明は省略する。
【０１２０】
すなわち、リポジトリ管理サブシステム１０３は、メモリ１１０、記憶装置１２０、ＣＰＵ１３０、出力装置１４０、入力装置１５０及び通信インターフェース１６０を備え、これらの各構成がバス１７０によって接続される計算機である。
【０１２１】
メモリ１１０は、ＣＰＵ１３０によって実行されるプログラムを格納する。具体的には、システム制御プログラムＰ１０及びリポジトリ管理プログラムＰ１３がメモリ１１０に格納される。リポジトリ管理プログラムＰ１３は、リポジトリ管理サブシステム１０３に格納される情報を管理するプログラムである。
【０１２２】
記憶装置１２０には、各種プログラムＤ１００が格納される。この各種プログラムＤ１００には、システム制御プログラムＰ１０及びリポジトリ管理プログラムＰ１３が含まれており、ＣＰＵ１３０によって実行される際にメモリ１１０にロードされる。
【０１２３】
また、記憶装置１２０には、コンテンツ情報Ｄ１３０、コンテンツインデックスＤ１３１、コンテンツ語彙モデルＤ１３２、コンテンツ付加情報Ｄ１３３、ユーザ情報Ｄ１３４、ユーザインデックスＤ１３５、ユーザ語彙モデルＤ１３６及びユーザ行動履歴Ｄ１３７が格納される。
【０１２４】
コンテンツ情報Ｄ１３０は、コンテンツの識別子と、コンテンツの実体を含む。コンテンツインデックスＤ１３１は、図４に示すように、コンテンツに出現する語彙の度数を示す。コンテンツ語彙モデルＤ１３２は、図５に示すように、コンテンツに出現する共起語彙の度数を示す。コンテンツ付加情報Ｄ１３３は、コンテンツに付加される情報であり、コンテンツの属性や、メタタグを含む。
【０１２５】
ユーザ情報Ｄ１３４は、ユーザの識別子、氏名、所属、権限レベル等のユーザに関する情報を含む。ユーザインデックスＤ１３５は、図９に示すように、ユーザがアクセスしたコンテンツに含まれる語彙の出現度数を示す。ユーザ語彙モデルＤ１３６は、図１０に示すように、ユーザがアクセスしたコンテンツに含まれる共起語彙及びその度数を示す。ユーザ行動履歴Ｄ１３７は、図６に示すように、ユーザがコンテンツにアクセスした態様、頻度を示す。
【０１２６】
リポジトリ管理サブシステム１０３は、リポジトリ管理プログラムＰ１３を実行することによって、ネットワーク１０６を介して転送された分析情報を記憶装置１２０に格納し、ネットワーク１０６を介して送信された情報問合せを受信し、受信した問合せ内容に応じた情報を磁気ディスク装置１２０から取得し、ネットワーク１０６を介して要求元の情報検索クライアント１０５に返信する。次に、この処理の詳細を説明する。
【０１２７】
図１２は、本発明の実施の形態のリポジトリ管理サブシステム１０３によって実行される処理のフローチャートである。
【０１２８】
まず、リポジトリ管理サブシステム１０３は、情報検索クライアント１０５からリクエストを受信すると（Ｓ３０１）、受信したリクエストを解析する（Ｓ３０２）。
【０１２９】
受信したリクエストが情報参照要求である場合、要求された問合せ内容に応じた情報を記憶装置１２０から読み出して（Ｓ３０３）、読み出した情報を要求元の情報検索クライアント１０５に送信する（Ｓ３０４）。その後、ステップＳ３０１に戻り、他のリクエストの受信を待つ。
【０１３０】
一方、受信したリクエストがコンテンツ情報登録要求である場合、要求された登録内容に応じて、情報を記憶装置１２０に格納する。
【０１３１】
具体的には、コンテンツ情報の登録要求であれば、受信したコンテンツ情報をコンテンツ情報Ｄ１３０に新たに登録する（Ｓ３０５）。コンテンツインデックスの更新要求であれば、受信したコンテンツインデックスによってコンテンツインデックスＤ１３１を更新する（Ｓ３０６）。コンテンツ語彙モデルの更新要求であれば、受信したコンテンツ語彙モデルによってコンテンツ語彙モデルＤ１３２を更新する（Ｓ３０７）。コンテンツ付加情報の登録要求であれば、受信したコンテンツ付加情報をコンテンツ付加情報Ｄ１３３に追加登録する（Ｓ３０８）。ユーザ行動履歴の登録要求であれば、受信したユーザ行動履歴をユーザ行動履歴Ｄ１３７に追加登録する（Ｓ３０９）。ユーザ情報の登録要求であれば、受信した新規登録ユーザの情報をユーザ情報Ｄ１３４に追加するように登録する（Ｓ３１０）。ユーザインデックスの登録要求であれば、受信したユーザインデックスによってユーザインデックスＤ１３５を更新する（Ｓ３１１）。ユーザ語彙モデルの更新要求であれば、受信したユーザ語彙モデルによってユーザ語彙モデルＤ１３６を更新する（Ｓ３１２）。ステップＳ３０５からステップＳ３１２の処理の終了後、ステップＳ３０１に戻り、他のリクエストの受信を待つ。
【０１３２】
一方、受信したリクエストがサブシステム停止コマンドである場合、リポジトリ管理サブシステム１０３の動作を終了する。
【０１３３】
＜情報検索サーバ１０４＞
図１３は、本発明の実施の形態の情報検索サーバ１０４の構成を示すブロック図である。
【０１３４】
情報検索サーバ１０４は、前述したコンテンツ分析サブシステム１０１（図２）と、格納されているプログラムが異なる以外は同じ構成を有する。このため、前述したコンテンツ分析サブシステム１０１と同じ構成には同じ符号を付し、その説明は省略する。
【０１３５】
すなわち、情報検索サーバ１０４は、メモリ１１０、記憶装置１２０、ＣＰＵ１３０、出力装置１４０、入力装置１５０及び通信インターフェース１６０を備え、これらの各構成がバス１７０によって接続される計算機である。
【０１３６】
メモリ１１０は、ＣＰＵ１３０によって実行されるプログラムを格納する。具体的には、システム制御プログラムＰ１０及び情報検索制御プログラムＰ１４がメモリ１１０に格納される。
【０１３７】
情報検索制御プログラムＰ１４は、情報検索クライアント１０５から送信された検索要求に基づいて、コンテンツを検索するプログラムであり、サブプログラムとして、コンテンツ検索プログラムＰ１４１、検索結果取得プログラムＰ１４２、コンテンツ取得プログラムＰ１４３、ユーザ行動履歴登録プログラムＰ１４４、及びユーザ認証プログラムＰ１４５を含む。
【０１３８】
コンテンツ検索プログラムＰ１４１は、コンテンツの検索を実行するためのプログラムで、検索条件式解析プログラムＰ１４１１、検索クエリ行列生成プログラムＰ１４１２、コンテンツ行列生成プログラムＰ１４１３、類似度算出プログラムＰ１４１４、及びコンテンツ抽出プログラムＰ１４１５を含む。
【０１３９】
検索条件式解析プログラムＰ１４１１は、ユーザによって入力された検索条件式を解析する（図１４のステップＳ４１１）。検索クエリ行列生成プログラムＰ１４１２は、検索条件式の解析結果に従って、検索クエリ行列を生成する（図１４のステップＳ４１２）。
【０１４０】
コンテンツ行列生成プログラムＰ１４１３は、検索クエリ行列と類似度が比較されるコンテンツ行列を生成する（図１７のステップＳ４１３４）。類似度算出プログラムＰ１４１４は、検索クエリ行列とコンテンツ行列との類似度を算出する（図１７のステップＳ４１３５））。
【０１４１】
コンテンツ抽出プログラムＰ１４１５は、コンテンツインデックスＤ１３１を検索し、検索クエリ行列のラベルの語彙が含まれているコンテンツのリストを抽出する（図１７のステップＳ４１３２）。
【０１４２】
検索結果取得プログラムＰ１４２は、情報検索クライアント１０５からの問合せ内容に従って検索結果データＤ１４０を要求元に転送する。
【０１４３】
コンテンツ取得プログラムＰ１４３は、情報検索クライアント１０５からの要求に従って、リポジトリ管理サブシステム１０３からコンテンツを取得する。
【０１４４】
ユーザ行動履歴登録プログラムＰ１４４は、情報検索クライアント１０５からの要求に従ったコンテンツへのアクセス履歴をユーザ行動履歴Ｄ１３７に登録する。
【０１４５】
ユーザ認証プログラムＰ１４５は、情報検索クライアント１０５を操作するユーザを認証する。
【０１４６】
記憶装置１２０には、各種プログラムＤ１００が格納される。この各種プログラムＤ１００には、システム制御プログラムＰ１０及び情報検索制御プログラムＰ１４が含まれており、ＣＰＵ１３０によって実行される際にメモリ１１０にロードされる。
【０１４７】
また、記憶装置１２０には、検索結果データＤ１４０が格納される。検索結果データＤ１４０は、コンテンツ検索プログラムＰ１４１によって検索された検索結果であり、検索結果取得プログラムＰ１４２によって、情報検索クライアント１０５に転送される。
【０１４８】
情報検索サーバ１０４は、情報検索制御プログラムＰ１４を実行することによって、情報検索クライアント１０５から送信された検索要求に基づいて、コンテンツを検索し、検索結果を要求元の情報検索クライアント１０５に返信する。次に、この処理の詳細を説明する。
【０１４９】
図１４は、本発明の実施の形態の情報検索サーバ１０４によって実行される処理のフローチャートである。
【０１５０】
まず、情報検索サーバ１０４は、情報検索クライアント１０５からリクエストを受信すると（Ｓ４０１）、受信したリクエストを解析する（Ｓ４０２）。
【０１５１】
受信したリクエストがユーザ認証要求である場合、情報検索クライアント１０５に入力されたユーザＩＤに基づいてユーザを認証し、認証結果を要求元の情報検索クライアント１０５に返信する（Ｓ４０３）。
【０１５２】
一方、受信したリクエストが検索結果問合せである場合、検索結果取得プログラムＰ１４２を実行し、情報検索クライアント１０５からの問合せ内容に従って検索結果データＤ１４０を記憶装置１２０から読み出して、検索結果データＤ１４０を要求元情報検索クライアント１０５に転送する（Ｓ４２１）。検索結果データＤ１４０には、検索されたコンテンツのリストが含まれている。
【０１５３】
一方、受信したリクエストがコンテンツ転送要求である場合、コンテンツ内容取得プログラムＰ１４３を実行し、情報検索クライアント１０５からの要求をリポジトリ管理サブシステム１０３に転送し、要求されたコンテンツをリポジトリ管理サブシステム１０３から取得する（Ｓ４３１）。そして、ユーザ行動履歴登録プログラムＰ１４４を実行し、コンテンツ転送要求の原因（例えば、閲覧）をリポジトリ管理サブシステム１０３のユーザ行動履歴Ｄ１３７に追加登録する（Ｓ４３２）。その後、要求されたコンテンツを要求元の情報検索クライアント１０５に転送する（Ｓ４３３）。
【０１５４】
一方、受信したリクエストがコンテンツ検索要求である場合、検索条件式解析プログラムＰ１４１１を実行し、検索条件式を解析する（Ｓ４１１）。具体的には、検索者のユーザＩＤを取得し、検索者が入力した文章を、形態素解析を用いて語彙に分割する。そして、語彙の出現頻度を算出し、検索条件式をベクトル化する。ベクトル化された検索条件式は、情報検索サーバ１０４のメモリ１１０のワークエリアに格納される。次に、検索クエリ行列生成プログラムＰ１４１２を実行し、検索クエリ行列を生成する（Ｓ４１２）。検索クエリ行列生成処理の詳細は、図１５を用いて後述する。本発明の実施の形態では、ステップＳ４１１によって検索条件式を解析し、検索クエリ行列を生成して、検索を実行するので、検索条件式が自然文で入力されても、適切な検索をすることができる。
【０１５５】
その後、検索クエリ行列に基づいて、コンテンツ情報Ｄ１３０中の各コンテンツの類似度を算出し（Ｓ４１３）、コンテンツ情報Ｄ１３０中の各コンテンツを類似度の降順にソートする（Ｓ４１４）。類似コンテンツ抽出処理の詳細は、図１７を用いて後述する。
【０１５６】
その後、ユーザー行動履歴登録プログラムＰ１４４を実行し、ユーザ行動履歴を追加登録する（Ｓ４１５）。そして、ソートした検索結果データ集合を要求元の情報検索クライアント１０５に返信する（Ｓ４１６）。
【０１５７】
一方、受信したリクエストがサーバー停止コマンドである場合、情報検索サーバ１０４の動作を終了する。
【０１５８】
図１５Ａ及び図１５Ｂは、本発明の実施の形態の情報検索クエリ行列生成処理（Ｓ４１２）の詳細な手順を示すフローチャートである。
【０１５９】
まず、ステップＳ４１１において検索条件式を解析して得られた検索キーワード及びその重み値をワークエリアから読み込む（Ｓ４１２０１）。
【０１６０】
そして、検索キーワード数に１を加算した値の次数の正方零行列を作成し、作成した行列を検索クエリ行列に初期設定する（Ｓ４１２０２）。
【０１６１】
そして、作成した検索クエリ行列の行のラベルに、抽象ノード及び検索キーワードを設定し、検索クエリ行列の列のラベルにも、抽象ノード及び検索キーワードを設定する（Ｓ４１２０３）。すなわち、検索クエリ行列の行のラベルと列のラベルとには、同じ抽象ノード及び検索キーワードが設定される。なお、抽象ノードは第１行目及び第１列目のラベルに設定される。
【０１６２】
その後、処理される検索キーワードを制御するパラメータｎを１に初期設定する（Ｓ４１２０４）。なお、ｎの最大値は、ステップＳ４１２０１において取得した検索キーワードの数である。
【０１６３】
そして、ｎ番目の検索キーワードをワークエリアから読み込む（Ｓ４１２０５）。
【０１６４】
抽象ノード及びｎ番目の検索キーワードに対応する検索クエリ行列の値＜１，ｎ＞に、ステップＳ４０２０１において取得した重み値を設定する。同様に、ｎ番目の検索キーワード及び抽象ノードに対応する検索クエリ行列の値＜ｎ，１＞にも同じ重み値を設定する（Ｓ４１２０６）。
【０１６５】
その後、ｎ番目の検索キーワードに関連する語彙のリストをユーザ語彙モデルＤ１３６から抽出する（Ｓ４１２０７）。具体的には、ｎ番目の検索キーワードとユーザＩＤとに基づいてユーザ語彙モデルＤ１３６の語彙１を検索し、対応する語彙２の語彙集合を取得し、関連語彙集合に設定する。同様に、ｎ番目の検索キーワードとユーザＩＤに基づいてユーザ語彙モデルＤ１３６の語彙２を検索し、対応する語彙１の語彙集合を取得し、関連語彙集合に設定する。取得した関連語彙はメモリ１１０のワークエリアに格納される。
【０１６６】
その後、処理される関連語彙を制御するパラメータｋを１に初期設定する（Ｓ４１２０８）。なお、パラメータｋの最大値は、ステップＳ４１２０７において取得した関連語彙集合の要素数である。
【０１６７】
その後、ｋ番目の関連語彙をワークエリアから読み込む（Ｓ４１２０９）。そして、検索クエリ行列の行及び列のラベルを参照して、読み込んだｋ番目の関連語彙が検索クエリ行列に存在するか否かを判定する（Ｓ４１２１０）。その結果、ｋ番目の関連語彙が検索クエリ行列のラベルに存在する場合、ｋ番目の関連語彙を検索クエリ行列に追加する必要がないので、ステップＳ４１２１３に進む。
【０１６８】
一方、ｋ番目の関連語彙が検索クエリ行列のラベルに存在しない場合、検索クエリ行列を１行及び１列拡張し、拡張された行及び列の要素を０に設定し（Ｓ４１２１１）、拡張された行及び列のラベルにｋ番目の関連語彙を設定する（Ｓ４１２１２）。
【０１６９】
その後、ｋ＋１番目の関連語彙が存在するか否かを判定する（Ｓ４１２１３）。その結果、ｋ＋１番目の関連語彙が存在する場合、パラメータｋに１を加算し（Ｓ４１２１５）、ステップＳ４１２０９に戻り、次の関連語彙を処理する。
【０１７０】
一方、ｋ＋１番目の関連語彙が存在しない場合、この検索キーワードに関する関連語彙の処理は終了したので、ｎ＋１番目の検索キーワードが存在するか否かを判定する（Ｓ４１２１４）。その結果、ｎ＋１番目の検索キーワードが存在する場合、パラメータｎに１を加算し（Ｓ４１２１６）、ステップＳ４１２０５に戻り、次の検索キーワードを処理する。
【０１７１】
一方、ｎ＋１番目の検索キーワードが存在しない場合、検索に必要な全ての関連語彙が含まれる検索クエリ行列の生成が完了したので、ステップＳ４１２１７に進む。なお、生成された検索クエリ行列は、メモリ１１０のワークエリアに格納されている。
【０１７２】
ステップＳ４１２１７では、検索クエリ行列の行を示すパラメータｉを２に初期設定した後（Ｓ４１２１７）、検索クエリ行列のｉ行のラベル（語彙）をワークエリアから読み込む（Ｓ４１２１８）。その後、検索クエリ行列の列を示すパラメータｊを２に初期設定した後（Ｓ４１２１９）、検索クエリ行列のｊ列のラベル（語彙）を読み込む（Ｓ４１２２０）。
【０１７３】
その後、検索クエリ行列のｉ行のラベルと、ｊ列のラベルとの関連度をユーザ語彙モデルＤ１３６から取得し（Ｓ４１２２１）、取得した関連度を検索クエリ行列の＜ｉ，ｊ＞に設定する。ただし、ステップＳ４１２２１において関連語を取得できなかった場合は何も実行せず、次のステップに移る（Ｓ４１２２２）。
【０１７４】
その後、ｊ＋１番目のラベル（語彙）が存在するか否かを判定する（Ｓ４１２２３）。その結果、ｊ＋１番目の語彙が存在する場合、ｊに１を加算し（Ｓ４１２２６）、ステップＳ４１１２０に戻り、次の列を処理する。一方、ｊ＋１番目の語彙が存在しない場合、ｉ行の処理は終了したので、次に行に移るため、ｉ＋１番目のラベル（語彙）が存在するか否かを判定する（Ｓ４１２２４）。
【０１７５】
その結果、ｉ＋１番目の語彙が存在する場合、ｉに１を加算し（Ｓ４１２２７）、ステップＳ４１２１８に戻り、次のｉ＋１行を処理する。一方、ｉ＋１番目の語彙が存在しない場合、検索クエリ行列への語彙間の関連度の登録が終了したので、生成した検索クエリ行列をワークエリアに格納し（Ｓ４１２２５）、情報検索クエリ行列生成処理（Ｓ４１２）を終了し、ステップＳ４１３に進む。
【０１７６】
図１６は、本発明の実施の形態のステップＳ４１１及びＳ４１２において、検索条件式を解析し検索クエリ行列を生成する例を説明する図である。
【０１７７】
ステップＳ４１１では、検索者が文章「ＢＴによる効果的なシステム構築手法について・・・」１７０１を入力した場合を考える。この文章１７０１を、形態素解析を用いて語彙に分割する。そして、語彙の文章１７０１中の出現頻度を算出し（１７０２）、検索条件式をベクトル化する。この生成されたベクトル１７０３は検索クエリ行列１７０４の１列目に含まれている。
【０１７８】
次に、ステップＳ４１２では、ベクトル１７０３が１行目及び１列目に設定された検索クエリ行列１７０４を生成する。検索クエリ行列１７０４の２行目及び２列目以後の要素は、ユーザ語彙モデルＤ１３６に記録された語彙間が共起する頻度が登録される。
【０１７９】
なお、本実施の形態では、検索者が、検索語として文章１７０１を入力した場合の検索方法について説明したが、検索者に検索語とそれに対する重みの入力を求め、形態素解析をすることなく、入力された検索語とそれに対する重みによって検索クエリを作成することもできる。なお、検索者が検索語に対する重みの入力を省略した場合、デフォルト値（例えば、１）を設定すればよい。
【０１８０】
また、検索したい内容に関連したコンテンツのコンテンツＩＤの入力を検索者に求めることによって、形態素解析をすることなく、入力されたコンテンツＩＤに基づいて検索クエリ行列を作成することもできる。具体的には、まず、コンテンツＩＤに基づいてコンテンツインデックスＤ１３１から語彙集合を取得し、その重みの上位ｎ件を取得すれば、ユーザが検索したい内容を特徴付ける語彙集合を取得することができる。そして、得られた語彙集合に基づいて同様の処理を実行することによって検索クエリ行列を作成し、検索者が望むコンテンツを提示することができる。
【０１８１】
さらに、ユーザの嗜好に合うコンテンツを推薦する処理に適用することも可能である。この場合、ユーザＩＤに基づいてユーザインデックスＤ１３５から語彙集合を取得し、その重みの上位ｎ件を取得すれば、そのユーザを特徴付ける語彙集合を取得することができる。そして、このユーザを特徴付ける語彙集合に基づいて、同様の処理を用いて検索クエリ行列を作成することによって、ユーザの嗜好に合わせたコンテンツを推薦することができる。
【０１８２】
図１７は、本発明の実施の形態の類似コンテンツ抽出処理（Ｓ４１３）の詳細な手順を示すフローチャートである。
【０１８３】
まず、ステップＳ４１２で生成された検索クエリ行列をワークエリアから読み出す（Ｓ４１３１）。その後、コンテンツ抽出プログラムＰ１４１５を実行し、検索クエリ行列のラベルを用いて、コンテンツインデックスＤ１３１を検索し、検索クエリ行列のラベルの語彙が含まれているコンテンツのリストを抽出する（Ｓ４１３２）。
【０１８４】
その後、ループを制御するためのパラメータｎを１に初期設定する（Ｓ４１３３）。そして、コンテンツ行列生成プログラムＰ１４１３を実行し、抽出されたｎ番目のコンテンツのコンテンツ行列を生成する（Ｓ４１３４）。このコンテンツ行列生成処理の詳細は、図１８を用いて後述する。
【０１８５】
そして、類似度算出プログラムＰ１４１４を実行し、検索クエリ行列と生成したｎ番目のコンテンツ行列との類似度を算出する（Ｓ４１３５）。このコンテンツ行列生成処理の詳細は、図２０を用いて後述する。
【０１８６】
その後、算出した類似度をコンテンツと関連付けて、ワークエリアに格納する（Ｓ４１３６）。
【０１８７】
その後、ｎ＋１番目のコンテンツが存在するか否かを判定する（Ｓ４１３７）。その結果、ｎ＋１番目のコンテンツが存在する場合、ｎに１を加算し（Ｓ４１３８）、ステップＳ４１３４に戻り、次のコンテンツを処理する。一方、ｎ＋１番目のコンテンツが存在しない場合、抽出した全てのコンテンツの処理が終了しているので、類似コンテンツ抽出処理を終了し、ステップＳ４１４に進む。
【０１８８】
図１８は、本発明の実施の形態のコンテンツ行列生成手順（Ｓ４１３４）の詳細な手順を示すフローチャートである。
【０１８９】
まず、検索クエリ行列の次数と同じ次数の正方零行列を作成し、作成した行列をコンテンツ行列に初期設定する（Ｓ４１３４０１）。
【０１９０】
そして、検索クエリ行列の行及び列のラベルを、作成したコンテンツ行列の行のラベルに設定する（Ｓ４１３４０２）。すなわち、コンテンツ行列の行と列のラベルには、検索クエリ行列の行及び列のラベルと同じ抽象ノード及び検索キーワードが同じ順で設定される。なお、抽象ノードは第１行目及び第１列目のラベルに設定される。
【０１９１】
その後、コンテンツ行列のラベルに設定された語彙を示すパラメータｎを２に初期設定した後（Ｓ４１３４０３）、コンテンツ行列のｎ行のラベル（語彙）をワークエリアから読み込む（Ｓ４１３４０４）。
【０１９２】
その後、コンテンツ行列のｎ行のラベル（語彙）の重みを、ｎ行のラベルとコンテンツＩＤに基づいて、コンテンツインデックスＤ１３１から取得し、取得した重みをコンテンツ行列の＜１，ｎ＞、＜ｎ，１＞に設定する（Ｓ４１３４０５）。
【０１９３】
その後、ｎ＋１番目のラベル（語彙）が存在するか否かを判定する（Ｓ４１３４０６）。その結果、ｎ＋１番目の語彙が存在する場合、ｎに１を加算し（Ｓ４１３４０７）、ステップＳ４１３４０４に戻り、次の語彙を処理する。一方、ｎ＋１番目の語彙が存在しない場合、抽象ノードの処理は終了したので、次に検索キーワードの処理に移るため、検索クエリ行列の行を示すパラメータｉを２に初期設定する（Ｓ４１３４０８）。
【０１９４】
その後、コンテンツ行列のｉ行のラベル（語彙）をワークエリアから読み込む（Ｓ４１３４０９）。その後、コンテンツ行列の列を示すパラメータｊを２に初期設定した後（Ｓ４１３４１０）、コンテンツ行列のｊ列のラベル（語彙）を読み込む（Ｓ４１３４１１）。
【０１９５】
その後、コンテンツ行列のｉ行のラベルと、ｊ列のラベルとの関連度をｉ行のラベル、ｊ列のラベル及びコンテンツＩＤに基づいて、コンテンツ語彙モデルＤ１３２から取得し（Ｓ４１３４１２）、取得した関連度を検索クエリ行列の＜ｉ，ｊ＞に設定する。ただし、関連度が取得できなかった場合、何もせず、次のステップに進む（Ｓ４１３４１３）。
【０１９６】
その後、ｊ＋１番目のラベル（語彙）が存在するか否かを判定する（Ｓ４１３４１４）。その結果、ｊ＋１番目の語彙が存在する場合、ｊに１を加算し（Ｓ４１３４１７）、ステップＳ４１３４１１に戻り、次の列を処理する。一方、ｊ＋１番目の語彙が存在しない場合、ｉ行の処理は終了したので、次に行に移るため、ｉ＋１番目のラベル（語彙）が存在するか否かを判定する（Ｓ４１３４１５）。
【０１９７】
その結果、ｉ＋１番目の語彙が存在する場合、ｉに１を加算し（Ｓ４１３４１８）、ステップＳ４１３４０９に戻り、次のｉ＋１行を処理する。一方、ｉ＋１番目の語彙が存在しない場合、コンテンツ行列への語彙間の関連度の登録が終了したので、生成したコンテンツ行列をワークエリアに格納し（Ｓ４１３４１６）、コンテンツ行列抽出処理（Ｓ４１３４）を終了し、ステップＳ４１４５に進む。
【０１９８】
図１９は、本発明の実施の形態のステップＳ４１３におけるコンテンツ行列の生成の例を説明する図である。
【０１９９】
まず、ステップＳ４１３２では、検索クエリ行列のラベルを用いて該当するコンテンツをフィルタリングする。このステップは、図１７のステップＳ４１３２と同じである。具体的には、検索クエリ行列１７０４のラベルを用いて、コンテンツインデックスＤ１３１を検索し、検索クエリ行列のラベルの語彙が含まれているコンテンツのリスト２０００を抽出する。
【０２００】
次に、ステップＳ４１３４では、コンテンツ行列２００１を生成する。ここで生成されるコンテンツ行列２００１の行及び列のラベルには、検索クエリ行列の行及び列のラベル
が設定される。コンテンツ行列２００１の１行目及び１列目には、コンテンツインデックスＤ１３１に記録されたコンテンツと語彙の重みが登録される。コンテンツ行列２００１の２行目及び２列目以後の要素には、コンテンツ語彙モデルＤ１３２に記録された語彙間の関連度が登録される。
【０２０１】
その後、ステップＳ４１３５では、検索クエリ行列とコンテンツ行列との類似度を算出する（Ｓ４１３５）。
【０２０２】
図２０は、本発明の実施の形態の類似度算出手順（Ｓ４１３５）の詳細な手順を示すフローチャートである。
【０２０３】
まず、ステップＳ４１２で生成した検索クエリ行列、及びステップＳ４１３４で生成したコンテンツ行列をワークエリアから読み出す（Ｓ４１３５０１）。
【０２０４】
その後、類似度を計算するためのパラメータステップＳＵＭを０に初期設定し（Ｓ４１３５０２）、検索クエリ行列及びコンテンツ行列の列を制御するパラメータｎを１に初期設定する（Ｓ４１３５０３）。
【０２０５】
そして、検索クエリ行列のｎ列目をベクトル化（ＱＶｎ）し、ベクトルＱＶｎをワークエリアに格納する（Ｓ４１３５０４）。さらに、コンテンツ行列のｎ列目をベクトル化（ＣＶｎ）し、ベクトルＣＶｎをワークエリアに格納する（Ｓ４１３５０５）。
【０２０６】
その後、ワークエリアに格納されているベクトルＱＶｎとベクトルＣＶｎとの類似度を算出する。この類似度の算出には、コサイン類似度などの手法を利用することができる（Ｓ４１３５０６）。なお、コサイン類似度は、ベクトルＱＶｎとＣＶｎとの間の内積を、ベクトルのノルム（ベクトルの幾何学的な長さ）で除したものを用いることができる。そして、算出したベクトル間の類似度をＳＵＭに加算する（Ｓ４１３５０７）。
【０２０７】
その後、ｎ＋１列が存在するか否かを判定する（Ｓ４１３５０８）。その結果、ｎ＋１列目が存在する場合、ｎに１を加算し（Ｓ４１３５１０）、ステップＳ４１３５０４に戻り、次の列を処理する。一方、ｎ＋１列目が存在しない場合、ＳＵＭを検索クエリ行列の次元数で除算することによって、類似度を算出する（Ｓ４１３５０９）。その後、類似度算出手順（Ｓ４１３５）を終了し、ステップＳ４１３６に進み、算出された類似度をワークエリアに格納する。
【０２０８】
以上、コサイン類似度（ベクトル間の内積）を用いて、検索クエリ行列とコンテンツ行列との間の類似度を算出する方法について説明した。
【０２０９】
なお、本実施の形態では、検索クエリ行列の作成方法及びコンテンツ行列の作成方法について、各種記憶装置に格納されている分析結果をそのまま使用する方法について説明したが、他の方法を用いて検索クエリ行列及びコンテンツ行列を作成することもできる。
【０２１０】
検索クエリ行列又はコンテンツ行列を俯瞰すると、それぞれラベルをノードとし、行列内の要素値をエッジとするグラフ構造と考えることもできる。このとき、検索クエリ行列又はコンテンツ行列は、グラフ理論における隣接行列と呼ばれる行列形式である考えることができる。
【０２１１】
このグラフ構造を構成するノード間の類似度を算出することによって、検索クエリ又はコンテンツと語彙の関係、及び、それぞれの語彙間の関連性の精度を高めることができる。このため、算出される類似度の精度を高めることができる。
【０２１２】
グラフにおけるノード間の類似度を算出する方法は、グラフ理論の分野においてフォンノイマン行列を援用する方法や、ラプラシアン熱拡張行列を援用する方法など、いくつか公知なものが存在し、これらの方法を使用することができる。
【０２１３】
例えば、正則化ラプラシアンカーネルを用いて検索クエリ行列におけるノード間の類似度（ＲＬ）を算出することができる。具体的には下式を用いるとよい。
【０２１４】
下式によって得られる値（ＲＬ）は行列となり、この行列の要素値はノード間の類似度、すなわち、検索クエリと語彙の関係度、及び、それぞれの語彙間の関連性を示す。
【０２１５】
【数２】
2012003603.tif 000004
【０２１６】
また、同様に、コンテンツ行列におけるノード間の類似度（ＲＬ）を算出することもできる。この場合、上式によって得られる値（ＲＬ）は行列である。この行列における要素値はノード間の類似度、すなわち、コンテンツと語彙の関係度、及び、それぞれの語彙間の関連性を示す。
【０２１７】
そして、正則化ラプラシアンカーネルを適用して再構築した検索クエリ行列とコンテンツ行列を用いて、前述したステップＳ４１３５の方法によって類似度を算出することができる。
【０２１８】
なお、正則化ラプラシアンカーネルを検索クエリ行列又はコンテンツ行列のいずれかに適用してもよい。正則化ラプラシアンカーネルは、検索クエリ行列又はコンテンツ行列における要素値（関連性）の精度を向上させることを目的として適用されるものであり、正則化ラプラシアンカーネルを適用しても検索クエリ行列又はコンテンツ行列におけるラベル及びその要素値の意味は変わらないからである。
【０２１９】
＜情報検索クライアント１０５＞
図２１は、本発明の実施の形態の情報検索クライアント１０５の構成を示すブロック図である。
【０２２０】
情報検索クライアント１０５は、前述したコンテンツ分析サブシステム１０１（図２）と、格納されているプログラムが異なる以外は同じ構成を有する。このため、前述したコンテンツ分析サブシステム１０１と同じ構成には同じ符号を付し、その説明は省略する。
【０２２１】
すなわち、情報検索クライアント１０５は、メモリ１１０、記憶装置１２０、ＣＰＵ１３０、出力装置１４０、入力装置１５０及び通信インターフェース１６０を備え、これらの各構成がバス１７０によって接続される計算機である。
【０２２２】
メモリ１１０は、ＣＰＵ１３０によって実行されるプログラムを格納する。具体的には、システム制御プログラムＰ１０及び検索クライアント制御プログラムＰ１５がメモリ１１０に格納される。
【０２２３】
検索クライアント制御プログラムＰ１５は、情報検索サーバ１０４へ送信する検索要求にを生成するプログラムであり、サブプログラムとして、検索条件入力プログラムＰ１５１及び検索結果表示プログラムＰ１５２を含む。
【０２２４】
検索条件入力プログラムＰ１５１は、ユーザからの検索条件の入力を受け付け、検索リクエストを情報検索サーバ１０４に送信する。検索結果表示プログラムＰ１５２は、ユーザからの指示に従って検索結果を表示する。
【０２２５】
記憶装置１２０には、各種プログラムＤ１００が格納される。この各種プログラムＤ１００には、システム制御プログラムＰ１０及び検索クライアント制御プログラムＰ１５が含まれており、ＣＰＵ１３０によって実行される際にメモリ１１０にロードされる。
【０２２６】
また、記憶装置１２０には、検索結果データＤ１５０が格納される。検索結果データＤ１５０は、情報検索サーバ１０４から転送された検索結果が一時的に格納されるキャッシュである。
【０２２７】
情報検索クライアント１０５は、検索クライアント制御プログラムＰ１５を実行することによって、情報検索サーバ１０４に送信する検索要求を生成し、情報検索サーバ１０４によって行われた検索の結果を表示する。次に、この処理の詳細を説明する。
【０２２８】
図２２Ａ及び図２２Ｂは、本発明の実施の形態の情報検索クライアント１０５によって実行される処理のフローチャートである。
【０２２９】
まず、ユーザ認証用画面を表示して、ユーザ認証情報の入力を促す（Ｓ５０１）。そして、ユーザから入力されたユーザ認証情報を取得し（Ｓ５０２）、取得したユーザ認証情報を情報検索サーバ１０４に送り、ユーザ認証を要求する（Ｓ５０３）。
【０２３０】
その後、情報検索サーバ１０４からユーザ認証の結果を受信すると、受信したユーザ認証の結果に基づいて、認証が成功したか否かを判定する（Ｓ５０４）。その結果、認証失敗である場合、ステップＳ５０１に戻り、認証失敗を表示し、さらにユーザ認証情報の入力を求める。一方、認証成功である場合、検索条件入力用画面を表示して、指示（コマンド）の入力を促す（Ｓ５０５）。
【０２３１】
その後、コマンドが入力されると（Ｓ５０６）、入力されたコマンドを解析する（Ｓ５０７）。
【０２３２】
解析したコマンドがクライアント停止コマンドである場合、情報検索処理を終了する。一方、解析したコマンドがコンテンツ検索コマンドである場合、検索条件入力プログラムＰ１５１を実行し、入力されたデータに基づいて検索リクエストを生成し（Ｓ５０８）、生成された検索リクエストを情報検索サーバ１０４に送信する（Ｓ５０９）。
【０２３３】
その後、情報検索サーバ１０４から検索結果を受信すると、受信した検索結果を記憶装置１２０の検索結果データＤ１５０に格納する（Ｓ５１０）。コンテンツ検索結果は、検索結果識別子と検索されたコンテンツ集合におけるコンテンツ識別子の全体又は部分集合が含まれ、図１４のステップＳ４１６で情報検索サーバ１０４から送信される。
【０２３４】
その後、検索結果表示プログラムＰ１５２を起動し、検索結果表示／指示入力用画面を表示し、指示内容の入力を促す（Ｓ５１１）。そして、ユーザから入力された指示内容を取得し（Ｓ５１２）、ユーザからの指示内容を解析する（Ｓ５１３）。
【０２３５】
解析された指示内容が検出コンテンツ識別子リスト表示指示である場合、コンテンツ検索結果識別子問合せリクエストを作成し、作成したリクエストを情報検索サーバ１０４に送信する（Ｓ５１４）。その後、情報検索サーバ１０４からコンテンツ識別子の集合を受信すると、受信したコンテンツ識別子のリストを表示する（Ｓ５１５）。
【０２３６】
解析された指示内容がコンテンツ内容表示指示である場合、コンテンツ転送リクエストを作成し、作成したリクエストを情報検索サーバ１０４に送信する（Ｓ５１６）。その後、情報検索サーバ１０４からコンテンツデータを受信すると、受信したコンテンツデータを検索結果データＤ１５０に格納する（Ｓ５１７）。そして、受信したコンテンツデータを所定のフォームに変換して表示する（Ｓ５１８）。
【０２３７】
解析された指示内容が検索結果表示終了である場合、ステップＳ５０６に戻り、さらにコマンドを受信する。
【０２３８】
以上説明したように、本発明の実施の形態によると、コンテンツと検索クエリに含まれる検索キーワードとの関係性だけでなく、コンテンツに含まれる語彙間の関係性及び検索クエリに含まれる検索キーワード間の語彙の関係性を考慮する。このため、多義的な語彙であっても、検索者が日常使用している語彙と関連するコンテンツの類似度が高くなり、検索者が日常使用していない語彙と関連するコンテンツの類似度が低くなる。つまり、ユーザ語彙モデルを用いることによって、多様な意味を持つ言葉の揺れを補正し、ユーザの嗜好に近いコンテンツを上位に表示することができ、検索精度を向上することができる。
【符号の説明】
【０２３９】
１０１  コンテンツ分析サブシステム
１０２  ユーザ分析サブシステム
１０３  リポジトリ管理サブシステム
１０４  情報検索サーバ
１０５  情報検索クライアント
１０６  ネットワーク
【図１】
2012003603.tif 000005
【図２】
2012003603.tif 000006
【図３】
2012003603.tif 000007
【図４】
2012003603.tif 000008
【図５】
2012003603.tif 000009
【図６】
2012003603.tif 000010
【図７】
2012003603.tif 000011
【図８】
2012003603.tif 000012
【図９】
2012003603.tif 000013
【図１０】
2012003603.tif 000014
【図１１】
2012003603.tif 000015
【図１２】
2012003603.tif 000016
【図１３】
2012003603.tif 000017
【図１４】
2012003603.tif 000018
【図１５Ａ】
2012003603.tif 000019
【図１５Ｂ】
2012003603.tif 000020
【図１６】
2012003603.tif 000021
【図１７】
2012003603.tif 000022
【図１８】
2012003603.tif 000023
【図１９】
2012003603.tif 000024
【図２０】
2012003603.tif 000025
【図２１】
2012003603.tif 000026
【図２２Ａ】
2012003603.tif 000027
【図２２Ｂ】
2012003603.tif 000028