(57)【要約】【課題】ユーザが検索のために入力したクエリに基づいて、ユーザの検索意図を推測し、クエリの意味に追従し、話題となっているドキュメントをレコメンドするサーバ及び方法を提供すること。【解決手段】ドキュメント検索サーバ１０は、蓄積されたクエリを構成する複数のトークンのそれぞれの間にユーザの入力順序に基づいた有向リンクを設定すると共に、同一のトークンを統合することによりトピックグラフを作成し、トピックグラフに基づいてクエリログＤＢ２０に蓄積したトークンのトピック度を算出し、算出したトピック度が所定の閾値より高いトークンであるソーストークンを抽出し、抽出したソーストークンを含むクエリをクエリログＤＢ２０から抽出し、抽出したクエリをクラスタリングしてトピッククラスタを作成し、受け付けたクエリに対応するトピッククラスタに属するクエリで高頻度に選択されているドキュメントをレコメンドする。【選択図】図１
2010118021.tif 000002
【特許請求の範囲】
【請求項１】
ユーザから受け付けたクエリに基づいてドキュメントを検索するドキュメント検索サーバであって、
複数のユーザから受け付けた前記クエリを蓄積するクエリログ蓄積手段と、
前記クエリにより検索されたドキュメントのうち前記ユーザによって選択されたドキュメントを当該クエリに対応付けて蓄積するクリックログ蓄積手段と、
前記クエリログ蓄積手段に蓄積された前記クエリを構成する複数のトークンのそれぞれの間に前記ユーザの入力順序に基づいた有向リンクを設定すると共に、同一のトークンを統合することによりトピックグラフを作成するトピックグラフ作成手段と、
前記トピックグラフに基づいてクエリログ蓄積手段に蓄積したトークンのトピック度を算出するトピック度算出手段と、
前記算出したトピック度が所定の閾値より高いトークンであるソーストークンを抽出するソーストークン抽出手段と、
前記抽出したソーストークンを含むクエリを前記クエリログ蓄積手段から抽出し、抽出したクエリをクラスタリングしてトピッククラスタを作成するトピッククラスタ作成手段と、
前記ドキュメントの検索時に受け付けたクエリに対応するトピッククラスタに基づいて、トピッククラスタ内に属するクエリで検索され選択されているドキュメントの内で高頻度に前記選択されているドキュメントを前記クリックログ蓄積手段に基づいて選択してレコメンドするレコメンド手段と、
を備えることを特徴とするドキュメント検索サーバ。
【請求項２】
前記ソーストークンの中から、前記トピックグラフに基づいて略同一のリンク関係を有する異なる複数のソーストークンを抽出し、それらのソーストークン間に双方向の有向リンクを設定する類似トークン検出手段を更に備えることを特徴とする請求項１に記載のドキュメント検索サーバ。
【請求項３】
前記トピッククラスタ作成手段は、
前記抽出したソーストークンを含むクエリにより検索され、前記ユーザによって選択されたドキュメント間の意味的な距離に基づいて当該クエリをクラスタリングすることを特徴とする請求項１又は２に記載のドキュメント検索サーバ。
【請求項４】
ユーザから受け付けたクエリに基づいてドキュメントを検索する方法であって、
複数のユーザから受け付けた前記クエリをクエリログ蓄積手段に蓄積するステップと、
前記クエリにより検索されたドキュメントのうち前記ユーザによって選択されたドキュメントを当該クエリに対応付けてクリックログ蓄積手段に蓄積するステップと、
前記クエリログ蓄積手段に蓄積された前記クエリを構成する複数のトークンのそれぞれの間に前記ユーザの入力順序に基づいた有向リンクを設定すると共に、同一のトークンを統合することによりトピックグラフを作成するステップと、
前記トピックグラフに基づいてクエリログ蓄積手段に蓄積したトークンのトピック度を算出するステップと、
前記算出したトピック度が所定の閾値より高いトークンであるソーストークンを抽出するステップと、
前記抽出したソーストークンを含むクエリを前記クエリログ蓄積手段から抽出し、抽出したクエリをクラスタリングしてトピッククラスタを作成するステップと、
前記ドキュメントの検索時に受け付けたクエリに対応するトピッククラスタに基づいて、トピッククラスタ内に属するクエリで検索され選択されているドキュメントの内で高頻度に前記選択されているドキュメントを前記クリックログ蓄積手段に基づいて選択してレコメンドするステップと、
を備えることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トピックグラフを利用したドキュメント検索サーバ及び方法に関する。特に、トピックグラフを利用し、ユーザの検索意図を推定するドキュメント検索サーバ及び方法に関する。
【背景技術】
【０００２】
近年、インターネットの普及に伴い、インターネットに存在する膨大な情報を検索するウェブ検索がユーザによって頻繁に利用されている。このようなウェブ検索を行うにあたって、ユーザは様々なクエリを選定して行うが、より早く効率的に意図したドキュメントにたどり着けるようにするには、より適したクエリの選定が必要である。しかし、ユーザのクエリの選定は、各々ユーザの能力に依存する。また、適切なクエリが選定されたとしても検索エンジンの性能によってユーザの意図に応じた検索結果が出力されるとは限らない。そのため、ユーザが試行錯誤して探している可能性の高いドキュメントをレコメンドできることは、検索サービスの向上に繋がる。
【０００３】
このような検索サービスを行う発明として特許文献１に記載の発明が知られている。特許文献１に記載された発明は、ネットワークを介して取得できるウェブページ等の文書を取り出し、キーワードを抽出し、当該キーワードの一致数から文書の選択を行い、関連する文書間に仮想リンクを構築する。仮想リンクの付与と重み付け、関連リンクの意味情報を付加し、話題となっているホットトピックを抽出する。
【特許文献１】特開２００３−２７１６６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１のように、キーワードの一致数から文書間に重み付けを持つ仮想リンクを構築し、検索結果に話題性のある文書を提示することができたとしても、このキーワード（クエリ）には、意味の多重性、同義性、意味の変化の問題がある。例えば、クエリが「ハブ」の場合に、蛇の「ハブ」とネットワーク用語の「ハブ」のどちらなのかという意味の多重性（多義性）、クエリが「オリンピック」の場合と「五輪」の場合とがあるという同義性、意味の変化が生じ、一般用語として用いられるクエリが流行等の影響で固有名詞的に使われる等という問題がある。そのため、単にキーワードの一致数によりリンクを張ると、意味的に異なるページがリンクされたり、逆に類似するページがリンクされなかったりということが生じてしまい、意味を捉えた話題性のある文書を提示することは困難である。
【０００５】
そこで、ユーザが検索のために入力したクエリに基づいて、ユーザの検索意図を的確に捉え、話題性のある文書を提示することができる検索サーバが要望されている。
【０００６】
本発明は、ユーザが検索のために入力したクエリに基づいて、ユーザの検索意図を推測し、クエリの意味に追従し、話題となっているドキュメントをレコメンドすることができるドキュメント検索サーバ及び方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明では、以下のような解決手段を提供する。
【０００８】
（１）  ユーザから受け付けたクエリに基づいてドキュメントを検索するドキュメント検索サーバであって、複数のユーザから受け付けた前記クエリを蓄積するクエリログ蓄積手段と、前記クエリにより検索されたドキュメントのうち前記ユーザによって選択されたドキュメントを当該クエリに対応付けて蓄積するクリックログ蓄積手段と、前記クエリログ蓄積手段に蓄積された前記クエリを構成する複数のトークンのそれぞれの間に前記ユーザの入力順序に基づいた有向リンクを設定すると共に、同一のトークンを統合することによりトピックグラフを作成するトピックグラフ作成手段と、前記トピックグラフに基づいてクエリログ蓄積手段に蓄積したトークンのトピック度を算出するトピック度算出手段と、前記算出したトピック度が所定の閾値より高いトークンであるソーストークンを抽出するソーストークン抽出手段と、前記抽出したソーストークンを含むクエリを前記クエリログ蓄積手段から抽出し、抽出したクエリをクラスタリングしてトピッククラスタを作成するトピッククラスタ作成手段と、前記ドキュメントの検索時に受け付けたクエリに対応するトピッククラスタに基づいて、トピッククラスタ内に属するクエリで検索され選択されているドキュメントの内で高頻度に前記選択されているドキュメントを前記クリックログ記憶手段に基づいて選択してレコメンドするレコメンド手段と、を備えることを特徴とするドキュメント検索サーバ。
【０００９】
（１）の構成によれば、本発明に係るドキュメント検索サーバは、複数のユーザから受け付けたクエリを蓄積するクエリログ蓄積手段と、前記クエリにより検索されたドキュメントのうち前記ユーザによって選択されたドキュメントを当該クエリに対応付けて蓄積するクリックログ蓄積手段とを有している。そして、蓄積されたクエリを構成する複数のトークンのそれぞれの間にユーザの入力順序に基づいた有向リンクを設定すると共に、同一のトークンを統合することによりトピックグラフを作成し、トピックグラフに基づいてクエリログ蓄積手段に蓄積したトークンのトピック度を算出し、算出したトピック度が所定の閾値より高いトークンであるソーストークンを抽出し、抽出したソーストークンを含むクエリをクエリログ蓄積手段から抽出し、抽出したクエリをクラスタリングしてトピッククラスタを作成し、ドキュメントの検索時に受け付けたクエリに対応するトピッククラスタに基づいて、トピッククラスタ内に属するクエリで検索され選択されているドキュメントの内で高頻度に選択されているドキュメントをクリックログ記憶手段に基づいて選択してレコメンドする。
【００１０】
すなわち、本発明に係るドキュメント検索サーバは、蓄積されたクエリに基づいたトピックグラフを作成し、トピック度が高いソーストークンを抽出し、抽出したソーストークンを含むクエリをクラスタリングしてトピッククラスタを作成し、ドキュメントの検索時に受け付けたクエリに対応するトピッククラスタにおいて、当該トピッククラスタ内に属するクエリで検索され選択されているドキュメントの内で高頻度に選択されているドキュメントをクリックに基づいて選択してレコメンドする。したがって、ユーザが検索のために入力したクエリに基づいて、ユーザの検索意図を推測し、クエリの意味に追従し、話題となっているドキュメントをレコメンドすることができる。
【００１１】
（２）  前記ソーストークンの中から、前記トピックグラフに基づいて略同一のリンク関係を有する異なる複数のソーストークンを抽出し、それらのソーストークン間に双方向の有向リンクを設定する類似トークン検出手段を更に備えることを特徴とする（１）に記載のドキュメント検索サーバ。
【００１２】
（２）の構成によれば、（１）に記載のドキュメント検索サーバは、ソーストークンの中から、トピックグラフに基づいて略同一のリンク関係を有する異なる複数のソーストークンを抽出し、それらのソーストークン間に双方向の有向リンクを設定する。
【００１３】
すなわち、本発明に係るドキュメント検索サーバは、それぞれのソーストークンに対して設定されている有向リンクのリンク元、リンク先の同一性から、同義性のあるソーストークンを検出してそれぞれを同一と見なすことができる。よって、学習データや辞書を用いるようなテキストマイニングを行うことなく、ユーザの検索操作のログから同義語を動的に検出することができる。したがって、本発明に係るドキュメント検索サーバは、ユーザの検索意図を推測し、クエリの意味に追従し、話題となっているドキュメントをレコメンドすることができる。
【００１４】
（３）  前記トピッククラスタ作成手段は、前記抽出したソーストークンを含むクエリにより検索され、前記ユーザによって選択されたドキュメント間の意味的な距離に基づいて当該クエリをクラスタリングすることを特徴とする（１）又は（２）に記載のドキュメント検索サーバ。
【００１５】
（３）の構成によれば、（１）又は（２）に記載のドキュメント検索サーバは、抽出したソーストークンを含むクエリにより検索され、ユーザによって選択されたドキュメント間の意味的な距離に基づいて当該クエリをクラスタリングする。したがって、ユーザが検索のために入力したクエリに基づいて、ユーザの検索意図を推測し、クエリの意味に追従し、話題となっているドキュメントをレコメンドすることができる。
【００１６】
（４）  ユーザから受け付けたクエリに基づいてドキュメントを検索する方法であって、複数のユーザから受け付けた前記クエリをクエリログ蓄積手段に蓄積するステップと、前記クエリにより検索されたドキュメントのうち前記ユーザによって選択されたドキュメントを当該クエリに対応付けてクリックログ蓄積手段に蓄積するステップと、前記クエリログ蓄積手段に蓄積された前記クエリを構成する複数のトークンのそれぞれの間に前記ユーザの入力順序に基づいた有向リンクを設定すると共に、同一のトークンを統合することによりトピックグラフを作成するステップと、前記トピックグラフに基づいてクエリログ蓄積手段に蓄積したトークンのトピック度を算出するステップと、前記算出したトピック度が所定の閾値より高いトークンであるソーストークンを抽出するステップと、前記抽出したソーストークンを含むクエリを前記クエリログ蓄積手段から抽出し、抽出したクエリをクラスタリングしてトピッククラスタを作成するステップと、前記ドキュメントの検索時に受け付けたクエリに対応するトピッククラスタに基づいて、トピッククラスタ内に属するクエリで検索され選択されているドキュメントの内で高頻度に前記選択されているドキュメントを前記クリックログ蓄積手段に基づいて選択してレコメンドするステップと、を備えることを特徴とする方法。
【００１７】
したがって、本発明に係る方法は、ユーザが検索のために入力したクエリに基づいて、ユーザの検索意図を推測し、クエリの意味に追従し、話題となっているドキュメントをレコメンドすることができる。
【発明の効果】
【００１８】
本発明によれば、ユーザが検索のために入力したクエリに基づいて、ユーザの検索意図を推測し、クエリの意味に追従し、話題となっているドキュメントをレコメンドすることができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施形態について図を参照しながら説明する。
【００２０】
図１は、本発明の特徴を示す図である。図１は、累積したクエリに基づいて、クエリを構成するトークン２０１，２０２のトピックグラフ２００と、クエリ３２０をクラスタリングしたクエリクラスタ３１０と、ドキュメント４２１をクラスタリングしたドキュメントクラスタ４１０との関連を示している。そして、トピックグラフ２００に基づいてトピック３００を形成し、クエリ−ドキュメントマップ４００を形成していることを示している。
【００２１】
図１において、本発明は、ユーザがドキュメントを検索するために入力したクエリを蓄積し、蓄積したクエリを構成するトークン２０１，トークン２０２等にリンクを張ることでトピックグラフ２００を作成し、トピック性のあるトークン２０１を抽出することを示している。次に、図１において、本発明は、抽出したトピック性のあるトークン２０１に関連するクエリ３２０等をクラスタリングして、クエリクラスタ３１０を作成し、作成したクエリクラスタ３１０に対応するドキュメント４２１をクラスタリングしてドキュメントクラスタ４１０を作成することを示している。また、ユーザの検索操作を時間（セッション）で区切って追跡し、ユーザが入力したクエリにリンク３５０を張ることを示している。そして、本発明は、ドキュメントクラスタ４１０内からクリック率による人気のあるドキュメントを抽出する。すなわち、本発明は、作成したトピックグラフ２００、クエリクラスタ３１０、ドキュメントクラスタ４１０を参照して、ユーザが入力したクエリに関連するトピックに連動した人気ドキュメントをレコメンドする。
【００２２】
ユーザが検索時に入力するクエリは、１又は複数のトークン（文字列）により構成される。図１において、蓄積したクエリのうち１つのクエリ３２０を構成するユーザが最初に入力した第１トークン２０１と、２番目に入力した第２トークン２０２との間に、第１トークン２０１から第２トークン２０２へ有向リンク２５０を張り、トピックグラフ２００を作成していることを示している。トピックグラフにおいて、トピック性のあるトークンは、他のトークンにリンクする度合が高い。このようなトピック性のあるトークンをトピックグラフに基づいて抽出する。
【００２３】
一方、本発明は、クエリに基づいて検索エンジンが検索したドキュメントのなかで、ユーザが選択した（クリックした）ドキュメントについて、当該クエリに対する検索結果全体に対するクリック回数の回数の比率であるクリック率（Ｃｌｉｃｋ  Ｔｈｒｏｕｇｈ  Ｒａｔｅ：ＣＴＲ）を、クエリとドキュメントの組み合わせに対応付けて蓄積している。
【００２４】
そして、抽出したトピック性のあるトークンに関連するクエリをクラスタリングして、クエリクラスタを作成する。クエリのクラスタリングは、クエリに対して選択されたドキュメントの情報からクエリ間の意味的な距離を計り、該クエリをクラスタリングする。すなわち、クエリにより検索されたドキュメントの中で選択された（クリックされた）ドキュメントの類似性によりクラスタリングする。ドキュメントの類似は、ドキュメントを構成する形態素の類似性により判断する。検索の結果ページで表示される、検索語が含まれるドキュメントの抜き書きであるスニペットを用いて、ドキュメントの類似性を判断してもよい。
【００２５】
そして、本発明は、作成したクエリクラスタに対応するドキュメントをドキュメント同士の類似性によりクラスタリングしてドキュメントクラスタを作成し、ドキュメントクラスタ内からクリック率に基づいて人気のあるドキュメントを抽出する。そして、作成したトピックグラフ、クエリクラスタ、ドキュメントクラスタを参照して、ユーザが入力したクエリに関連するトピックに連動した人気ドキュメントをレコメンドする。
【００２６】
このように、本発明は、クエリ側でのトピック的距離と、ドキュメント側での言語的意味的距離とで、類似クエリ集合（トピック）と類似ドキュメント集合（言語的意味）とをそれぞれ生成し、ユーザのクエリを関連するトピックにマッピングし、クエリリンクを辿ってトピックを探索し、周辺の有意にポピュラーなドキュメントを特定し、レコメンドする。
【００２７】
図２は、本発明の一実施形態に係るドキュメント検索サーバ１０の機能を示す機能ブロック図である。本発明の一実施形態に係るドキュメント検索サーバ１０は、クエリログ蓄積手段としてクエリログＤＢ２０と、クリックログ蓄積手段としてクリックログＤＢ３０と、クエリ受付部１１と、トピックグラフ作成手段としてトピックグラフ作成部１２と、トピック度算出手段としてトピック度算出部１３と、ソーストークン抽出手段としてソーストークン抽出部１４と、トピッククラスタ作成手段としてトピッククラスタ作成部１５と、類似トークン検出手段として類似トークン検出部１６と、レコメンド手段としてレコメンド部１７と、を備えている。
【００２８】
クエリログＤＢ２０は、クエリ受付部１１が複数のユーザから受け付けたクエリを蓄積する。ドキュメントを検索するためにユーザが入力するクエリは、ドキュメントを検索するためのキーワードであるトークンから構成されている。例えば、オリンピックについてドキュメントを得ようとするユーザが、「オリンピック、北京」と入力したクエリは、２つのトークン「オリンピック」、「北京」から構成されていることになる。このような、２つのトークンから構成されるクエリを特に、２トークンクエリという。
【００２９】
クリックログＤＢ３０は、クエリにより検索されたドキュメントのうちユーザによって選択されたドキュメントを当該クエリに対応付けて蓄積する。例えば、クエリが「北京オリンピック」の場合に、検索エンジンの検索結果が「北京オリンピック公式サイト」、「北京オリンピックとは」等のドキュメント（ＵＲＬ：Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）であり、そのうちの「北京オリンピック公式サイト」がユーザによって選択されたとすると、クエリ「北京オリンピック」に、ドキュメント「北京オリンピック公式サイト」を対応付けてクリックログＤＢ３０に蓄積する。そして、クエリ及びドキュメントに対応付けて、ドキュメントを選択した比率であるクリック率を記憶している。
【００３０】
トピックグラフ作成部１２は、クエリログＤＢ２０に蓄積されたクエリを構成する複数のトークンのそれぞれの間にユーザの入力順序に基づいた有向リンクを設定すると共に、同一のトークンを統合することによりトピックグラフ（後述する図３参照）を作成する。
【００３１】
トピック度算出部１３は、トピックグラフに基づいてクエリログＤＢ２０に蓄積したトークンのトピック度を算出する。
【００３２】
ソーストークン抽出部１４は、算出したトピック度が所定の閾値より高いトークンであるソーストークンを抽出する。
【００３３】
トピックグラフは、クエリログＤＢ２０に蓄積したクエリログに基づいて生成される。すなわち、２つのトークンから構成される２トークンクエリ（２トークンクエリ＝“トークン１  トークン２”）集合全体に対して、２トークンクエリｑ＝“ｔ１  ｔ２”からノードｔ１とｔ２をつくり、ｔ１からｔ２に有向リンクを作り、２トークンクエリ集合から抽出したノード全てを有向リンクで繋ぐ。ここで、図３を参照して説明する。
【００３４】
図３は、本発明の一実施形態に係るトピックグラフの例を示す図である。図３（１）は、トークンを有向リンクで繋いだ場合の例を示している図である。図３（１）において、クエリを構成する２つのトークンのうち、ユーザが最初に入力したトークン１、例えばトークン２０１から、２番目に入力したトークン２、例えばトークン２０２へ、有向リンク２５０で繋いでいる。このように、クエリログＤＢ２０に蓄積したクエリに基づいて、クエリを構成するトークン１と、トークン２との関連を繋ぐことにより、有向リンクが外向きに出て行くノード、すなわち、有向リンクの出力源となるトークンを抽出することができる。複数ユーザのクエリログを逐次読み込んで、このトピックグラフを作成することで、トピック性（話題性）のあるトークンを抽出することができる。
【００３５】
具体的なトピックグラフ生成は、例えば、次のような方法がある。
【００３６】
（１）ステップ１
クエリログＤＢ２０に出現する全てのトークンｎの基本尺度の計算をする。すなわち、次の計算式によりトークン強度（エントロピー）Ｅ（ｎ）と、トピック度Ｆ（ｎ）を算出する。
【００３７】
【数１】
2010118021.tif 000003
【００３８】
【数２】
2010118021.tif 000004
【００３９】
ここで、Ｎｓ（ｎ）はトークンが単独でクエリとなった頻度（１トークン頻度）、Ｎ１（ｎ）は２トークンクエリでの第１トークンとしての出現頻度、Ｎ２（ｎ）は２トークンクエリでの第２トークンとしての出現頻度、ＮＡは対象とする全てのクエリの出現頻度である。Ｆ（ｎ）が正で大きいほどノードから出力されるリンクの数が多く、ソース度が強い。Ｆ（ｎ）が負でマイナスになればなるほど、ノードに入力するリンクの数が多く、逆にソース度が弱く、吸い込み度が強い。ここで、図３（２）を参照して説明をする。
【００４０】
図３（２）は、上述の算出したソース度に基づいて、トークンを直線上に並べた場合を示している。トピック度の強いトークンのうち所定の閾値（例えば、０．５）以上をソーストークンといい、トピック性を有する。一方、ソース度の弱いトークン（例えば、ソース度が負）は、吸い込み度（有向リンクを吸い込む）が強く、トピック性を有しない一般トークンという。例えば、実際に累積したクエリに基づいて、Ｅ（ｎ）、Ｆ（ｎ）を求めてみると、平成２０年８月の時点で下記表１のような実験結果が得られた。当該表に示すように、トピック度の高いトークンとして動画共有サイトとして著名な「ｙｏｕｔｕｂｅ」や、平成２０年に開催された「オリンピック」、「北京オリンピック」等を抽出することができ、トピック度の低いトークンとして一般的な単語の「映画」、「動画」、「レシピ」等を抽出することができる。
【００４１】
【表１】
2010118021.tif 000005
（２）ステップ２
（２−１）トピック度が高い上位のトークンＮｔ個（ソーストークン）を選ぶ。
（２−２）ソーストークンｔ１について、２トークンクエリの全てのリンク先トークンを含めたトークン集合Ｔｎを集める。
（２−３）Ｔｎのソーストークン以外の全トークンについて自己相互情報量ＰＭＩ（Ｐｏｉｎｔｗｉｓｅ  Ｍｕｔｕａｌ  Ｉｎｆｏｒｍａｔｉｏｎ）から自己相互情報量比ＲＰＭＩ（Ｒａｔｉｏ  ｏｆ  Ｐｏｉｎｔｗｉｓｅ  Ｍｕｔｕａｌ  Ｉｎｆｏｒｍａｔｉｏｎ）を求める。
【００４２】
【数３】
2010118021.tif 000006
（２−４）ＲＰＭＩが高いトークンを上位からＮｒ個求めそれら以外のトークンをＴｎから除去しソーストークンを中心としたトピッククラスタＴｎとする。
（２−５）ソーストークンについてそれぞれ（２−１）〜（２−４）の処理を行いトピッククラスタ集合を求める。
（２−６）トークンが含まれるクラスタを調べトピックトークンを次の（１）〜（４）に分類する。
（１）ソーストークンは、（２−１）で定義したＮｔ個のトークンである。
（２）トピックスペシフィックトークンは、１つのトピッククラスタにのみ存在する（一般トークンでもソーストークンでもない）トピックトークンである。
（３）マルチトピックトークンは、複数のトピッククラスタに存在する（一般トークンでもソーストークンでもない）トピックトークンである。
（４）一般トークンは、トピック度が低いトークンを下位（マイナス）からＮｇ個の、一般性が強いトークンである。
（２−７）クラスタ分類
ソーストークンの包含関係からクラスタ間の包含関係を見つける。
（２−８）トピッククラスタＴｎに含まれる全トークンのトークン強度の単純和を求め、トピッククラスタ単位のトレンド強度を求める。
【００４３】
（３）ステップ３
ステップ３では、類似トークンを検出する。ステップ２とは異なり直接リンクはないがトークン同士の有向リンクの入出力の関係が類似しているソーストークンを検出する。下記の係数が大きいソーストークンペアを見つけ類似性リンクを張る。ここで、類似性係数は、ｔ１がｔ２に属している場合の係数Ｓｉｍ（ｔ１→ｔ２）と、ｔ２がｔ１に属している場合の係数Ｓｉｍ（ｔ２→ｔ１）とは次の式で求めることができる。
【００４４】
【数４】
2010118021.tif 000007
【００４５】
【数５】
2010118021.tif 000008
【００４６】
ここで、Ｎｂ（ｔ１｜ｔ１∩ｔ２）は、ｔ１とｔ２にリンクされる共通なリンク元トークン（有向リンクの出力元）についてのｔ１に対するリンク元トークンの頻度合計である。
同様に、Ｎｂ（ｔ２｜ｔ１∩ｔ２）は、ｔ１とｔ２にリンクされる共通なリンク元トークンのｔ２に対するリンク元トークンの頻度合計である。
Ｎｆ（ｔ１｜ｔ１∩ｔ２）は、ｔ１とｔ２からリンクされる共通なリンク先トークン（有向リンクの出力先）のｔ１のリンク先トークンの頻度合計である。
Ｎｆ（ｔ２｜ｔ１∩ｔ２）は、ｔ１とｔ２からリンクされる共通なリンク先トークンのｔ２に対するリンク先トークンの頻度合計である。
Ｎｂ（ｔ１）は、ｔ１のリンク元トークンの頻度合計である。
Ｎｂ（ｔ２）は、ｔ２のリンク元トークンの頻度合計である。
Ｎｆ（ｔ１）は、ｔ１のリンク先トークンの頻度合計である。
Ｎｆ（ｔ２）は、ｔ２のリンク先トークンの頻度合計である。
類似性係数は、式を見て明らかなように、一方がもう一方に含まれる度合いの内で大きい方を取る。そのため、類似性は方向性を持つ。
【００４７】
このように生成したトピックグラフは、次のような性質を有している。
（１）トピック関連性（トピックグループ）についての性質
あるノードとその下にリンクした単一トピッククエリＴｓで形成されるノード集合はあるトピックに強く関連する。
（２）あるノードと複数トピッククエリＴｍでグラフを分類し、ソースクエリＳ、複数トピッククエリＴｍの関連性の高いノードでリンクを作ったサブグラフについての性質
（２−１）サブクラスタ同士は類似性がある。
（２−２）同じトピック集合であればサブクラスタ集合同士の類似性が強くなる。
（２−３）双方向リンクが存在する２つのノードｘ１、ｘ２が有意に重複する同じ上位のノードからのリンクと下位ノードへのリンクを持つと強い意味の類似性がある（文脈類似度）。しかし、これは使用の文脈が類似しているだけなのでカテゴリ意味の観点からは必要条件ではあるが十分条件ではない。
（３）多義性がある。
（３−１）あるノードｘから下方にリンクする複数ノードの一つ一つはノードｘの異なる意味を持つ。
（３−２）下位ノードでも一般クエリＧ，単一トピッククエリＴｓ、複数トピッククエリＴｍでは異なる意味を持つ。
【００４８】
トピッククラスタ作成部１５は、抽出したソーストークンを含むクエリをクエリログＤＢ２０から抽出し、抽出したクエリをクラスタリングしてトピッククラスタを作成する。
【００４９】
抽出したクエリによるトピックグラフは、次の要素から構成されている。
（１）ソースクエリ
単一クエリで高頻度に抽出される。ソースクエリを構成するトークンは、２トークンクエリの第１トークンになる傾向が強い（グラフの始点になる）。
（２）一般クエリ
単一クエリで低頻度に抽出される。一般クエリを構成するトークンは、２トークンクエリの第２トークンになる傾向が強く第１トークンにはほとんどならない（グラフの終点になる）。複数のソースクエリのツリーに共有される。
（３）単一トピッククエリ
あるソースクエリのツリーの下にのみ出現する一般クエリでないクエリである。
（４）複数トピッククエリ
複数のソースクエリのツリーに共有される一般クエリでないクエリである。
【００５０】
クエリをクラスタリングし、ドキュメントをクラスタリングすることにより、クエリ−ドキュメントマップを形成する。このように形成されたクエリ−ドキュメントマップは、あるトピックに関係するクエリと、関連するドキュメント（例えば、ＵＲＬで示されるウェブドキュメント）とで形成されるクエリ単位のグラフである。クエリ−ドキュメントマップは、トピックの検出、語彙の意味変化検出、多義や同義の検出を可能にするクエリとドキュメントのマッピング空間を作成する。
【００５１】
ここで、クエリ同士には、クエリにより検索されたドキュメントの中から選択されたドキュメントのスニペットの情報によって、クエリとクエリとの間の距離が算出される。距離が近いクエリは同じ検索意図を持つクエリの集合（クエリクラスタ）を形成する（クエリ意味の類似性）。クエリは１つの検索意図を持つ場合もあれば異なる検索意図を持つ（複数の異なるクエリクラスタに関連する）場合もある（クエリ意味の多義性）。ドキュメントクラスタの中では最も支配的なドキュメントが１つ又は複数抽出できる。更にクエリが対応するドキュメントクラスタ中の支配的なドキュメントが特定可能となる。図４を参照して説明する。
【００５２】
図４は、本発明の一実施形態に係るクエリ−ドキュメントマップの例を示す図である。図４において、クエリ３２０にドキュメント４２１，４２２が対応付けられていることを破線は示している。すなわち、ドキュメント４２１，４２２は、クエリ「北京オリンピック  選手」により検索エンジンが検索した結果のドキュメントの中から、ユーザがクリックすることにより選択したドキュメントである。ドキュメント４２１は、クリック率が例えば９０％で、他のドキュメントのクリック率より高いので、ドキュメントクラスタ４１０の中で、ポピュラーなドキュメントであることを示している。
【００５３】
クエリ−ドキュメントマップ生成は、例えば、次のようなアルゴリズムで可能である。
（１）トピックグラフの１つのトピックを選択し１トークンクエリと２トークンクエリを作る。
すなわち、トピックＴ（ｉ）＝｛ｑ（ｉ，ｊ）｝、
クエリ頻度Ｎｑ（ｊ）、
クエリ表層表現ｑ（ｊ）＝（｛ｔ（ｋ）｝）、とする。
ここで、ｉ＝トピックＩＤ、ｊ＝クエリＩＤ、ｋ＝トークンＩＤ、
｛ｔ（ｋ）｝＝トークンＩＤの列、である。
（２）ドキュメントの情報を得る。
ドキュメントごとに、ドキュメントを表示した全てのクエリのスニペットから集めた単語（形態素）ベクトルを作る。
すなわち、ドキュメントの単語ベクトルｕ（ｉ）＝［ｗ（ｊ）］´
ここで、ｉ＝ドキュメントＩＤ、ｊ＝単語ＩＤ、である。
そうすると、ドキュメントごとのクリック数合計Ｎｕ（ｉ）＝Σｊ｛ｕ（ｉ，ｊ）｝である。
ここで、ｕはクエリｊに対するあるドキュメントｉのクリック数、
ｉ＝ドキュメントＩＤ、ｊ＝クエリＩＤでのクリック数、である。
（３）クエリとドキュメントの関係性データを集める。
すなわち、クエリごとのドキュメント別ＣＴＲｒ（ｉ，ｊ）とする。
ここで、ｉ＝ドキュメントＩＤ、ｊ＝クエリＩＤ、である。
（４）単語コレクションを使い正規化コサイン距離でドキュメントを階層クラスタリングする。すなわち、各ドキュメントクラスタで頻度が最も多い中心ドキュメントを求める。各ドキュメントクラスタの単語ベクトルｖを求め、これをトピックベクトルとする。
ドキュメントクラスタベクトルｖ（ｉ）
（５）各クエリでのドキュメントのＣＴＲ（ｒの比）でクエリをベクトル化し、ドキュメントクラスタ上にマッピングする。
すなわち、クエリベクトルｚ（ｊ）＝［ｕ（ｉ）＊ｒ（ｉ，ｊ）］´
もし、クエリベクトルが、あるドキュメントに強く関連する場合には、ナビゲーショナルクエリとドキュメントとのペアといえる。図５を参照して説明する。
【００５４】
図５は、本発明の一実施形態に係るクエリ−ドキュメントマップとクエリベクトルとの関係を示す図である。図５において、クラスタベクトル５０１は、ドキュメントクラスタ４１０のトピックベクトルを示しており、ドキュメントクラスタ４１０に属するドキュメントから集められた単語ベクトルからなる。そして、図５は、クエリベクトル５０３が、ドキュメント４２２を指すベクトル５０２と、ドキュメント４２３を指すベクトル５０４とに分解される場合には、クエリベクトル５０３と、ドキュメント４２２及びドキュメント４２３との関係は、ナビゲーショナルクエリ（多くのユーザが検索結果の中から選択するドキュメントが定まっているクエリ）と、ドキュメントとのペアといえることを示している。
【００５５】
図２に戻って説明する。類似トークン検出部１６は、ソーストークンの中から、トピックグラフに基づいて略同一のリンク関係を有する異なる複数のソーストークンを抽出し、それらのソーストークン間に双方向の有向リンクを設定する。
【００５６】
レコメンド部１７は、ドキュメントの検索時に受け付けたクエリに対応するトピッククラスタに基づいて、トピッククラスタ内に属するクエリで検索され選択されているドキュメントの内で高頻度に選択されているドキュメントをクリックログＤＢ３０に基づいて選択してレコメンドする。例えば、トピッククラスタ内に属するクエリで検索され選択されているドキュメントの内で、所定の閾値より高い率（例えば、クリックログＤＢ３０のクリック率が８０以上）で選択されている人気のあるドキュメントや、最も高い率で選択されている人気のあるドキュメント等をレコメンドする。
【００５７】
本発明は、次の（１）から（３）のようなレコメンデーションを行うことができる。
（１）芋づる検索（つい間違ってしまうドキュメント）
クエリの多義性を検知し、異なるトピックに対応する複数のドキュメントの推薦、あるいは複数のクエリサジェッションを行う。例えば、「ハブ」というクエリに対して、そのクエリが属するトピックからコンピュータのハブと蛇のハブの２つのドキュメントをサジェストする。あるいは、ユーザが行う連続した一定時間内の検索操作を１つのセッションと考え、１セッション内において、前のクエリを用いてトピックの多義性解消を行い関係が深い方のトピックについてのみドキュメント推薦を行う。
【００５８】
（２）ＢＵＺＺレコメンデーション（うっかりするとすれ違うドキュメント）
クエリに対応するトピックがカバーする関連ドキュメント集合中で最もポピュラーなドキュメントを推薦する。例えば、「ＤＳ」というトピックに対して、今一番流行のＤＳのゲームソフトのページを提示する。トピックグループで最もポピュラーなドキュメントを推薦する手法と、トピック内のローカルなサブトピックス内でポピュラーなドキュメントを推薦する手法の２つがある。
【００５９】
（３）セレンディビティレコメンデーション（なかなか出会えない掘り出しドキュメント）
あるトピックのサブトピックに対応するクエリの場合にトピック中の別のサブトピックに対応するドキュメントで最もポピュラーなドキュメントを推薦する。又は各サブトピックでポピュラーなドキュメントを一覧にして提示する。例えば、「ｉｔｕｎｅ」というトピックに対して、様々なサブトピックスの一覧に対応するドキュメント（故障、動画、アップル等）を推薦する。一般クエリの場合は関係するトピック性の強い話題を提供することができる（クラスタとインスタンス的推薦）。例えば、「レシピ」というトピックでたまたま人気がある湯豆腐、マツタケご飯、レバニラ炒め等を推薦する。
【００６０】
レコメンデーションは、次のようなアルゴリズムで可能である。
（１）検索結果に出てくるドキュメントは推薦しない。
（２）トピックグラフから生成されるトピックに基づくクエリ間リンクを辿り以下の条件に基づくトピック選択を行う、どの条件をとるかはクエリ自体の属性から判断する。
（２−１）クエリがトピックトークン及びトピックトークン＋一般トークンから構成される場合
（２−１−１）芋づる検索とＢＵＺＺレコメンデーションの場合、クエリが属するトピックが対象となる。そのトピックがサブトピックか、大きなメイントピックかで、芋づる検索によるレコメンデーションか、ＢＵＺＺレコメンデーションかを選択する。
（２−１−２）セレンディビティレコメンデーションの場合、クエリが属するトピックと親トピックを共有する別のサブトピックを探す。
（２−２）一般トークンの場合
グラフ上でリンクがあるトピックを探す。様々な手法を選択できるが、リンクのあるトピッククエリが属するサブトピックス、あるいはその親トピック、又は全体トピックもありえる。
（２−３）トピックトークン＋トピックトークンの場合
もし、同じクエリがトピックにあれば、（２−１）の手法が取れるが、もしトピック内に同じクエリがなければ、クエリをトークンごとに分解し、複数のトピックで処理を行う。
（３）トピックが選択されたドキュメントのポピュラー性をみて推薦ドキュメントの特定を行う。
【００６１】
図６は、本発明の一実施形態に係るトピックグラフの例を示す図である。図６の例は、クエリクラスタ３１１が、トピックＡ３００と、トピックＢ３０１とに重複して属していることを示している。すなわち、クエリクラスタ３１１は、「ハブ」クエリ３２１と、「ハブ酒」クエリ３２２を含み、「ハブ」クエリ３２１は、「インターネット」クエリ３２３及び「チャンプル」クエリ３２４にリンクしている。このようなクエリの多義性を解消するために、「インターネット」クエリ３２３が構成するトピックＢ３０１のドキュメント４２４と、「チャンプル」クエリ３２４が構成するトピックＡ３００のドキュメント４２５の両方を提示し、ユーザの選択に基づいて多義性を解消する。また、ユーザの操作についてセッションを設け、一定時間の間についてユーザの入力したクエリを追跡し、追跡したクエリに基づいて推定し、いづれのトピックのドキュメントを提示するかを判断するとしてもよい。
【００６２】
図７は、本発明の一実施形態に係るドキュメント検索サーバ１０のハードウェア構成の一例を示す図である。ドキュメント検索サーバ１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１０（マルチプロセッサ構成ではＣＰＵ１０１２等複数のＣＰＵが追加されてもよい）、バスライン１００５、通信Ｉ／Ｆ１０４０、メインメモリ１０５０、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）１０６０、ＵＳＢポート１０９０、Ｉ／Ｏコントローラ１０７０、並びにキーボード及びマウス１１００等の入力手段や表示装置１０２２を備える。
【００６３】
Ｉ／Ｏコントローラ１０７０には、テープドライブ１０７２、ハードディスク１０７４、光ディスクドライブ１０７６、半導体メモリ１０７８、等の記憶手段を接続することができる。
【００６４】
ＢＩＯＳ１０６０は、ドキュメント検索サーバ１０の起動時にＣＰＵ１０１０が実行するブートプログラムや、ドキュメント検索サーバ１０のハードウェアに依存するプログラム等を格納する。
【００６５】
ハードディスク１０７４は、ドキュメント検索サーバ１０が本発明の機能を実行するためのプログラムを記憶しており、更に、クエリログＤＢ２０、クリックログＤＢ３０等の各種データベースを構成可能である。
【００６６】
光ディスクドライブ１０７６としては、例えば、ＤＶＤ−ＲＯＭドライブ、ＣＤ−ＲＯＭドライブ、ＤＶＤ−ＲＡＭドライブ、ＣＤ−ＲＡＭドライブを使用することができる。この場合は各ドライブに対応した光ディスク１０７７を使用する。光ディスク１０７７から光ディスクドライブ１０７６によりプログラム又はデータを読み取り、Ｉ／Ｏコントローラ１０７０を介してメインメモリ１０５０又はハードディスク１０７４に提供することもできる。また、同様にテープドライブ１０７２に対応したテープメディア１０７１を主としてバックアップのために使用することもできる。
【００６７】
ドキュメント検索サーバ１０に提供されるプログラムは、ハードディスク１０７４、光ディスク１０７７、又はメモリカード等の記録媒体に格納されて提供される。このプログラムは、Ｉ／Ｏコントローラ１０７０を介して、記録媒体から読み出され、又は通信Ｉ／Ｆ１０４０を介してダウンロードされることによって、ドキュメント検索サーバ１０にインストールされ実行されてもよい。
【００６８】
前述のプログラムは、内部又は外部の記憶媒体に格納されてもよい。ここで、記憶媒体としては、ハードディスク１０７４、光ディスク１０７７、又はメモリカードの他に、ＭＤ等の光磁気記録媒体、テープ媒体を用いることができる。また、専用通信回線やインターネットに接続されたサーバシステムに設けたハードディスク又は光ディスクライブラリ等の記憶装置を記録媒体として使用し、通信回線を介してプログラムをドキュメント検索サーバ１０に提供してもよい。
【００６９】
ここで、表示装置１０２２は、ドキュメント検索サーバ１０による演算処理結果の画面を表示したりするものであり、ブラウン管表示装置（ＣＲＴ）、液晶表示装置（ＬＣＤ）等のディスプレイ装置を含む。
【００７０】
また、通信Ｉ／Ｆ１０４０は、ドキュメント検索サーバ１０を専用ネットワーク又は公共ネットワークを介して端末（例えば、ユーザの端末６０等）と接続できるようにするためのネットワーク・アダプタである。通信Ｉ／Ｆ１０４０は、モデム、ケーブル・モデム及びイーサネット（登録商標）・アダプタを含んでよい。
【００７１】
図８は、本発明の一実施形態に係るクエリログＤＢ２０の例を示す図である。クエリログＤＢ２０は、クエリを記憶している。そして、クエリに対応付けて、トピック度を記憶している。クエリは、トークンから構成されている。トピック度は、蓄積されていくクエリに基づいて算出され、算出されるごとに変化する。
【００７２】
図９は、本発明の一実施形態に係るクリックログＤＢ３０の例を示す図である。クリックログＤＢ３０は、クエリに対応付けて、ドキュメントを示すＵＲＬと、スニペットと、クリック率とを記憶している。ドキュメントを示すＵＲＬは、受け付けたクエリによって検索したドキュメントを示すＵＲＬであり、スニペットは、検索したドキュメント内の一部分を抜粋したテキストである。クリック率は、検索したドキュメントの中でユーザが選択するためにクリックした回数に対する当該ドキュメントを選択したクリック回数の比率である。
【００７３】
図１０は、本発明の一実施形態に係るドキュメント検索サーバ１０の処理内容を示すフローチャートである。なお、本処理は、例えば、クエリ入力ごとにプログラム開始指令を受け付けて開始し、処理を行い、終了する。
【００７４】
ステップＳ１０１において、ＣＰＵ１０１０は、トピックグラフ作成処理（後述する図１１参照）をする。その後、ＣＰＵ１０１０は、処理をステップＳ１０２に移す。
【００７５】
ステップＳ１０２において、ＣＰＵ１０１０は、クエリドキュメントマップ作成処理（後述する図１２参照）をする。その後、ＣＰＵ１０１０は、処理をステップＳ１０３に移す。
【００７６】
ステップＳ１０３において、ＣＰＵ１０１０は、ドキュメントのクラスタリングをする。より具体的には、ＣＰＵ１０１０は、ドキュメントの類似性を求め、類似するドキュメントをクラスタリングする。ドキュメントの類似性は、ドキュメントがクエリで検索されユーザによって選択されたときのスニペットを構成する形態素の類似性により判断する。その後、ＣＰＵ１０１０は、処理をステップＳ１０４に移す。
【００７７】
ステップＳ１０４において、ＣＰＵ１０１０は、受け付けたクエリをマッピングする。すなわち、ＣＰＵ１０１０は、ユーザから受け付けたクエリをベクトル化し、ドキュメントクラスタ上にマッピングする。その後、ＣＰＵ１０１０は、処理をステップＳ１０５に移す。
【００７８】
ステップＳ１０５において、ＣＰＵ１０１０は、レコメンデーション処理（後述する図１３参照）をする。その後、ＣＰＵ１０１０は、処理を終了する。
【００７９】
図１１は、本発明の一実施形態に係るドキュメント検索サーバ１０のトピックグラフ作成処理を示すフローチャートである。
【００８０】
ステップＳ２０１において、ＣＰＵ１０１０は、トークン強度Ｅ（ｎ）、トピック度Ｆ（ｎ）を算出する。すなわち、Ｅ（ｎ）及びＦ（ｎ）は、上述した数式１及び数式２によって算出される。その後、ＣＰＵ１０１０は、処理をステップＳ２０２に移す。
【００８１】
ステップＳ２０２において、ＣＰＵ１０１０は、ソーストークンを抽出する。より具体的には、ＣＰＵ１０１０は、ソース／吸い込み度が所定の閾値より高い上位のトークンを（Ｎｔ個）抽出する。その後、ＣＰＵ１０１０は、処理をステップＳ２０３に移す。
【００８２】
ステップＳ２０３において、ＣＰＵ１０１０は、トークン集合Ｔｎを求める。その後、ＣＰＵ１０１０は、処理をステップＳ２０４に移す。
【００８３】
ステップＳ２０４において、ＣＰＵ１０１０は、ＲＰＭＩを算出する。すなわち、ＲＰＭＩは、上述した数式３によって算出される。その後、ＣＰＵ１０１０は、処理をステップＳ２０５に移す。
【００８４】
ステップＳ２０５において、ＣＰＵ１０１０は、トピッククラスタを求める。より具体的には、ＣＰＵ１０１０は、ＲＰＭＩが所定の閾値より高いトークンを上位からＮｒ個求め、それら以外のトークンを除去しソーストークンを中心としたトピッククラスタＴｎとする。その後、ＣＰＵ１０１０は、処理をステップＳ２０６に移す。
【００８５】
ステップＳ２０６において、ＣＰＵ１０１０は、ソーストークン全てについてＴｎを求めたか否かを判断する。より具体的には、ＣＰＵ１０１０は、ステップＳ２０２からステップＳ２０５までの処理をカウントしたカウンタと、ソーストークンの個数であるＮｔとを比較し等しくなったか否かを判断する。この判断がＹＥＳの場合は、処理をステップＳ２０７に移し、ＮＯの場合は処理をステップＳ２０２に移す。
【００８６】
ステップＳ２０７において、ＣＰＵ１０１０は、トピックトークン及びトピッククラスタの分類を行う。より具体的には、ＣＰＵ１０１０は、トークンが含まれるクラスタを調べトピックトークンを、ソーストークンか、トピックスペシフィックトークンか、マルチトピックトークンか、一般トークンかに分類する。そして、トピッククラスタを分類して、ソーストークンの包含関係からトピッククラスタ間の包含関係を見つける。その後、ＣＰＵ１０１０は、処理をステップＳ２０８に移す。
【００８７】
ステップＳ２０８において、ＣＰＵ１０１０は、トピッククラスタのトレンド強度を算出する。すなわち、トピッククラスタＴｎに含まれる全トークンのトピック強度Ｅ（ｎ）の単純和を求め、トピッククラスタ単位のトレンド強度を算出する。その後、ＣＰＵ１０１０は、処理をステップＳ２０９に移す。
【００８８】
ステップＳ２０９において、ＣＰＵ１０１０は、類似トークンを検出する。より具体的には、ＣＰＵ１０１０は、ソーストークンｔ１、ｔ２のペアについて上述の数式４及び数式５により類似性係数を求め、類似性係数が大きい方の類似性リンクを張る。例えば、Ｓｉｍ（ｔ１→ｔ２）がＳｉｍ（ｔ２→ｔ１）より大きい場合にはｔ１からｔ２へ類似性リンクを張る。その後、ＣＰＵ１０１０は、処理を終了し、本処理を実行するステップの次のステップへリターンする。
【００８９】
図１２は、本発明の一実施形態に係るドキュメント検索サーバ１０のクエリ−ドキュメントマップ作成処理を示すフローチャートである。
【００９０】
ステップＳ３０１において、ＣＰＵ１０１０は、トピックトークンからクエリを作成する。すなわち、トピックグラフの１つのトピックトークンを選択し、１トークンクエリと２トークンクエリとを作成する。その後、ＣＰＵ１０１０は、処理をステップＳ３０２に移す。
【００９１】
ステップＳ３０２において、ＣＰＵ１０１０は、ドキュメントの情報を取得する。すなわち、ドキュメントごとに、クリックログＤＢ３０に基づいて、作成したクエリに対応付けられたスニペットから集めた単語（形態素）ベクトルを作る。その後、ＣＰＵ１０１０は、処理をステップＳ３０３に移す。
【００９２】
ステップＳ３０３において、ＣＰＵ１０１０は、クエリとドキュメントとの関係を抽出する。すなわち、クエリと、ドキュメントの単語ベクトルとを対応付ける。その後、ＣＰＵ１０１０は、処理をステップＳ３０４に移す。
【００９３】
ステップＳ３０４において、ＣＰＵ１０１０は、ドキュメントを階層クラスタリングする。すなわち、各ドキュメントクラスタの中で頻度が最も多い中心ドキュメントを、クリックログＤＢ３０に基づいて求める。その後、ＣＰＵ１０１０は、処理を終了し、本処理を実行するステップの次のステップへリターンする。
【００９４】
図１３は、本発明の一実施形態に係るドキュメント検索サーバ１０のレコメンデーション処理を示すフローチャートである。
【００９５】
ステップＳ４０１において、ＣＰＵ１０１０は、第１トークンはトピックトークンか否かを判断する。すなわち、第１トークンが属するトピッククラスタがあるか否かを判断する。この判断がＹＥＳの場合は、処理をステップＳ４０３に移し、ＮＯの場合は処理をステップＳ４０２に移す。
【００９６】
ステップＳ４０２において、ＣＰＵ１０１０は、第１トークンに関連するトピッククラスタ内のドキュメントをレコメンドする。すなわち、一般トークンからなるクエリであるので、関連するクエリが属するトピッククラスタ内で所定の閾値（例えば、クリック率が８０以上）より高い率又は最も高い率でクリックされたドキュメントをレコメンドする。その後、ＣＰＵ１０１０は、処理を終了し、本処理を実行するステップの次のステップへリターンする。
【００９７】
ステップＳ４０３において、ＣＰＵ１０１０は、第２トークンはあるか否かを判断する。この判断がＹＥＳの場合は、処理をステップＳ４０４に移し、ＮＯの場合は処理をステップＳ４０６に移す。
【００９８】
ステップＳ４０４において、ＣＰＵ１０１０は、第２トークンはトピックトークンか否かを判断する。この判断がＹＥＳの場合は、処理をステップＳ４０５に移し、ＮＯの場合は処理をステップＳ４０６に移す。
【００９９】
ステップＳ４０５において、ＣＰＵ１０１０は、クエリを第１トークンと第２トークンとに分解し、それぞれに関連するトピッククラスタ内で所定の閾値（例えば、クリック率が８０以上）より高い率又は最も高い率でクリックされたドキュメントをレコメンドする。その後、ＣＰＵ１０１０は、処理を終了し、本処理を実行するステップの次のステップへリターンする。
【０１００】
ステップＳ４０６において、ＣＰＵ１０１０は、第１トークンが関連するトピッククラスタが全体トピックか否かを判断する。すなわち、トピッククラスタ内のソーストークンが別のトピッククラスタのソーストークンと類似性リンクが張られていない（全体トピック）か否かを判断する。この判断がＹＥＳの場合は、処理をステップＳ４０７に移し、ＮＯの場合は処理をステップＳ４０８に移す。
【０１０１】
ステップＳ４０７において、ＣＰＵ１０１０は、トピッククラスタ内のドキュメントをレコメンドする。すなわち、第１トークンを含むクエリが属するトピッククラスタ内で所定の閾値（例えば、クリック率が８０以上）より高い率又は最も高い率でクリックされたドキュメントをレコメンドする。その後、ＣＰＵ１０１０は、処理を終了し、本処理を実行するステップの次のステップへリターンする。
【０１０２】
ステップＳ４０８において、ＣＰＵ１０１０は、親トピック共有か否かを判断する。すなわち、当該トピッククラスタから別のトピッククラスタに類似性リンクを複数張っているか否かを判断する。この判断がＹＥＳの場合は、処理をステップＳ４０９に移し、ＮＯの場合は処理をステップＳ４１０に移す。
【０１０３】
ステップＳ４０９において、ＣＰＵ１０１０は、複数のドキュメントをレコメンドする。すなわち、当該トピッククラスタから類似性リンクによって張られているそれぞれのトピッククラスタの内で所定の閾値（例えば、クリック率が８０以上）より高い率又は最も高い率でクリックされたドキュメントをそれぞれレコメンドする。その後、ＣＰＵ１０１０は、処理を終了し、本処理を実行するステップの次のステップへリターンする。
【０１０４】
ステップＳ４１０において、ＣＰＵ１０１０は、別のサブトピックのドキュメントをレコメンドする。すなわち、当該トピッククラスタのソーストークンと、類似性リンクによって関連しているトピッククラスタ内のソーストークンとのトピック度を比較し、トピック度の高いソーストークンを含むトピッククラスタ内で所定の閾値（例えば、クリック率が８０以上）より高い率又は最も高い率でクリックされたドキュメントをレコメンドする。その後、ＣＰＵ１０１０は、処理を終了し、本処理を実行するステップの次のステップへリターンする。
【０１０５】
図１４は、本発明の一実施形態に係るユーザの端末６０の表示例を示す図である。図１４が示す例は、ユーザの端末６０の表示装置６１に、検索結果が表示されていることを示す例である。
【０１０６】
図１４は、ユーザの端末６０の表示装置６１の入力欄１０１に、ユーザが入力したクエリ「北京オリンピック」が表示されていることを示している。そして、ドキュメント検索サーバ１０は、受け付けたクエリ「北京オリンピック」に対応するトピッククラスタにおいて、当該トピッククラスタ内に属するクエリ「北京オリンピック、野球」で検索され、例えば、最も高い率で選択されているドキュメント「北京オリンピック野球速報」をクリックログＤＢ３０に基づいて選択してレコメンドした結果、図１４は、ユーザの端末６０の表示装置６１の出力欄１０２に、検索結果と共に、ドキュメント検索サーバ１０によってレコメンドされた「北京オリンピック野球速報」が表示されていることを示している。
【０１０７】
実施例によれば、本発明に係るドキュメント検索サーバ１０は、複数のユーザから受け付けたクエリをクエリログＤＢ２０に蓄積し、クエリにより検索されたドキュメントのうちユーザによって選択されたドキュメントを当該クエリに対応付けてクリックログＤＢ３０に蓄積する。そして、蓄積されたクエリを構成する複数のトークンのそれぞれの間にユーザの入力順序に基づいた有向リンクを設定すると共に、同一のトークンを統合することによりトピックグラフを作成し、トピックグラフに基づいてクエリログＤＢ２０に蓄積したトークンのトピック度を算出し、算出したトピック度が所定の閾値より高いトークンであるソーストークンを抽出し、抽出したソーストークンを含むクエリをクエリログＤＢ２０から抽出し、抽出したクエリをクラスタリングしてトピッククラスタを作成する。その後、ドキュメントの検索時に受け付けたクエリに対応するトピッククラスタに基づいて、トピッククラスタ内に属するクエリで検索され選択されたドキュメントの内で所定の閾値より高い率又は最も高い率で選択されているドキュメントを、クリックログＤＢ３０に基づいて選択してレコメンドする。
【０１０８】
更に、実施例によれば、本発明に係るドキュメント検索サーバ１０は、ソーストークンの中から、トピックグラフに基づいて略同一のリンク関係を有する異なる複数のソーストークンを抽出し、それらのソーストークン間に双方向の有向リンクを設定する。すなわち、ドキュメント検索サーバ１０は、それぞれのソーストークンに対して設定されている有向リンクのリンク元、リンク先の同一性から、同義性のあるソーストークンを検出してそれぞれを同一と見なすことができる。よって、学習データや辞書を用いるようなテキストマイニングを行うことなく、グラフ上での分布類似度という考え方を使い、ユーザの検索操作のログから同義語を動的に検出することができる。したがって、ドキュメント検索サーバ１０は、ユーザが検索のために入力したクエリに基づいて、ユーザの検索意図を推測し、クエリの意味に追従し、話題となっているドキュメントをレコメンドすることができる。
【０１０９】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施例に記載されたものに限定されるものではない。
【図面の簡単な説明】
【０１１０】
【図１】本発明の特徴を示す図である。
【図２】本発明の一実施形態に係るドキュメント検索サーバ１０の機能を示す機能ブロック図である。
【図３】本発明の一実施形態に係るトピックグラフの例を示す図である。
【図４】本発明の一実施形態に係るクエリ−ドキュメントマップの例を示す図である。
【図５】本発明の一実施形態に係るクエリ−ドキュメントマップとクエリベクトルとの関係を示す図である。
【図６】本発明の一実施形態に係るトピックグラフの例を示す図である。
【図７】本発明の一実施形態に係るドキュメント検索サーバ１０のハードウェア構成の一例を示す図である。
【図８】本発明の一実施形態に係るクエリログＤＢ２０の例を示す図である。
【図９】本発明の一実施形態に係るクリックログＤＢ３０の例を示す図である。
【図１０】本発明の一実施形態に係るドキュメント検索サーバ１０の処理内容を示すフローチャートである。
【図１１】本発明の一実施形態に係るドキュメント検索サーバ１０のトピックグラフ作成処理を示すフローチャートである。
【図１２】本発明の一実施形態に係るドキュメント検索サーバ１０のクエリ−ドキュメントマップ作成処理を示すフローチャートである。
【図１３】本発明の一実施形態に係るドキュメント検索サーバ１０のレコメンデーション処理を示すフローチャートである。
【図１４】本発明の一実施形態に係るユーザの端末６０の表示例を示す図である。
【符号の説明】
【０１１１】
１０  ドキュメント検索サーバ
１１  クエリ受付部
１２  トピックグラフ作成部
１３  トピック度算出部
１４  ソーストークン抽出部
１５  トピッククラスタ作成部
１６  類似トークン検出部
１７  レコメンド部
２０  クエリログＤＢ
３０  クリックログＤＢ
【図１】
2010118021.tif 000009
【図２】
2010118021.tif 000010
【図３】
2010118021.tif 000011
【図４】
2010118021.tif 000012
【図５】
2010118021.tif 000013
【図６】
2010118021.tif 000014
【図７】
2010118021.tif 000015
【図８】
2010118021.tif 000016
【図９】
2010118021.tif 000017
【図１０】
2010118021.tif 000018
【図１１】
2010118021.tif 000019
【図１２】
2010118021.tif 000020
【図１３】
2010118021.tif 000021
【図１４】
2010118021.tif 000022