JP5525424B2 - 文書検索装置、文書検索方法及び文書検索プログラム - Google Patents

文書検索装置、文書検索方法及び文書検索プログラム Download PDF

Info

Publication number
JP5525424B2
JP5525424B2 JP2010272993A JP2010272993A JP5525424B2 JP 5525424 B2 JP5525424 B2 JP 5525424B2 JP 2010272993 A JP2010272993 A JP 2010272993A JP 2010272993 A JP2010272993 A JP 2010272993A JP 5525424 B2 JP5525424 B2 JP 5525424B2
Authority
JP
Japan
Prior art keywords
document
search
query
list
added
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010272993A
Other languages
English (en)
Other versions
JP2012123566A (ja
Inventor
毅晴 江田
典史 片渕
良治 片岡
雅且 大久保
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2010272993A priority Critical patent/JP5525424B2/ja
Publication of JP2012123566A publication Critical patent/JP2012123566A/ja
Application granted granted Critical
Publication of JP5525424B2 publication Critical patent/JP5525424B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明はウェブ検索エンジンやイントラネット等の文書検索システムにおいてユーザ操作端末内のインターネットブラウザのローカルストレージを利用した検索技術に関する。
インターネットを引き金とする情報爆発が叫ばれる中で、Google(登録商標)等の検索サイトやAmazon(登録商標)等の通販サイトを中心にして大規模分散処理システムや大規模分散データ格納システムの研究開発が盛となっている。今後ありとあらゆる身の回りの情報が電子化されるにつれて、情報検索で扱われるデータベースは巨大化していくため、大規模分散システムは非常に重要である。
一方、情報爆発時代のユーザ操作端末(個人用PCや携帯電話・スマートフォン)側のアプリケーションは、インターネットブラウザという汎用的な環境で開発される事例が増えている。広く普及したJava(登録商標)script(登録商標)やCSS、ローカルストレージ等を取り込んだ仕様であるHTML5は、アプリケーションの汎用性を高めることが期待されていると同時に、その有効活用方法が模索されている段階であるといえる。
検索エンジンサービス提供時のシステム構成をサーバ/クライアント(ユーザ操作端末)で考えたときに、サーバサイドのキャッシングに関しては物理・論理レベルを問わず多数の研究がなされ(図13、図14(a))、実際に実用されている。論理レベルキャッシングには大きく、検索結果キャッシング(results caching)(例えば非特許文献1〜3)と索引の枝刈り(index pruning)(例えば非特許文献1)の技術がある。
検索結果キャッシングでは、それぞれのクエリにマッチした結果をキャッシュしておき、キャッシュにのっているクエリはキャッシュを利用してディスクアクセス無しに高速に検索結果を返す。
索引の枝刈りでは、転置リストを全部スキャンするのではなく、検索結果を構成するのに必要な部分に限定してスキャンすることにより、高速化を図る。枝狩りの戦略としては、文書単位で行うかまたは単語単位で行うかの二つがある。
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]、2010年9月8日、Google Instant、[9月29日検索]、インターネット<URL:http://www.google.com/Instant/>
上述のサーバサイドキャッシング技術を利用した際に、精度が保証されるかどうか(lossless)といったキャッシュの種類も一つのポイントである(図13)。クライアントサイド(ユーザ操作端末)では、キャッシュに利用できるストレージサイズに大幅な制約があるため、検索の精度を保証することが出来ない(lossy)。すなわち、HTML5上の制約に加えて、レコード数が増えると、DB処理に時間がかかるようになるため、アプリケーションのレスポンス低下を引き起こしてしまう。以上のように限られた情報量の中で、如何に検索を実施し、精度よく検索結果を得ることが必要とされる。
ユーザ操作端末においても汎用的なウェブブラウザではない専用アプリケーションを提供する場合であれば、キャッシュを利用している可能性があるが、専用アプリケーションを利用して検索エンジンサービスを提供するということ自体が一般的では無いため、有用性が低いと考えられる。
本発明は以上の事情に鑑みなされたもので検索インタフェースのレスポンスを向上させることを目的とする。
そこで、本発明は、ブラウザ内のローカルストレージを利用して、直前の検索結果リストを部分転置リストとしてブラウザ内のローカルストレージにキャッシュとして保存する。そして、ユーザが検索クエリを追記または修正した際に、前記キャッシュに対してマッチングおよびランキングを行い、即座に検索結果リストを更新し、利用者に提示する。
本発明の文書検索装置の態様としては、修正または追加された検索クエリに基づく検索によって得られた文書集合を提示する文書検索装置であって、修正または追加された検索クエリとローカルストレージに保持された前記検索クエリの修正前または追加前の検索結果に基づく部分転置リストに対応した文書集合の各文書との類似度に基づき当該文書集合の各文書のランキングを行う類似度計算・ランキング手段を備え、前記部分転置リストは検索クエリと高い頻度で共起するクエリ集合に適合した文書集合から選択された文書集合の部分転置リストである
本発明の文書検索方法の態様としては、修正または追加された検索クエリに基づく検索によって得られた文書集合を提示する文書検索方法であって、類似度計算・ランキング手段が修正または追加された検索クエリとローカルストレージに保持された前記検索クエリの修正前または追加前の検索結果に基づく部分転置リストに対応した文書集合の各文書との類似度に基づき当該文書集合の各文書のランキングを行うステップを有し、前記部分転置リストは検索クエリと高い頻度で共起するクエリ集合に適合した文書集合から選択された文書集合の部分転置リストである
尚、本発明は上記の文書検索装置を構成する各手段としてコンピュータを機能させる文書検索プログラムの態様とすることもできる。
以上の発明によれば検索インタフェースのレスポンスが向上する。
発明の実施形態に係る文書検索装置と文書検索システムのブロック構成図。 発明の実施形態に係る文書検索装置と文書検索システムのハードウェア構成図。 検索サーバの処理手順を説明したフロー図。 部分転置リストの作成手順を説明したフロー図。 発明の実施形態に係る文書検索装置の処理手順を説明したフロー図。 近似類似度に基づき検索結果をランキングする手順を説明したフロー図。 クエリセッションの一例を示した図。 検索クエリとのセッション共起頻度を一覧させた図。 従来技術に係るインタフェースの一例と発明に係る検索インタフェースの一例を示した図。 従来技術に係る検索インタラクションの一例と発明に係る検索インタラクションの一例を示した図。 従来技術に係る検索インタラクション(a)と発明に係る検索インタラクション(b)との違いを説明した説明図。 (a)従来技術に係るローカルストレージに格納する情報の一例、(b)発明に係るローカルストレージに格納する情報の一例、(c)文書長を考慮する場合にローカルストレージに格納する情報の一例。 発明と従来技術のキャッシング技術の違いを説明した図。 (a)従来技術に係るサーバキャッシュを説明した図,(b)発明に係るクライアントキャッシュを説明した図,(c)従来技術に係るサーバキャッシュと発明に係るクライアントキャッシュとの違いを説明した表。
以下、図面を参照しながら本発明の実施の形態を説明するが、本発明は下記の実施形態例に限定されるものではない。
[概要]
図1に示された発明の実施形態の文書検索装置1は、大規模分散システム上に構築されたウェブ検索エンジンやイントラネット等の文書検索システム2へのアクセスの際、ローカルストレージを利用して検索のレスポンスを向上させる。特に、文書検索装置1は文書検索システム2にてクエリログから構築されたセッション情報に基づき得られた確率の高い文書集合をローカルストレージにキャッシュする。そして、文書検索システム2のサーバ側で予め前記キャッシュする文書集合に対して情報量を削減して作成された部分転置リストに基づき文書検索システム2から得られた検索結果のランキングを少ない情報量で効果的に近似して構成する。部分転置リストは前記ローカルストレージに格納された文書集合とクエリの類似度のしきい値等に規定された更新要件に基づき更新される。
[本実施形態に係る技術用語]
本実施形態の説明にあたり当該実施形態に係る技術用語について説明する。
「検索クエリ」は文書検索装置1が文書検索システム2に投入するキーワードを意味する。本実施形態では「キーワード キーワード」というキーワードの列のことを示す。
「クエリログ」は文書検索システム2に投入される検索クエリのログを意味する。本実施形態では例えば[ユーザID,時刻,検索クエリ]の三組の情報が事前に分析され、セッションログが構築される。
「セッションログ」は検索を開始して終了するまでのクエリ列を意味する。例えば、「京都」→「京都 観光」→「京都 レストラン」等である。
「ローカルストレージ」はHTML5にて規定されているブラウザ内で利用可能なデータ格納領域を意味する。ローカルストレージの形式としては、例えば、キーバリュー形式、テーブル形式のものが挙げられる。
「ローカルキャッシュ」は検索結果の一部をローカルストレージに保存したものである。キャッシュ中に検索クエリにマッチした文書があれば(ヒット)、サーバにリクエストを送らずとも、検索クエリにマッチした文書を提示することが出来る。
「クライアント」は本実施形態ではたとえばHTML5に対応したウェブブラウザがインストールされた端末を意味する。本実施形態では図1に示された文書検索装置1に相当する。
「結果リスト」は検索クエリにマッチした文書を適合度順にランキングしたリストを意味する。サーバクライアント間で送受信する場合には,引数として件数を与える。
「転置リスト」は文書検索を高速化するための索引であり、検索クエリとマッチした文書のリストである。
「部分転置リスト」は「転置リスト」の文書集合から指定された数の文書が重要度に基づき選択されて作成された文書のリストであり、キー数、リスト長ともに「転置リスト」よりも情報量が小さくなる。本実施形態では、部分転置リストは文書検索システム2で作成され、クライアントに送信される。クライアント側ではローカルストレージに前記部分転置リストが格納され、近似的な検索結果リストが構築される。
[装置、システムの構成]
図1に例示された情報検索システムは本発明の実施形態に係る文書検索装置1と文書検索システム2とからなる。文書検索装置1はネットワーク3を介して文書検索システム2と通信可能となっている。
(文書検索装置1の構成)
文書検索装置1は図1,図2に示されたようにローカルストレージ管理手段11と検索処理手段12とを備える。機能手段11,12はコンピュータのハードウェアリソースによって実現される。すなわち、文書検索装置1は図2に示された制御手段(例えばCPU)101、記憶手段(ROM、RAM、HDD、SSD等)102、通信手段103、ユーザインタフェース(入力部(キーボード、ポインティグデバイス)・表示部(モニタ装置))104等のコンピュータに係るハードウェアリソースを備える。そして、これらのハードウェアリソースがソフトウェアリソース(OS、アプリケーション等)と協働することにより機能手段11,12が実装される。
ローカルストレージ管理手段11はブラウザ内のローカルストレージにおけるデータの挿入、更新及び削除を行う。ローカルストレージ管理手段11はさらにローカルキャッシュ更新判定手段111を備える。
ローカルキャッシュ更新判定手段111は前記ローカルストレージに保持されたローカルキャッシュを規定するクエリと前記修正または追加されたクエリとの差分と前記部分転置リストとに基づき文書集合を抽出する。そして、この抽出した文書集合が当該部分転置リストの更新の条件を満たしているか否かを判定する。
検索処理手段12は検索クエリを文書検索システム2に供して当該システム2から当該クエリに対する検索結果を取得する。検索処理手段12はさらに類似度計算・ランキング手段121を備える。類似度計算・ランキング手段121は修正または追加された検索クエリとローカルストレージに保持された前記検索クエリの修正前または追加前の検索結果に基づく部分転置リストに対応した文書集合の各文書との類似度を計算する。そして、この類似度に基づき当該文書集合の各文書のランキングを行い、検索結果画面の更新処理を行う。
(文書検索システム2の構成)
文書検索システム2は、図1に示されたように、文書検索装置1から供された検索クエリに基づき検索処理を行う検索サーバ21と、前記検索処理に供される検索サービスを提供するアプリケーションサーバ22と、前記検索処理に用いられる設定情報やユーザ情報を管理するデータベースサーバ23とを備える。文書検索システム2は図1に例示された態様のように機能を複数のサーバに分散させた構成を採っているが単一のサーバ内で実現させてもよい。
検索サーバ21は図2に示されたように検索処理手段24、クエリログ処理手段25、部分転置リスト作成手段26を備える。機能手段24〜26はコンピュータのハードウェアリソースによって実現される。すなわち、検索サーバ21は図2に示された制御手段(CPU)201、記憶手段(ROM、RAM、HDD、SSD等)202、通信インタフェース103、入力装置(キーボード、ポインティグデバイス)204、出力装置(モニタ装置)205等のコンピュータに係るハードウェアリソースを備える。そして、これらのハードウェアリソースがソフトウェアリソース(OS、アプリケーション等)と協働することにより機能手段24〜26が実装される。
検索処理手段24はネットワーク3、通信インタフェース203を介して文書検索装置1から供された検索クエリに基づき周知の検索技術によって検索処理を行う。
検索処理手段24はさらにインデックス作成手段241とインデックスアクセス手段242を備える。インデックス作成手段241は予めネットワーク3を介してクローラ等の情報収集手段によって収集された文書情報のインデックス(索引)を作成する。インデックスアクセス手段242はネットワーク3を介して文書検索装置1から検索クエリが供されると前記作成されたインデックスにアクセスして当該クエリを含んだ文書の集合を記憶手段202から引き出す。
クエリログ処理手段25は予め作成したセッションログから前記検索クエリと高い頻度で共起するクエリ集合を取得する。クエリログ処理手段25はセッション構築手段251、クエリログ分析手段252を備える。セッション構築手段251は前記検索クエリのログに基づきセッションログ(例えば図7参照)を作成する。クエリログ分析手段252は前記作成されたセッションログから前記検索クエリと高い頻度で共起するクエリ集合を取得する(例えば図8参照)。
部分転置リスト作成手段26はクエリログ処理手段25によって取得されたクエリ集合に適合した文書集合の転置リストを構成する部分転置リストを作成する。部分転置リスト作成手段26はさらに指定文書選択手段261、インデックスアクセス手段262を備える。指定文書選択手段261はクエリログ処理手段25によって取得されたクエリ集合に適合した文書集合から所定数の文書からなる文書集合を選択する。インデックスアクセス手段262は前記選択した文書集合の各文書の部分転置リストを記憶手段202における部分転置リストキャッシュから取得する。
前記部分転置リストは計算コストを要するので予め作成され、記憶手段202の部分転置リストキャッシュCの領域に保持される。これによって、同一クエリが二回目以降呼び出される際の部分転置リスト作成コストは解消されて、部分転置リストキャッシュCから直接取得することができる。
[処理手順の説明]
(文書検索システム2の処理手順)
図3を参照しながら文書検索システム2の処理手順S1〜S7について説明する。
S1:検索サーバ21はクライアントである文書検索装置1から検索クエリQを受ける。
S2:検索処理手段24は前記受け付けた検索クエリQに対してインデックス作成手段241によって予め作成されたインデックスを利用して検索処理を行い、結果リストR(Q,n)を作成する。尚、nは検索結果パラメータを意味する。
S3:ステップS2と同時にクエリログ処理手段25のクエリログ分析手段252はセッション構築手段251によって予め作成されたセッションログから検索クエリQと高い頻度で共起するクエリ集合EQを取得する。例えば図7に示されたセッションログからは図9に例示されたクエリ”京都”と共起頻度の高いクエリの集合が取得される。
S4:指定文書選択手段261はステップS3で取得されたクエリ集合に適合した文書集合から所定数k件の文書からなる文書集合R(EQ,k)を、重要度を考慮したランキングスコアに基づき、選択する。前記ランキングスコアとしては例えばPageRank(登録商標)に例示される周知の重要度決定技術によって決定された重要度に基づくランキングスコアが挙げられる。kはクライアントのデータ容量等に基づき指定される定数である。このようにクエリの適合度に加えて重要度も考慮したランキングスコアに基づき、より重要度の高い文書を取得することができる。
S5:インデックスアクセス手段262はステップS4で選択された文書集合R(EQ,k)の各文書の部分転置リストが記憶手段202の部分転置リストキャッシュCにて作成済みか否かを判断する。前記部分転置リストが作成されている場合(Yes)はS6に移行し、作成されていない場合(No)はS7に移行する。
S6:インデックスアクセス手段262は前記選択した文書集合の各文書の部分転置リストを記憶手段202の部分転置リストキャッシュCから引き出す。
S7:部分転置リスト作成手段26はS4で選択された文書集合R(EQ,k)に対応したクエリ集合EQの部分転置リストを作成する。この部分転置リストは、結果リストR(Q,n)に含まれる文書集合R(EQ,k)のみから作成した転置リストであり、索引付けキーワード集合及び文書集合共に全体の部分集合となっている。
図4を参照しながらS7の具体的な手順S71〜S73について説明する。ここではクエリQが”新聞”である場合の部分転置リストの作成手順について説明する。
(S71)記憶手段202に格納された文書データベースDからクエリQ”新聞”にマッチした文書集合Rdを取得する。
(S72)ステップS71で取得された文書集合Rdに含まれている各文書をパーズ(構文解析)して単語文書の共起行列Mat_rを作成する。
(S73)ステップS72で作成された共起行列Mat_rから文書集合Rd中の文書に含まれる単語集合のみをキーとする部分転置リストTdを出力する。
S8:部分転置リスト作成手段26はステップS6またはS7で得られた部分転置リストTdをステップS2で取得された結果リストR(Q,n)と共に通信インタフェース203,ネットワーク3を介して文書検索装置1に送信する。その後、文書検索装置1からの新たな検索クエリQの入力を待機する。
(文書検索装置1の処理手順)
図5を参照しながら文書検索装置1の処理手順S11〜S15について説明する。
ユーザ(文書検索装置1)のセッション開始の最初のクエリはブラウザ内のローカルストレージにローカルキャッシュがないため、必ず文書検索システム2に問い合わせる必要がある。ここではセッション中の二回目以降の処理手順S11〜S14について説明する。
検索処理手段12によって一回目の検索が実行されるとその検索結果は二回目の検索直前の検索結果としてローカルストレージ管理手段11によってローカルストレージに格納される。
S11:ローカルキャッシュ更新判定手段111はユーザによってクエリが追加または修正されると当該クエリとローカルキャッシュを規定するクエリ(部分転置リスト作成時のクエリQ)との差分ΔQを算出する。
S12:ローカルキャッシュ更新判定手段111は差分ΔQに含まれる検索語に基づきローカルキャッシュにおける部分転置リストを利用してフィルタ処理を行ない当該部分転置リストに規定された文書集合を抽出し、その各文書と差分ΔQとの類似度を算出する。
S13:ローカルキャッシュ更新判定手段111はS12で抽出された文書集合が文書検索システム2への検索リクエストの送信条件を満たすかどうかを判定する。
前記文書集合が検索リクエスト送信条件を満たしていない(No)と判断されるとローカルキャッシュは有効であると判定され、当該文書集合はステップS14に供される。一方、前記文書集合が検索リクエスト送信条件を満たしている(Yes)と判断されるとローカルキャッシュの有効性は薄れていると判定され、部分転置リストの更新のために後述のステップS16で検索リクエストが文書検索システム2に送信される。
検索リクエストの送信条件はローカルキャッシュが検索クエリに対して有効性が薄れているかどうかを判定する条件である。この検索リクエスト条件に基づきローカルキャッシュの有効性が判断され、有効性がある場合、ローカルキャッシュが保持されてステップS14が実行される。一方、有効性が薄れている場合、ローカルキャッシュがクリアされ、ステップS16が実行される。検索リクエスト送信条件としては例えば以下の条件(1)〜(4)のいずれかが挙げられる。
(1)AND検索(例えば、最初のクエリと二回目のクエリを組み合わせたAND検索)による得られた文書集合を構成する文書の数が0件であること。
(2)文書集合を構成する文書と追加または修正されたクエリとの近似類似度の最高値が閾値以下、例えば0.5以下であること。
(3)追加または修正されたクエリとの近似類似度がゼロでない文書の数が閾値以下、例えば5件以下であること。
(4)ユーザが明示的に検索リクエストの送信を指定したこと。
近似類似度の算出には例えば以下に述べる周知のベクトル空間法が適用される(非特許文献4)。ベクトル空間法による類似度の値はベクトル間の内積にて計算される。クエリベクトルをq、文書ベクトルをvとすると、qとvの類似度は下記の式(1)によって算出される。
Figure 0005525424
この式の計算にはベクトルの大きさ(=文書の大きさ)が必要であるが、本実施形態では文書の大きさが一定であると仮定する。また、qは文書によらず一定であるから、下記の式(2)によって近似類似度が得られる。
Figure 0005525424
また、クエリに含まれる単語がローカルキャッシュに含まれる文書に含まれる場合には前記近似類似度の値にキーワードの頻度qiとtf(単語出願頻度)・idf(単語逆出現頻度)の値を積算すればよい。この式は、BooleanモデルのANDとORセマンティックスを自然に拡張した式になっている。
S14:類似度計算・ランキング手段121はステップS13で有効と判断されたローカルキャッシュ中の文書集合を構成する文書と追加または修正されたクエリとの近似類似度を算出しそのスコアに基づき当該文書をランキングする。
図6を参照しながらS14の具体的な手順S141〜S143について説明する。
(S141)ローカルキャッシュからクエリQ_0、追加クエリ集合Q’、部分転置リストTdを取得する。
(S142)ステップS141で取得された全てのクエリq∈Q’にマッチした文書集合を部分転置リストTdに基づき取得しマージ(収集)した文書集合をD_Q’とする。
(S143)ステップS142で得られた文書集合D_Q’を構成する文書をクエリベクトルQ_0+Q’との近似類似度の近い順にランキングする。前記近似類似度の算出には式(2)による演算法が適用される。
ステップS143では、AND検索の意味でマッチするほど上位にランキングされ、その次にOR検索の意味でマッチする文書がランキングされる。具体例として、上述の式(2)に積算される全ての単語のtf・idf値が1である場合、クエリ中でマッチした単語が多い順にスコアが高くなることが分かる。すなわち、ANDのセマンティックスでマッチした文書がある場合の近似類似度のスコアは高くなり、それに続いてORのセマンティックスで数多くマッチした文書がランキングされる。
S15:類似度計算・ランキング手段121はステップS14で得られた文書のランキングに基づきユーザインタフェース104の画面上の検索結果を更新する。その後、ユーザによる新たな検索クエリの入力を待機する。
S16:ローカルストレージ管理手段11は追加された検索クエリに基づく検索リクエストを文書検索システム2に送信する。
S17:ローカルストレージ管理手段11は文書検索システム2の検索サーバ21にて前記検索リクエストの検索クエリに基づきS1〜S8によって得られた検索の結果リスト及び部分転置リストを文書検索システム2から受信する。
S18:ローカルストレージ管理手段11はステップS17で検索リスト並びに部分転置リストを受信すると、当該検索リストに基づきユーザインタフェース104の画面上の検索結果を更新する。さらにローカルストレージのローカルキャッシュをクリアして当該キャッシュに対して前記部分転置リストの挿入を行う。
[本実施形態の効果]
以上のように本実施形態の文書検索装置1はローカルキャッシュを文書検索のキャッシュとして利用することで図9に示したように検索インタフェースのレスポンスを向上させインタラクション回数を増加させることができる。したがって、図10に示したように追加または修正されたクエリの検索ボタンを明示的に押すことなく当該クエリに基づく文書検索を行うことができる。
従来は検索サーバ内で論理レベルキャッシュや枝刈りに基づいた検索レスポンスを向上させるようにしている。これに対して文書検索装置1は図13に示したようにクライアントキャッシュ方式を採用し、検索結果のキャッシングを文書単位で枝刈りし、クライアント内で行う。これによりサーバキャッシュ技術と相補的に検索システムのレスポンスを向上することができる(図14(b)(c))。すなわち、サーバリクエスト回数を増加させずに,利用者のインタラクション回数を増加させることができる。より具体的には図9に示したように従来技術に係る検索インタフェースでは入力フォームにクエリを入力すると検索ボタンをクリックしなければ検索の結果リストを更新できない。これに対して文書検索装置1に係る検索インタフェースでは入力フォームにクエリを入力するだけで検索ボタンをクリックすることなく検索の結果リストを更新できる。また、図10,図11(a)に例示されたように従来の検索ではクエリを修正する毎に検索ボタンのクリックを行わなければ提示された検索結果の更新を行うことができない。これに対して図10,図11(b)に例示したように本実施形態のインタラクティブな検索によればクエリを修正する毎に検索ボタンのクリックを行わなくても提示された検索結果の更新を行うことができる。すなわち、サーバリクエスト回数が従来技術の検索技術と同じでもインタラクション回数(検索回数)を増やすことができる。
また、本実施形態では部分転置リストとして検索クエリと高い頻度で共起するクエリ集合に適合した文書集合から選択された文書集合の部分転置リストが用いられている。ローカルストレージに格納できる情報量には制限があり、クライアントアプリのレスポンスが悪くなるため、それほど多数のレコードを挿入することはできない。そこで、文書検索システム2においては、クエリログから作成されたセッションログからユーザが次に投入する確率の高いクエリ集合を予め取得される。そして,このクエリ集合に適合する指定された件数の文書集合をローカルストレージにキャッシュする手段が採られている。検索エンジンの結果は、クエリの適合度に加えてPageRank等によるページ重要度も考慮して検索結果を構築しているため(非特許文献5)、検索結果上位からキャッシュする文書集合を選ぶ戦略は,重要な文書をキャッシュする確率が高まる。
さらに、本実施形態の類似度計算・ランキング手段121は、前記修正または追加された検索クエリと前記部分転置リストに対応した各文書との類似度として、前記検索クエリのクエリベクトルと前記各文書の文書ベクトルとの内積に基づく近似類似度を算出する。サーバサイドのキャッシュと異なり、被検索文書数が極端に制限される場合には、検索のセマンティックス(≒ランキング)がより一層重要になる。しかしながら,AND検索であると絞り込みすぎて結果が無くなってしまうケースがある一方,OR検索であるとランキング精度がぶれるケースが起こり得る。これらの問題を回避するために、類似度計算・ランキング手段121は類似度の算出にあたり、ベクトル空間法のコサイン類似度によるランキング尺度を近似する手法を採用している。前述のステップS13,S14のように、各文書長を1とみなす近似により、コサイン類似度の計算を簡略化する。これにより、ローカルストレージに格納する文書集合の情報量を削減できるため、ネットワークの転送量とローカルキャッシュサイズを削減し,計算量も下げることができる。また、上記のランキングを用いることで、ANDの意味でマッチングする結果がある場合はその結果は上位にランキングされ、ORの意味でマッチングする場合はその次にランキングされるようになる。この結果、絞り込みすぎて結果がなくなるケースとランキングの精度が低下するケースを回避することができる。
ベクトル空間法に基づいてクライアント内で文書検索を実現するためのローカルキャッシュとしては典型的には図12(a)に例示された情報が格納される。図示された情報はHTML5が指定する,Key-value型のSession Storage,Local Storage,テーブル型のDatabase Storageいずれにても実現可能なデータモデルである。例えば、部分転置リスト取得時のクエリ文字列、文書検索システム2から送られた転置リスト、問合せと文書間の類似度を計算するための文書が持つ単語を記した文書リスト、単語IDと標記の対応表、単語のIDF値、ストップワードリスト、検索結果用のスニペットがある。これらの情報があれば、AND検索やOR検索といった検索を正しくローカルに格納された文書に対して実現可能である。しかしながら、クライアント内のローカルキャッシュで利用できるデータベース量には大きな制約がある。また、クライアントに想定できる計算パワーは多種多様であるため、計算量も出来るだけ削減したいという要求がある。
そこで、本実施形態のステップS13,S14では格納される各文書長が同一であるという近似を行うことで、格納する情報量とクエリとの類似度を計算する際の計算量を同時に削減させることできる。例えば、本実施形態ではローカルストレージに格納される情報は図12(b)に示された情報となる。文書リストと単語ID対応表の2つのテーブルは格納しない。部分転置リストは単語をIDにマッピングせずに単語標記をキーとして,値は予めTF(単語出現頻度)とIDF(単語逆出現頻度)との積であるTF・IDF値と文書IDのリストとなっている。単語IDと単語標記を対応付けても情報量の削減につながらないが、部分転置リストは単語の情報が複数回登場する文書リストを保持していないので単語をキーとするテーブルを一つに削減させ、単語ID対応表を削減できる。また、文書リストは文書数に比例する大きさを有するが、部分転置リストはローカルストレージに格納しなければならない情報量を削減させることができる。
また、ローカルキャッシュにおける近似的なベクトル空間法によるクエリと文書の類似度計算により、ローカルに格納する情報量とローカルで行う計算量を削減させ、検索インタフェースのレスポンスを向上することができる。すなわち、ベクトル空間モデルを近似した類似度にてランキングを行うと、文書の情報量を削減しながらも、ANDのセマンティックスでマッチングした文書を上位に、ORのセマンティックスでマッチングした文書を下位にランキングすることができる。これによりユーザにとって自然な検索結果のランキングを実現することができる。また、ローカルキャッシュの更新条件として、ローカルキャッシュ内の文書と利用者が投入しているクエリとの類似度へのしきい値を与えると、利用者が明示的に更新を指示しなくても、投入中のクエリへの類似度が下がった際に、自動的にサーバに検索リクエストが送信され、クエリに適合した文書集合をローカルキャッシュに格納することができる。
ステップS13,S14では近似類似度の算出にあたり文書長は固定されているが、当該ステップにおいて文書長を考慮するようにしてもよい。文書長を考慮する場合にはローカルキャッシュとして格納する情報としては図12(c)に示す。図12(b)に示された情報との違いは、スニペットの値に文書長を埋め込んでいる点である。スニペットのサイズが大きくなり、文書長とスニペットを切り取る処理が余計にかかるが、これにより、文書長を考慮したランキングも可能となる。
また、ステップS13ではローカルキャッシュを更新する条件においてクエリとローカルキャッシュ中の文書への条件を事前に指定されているので、自動的にローカルキャッシュの更新を行うことができ、検索インタフェースのレスポンスを向上することができる。
すなわち、ステップS13ではローカルキャッシュ更新判定手段111は、ローカルストレージに保持されたローカルキャッシュを規定するクエリと前記修正または追加されたクエリとの差分と部分転置リストとに基づき抽出された文書集合が当該部分転置リストの更新の条件を満たしているか否かを判定する。3G回線等の検索サーバとユーザ操作端末間ネットワークが細い場合には,ローカルキャッシュのみで、検索を行う回数が増加することが想定される。しかしながら、ユーザの検索要求が外れている場合には,ローカルキャッシュの情報は有用ではない。ユーザが手動でキャッシュの更新を指定することもできるが、ローカルキャッシュ更新判定手段11はステップS13でローカルキャッシュを更新するタイミングとしてユーザが投入したクエリとキャッシュ中の文書間の類似度にしきい値等を指定する。本手法により、ユーザがクエリを編集・追加するにつれて、クエリの意味がローカルキャッシュの文書集合から外れていくと、自然な形でキャッシュの更新処理を実行できる。
また、ローカルキャッシュの更新の条件としては上述の条件(1)のように前記抽出された文書集合において前記修正前または追加前の検索クエリと前記修正または追加された検索クエリとを組み合わせた検索による得られる文書の数がゼロである場合とすることで前記文書集合の文書の数に依存した更新処理が行える。
また、前記更新の他の条件として上述の条件(2)のように前記抽出された文書集合を構成する文書と前記追加または修正されたクエリとの近似類似度の最高値が閾値以下である場合とすることで前記文章集合と前記クエリとの類似性に依存した更新処理が行える。
さらに、前記更新の他の条件として上述の条件(3)のように追加または修正されたクエリとの近似類似度がゼロでない文書の数が閾値以下である場合とすることで前記文書集合の文書の数とクエリとの類似性に依存した更新処理が行える。
本発明の技術が適用可能な関連サービスとして、例えば、Google Instant(非特許文献6)が挙げられる。Google Instantでは、検索キーワードを入力時に、検索クエリを予測し、その検索結果を即時に表示更新する。また、クエリ推薦された検索クエリをスクロールダウンで選択すると即時に、次の検索結果を表示する。これにより、サーバの負荷の低減だけではなく、ネットワーク負荷をも下げて、検索結果をユーザに提示できる。
[本発明のプログラムとしての態様]
本発明は上記の実施形態の文書検索装置1に係る各機能手段の一部もしくは全部の機能をコンピュータのプログラムで構成し、そのプログラムをコンピュータによって実行して本発明を実現することができる。また、サーバ21〜23に係る各機能手段の一部もしくは全部の機能をコンピュータのプログラムで構成できる。さらに、コンピュータで前記機能手段を実現するためのプログラムをそのコンピュータが読み取り可能な記録媒体、例えば、FD(Floppy(登録商標) Disk)や、MO(Magneto−Optical disk)、ROM(Read Only Memory)、メモリカード、CD(Compact Disk)−ROM、DVD(Digital Versatile Disk)−ROM、CD−R、CD−RW、HDD、SSD、リムーバブルディスクなどに記録して、保存したり、配布したりすることが可能である。また、上記のプログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
1…文書検索装置
2…文書検索システム
111…ローカルキャッシュ更新判定手段
121…類似度計算・ランキング手段

Claims (8)

  1. 修正または追加された検索クエリに基づく検索によって得られた文書集合を提示する文書検索装置であって、
    修正または追加された検索クエリとローカルストレージに保持された前記検索クエリの修正前または追加前の検索結果に基づく部分転置リストに対応した文書集合の各文書との類似度に基づき当該文書集合の各文書のランキングを行う類似度計算・ランキング手段を備え、
    前記部分転置リストは検索クエリと高い頻度で共起するクエリ集合に適合した文書集合から選択された文書集合の部分転置リストであること
    を特徴とする文書検索装置。
  2. 前記ローカルストレージに保持されたローカルキャッシュを規定するクエリと前記修正または追加されたクエリとの差分と前記部分転置リストとに基づき抽出された文書集合が当該部分転置リストの更新の条件を満たしているか否かを判定するローカルキャッシュ更新判定手段をさらに備えたこと
    を特徴とする請求項に記載の文書検索装置。
  3. 前記条件は前記抽出された文書集合において前記修正前または追加前の検索クエリと前記修正または追加された検索クエリとを組み合わせた検索による得られる文書の数がゼロであること
    を特徴とする請求項に記載の文書検索装置。
  4. 前記条件は前記抽出された文書集合を構成する文書と前記追加または修正されたクエリとの近似類似度の最高値が閾値以下であること
    を特徴とする請求項に記載の文書検索装置。
  5. 前記条件は追加または修正されたクエリとの近似類似度がゼロでない文書の数が閾値以下であること
    を特徴とする請求項に記載の文書検索装置。
  6. 修正または追加された検索クエリに基づく検索によって得られた文書集合を提示する文書検索方法であって、
    類似度計算・ランキング手段が修正または追加された検索クエリとローカルストレージに保持された前記検索クエリの修正前または追加前の検索結果に基づく部分転置リストに対応した文書集合の各文書との類似度に基づき当該文書集合の各文書のランキングを行うステップを有し、
    前記部分転置リストは検索クエリと高い頻度で共起するクエリ集合に適合した文書集合から選択された文書集合の部分転置リストであること
    を特徴とする文書検索方法。
  7. ローカルキャッシュ更新判定手段が前記ローカルストレージに保持されたローカルキャッシュを規定するクエリと前記修正または追加されたクエリとの差分と前記部分転置リストとに基づき抽出された文書集合が当該部分転置リストの更新の条件を満たしているか否かを判定するステップを
    さらに有すること
    を特徴とする請求項に記載の文書検索方法。
  8. 請求項1からのいずれか1項に記載の文書検索装置を構成する各手段としてコンピュータを機能させることを特徴とする文書検索プログラム。
JP2010272993A 2010-12-07 2010-12-07 文書検索装置、文書検索方法及び文書検索プログラム Active JP5525424B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010272993A JP5525424B2 (ja) 2010-12-07 2010-12-07 文書検索装置、文書検索方法及び文書検索プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010272993A JP5525424B2 (ja) 2010-12-07 2010-12-07 文書検索装置、文書検索方法及び文書検索プログラム

Publications (2)

Publication Number Publication Date
JP2012123566A JP2012123566A (ja) 2012-06-28
JP5525424B2 true JP5525424B2 (ja) 2014-06-18

Family

ID=46504947

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010272993A Active JP5525424B2 (ja) 2010-12-07 2010-12-07 文書検索装置、文書検索方法及び文書検索プログラム

Country Status (1)

Country Link
JP (1) JP5525424B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10783154B2 (en) 2017-09-29 2020-09-22 International Business Machines Corporation Transposing of ranking models

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001117942A (ja) * 1999-10-20 2001-04-27 Just Syst Corp 情報検索装置、情報検索方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2005346342A (ja) * 2004-06-02 2005-12-15 Matsushita Electric Ind Co Ltd 部品検索システム
JP4796527B2 (ja) * 2007-03-23 2011-10-19 ヤフー株式会社 ドキュメント絞り込み検索装置、方法及びプログラム
JP2009175896A (ja) * 2008-01-22 2009-08-06 Nippon Telegr & Teleph Corp <Ntt> 情報検索装置及び方法及びプログラム及びコンピュータ読取可能な記録媒体

Also Published As

Publication number Publication date
JP2012123566A (ja) 2012-06-28

Similar Documents

Publication Publication Date Title
US8276060B2 (en) System and method for annotating documents using a viewer
US7890485B2 (en) Knowledge management tool
US6615209B1 (en) Detecting query-specific duplicate documents
US7930286B2 (en) Federated searches implemented across multiple search engines
US8166056B2 (en) System and method for searching annotated document collections
US9081861B2 (en) Uniform resource locator canonicalization
US20070067304A1 (en) Search using changes in prevalence of content items on the web
US20120059822A1 (en) Knowledge management tool
US20080201317A1 (en) Ranking documents
JP5084858B2 (ja) サマリ作成装置、サマリ作成方法及びプログラム
US9275145B2 (en) Electronic document retrieval system with links to external documents
EP1938214A1 (en) Search using changes in prevalence of content items on the web
US20150339387A1 (en) Method of and system for furnishing a user of a client device with a network resource
Fatima et al. New framework for semantic search engine
JP4769822B2 (ja) ページグループを用いた情報検索サービス提供サーバー、方法及びシステム
Jadidoleslamy Search result merging and ranking strategies in meta-search engines: a survey
JP2004280569A (ja) 情報監視装置
JP5525424B2 (ja) 文書検索装置、文書検索方法及び文書検索プログラム
JP2004348607A (ja) コンテンツ検索方法、コンテンツ検索システム、コンテンツ検索用プログラムおよびコンテンツ検索用プログラムが記録された記録媒体
JP5286007B2 (ja) 文書検索装置、文書検索方法、および文書検索プログラム
JP2002049638A (ja) 文書情報検索装置、方法、文書情報検索プログラム及び文書情報検索プログラムを格納したコンピュータ可読の記録媒体
KR100942902B1 (ko) 웹페이지 검색 방법 및 상기 방법을 컴퓨터에서 구현하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
JP2010122932A (ja) 文書検索装置、文書検索方法、および文書検索プログラム
Rani et al. Getting Bulk Data Through Google: An empirical study
Saoud et al. Exploiting social annotations to generate resource descriptions in a distributed environment: Cooperative multi-agent simulation on query-based sampling

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131126

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140110

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140408

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140411

R150 Certificate of patent or registration of utility model

Ref document number: 5525424

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150