(57)【特許請求の範囲】
【請求項１】
修正または追加された検索クエリに基づく検索によって得られた文書集合を提示する文書検索装置であって、
修正または追加された検索クエリとローカルストレージに保持された前記検索クエリの修正前または追加前の検索結果に基づく部分転置リストに対応した文書集合の各文書との類似度に基づき当該文書集合の各文書のランキングを行う類似度計算・ランキング手段を備え、
前記部分転置リストは検索クエリと高い頻度で共起するクエリ集合に適合した文書集合から選択された文書集合の部分転置リストであること
を特徴とする文書検索装置。
【請求項２】
前記ローカルストレージに保持されたローカルキャッシュを規定するクエリと前記修正または追加されたクエリとの差分と前記部分転置リストとに基づき抽出された文書集合が当該部分転置リストの更新の条件を満たしているか否かを判定するローカルキャッシュ更新判定手段をさらに備えたこと
を特徴とする請求項１に記載の文書検索装置。
【請求項３】
前記条件は前記抽出された文書集合において前記修正前または追加前の検索クエリと前記修正または追加された検索クエリとを組み合わせた検索による得られる文書の数がゼロであること
を特徴とする請求項２に記載の文書検索装置。
【請求項４】
前記条件は前記抽出された文書集合を構成する文書と前記追加または修正されたクエリとの近似類似度の最高値が閾値以下であること
を特徴とする請求項２に記載の文書検索装置。
【請求項５】
前記条件は追加または修正されたクエリとの近似類似度がゼロでない文書の数が閾値以下であること
を特徴とする請求項２に記載の文書検索装置。
【請求項６】
修正または追加された検索クエリに基づく検索によって得られた文書集合を提示する文書検索方法であって、
類似度計算・ランキング手段が修正または追加された検索クエリとローカルストレージに保持された前記検索クエリの修正前または追加前の検索結果に基づく部分転置リストに対応した文書集合の各文書との類似度に基づき当該文書集合の各文書のランキングを行うステップを有し、
前記部分転置リストは検索クエリと高い頻度で共起するクエリ集合に適合した文書集合から選択された文書集合の部分転置リストであること
を特徴とする文書検索方法。
【請求項７】
ローカルキャッシュ更新判定手段が前記ローカルストレージに保持されたローカルキャッシュを規定するクエリと前記修正または追加されたクエリとの差分と前記部分転置リストとに基づき抽出された文書集合が当該部分転置リストの更新の条件を満たしているか否かを判定するステップを
さらに有すること
を特徴とする請求項６に記載の文書検索方法。
【請求項８】
請求項１から５のいずれか１項に記載の文書検索装置を構成する各手段としてコンピュータを機能させることを特徴とする文書検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はウェブ検索エンジンやイントラネット等の文書検索システムにおいてユーザ操作端末内のインターネットブラウザのローカルストレージを利用した検索技術に関する。
【背景技術】
【０００２】
インターネットを引き金とする情報爆発が叫ばれる中で、Ｇｏｏｇｌｅ（登録商標）等の検索サイトやＡｍａｚｏｎ（登録商標）等の通販サイトを中心にして大規模分散処理システムや大規模分散データ格納システムの研究開発が盛となっている。今後ありとあらゆる身の回りの情報が電子化されるにつれて、情報検索で扱われるデータベースは巨大化していくため、大規模分散システムは非常に重要である。
【０００３】
一方、情報爆発時代のユーザ操作端末（個人用ＰＣや携帯電話・スマートフォン）側のアプリケーションは、インターネットブラウザという汎用的な環境で開発される事例が増えている。広く普及したＪａｖａ（登録商標）ｓｃｒｉｐｔ（登録商標）やＣＳＳ、ローカルストレージ等を取り込んだ仕様であるＨＴＭＬ５は、アプリケーションの汎用性を高めることが期待されていると同時に、その有効活用方法が模索されている段階であるといえる。
【０００４】
検索エンジンサービス提供時のシステム構成をサーバ／クライアント（ユーザ操作端末）で考えたときに、サーバサイドのキャッシングに関しては物理・論理レベルを問わず多数の研究がなされ（図１３、図１４（ａ））、実際に実用されている。論理レベルキャッシングには大きく、検索結果キャッシング（ｒｅｓｕｌｔｓ ｃａｃｈｉｎｇ）（例えば非特許文献１〜３）と索引の枝刈り（ｉｎｄｅｘ ｐｒｕｎｉｎｇ）（例えば非特許文献１）の技術がある。
【０００５】
検索結果キャッシングでは、それぞれのクエリにマッチした結果をキャッシュしておき、キャッシュにのっているクエリはキャッシュを利用してディスクアクセス無しに高速に検索結果を返す。
【０００６】
索引の枝刈りでは、転置リストを全部スキャンするのではなく、検索結果を構成するのに必要な部分に限定してスキャンすることにより、高速化を図る。枝狩りの戦略としては、文書単位で行うかまたは単語単位で行うかの二つがある。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】David Carmel, Doron Cohen, Ronald Fagin, Eitan Farchi, Michael Herscovici, Yoelle S. Maarek, and Aya Soffer,“Static Index Pruning for Information Retrieval Systems”, SIGIR'01,September 9-12,2001,pp.43-50
【非特許文献２】Gleb Skobeltsyn, Flavio P. Junqueira, Vassilis Plachouras, and Ricardo Baeza-Yates,“ResIn: A Combination of Results Caching and Index Pruning for High-performance Web Search Engines”, SIGIR'08,July 20-24,2008,pp.131-138
【非特許文献３】Alexandros Ntoulas, and Junghoo Cho,“Pruning policies for two-tiered inverted index with correctness guarantee”, SIGIR'07,July 20-24,2007,pp.191-198
【非特許文献４】Christopher D. Manning, Prabhakar Raghavan, and Hinrich Schutze,“Introduction to Information Retrieval”, Cambridge Press, July 31,2008
【非特許文献５】Yang Song, Li-wei He,“Optimal Rare Query Suggestion With Implicit User Feedback”, WWW 2010, April 26≡30, 2010,pp.901-910
【非特許文献６】Google Inc.、"About Google Instant"，[online]、２０１０年９月８日、Google Instant、［９月２９日検索］、インターネット＜URL:http://www.google.com/Instant/＞
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述のサーバサイドキャッシング技術を利用した際に、精度が保証されるかどうか（ｌｏｓｓｌｅｓｓ）といったキャッシュの種類も一つのポイントである（図１３）。クライアントサイド（ユーザ操作端末）では、キャッシュに利用できるストレージサイズに大幅な制約があるため、検索の精度を保証することが出来ない（ｌｏｓｓｙ）。すなわち、ＨＴＭＬ５上の制約に加えて、レコード数が増えると、ＤＢ処理に時間がかかるようになるため、アプリケーションのレスポンス低下を引き起こしてしまう。以上のように限られた情報量の中で、如何に検索を実施し、精度よく検索結果を得ることが必要とされる。
【０００９】
ユーザ操作端末においても汎用的なウェブブラウザではない専用アプリケーションを提供する場合であれば、キャッシュを利用している可能性があるが、専用アプリケーションを利用して検索エンジンサービスを提供するということ自体が一般的では無いため、有用性が低いと考えられる。
【００１０】
本発明は以上の事情に鑑みなされたもので検索インタフェースのレスポンスを向上させることを目的とする。
【課題を解決するための手段】
【００１１】
そこで、本発明は、ブラウザ内のローカルストレージを利用して、直前の検索結果リストを部分転置リストとしてブラウザ内のローカルストレージにキャッシュとして保存する。そして、ユーザが検索クエリを追記または修正した際に、前記キャッシュに対してマッチングおよびランキングを行い、即座に検索結果リストを更新し、利用者に提示する。
【００１２】
本発明の文書検索装置の態様としては、修正または追加された検索クエリに基づく検索によって得られた文書集合を提示する文書検索装置であって、修正または追加された検索クエリとローカルストレージに保持された前記検索クエリの修正前または追加前の検索結果に基づく部分転置リストに対応した文書集合の各文書との類似度に基づき当該文書集合の各文書のランキングを行う類似度計算・ランキング手段を備え、前記部分転置リストは検索クエリと高い頻度で共起するクエリ集合に適合した文書集合から選択された文書集合の部分転置リストである。
【００１３】
本発明の文書検索方法の態様としては、修正または追加された検索クエリに基づく検索によって得られた文書集合を提示する文書検索方法であって、類似度計算・ランキング手段が修正または追加された検索クエリとローカルストレージに保持された前記検索クエリの修正前または追加前の検索結果に基づく部分転置リストに対応した文書集合の各文書との類似度に基づき当該文書集合の各文書のランキングを行うステップを有し、前記部分転置リストは検索クエリと高い頻度で共起するクエリ集合に適合した文書集合から選択された文書集合の部分転置リストである。
【００１４】
尚、本発明は上記の文書検索装置を構成する各手段としてコンピュータを機能させる文書検索プログラムの態様とすることもできる。
【発明の効果】
【００１５】
以上の発明によれば検索インタフェースのレスポンスが向上する。
【図面の簡単な説明】
【００１６】
【図１】発明の実施形態に係る文書検索装置と文書検索システムのブロック構成図。
【図２】発明の実施形態に係る文書検索装置と文書検索システムのハードウェア構成図。
【図３】検索サーバの処理手順を説明したフロー図。
【図４】部分転置リストの作成手順を説明したフロー図。
【図５】発明の実施形態に係る文書検索装置の処理手順を説明したフロー図。
【図６】近似類似度に基づき検索結果をランキングする手順を説明したフロー図。
【図７】クエリセッションの一例を示した図。
【図８】検索クエリとのセッション共起頻度を一覧させた図。
【図９】従来技術に係るインタフェースの一例と発明に係る検索インタフェースの一例を示した図。
【図１０】従来技術に係る検索インタラクションの一例と発明に係る検索インタラクションの一例を示した図。
【図１１】従来技術に係る検索インタラクション（ａ）と発明に係る検索インタラクション（ｂ）との違いを説明した説明図。
【図１２】（ａ）従来技術に係るローカルストレージに格納する情報の一例、（ｂ）発明に係るローカルストレージに格納する情報の一例、（ｃ）文書長を考慮する場合にローカルストレージに格納する情報の一例。
【図１３】発明と従来技術のキャッシング技術の違いを説明した図。
【図１４】（ａ）従来技術に係るサーバキャッシュを説明した図，（ｂ）発明に係るクライアントキャッシュを説明した図，（ｃ）従来技術に係るサーバキャッシュと発明に係るクライアントキャッシュとの違いを説明した表。
【発明を実施するための形態】
【００１７】
以下、図面を参照しながら本発明の実施の形態を説明するが、本発明は下記の実施形態例に限定されるものではない。
【００１８】
［概要］
図１に示された発明の実施形態の文書検索装置１は、大規模分散システム上に構築されたウェブ検索エンジンやイントラネット等の文書検索システム２へのアクセスの際、ローカルストレージを利用して検索のレスポンスを向上させる。特に、文書検索装置１は文書検索システム２にてクエリログから構築されたセッション情報に基づき得られた確率の高い文書集合をローカルストレージにキャッシュする。そして、文書検索システム２のサーバ側で予め前記キャッシュする文書集合に対して情報量を削減して作成された部分転置リストに基づき文書検索システム２から得られた検索結果のランキングを少ない情報量で効果的に近似して構成する。部分転置リストは前記ローカルストレージに格納された文書集合とクエリの類似度のしきい値等に規定された更新要件に基づき更新される。
【００１９】
［本実施形態に係る技術用語］
本実施形態の説明にあたり当該実施形態に係る技術用語について説明する。
【００２０】
「検索クエリ」は文書検索装置１が文書検索システム２に投入するキーワードを意味する。本実施形態では「キーワード  キーワード」というキーワードの列のことを示す。
【００２１】
「クエリログ」は文書検索システム２に投入される検索クエリのログを意味する。本実施形態では例えば［ユーザＩＤ，時刻，検索クエリ］の三組の情報が事前に分析され、セッションログが構築される。
【００２２】
「セッションログ」は検索を開始して終了するまでのクエリ列を意味する。例えば、「京都」→「京都  観光」→「京都  レストラン」等である。
【００２３】
「ローカルストレージ」はＨＴＭＬ５にて規定されているブラウザ内で利用可能なデータ格納領域を意味する。ローカルストレージの形式としては、例えば、キーバリュー形式、テーブル形式のものが挙げられる。
【００２４】
「ローカルキャッシュ」は検索結果の一部をローカルストレージに保存したものである。キャッシュ中に検索クエリにマッチした文書があれば（ヒット）、サーバにリクエストを送らずとも、検索クエリにマッチした文書を提示することが出来る。
【００２５】
「クライアント」は本実施形態ではたとえばＨＴＭＬ５に対応したウェブブラウザがインストールされた端末を意味する。本実施形態では図１に示された文書検索装置１に相当する。
【００２６】
「結果リスト」は検索クエリにマッチした文書を適合度順にランキングしたリストを意味する。サーバクライアント間で送受信する場合には，引数として件数を与える。
【００２７】
「転置リスト」は文書検索を高速化するための索引であり、検索クエリとマッチした文書のリストである。
【００２８】
「部分転置リスト」は「転置リスト」の文書集合から指定された数の文書が重要度に基づき選択されて作成された文書のリストであり、キー数、リスト長ともに「転置リスト」よりも情報量が小さくなる。本実施形態では、部分転置リストは文書検索システム２で作成され、クライアントに送信される。クライアント側ではローカルストレージに前記部分転置リストが格納され、近似的な検索結果リストが構築される。
【００２９】
［装置、システムの構成］
図１に例示された情報検索システムは本発明の実施形態に係る文書検索装置１と文書検索システム２とからなる。文書検索装置１はネットワーク３を介して文書検索システム２と通信可能となっている。
【００３０】
（文書検索装置１の構成）
文書検索装置１は図１，図２に示されたようにローカルストレージ管理手段１１と検索処理手段１２とを備える。機能手段１１，１２はコンピュータのハードウェアリソースによって実現される。すなわち、文書検索装置１は図２に示された制御手段（例えばＣＰＵ）１０１、記憶手段（ＲＯＭ、ＲＡＭ、ＨＤＤ、ＳＳＤ等）１０２、通信手段１０３、ユーザインタフェース（入力部（キーボード、ポインティグデバイス）・表示部（モニタ装置））１０４等のコンピュータに係るハードウェアリソースを備える。そして、これらのハードウェアリソースがソフトウェアリソース（ＯＳ、アプリケーション等）と協働することにより機能手段１１，１２が実装される。
【００３１】
ローカルストレージ管理手段１１はブラウザ内のローカルストレージにおけるデータの挿入、更新及び削除を行う。ローカルストレージ管理手段１１はさらにローカルキャッシュ更新判定手段１１１を備える。
【００３２】
ローカルキャッシュ更新判定手段１１１は前記ローカルストレージに保持されたローカルキャッシュを規定するクエリと前記修正または追加されたクエリとの差分と前記部分転置リストとに基づき文書集合を抽出する。そして、この抽出した文書集合が当該部分転置リストの更新の条件を満たしているか否かを判定する。
【００３３】
検索処理手段１２は検索クエリを文書検索システム２に供して当該システム２から当該クエリに対する検索結果を取得する。検索処理手段１２はさらに類似度計算・ランキング手段１２１を備える。類似度計算・ランキング手段１２１は修正または追加された検索クエリとローカルストレージに保持された前記検索クエリの修正前または追加前の検索結果に基づく部分転置リストに対応した文書集合の各文書との類似度を計算する。そして、この類似度に基づき当該文書集合の各文書のランキングを行い、検索結果画面の更新処理を行う。
【００３４】
（文書検索システム２の構成）
文書検索システム２は、図１に示されたように、文書検索装置１から供された検索クエリに基づき検索処理を行う検索サーバ２１と、前記検索処理に供される検索サービスを提供するアプリケーションサーバ２２と、前記検索処理に用いられる設定情報やユーザ情報を管理するデータベースサーバ２３とを備える。文書検索システム２は図１に例示された態様のように機能を複数のサーバに分散させた構成を採っているが単一のサーバ内で実現させてもよい。
【００３５】
検索サーバ２１は図２に示されたように検索処理手段２４、クエリログ処理手段２５、部分転置リスト作成手段２６を備える。機能手段２４〜２６はコンピュータのハードウェアリソースによって実現される。すなわち、検索サーバ２１は図２に示された制御手段（ＣＰＵ）２０１、記憶手段（ＲＯＭ、ＲＡＭ、ＨＤＤ、ＳＳＤ等）２０２、通信インタフェース１０３、入力装置（キーボード、ポインティグデバイス）２０４、出力装置（モニタ装置）２０５等のコンピュータに係るハードウェアリソースを備える。そして、これらのハードウェアリソースがソフトウェアリソース（ＯＳ、アプリケーション等）と協働することにより機能手段２４〜２６が実装される。
【００３６】
検索処理手段２４はネットワーク３、通信インタフェース２０３を介して文書検索装置１から供された検索クエリに基づき周知の検索技術によって検索処理を行う。
【００３７】
検索処理手段２４はさらにインデックス作成手段２４１とインデックスアクセス手段２４２を備える。インデックス作成手段２４１は予めネットワーク３を介してクローラ等の情報収集手段によって収集された文書情報のインデックス（索引）を作成する。インデックスアクセス手段２４２はネットワーク３を介して文書検索装置１から検索クエリが供されると前記作成されたインデックスにアクセスして当該クエリを含んだ文書の集合を記憶手段２０２から引き出す。
【００３８】
クエリログ処理手段２５は予め作成したセッションログから前記検索クエリと高い頻度で共起するクエリ集合を取得する。クエリログ処理手段２５はセッション構築手段２５１、クエリログ分析手段２５２を備える。セッション構築手段２５１は前記検索クエリのログに基づきセッションログ（例えば図７参照）を作成する。クエリログ分析手段２５２は前記作成されたセッションログから前記検索クエリと高い頻度で共起するクエリ集合を取得する（例えば図８参照）。
【００３９】
部分転置リスト作成手段２６はクエリログ処理手段２５によって取得されたクエリ集合に適合した文書集合の転置リストを構成する部分転置リストを作成する。部分転置リスト作成手段２６はさらに指定文書選択手段２６１、インデックスアクセス手段２６２を備える。指定文書選択手段２６１はクエリログ処理手段２５によって取得されたクエリ集合に適合した文書集合から所定数の文書からなる文書集合を選択する。インデックスアクセス手段２６２は前記選択した文書集合の各文書の部分転置リストを記憶手段２０２における部分転置リストキャッシュから取得する。
【００４０】
前記部分転置リストは計算コストを要するので予め作成され、記憶手段２０２の部分転置リストキャッシュＣの領域に保持される。これによって、同一クエリが二回目以降呼び出される際の部分転置リスト作成コストは解消されて、部分転置リストキャッシュＣから直接取得することができる。
【００４１】
［処理手順の説明］
（文書検索システム２の処理手順）
図３を参照しながら文書検索システム２の処理手順Ｓ１〜Ｓ７について説明する。
【００４２】
Ｓ１：検索サーバ２１はクライアントである文書検索装置１から検索クエリＱを受ける。
【００４３】
Ｓ２：検索処理手段２４は前記受け付けた検索クエリＱに対してインデックス作成手段２４１によって予め作成されたインデックスを利用して検索処理を行い、結果リストＲ（Ｑ，ｎ）を作成する。尚、ｎは検索結果パラメータを意味する。
【００４４】
Ｓ３：ステップＳ２と同時にクエリログ処理手段２５のクエリログ分析手段２５２はセッション構築手段２５１によって予め作成されたセッションログから検索クエリＱと高い頻度で共起するクエリ集合ＥＱを取得する。例えば図７に示されたセッションログからは図９に例示されたクエリ”京都”と共起頻度の高いクエリの集合が取得される。
【００４５】
Ｓ４：指定文書選択手段２６１はステップＳ３で取得されたクエリ集合に適合した文書集合から所定数ｋ件の文書からなる文書集合Ｒ（ＥＱ，ｋ）を、重要度を考慮したランキングスコアに基づき、選択する。前記ランキングスコアとしては例えばPageRank（登録商標）に例示される周知の重要度決定技術によって決定された重要度に基づくランキングスコアが挙げられる。ｋはクライアントのデータ容量等に基づき指定される定数である。このようにクエリの適合度に加えて重要度も考慮したランキングスコアに基づき、より重要度の高い文書を取得することができる。
【００４６】
Ｓ５：インデックスアクセス手段２６２はステップＳ４で選択された文書集合Ｒ（ＥＱ，ｋ）の各文書の部分転置リストが記憶手段２０２の部分転置リストキャッシュＣにて作成済みか否かを判断する。前記部分転置リストが作成されている場合（Ｙｅｓ）はＳ６に移行し、作成されていない場合（Ｎｏ）はＳ７に移行する。
【００４７】
Ｓ６：インデックスアクセス手段２６２は前記選択した文書集合の各文書の部分転置リストを記憶手段２０２の部分転置リストキャッシュＣから引き出す。
【００４８】
Ｓ７：部分転置リスト作成手段２６はＳ４で選択された文書集合Ｒ（ＥＱ，ｋ）に対応したクエリ集合ＥＱの部分転置リストを作成する。この部分転置リストは、結果リストＲ（Ｑ，ｎ）に含まれる文書集合Ｒ（ＥＱ，ｋ）のみから作成した転置リストであり、索引付けキーワード集合及び文書集合共に全体の部分集合となっている。
【００４９】
図４を参照しながらＳ７の具体的な手順Ｓ７１〜Ｓ７３について説明する。ここではクエリＱが”新聞”である場合の部分転置リストの作成手順について説明する。
【００５０】
（Ｓ７１）記憶手段２０２に格納された文書データベースＤからクエリＱ”新聞”にマッチした文書集合Ｒｄを取得する。
【００５１】
（Ｓ７２）ステップＳ７１で取得された文書集合Ｒｄに含まれている各文書をパーズ（構文解析）して単語文書の共起行列Ｍａｔ＿ｒを作成する。
【００５２】
（Ｓ７３）ステップＳ７２で作成された共起行列Ｍａｔ＿ｒから文書集合Ｒｄ中の文書に含まれる単語集合のみをキーとする部分転置リストＴｄを出力する。
【００５３】
Ｓ８：部分転置リスト作成手段２６はステップＳ６またはＳ７で得られた部分転置リストＴｄをステップＳ２で取得された結果リストＲ（Ｑ，ｎ）と共に通信インタフェース２０３，ネットワーク３を介して文書検索装置１に送信する。その後、文書検索装置１からの新たな検索クエリＱの入力を待機する。
【００５４】
（文書検索装置１の処理手順）
図５を参照しながら文書検索装置１の処理手順Ｓ１１〜Ｓ１５について説明する。
【００５５】
ユーザ（文書検索装置１）のセッション開始の最初のクエリはブラウザ内のローカルストレージにローカルキャッシュがないため、必ず文書検索システム２に問い合わせる必要がある。ここではセッション中の二回目以降の処理手順Ｓ１１〜Ｓ１４について説明する。
【００５６】
検索処理手段１２によって一回目の検索が実行されるとその検索結果は二回目の検索直前の検索結果としてローカルストレージ管理手段１１によってローカルストレージに格納される。
【００５７】
Ｓ１１：ローカルキャッシュ更新判定手段１１１はユーザによってクエリが追加または修正されると当該クエリとローカルキャッシュを規定するクエリ（部分転置リスト作成時のクエリQ）との差分ΔＱを算出する。
【００５８】
Ｓ１２：ローカルキャッシュ更新判定手段１１１は差分ΔQに含まれる検索語に基づきローカルキャッシュにおける部分転置リストを利用してフィルタ処理を行ない当該部分転置リストに規定された文書集合を抽出し、その各文書と差分ΔＱとの類似度を算出する。
【００５９】
Ｓ１３：ローカルキャッシュ更新判定手段１１１はＳ１２で抽出された文書集合が文書検索システム２への検索リクエストの送信条件を満たすかどうかを判定する。
【００６０】
前記文書集合が検索リクエスト送信条件を満たしていない（Ｎｏ）と判断されるとローカルキャッシュは有効であると判定され、当該文書集合はステップＳ１４に供される。一方、前記文書集合が検索リクエスト送信条件を満たしている（Ｙｅｓ）と判断されるとローカルキャッシュの有効性は薄れていると判定され、部分転置リストの更新のために後述のステップＳ１６で検索リクエストが文書検索システム２に送信される。
【００６１】
検索リクエストの送信条件はローカルキャッシュが検索クエリに対して有効性が薄れているかどうかを判定する条件である。この検索リクエスト条件に基づきローカルキャッシュの有効性が判断され、有効性がある場合、ローカルキャッシュが保持されてステップＳ１４が実行される。一方、有効性が薄れている場合、ローカルキャッシュがクリアされ、ステップＳ１６が実行される。検索リクエスト送信条件としては例えば以下の条件（１）〜（４）のいずれかが挙げられる。
（１）ＡＮＤ検索（例えば、最初のクエリと二回目のクエリを組み合わせたＡＮＤ検索）による得られた文書集合を構成する文書の数が０件であること。
（２）文書集合を構成する文書と追加または修正されたクエリとの近似類似度の最高値が閾値以下、例えば０．５以下であること。
（３）追加または修正されたクエリとの近似類似度がゼロでない文書の数が閾値以下、例えば５件以下であること。
（４）ユーザが明示的に検索リクエストの送信を指定したこと。
【００６２】
近似類似度の算出には例えば以下に述べる周知のベクトル空間法が適用される（非特許文献４）。ベクトル空間法による類似度の値はベクトル間の内積にて計算される。クエリベクトルをq、文書ベクトルをvとすると、qとvの類似度は下記の式（１）によって算出される。
【００６３】
【数１】
0005525424.tif 000002
【００６４】
この式の計算にはベクトルの大きさ（＝文書の大きさ）が必要であるが、本実施形態では文書の大きさが一定であると仮定する。また、qは文書によらず一定であるから、下記の式（２）によって近似類似度が得られる。
【００６５】
【数２】
0005525424.tif 000003
【００６６】
また、クエリに含まれる単語がローカルキャッシュに含まれる文書に含まれる場合には前記近似類似度の値にキーワードの頻度qiとtf（単語出願頻度）・idf（単語逆出現頻度）の値を積算すればよい。この式は、BooleanモデルのＡＮＤとＯＲセマンティックスを自然に拡張した式になっている。
【００６７】
Ｓ１４：類似度計算・ランキング手段１２１はステップＳ１３で有効と判断されたローカルキャッシュ中の文書集合を構成する文書と追加または修正されたクエリとの近似類似度を算出しそのスコアに基づき当該文書をランキングする。
【００６８】
図６を参照しながらＳ１４の具体的な手順Ｓ１４１〜Ｓ１４３について説明する。
【００６９】
（Ｓ１４1）ローカルキャッシュからクエリＱ＿０、追加クエリ集合Ｑ’、部分転置リストＴｄを取得する。
【００７０】
（Ｓ１４２）ステップＳ１４１で取得された全てのクエリq∈Ｑ’にマッチした文書集合を部分転置リストＴｄに基づき取得しマージ（収集）した文書集合をＤ＿Ｑ’とする。
【００７１】
（Ｓ１４３）ステップＳ１４２で得られた文書集合Ｄ＿Ｑ’を構成する文書をクエリベクトルＱ＿０＋Ｑ’との近似類似度の近い順にランキングする。前記近似類似度の算出には式（２）による演算法が適用される。
【００７２】
ステップＳ１４３では、ＡＮＤ検索の意味でマッチするほど上位にランキングされ、その次にＯＲ検索の意味でマッチする文書がランキングされる。具体例として、上述の式（２）に積算される全ての単語のtf・idf値が１である場合、クエリ中でマッチした単語が多い順にスコアが高くなることが分かる。すなわち、ＡＮＤのセマンティックスでマッチした文書がある場合の近似類似度のスコアは高くなり、それに続いてＯＲのセマンティックスで数多くマッチした文書がランキングされる。
【００７３】
Ｓ１５：類似度計算・ランキング手段１２１はステップＳ１４で得られた文書のランキングに基づきユーザインタフェース１０４の画面上の検索結果を更新する。その後、ユーザによる新たな検索クエリの入力を待機する。
【００７４】
Ｓ１６：ローカルストレージ管理手段１１は追加された検索クエリに基づく検索リクエストを文書検索システム２に送信する。
【００７５】
Ｓ１７：ローカルストレージ管理手段１１は文書検索システム２の検索サーバ２１にて前記検索リクエストの検索クエリに基づきＳ１〜Ｓ８によって得られた検索の結果リスト及び部分転置リストを文書検索システム２から受信する。
【００７６】
Ｓ１８：ローカルストレージ管理手段１１はステップＳ１７で検索リスト並びに部分転置リストを受信すると、当該検索リストに基づきユーザインタフェース１０４の画面上の検索結果を更新する。さらにローカルストレージのローカルキャッシュをクリアして当該キャッシュに対して前記部分転置リストの挿入を行う。
【００７７】
［本実施形態の効果］
以上のように本実施形態の文書検索装置１はローカルキャッシュを文書検索のキャッシュとして利用することで図９に示したように検索インタフェースのレスポンスを向上させインタラクション回数を増加させることができる。したがって、図１０に示したように追加または修正されたクエリの検索ボタンを明示的に押すことなく当該クエリに基づく文書検索を行うことができる。
【００７８】
従来は検索サーバ内で論理レベルキャッシュや枝刈りに基づいた検索レスポンスを向上させるようにしている。これに対して文書検索装置１は図１３に示したようにクライアントキャッシュ方式を採用し、検索結果のキャッシングを文書単位で枝刈りし、クライアント内で行う。これによりサーバキャッシュ技術と相補的に検索システムのレスポンスを向上することができる（図１４（ｂ）（ｃ））。すなわち、サーバリクエスト回数を増加させずに，利用者のインタラクション回数を増加させることができる。より具体的には図９に示したように従来技術に係る検索インタフェースでは入力フォームにクエリを入力すると検索ボタンをクリックしなければ検索の結果リストを更新できない。これに対して文書検索装置１に係る検索インタフェースでは入力フォームにクエリを入力するだけで検索ボタンをクリックすることなく検索の結果リストを更新できる。また、図１０，図１１（ａ）に例示されたように従来の検索ではクエリを修正する毎に検索ボタンのクリックを行わなければ提示された検索結果の更新を行うことができない。これに対して図１０，図１１（ｂ）に例示したように本実施形態のインタラクティブな検索によればクエリを修正する毎に検索ボタンのクリックを行わなくても提示された検索結果の更新を行うことができる。すなわち、サーバリクエスト回数が従来技術の検索技術と同じでもインタラクション回数（検索回数）を増やすことができる。
【００７９】
また、本実施形態では部分転置リストとして検索クエリと高い頻度で共起するクエリ集合に適合した文書集合から選択された文書集合の部分転置リストが用いられている。ローカルストレージに格納できる情報量には制限があり、クライアントアプリのレスポンスが悪くなるため、それほど多数のレコードを挿入することはできない。そこで、文書検索システム２においては、クエリログから作成されたセッションログからユーザが次に投入する確率の高いクエリ集合を予め取得される。そして，このクエリ集合に適合する指定された件数の文書集合をローカルストレージにキャッシュする手段が採られている。検索エンジンの結果は、クエリの適合度に加えてPageRank等によるページ重要度も考慮して検索結果を構築しているため（非特許文献５）、検索結果上位からキャッシュする文書集合を選ぶ戦略は，重要な文書をキャッシュする確率が高まる。
【００８０】
さらに、本実施形態の類似度計算・ランキング手段１２１は、前記修正または追加された検索クエリと前記部分転置リストに対応した各文書との類似度として、前記検索クエリのクエリベクトルと前記各文書の文書ベクトルとの内積に基づく近似類似度を算出する。サーバサイドのキャッシュと異なり、被検索文書数が極端に制限される場合には、検索のセマンティックス（≒ランキング）がより一層重要になる。しかしながら，ＡＮＤ検索であると絞り込みすぎて結果が無くなってしまうケースがある一方，ＯＲ検索であるとランキング精度がぶれるケースが起こり得る。これらの問題を回避するために、類似度計算・ランキング手段１２１は類似度の算出にあたり、ベクトル空間法のコサイン類似度によるランキング尺度を近似する手法を採用している。前述のステップＳ１３，Ｓ１４のように、各文書長を１とみなす近似により、コサイン類似度の計算を簡略化する。これにより、ローカルストレージに格納する文書集合の情報量を削減できるため、ネットワークの転送量とローカルキャッシュサイズを削減し，計算量も下げることができる。また、上記のランキングを用いることで、ＡＮＤの意味でマッチングする結果がある場合はその結果は上位にランキングされ、ＯＲの意味でマッチングする場合はその次にランキングされるようになる。この結果、絞り込みすぎて結果がなくなるケースとランキングの精度が低下するケースを回避することができる。
【００８１】
ベクトル空間法に基づいてクライアント内で文書検索を実現するためのローカルキャッシュとしては典型的には図１２（ａ）に例示された情報が格納される。図示された情報はＨＴＭＬ５が指定する，Key-value型のSession Storage，Local Storage，テーブル型のDatabase Storageいずれにても実現可能なデータモデルである。例えば、部分転置リスト取得時のクエリ文字列、文書検索システム２から送られた転置リスト、問合せと文書間の類似度を計算するための文書が持つ単語を記した文書リスト、単語ＩＤと標記の対応表、単語のIDF値、ストップワードリスト、検索結果用のスニペットがある。これらの情報があれば、ＡＮＤ検索やＯＲ検索といった検索を正しくローカルに格納された文書に対して実現可能である。しかしながら、クライアント内のローカルキャッシュで利用できるデータベース量には大きな制約がある。また、クライアントに想定できる計算パワーは多種多様であるため、計算量も出来るだけ削減したいという要求がある。
【００８２】
そこで、本実施形態のステップＳ１３，Ｓ１４では格納される各文書長が同一であるという近似を行うことで、格納する情報量とクエリとの類似度を計算する際の計算量を同時に削減させることできる。例えば、本実施形態ではローカルストレージに格納される情報は図１２（ｂ）に示された情報となる。文書リストと単語ＩＤ対応表の２つのテーブルは格納しない。部分転置リストは単語をＩＤにマッピングせずに単語標記をキーとして，値は予めTF（単語出現頻度）とIDF（単語逆出現頻度）との積であるTF・IDF値と文書ＩＤのリストとなっている。単語ＩＤと単語標記を対応付けても情報量の削減につながらないが、部分転置リストは単語の情報が複数回登場する文書リストを保持していないので単語をキーとするテーブルを一つに削減させ、単語ＩＤ対応表を削減できる。また、文書リストは文書数に比例する大きさを有するが、部分転置リストはローカルストレージに格納しなければならない情報量を削減させることができる。
【００８３】
また、ローカルキャッシュにおける近似的なベクトル空間法によるクエリと文書の類似度計算により、ローカルに格納する情報量とローカルで行う計算量を削減させ、検索インタフェースのレスポンスを向上することができる。すなわち、ベクトル空間モデルを近似した類似度にてランキングを行うと、文書の情報量を削減しながらも、ＡＮＤのセマンティックスでマッチングした文書を上位に、ＯＲのセマンティックスでマッチングした文書を下位にランキングすることができる。これによりユーザにとって自然な検索結果のランキングを実現することができる。また、ローカルキャッシュの更新条件として、ローカルキャッシュ内の文書と利用者が投入しているクエリとの類似度へのしきい値を与えると、利用者が明示的に更新を指示しなくても、投入中のクエリへの類似度が下がった際に、自動的にサーバに検索リクエストが送信され、クエリに適合した文書集合をローカルキャッシュに格納することができる。
【００８４】
ステップＳ１３，Ｓ１４では近似類似度の算出にあたり文書長は固定されているが、当該ステップにおいて文書長を考慮するようにしてもよい。文書長を考慮する場合にはローカルキャッシュとして格納する情報としては図１２（ｃ）に示す。図１２（ｂ）に示された情報との違いは、スニペットの値に文書長を埋め込んでいる点である。スニペットのサイズが大きくなり、文書長とスニペットを切り取る処理が余計にかかるが、これにより、文書長を考慮したランキングも可能となる。
【００８５】
また、ステップＳ１３ではローカルキャッシュを更新する条件においてクエリとローカルキャッシュ中の文書への条件を事前に指定されているので、自動的にローカルキャッシュの更新を行うことができ、検索インタフェースのレスポンスを向上することができる。
【００８６】
すなわち、ステップＳ１３ではローカルキャッシュ更新判定手段１１１は、ローカルストレージに保持されたローカルキャッシュを規定するクエリと前記修正または追加されたクエリとの差分と部分転置リストとに基づき抽出された文書集合が当該部分転置リストの更新の条件を満たしているか否かを判定する。３G回線等の検索サーバとユーザ操作端末間ネットワークが細い場合には，ローカルキャッシュのみで、検索を行う回数が増加することが想定される。しかしながら、ユーザの検索要求が外れている場合には，ローカルキャッシュの情報は有用ではない。ユーザが手動でキャッシュの更新を指定することもできるが、ローカルキャッシュ更新判定手段１１はステップＳ１３でローカルキャッシュを更新するタイミングとしてユーザが投入したクエリとキャッシュ中の文書間の類似度にしきい値等を指定する。本手法により、ユーザがクエリを編集・追加するにつれて、クエリの意味がローカルキャッシュの文書集合から外れていくと、自然な形でキャッシュの更新処理を実行できる。
【００８７】
また、ローカルキャッシュの更新の条件としては上述の条件（１）のように前記抽出された文書集合において前記修正前または追加前の検索クエリと前記修正または追加された検索クエリとを組み合わせた検索による得られる文書の数がゼロである場合とすることで前記文書集合の文書の数に依存した更新処理が行える。
【００８８】
また、前記更新の他の条件として上述の条件（２）のように前記抽出された文書集合を構成する文書と前記追加または修正されたクエリとの近似類似度の最高値が閾値以下である場合とすることで前記文章集合と前記クエリとの類似性に依存した更新処理が行える。
【００８９】
さらに、前記更新の他の条件として上述の条件（３）のように追加または修正されたクエリとの近似類似度がゼロでない文書の数が閾値以下である場合とすることで前記文書集合の文書の数とクエリとの類似性に依存した更新処理が行える。
【００９０】
本発明の技術が適用可能な関連サービスとして、例えば、Ｇｏｏｇｌｅ Ｉｎｓｔａｎｔ（非特許文献６）が挙げられる。Ｇｏｏｇｌｅ Ｉｎｓｔａｎｔでは、検索キーワードを入力時に、検索クエリを予測し、その検索結果を即時に表示更新する。また、クエリ推薦された検索クエリをスクロールダウンで選択すると即時に、次の検索結果を表示する。これにより、サーバの負荷の低減だけではなく、ネットワーク負荷をも下げて、検索結果をユーザに提示できる。
【００９１】
［本発明のプログラムとしての態様］
本発明は上記の実施形態の文書検索装置１に係る各機能手段の一部もしくは全部の機能をコンピュータのプログラムで構成し、そのプログラムをコンピュータによって実行して本発明を実現することができる。また、サーバ２１〜２３に係る各機能手段の一部もしくは全部の機能をコンピュータのプログラムで構成できる。さらに、コンピュータで前記機能手段を実現するためのプログラムをそのコンピュータが読み取り可能な記録媒体、例えば、ＦＤ（Ｆｌｏｐｐｙ（登録商標） Ｄｉｓｋ）や、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ ｄｉｓｋ）、ＲＯＭ（Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｏｒｙ）、メモリカード、ＣＤ（Ｃｏｍｐａｃｔ Ｄｉｓｋ）−ＲＯＭ、ＤＶＤ（Ｄｉｇｉｔａｌ Ｖｅｒｓａｔｉｌｅ Ｄｉｓｋ）−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＨＤＤ、ＳＳＤ、リムーバブルディスクなどに記録して、保存したり、配布したりすることが可能である。また、上記のプログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
【符号の説明】
【００９２】
１…文書検索装置
２…文書検索システム
１１１…ローカルキャッシュ更新判定手段
１２１…類似度計算・ランキング手段
【図１】
0005525424.tif 000004
【図２】
0005525424.tif 000005
【図３】
0005525424.tif 000006
【図４】
0005525424.tif 000007
【図５】
0005525424.tif 000008
【図６】
0005525424.tif 000009
【図７】
0005525424.tif 000010
【図８】
0005525424.tif 000011
【図９】
0005525424.tif 000012
【図１０】
0005525424.tif 000013
【図１１】
0005525424.tif 000014
【図１２】
0005525424.tif 000015
【図１３】
0005525424.tif 000016
【図１４】
0005525424.tif 000017