JP4230710B2 - SEARCH DEVICE, SEARCH METHOD, AND PROGRAM - Google Patents

SEARCH DEVICE, SEARCH METHOD, AND PROGRAM Download PDF

Info

Publication number
JP4230710B2
JP4230710B2 JP2002076543A JP2002076543A JP4230710B2 JP 4230710 B2 JP4230710 B2 JP 4230710B2 JP 2002076543 A JP2002076543 A JP 2002076543A JP 2002076543 A JP2002076543 A JP 2002076543A JP 4230710 B2 JP4230710 B2 JP 4230710B2
Authority
JP
Japan
Prior art keywords
search
group
score
groups
document
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.)
Expired - Fee Related
Application number
JP2002076543A
Other languages
Japanese (ja)
Other versions
JP2003271648A (en
Inventor
澄男 藤田
Original Assignee
株式会社ジャストシステム
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 株式会社ジャストシステム filed Critical 株式会社ジャストシステム
Priority to JP2002076543A priority Critical patent/JP4230710B2/en
Publication of JP2003271648A publication Critical patent/JP2003271648A/en
Application granted granted Critical
Publication of JP4230710B2 publication Critical patent/JP4230710B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

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

Description

【0001】
【発明の属する技術分野】
本発明は、高速な検索を行うのに好適な検索装置、検索方法、ならびに、これらをコンピュータに実現させるためのプログラムに関する。
【0002】
【従来の技術】
従来から、検索対象文書をデータベースに登録し、当該データベースに対して検索要求を与えると、当該検索要求に適合した文書を検索結果として出力する検索システムが提案されている。
【0003】
近年普及が目覚ましいインターネット技術の分野においても、世界中のウェブサイトの情報を収集し、これをデータベース化して、ユーザからの検索要求に対してこれに適合するようなウェブサイトのURL(Universal Resource Locator)を提示するインターネット検索エンジンも、各社から提供されている。
【0004】
【発明が解決しようとする課題】
しかしながら、大規模な検索を可能とするためには、データベースの規模や数を増やす必要があるが、このような場合にはデータベースとの間の入出力や通信量、データベースそのものの処理量が増大して、検索に要する時間(待ち時間)が長くなってしまう、とともに、各データベースシステムへの負荷が大きくなってしまうおそれがあるという問題が生ずる。
【0005】
特開平11−39324号公報においては、複数の検索サブシステムを用意し、利用者が発する検索要求の傾向をあらかじめ分析して、いずれかの検索サブシステムを選択して負荷分散を図る検索技術が開示されているが、状況によってはこの技術による効果が得られないこともある。したがって、各種の状況に対応するため、さまざまな負荷分散の技術に対する要望は大きい。
【0006】
本発明は、上記の課題を解決するもので、高速な検索を行うのに好適な検索装置、検索方法、ならびに、これらをコンピュータに実現させるためのプログラムを提供することを目的とする。
【0007】
【課題を解決するための手段】
上記の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【0008】
本発明の第1の観点に係る検索装置は、グループ分割部と、索引部と、入力受付部と、グループスコア計算部と、グループ選択部と、検索部と、併合部と、を備え、以下のように構成する。
【0009】
すなわち、グループ分割部は、検索対象文書を複数のグループに分割する。
【0010】
一方、索引部は、前記分割された複数のグループのそれぞれについて、当該グループと、当該グループに含まれる検索対象文書に出現するキーワードと、当該キーワードが出現する検索対象文書の数と、の情報を対応付けて記憶する。
【0011】
さらに、入力受付部は、検索要求の入力を受け付ける。
【0012】
そして、グループスコア計算部は、分割された複数のグループのそれぞれについて、索引部に記憶された情報を参照して入力を受け付けられた検索要求に対するグループスコアを計算する。
【0013】
一方、グループ選択部は、計算されたグループスコアにより、複数のグループからいずれか1つ以上のグループを選択する。
【0014】
さらに、検索部は、選択された1つ以上のグループのそれぞれについて、入力を受け付けられた検索要求により、並列に検索を行う。
【0015】
そして、併合部は、選択された1つ以上のグループのそれぞれについて検索された結果を併合して、これを入力を受け付けられた検索要求に対する検索結果として出力する。
【0016】
本発明により、あらかじめ所定の基準により検索対象文書をグループに分類するとともに、検索要求から当該基準に対応するグループスコアを計算し、これによって検索すべきグループを選択して、負荷分散を図るとともに、ユーザは短い待ち時間で検索結果を得ることができるようになる。
【0017】
また、本発明の検索装置において、索引部は、分割された複数のグループのそれぞれについて、グループと、当該グループに含まれる検索対象文書が含む全単語数と、の情報を対応付けてさらに記憶するように構成することができる。
【0018】
また、本発明の検索装置において、索引部は、分割された複数のグループのそれぞれについて、グループと、当該グループに含まれる検索対象文書が含む全キーワードについて、当該キーワードと、当該グループと、当該グループ内での当該キーワードの出現文書数と、の情報を対応付けてさらに記憶するように構成することができる。
【0019】
これらの発明は、上記発明の好適実施形態の一つであり、グループスコアの計算に、「グループに含まれる検索対象文書が含む全単語数」「グループに含まれるキーワードの出現文書数」などの情報を用いることができるようになる。
【0020】
また、本発明の検索装置は、以下のように構成することができる。
【0021】
すなわち、検索部は、選択された1つ以上のグループのそれぞれについて、当該グループに含まれる文書に対して入力を受け付けられた検索要求により、文書スコアを計算する。
【0022】
一方、併合部は、計算されたグループスコアと、計算された文書スコアと、を参照して、総合スコアを計算し、入力を受け付けられた検索要求に対する検索結果を、当該総合スコアの順に出力する。
【0023】
本発明により、総合スコアを用いて検索結果をユーザに提示する順番を適切に決定し、ユーザが望む要望に応じた順序で検索結果を提示できるようになる。
【0024】
また、本発明の検索装置において、併合部は、選択された1つ以上のグループのそれぞれについて検索された結果を当該結果に含まれる検索対象文書が得られた順に併合して、その順に出力するように構成することができる。
【0025】
本発明により、複数のデータベースシステムにおいて検索処理が行われた場合には、検索対象文書が得られた順にユーザにこれを提示して、待ち時間を減らすことができるようになる。
【0026】
また、本発明の検索装置は、以下のように構成することができる。
【0027】
すなわち、当該検索対象文書には、それぞれURLが対応付けられる。
【0028】
一方、グループ分割部は、検索対象文書を、各グループに含まれる検索対象文書の数が所望の範囲の数を超える場合は、これに対応付けられたURLの木構造を広さ方向に分割してグループを再分割する。
【0029】
さらに、所望の範囲の数未満である場合は、当該グループと他のグループとを、併合後のグループに含まれる検索対象文書の数が所望の範囲の数以下となるように、併合する。
【0030】
本発明により、URLの木構造に基づいて適切な数にグループを構成することができる。
【0031】
また、本発明の検索装置において、グループ分割部は、当該検索対象文書のそれぞれについて、これに出現する複数の単語の頻度からなるベクトルと、所定のベクトルとの余弦を計算し、当該計算結果によって当該検索対象文書を分類するように構成することができる。
【0032】
本発明により、文書の特徴をベクトルであらわし、これが所定のベクトルとの間に張る角に相当する情報を有する余弦(cosine)を計算して、所定のベクトルとの「類似度」(どれだけ張る角が小さいか)により文書をグループに分割することができるようになる。
【0033】
また、本発明の検索装置において、グループスコア計算部は、入力を受け付けられた検索要求と当該所定のベクトルとに対して所定の類似度計算(両者の余弦の計算を含む。)を行って、これをグループスコアとするように構成することができる。
【0034】
本発明により、検索要求の特徴をベクトルであらわし、これと、文書の分類の際に用いた「所定のベクトル」と、の間の「類似度」により検索要求をいずれか1つ以上のグループに振り分けることができるようになる。
【0035】
また、本発明の検索装置において、グループ分割部は、当該検索対象文書のそれぞれに対して、所定の検索要求により文書スコアを計算し、当該計算結果によって当該検索対象文書を分類するように構成することができる。
【0036】
本発明により、文書を並べる順序を決めるのに用いる文書スコアを、グループ化の際にも利用できるようになる。
【0037】
本発明の他の観点に係る検索方法は、グループ分割工程と、索引工程と、入力受付工程と、グループスコア計算工程と、グループ選択工程と、検索工程と、併合工程と、を備え、以下のように構成する。
【0038】
すなわち、グループ分割工程では、検索対象文書を複数のグループに分割する。
【0039】
一方、索引工程では、分割された複数のグループのそれぞれについて、当該グループと、当該グループに含まれる検索対象文書に出現するキーワードと、当該キーワードが出現する検索対象文書の数と、の情報を対応付けて記憶する。
【0040】
さらに、入力受付工程では、検索要求の入力を受け付ける。
【0041】
そして、グループスコア計算工程では、分割された複数のグループのそれぞれについて、記憶された情報を参照して入力を受け付けられた検索要求に対するグループスコアを計算する。
【0042】
一方、グループ選択工程では、計算されたグループスコアにより、複数のグループからいずれか1つ以上のグループを選択する。
【0043】
さらに、検索工程では、選択された1つ以上のグループのそれぞれについて、入力を受け付けられた検索要求により、並列に検索を行う。
【0044】
そして、併合工程では、選択された1つ以上のグループのそれぞれについて検索された結果を併合して、これを入力を受け付けられた検索要求に対する検索結果として出力する。
【0045】
本発明の他の観点に係るプログラムは、コンピュータを、上記の検索装置として機能させ、あるいは、コンピュータに、上記の登録方法を実行させるように構成する。
【0046】
上記のプログラムは、CD−ROM(Compact Disk Read Only Memory)やFD(Flexible Disk;フレキシブルディスク)などの各種の記録媒体に記録することができるほか、インターネットなどのコンピュータ通信網を介して配布することができる。
【0047】
【発明の実施の形態】
以下、添付図面を参照して、本発明の実施の形態について説明する。
【0048】
(情報処理装置の概要構成)
図1は、本発明のデータ構造が記録された記録媒体を処理して、本発明の検索装置を構成するサブ装置として機能しうる典型的な情報処理装置の概要構成を示す模式図である。以下、図1を参照して説明する。
【0049】
情報処理装置101は、CPU(Central Processing Unit;中央処理ユニット)102によって制御される。情報処理装置101に電源を投入すると、CPU102は、ROM103に記憶されたIPL(Initial Program Loader;初期プログラムローダ)を実行する。
【0050】
IPLは、ハードディスク104、FDドライブ110に装着されたFD、CD−ROMドライブ111に装着されたCD−ROMなどの記録媒体に記憶されたOS(Operating System;オペレーティング・システム)プログラムを読み出して実行するプログラムである。
【0051】
OSを起動した後、CPU102は、キーボード105やマウス106などにより入力されたユーザの指示にしたがって、あるいは、ハードディスクなどにあらかじめ記述された設定ファイルの内容にしたがって、ハードディスクなどに記憶されたアプリケーションプログラムを実行する。
【0052】
当該アプリケーションプログラムを実行することにより、情報処理装置101は、サブ装置として機能することとなる。
【0053】
これにより、サブ装置の管理情報を入力することができるほか、ユーザとの対話を担うサブ装置では、ユーザからの検索要求の入力を受け付けることができる。
【0054】
CPU102は、これらのプログラムの実行の際に、RAM107を一時的な作業用記憶領域として用いる。このほか、一時的な作業用記憶領域として、CPU102内に設けられたレジスタやキャッシュ(図示せず)が使われる。
【0055】
プログラムの実行に伴ない、ユーザに結果を報告したり、途中経過を見せたり、管理情報を提示したりするため、CPU102は、液晶ディスプレイやCRT(Cathode Ray Tube)などの表示装置108に当該情報を表示することができる。マウス106による指示操作では、マウス106を移動することにより、画面に表示されたカーソルが移動し、マウス106をクリックすることにより、カーソルが指すメニュー項目を選択することができる。
【0056】
情報処理装置101は、NIC(Network Interface Card)やモデムなどのインターフェース109を介してサブ装置同士の通信が行われるほか、インターネットなどのコンピュータ通信網と通信を行うことができる。また、インターフェース109を介して受信したプログラムを実行したり、などができる。
【0057】
(本発明の実施形態)
以下の説明では、理解を容易にするため、インターネット検索エンジンに本発明を適用した場合を例にあげて、本発明の一本実施形態を説明する。図2は、本実施形態に係る検索装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【0058】
本実施形態の検索装置201は、グループ分割部202と、索引部203と、入力受付部204と、グループスコア計算部205と、グループ選択部206と、検索部207と、併合部208と、を備える。
【0059】
図3は、本実施形態に係る検索装置において実行させる索引作成処理の流れを示すフローチャートである。
【0060】
グループ分割部202は、検索対象文書を複数のグループに分割する(ステップS301)。本実施形態で検索対象文書は、インターネット内の各ウェブサイトに存在するHTML(Hyper Text Markup Language)文書となる。これを、以下のような手法により、複数のグループに分割する。
【0061】
グループ分割部202は、当該検索対象文書のそれぞれについて、これに出現する複数の単語の頻度からなるベクトルと、所定のベクトルとの余弦を計算し、当該計算結果によって当該検索対象文書を分類するものである。
【0062】
検索に用いられることが多いと予想されるキーワードをあらかじめm個選択し、当該キーワードのそれぞれが当該検索対象文書に出現する頻度を各要素とするベクトルを考える。
【0063】
たとえば、n個のグループに分割するのであれば、「所定のベクトル」として、互いに異なる単位ベクトルを適宜n個用意する。
【0064】
そして、各単位ベクトルと検索対象文書のベクトルとの余弦を計算することにより、当該単位ベクトルと検索対象文書のベクトルとが張る角が最も小さいものを選ぶことができる。そして、選ばれた単位ベクトルに対応付けられたグループに当該検索対象文書を分類すればよい。
【0065】
これ以外の分類手法については、その他の実施形態として後述する。
【0066】
一方、索引部203は、分割された複数のグループのそれぞれについて、当該グループと、当該グループに含まれる検索対象文書に出現するキーワードと、当該キーワードが出現する検索対象文書の数と、の情報を対応付けて記憶する(ステップS302)。このキーワードとしては、上記グループの分類の際に用いたものと同じものを採用することができる。
【0067】
索引部203は、必要な文書の各種の情報を転置索引表を用いることにより高速にグループスコアを計算することができるようにする。転置索引表は、検索要求に含まれるキーワード(やこれに対応するID)を与えると、当該キーワードが出現する位置ならびに統計情報が得られるものである。転置索引表は、キーワード等をキーとするハッシュやB木、トライ構造などの公知の技術によって構成することができる。
【0068】
なお、検索部207には、各グループに対応付けられたデータベース(DB)が用意されており、このデータベースには、各グループにまた、検索対象文書のURL等と合わせて、属する検索対象文書そのものやこれを前処理したものを記録しておく。
【0069】
これ以外に記憶されることが望ましい情報については、その他の実施形態として後述する。
【0070】
図4は、本実施形態に係る検索装置において実行させる検索応答処理の流れを示すフローチャートである。
【0071】
入力受付部204は、検索要求の入力を受け付ける(ステップS401)。受け付ける検索要求は、適切なキーワードにより表現されるように正規化されたものであることが望ましい。また、キーワードに適宜重み付けをしてもよい。正規化には、データベース検索の種々の技法を用いることができる。
【0072】
そして、グループスコア計算部205は、分割された複数のグループのそれぞれについて、索引部203に記憶された情報を参照して入力を受け付けられた検索要求に対するグループスコアを計算する(ステップS402)。
【0073】
本実施形態では、グループスコアの計算にも、ベクトルの余弦を用いる。すなわち、n個のグループのそれぞれについて、当該キーワードが出現する検索対象文書の数を要素とするベクトルと同じ向きの単位ベクトルを考える。一方、検索要求に対しても、その検索要求に出現するキーワードの数(に重み付けをしたもの)を要素とするベクトルを求める。そして、その各単位ベクトルと、求めた検索要求のベクトルとの余弦を計算し、これをグループスコアとする。本手法による場合、グループスコアの値は、0以上1以下となり、大きければ大きいほど、2つのベクトルが張る角は小さいことになる。
【0074】
一方、グループ選択部206は、計算されたグループスコアにより、複数のグループからいずれか1つ以上のグループを選択する(ステップS403)。
【0075】
本実施形態では、グループスコアが大きいものからいずれかあらかじめ定めた数だけグループを選択する。
【0076】
さらに、検索部207は、選択された1つ以上のグループのそれぞれについて、入力を受け付けられた検索要求により、並列に検索を行う(ステップS404)。
【0077】
検索部207において各グループにはDBがそれぞれ割り当てられているが、そのそれぞれ専用の検索を行うシステム(Q)が割り当てられている。したがって、各Qが各DBに対する検索を並列に実行することができる。
【0078】
ユーザが求める検索対象文書が属するグループは、2つのベクトルが張る角が小さいものである可能性が極めて高いと考えられるため、これらについてのみデータベース検索処理を行えば、必要な情報はほぼ得られることとなる。一方で、不必要なデータベース検索処理は行わないため、適切に負荷分散を図ることができる。また、データベース検索処理を並列に行うため、待ち時間の短かい検索が可能となる。
【0079】
そして、併合部208は、選択された1つ以上のグループのそれぞれについて検索された結果を併合して、これを入力を受け付けられた検索要求に対する検索結果として出力する(ステップS405)。
【0080】
併合の手法については、以下のようなものが考えられる。
【0081】
もっとも単純には、選択された1つ以上のグループのそれぞれについて検索された結果を当該結果に含まれる検索対象文書が得られた順に併合して、その順に出力する。
【0082】
これらの各部のそれぞれに対して、上記のサブ装置を1つもしくは複数割り当ててもよいし、これらの各部の任意の組み合わせに対して上記のサブ装置を1つもしくは複数割り当ててもよい。ただし、検索部207には、グループの数と同じサブ装置を割り当て、それぞれのグループにおける検索が独立に並列に検索ができるようにすることが望ましい。
【0083】
この手法では、複数のデータベースシステムにおいて検索処理が行われた場合には、検索対象文書が得られた順にユーザにこれを提示して、待ち時間を減らすことができるようになる。
【0084】
このほか、検索部207に、選択された1つ以上のグループのそれぞれについて、当該グループに含まれる文書に対して入力を受け付けられた検索要求により、文書スコアを計算させ、計算されたグループスコアと、計算された文書スコアと、を参照して、総合スコアを計算し、入力を受け付けられた検索要求に対する検索結果を、当該総合スコアの順に出力するようにしてもよい。
【0085】
文書スコアは、たとえば、当該検索対象文書が含むキーワードのベクトルと入力要求のベクトルとの余弦を計算することにより得ることができる。総合スコアは、グループスコアと文書スコアの線形和とする等の手法が考えられる。
【0086】
この手法では、総合スコアを用いて検索結果をユーザに提示する順番を適切に決定し、ユーザが望む要望に応じた順序で検索結果を提示できるようになる。
【0087】
このように、本実施形態では、あらかじめ所定の基準により検索対象文書をグループに分類するとともに、検索要求から当該基準に対応するグループスコアを計算し、これによって検索すべきグループを選択して、負荷分散を図るとともに、ユーザは短い待ち時間で検索結果を得ることができるようになる。
【0088】
また、索引作成処理と検索応答処理とは独立に実行することができる。たとえば、所定の期間おきに、あるいは、検索応答処理を実行していない状態(ユーザからの検索要求の入力待ちのアイドル状態)が一定時間以上継続した時に、索引作成処理を行うなどの態様が考えられる。
【0089】
(グループ化の実施形態)
以下では、種々の検索対象文書のグループ化の実施形態について詳細に説明する。まず、文書の内容に依存した分類の手法である。
【0090】
第1の手法は、分類カテゴリを示すラベルが1つ以上付与された事例文書をあらかじめN個用意して、これとの類似度により各分類カテゴリへ分類を行うものである。ラベルの種類はn種類である。
【0091】
文書同士の類似度(スコア)の計算には、種々の手法があり、上記のようにキーワードの出現頻度のベクトルを用いてその間の余弦(内積)を類似度とするものなどが考えられる。
【0092】
ある検索対象文書と、事例文書のそれぞれと、の類似度を計算し、これをスコアとして、スコアの上位M個(M≦N)の事例文書を選ぶ。
【0093】
そして、各スコアをその事例文書に付与されたラベルに対する得点に加算する。同じラベルが異なる事例文書に付与されていることがあるため、ラベルの得点は、複数の事例文書のスコアを加算したものとなることがある。
【0094】
そして、得点が一位のラベルにより表現される分類カテゴリに当該検索対象文書を分類する。
【0095】
第2の手法は、やはり類似検索を利用したものである。本手法では、分類の際に適当な検索要求を用意する。
【0096】
そして、類似検索を用いて、この検索要求に対する各検索対象文書のスコアを計算し、上位1個の検索対象文書を得る。
【0097】
次に、上位1位の文書を次の検索要求として、残りの各検索対象文書のスコアを計算する。この検索対象文書のスコアを第1次スコアと呼ぶ。そして、第1次スコアの上位M1個(M1≦N)を選択し、これを1番目のグループとする。
【0098】
以下同様に、次に、第1次スコアが2位以下の文書で、かつ、1番目のグループに属しない文書を次の検索要求として、それ以外の各検索対象文書のスコアを計算し、第2次スコアを得て、第2次スコアの上位M2個(M2≦N)を選択し、これを2番目のグループとする。
【0099】
そして、1番目と2番目のグループの共通要素は、そのスコアが高い方のグループに分類し直す。
【0100】
さらに、1番目と2番目のグループのいずれにも属しない検索対象文書を選択して、同様の処理を繰り返して、文書を分類する。
【0101】
このように文書の内容に依存するような各種の文書分類の手法を本発明に適用することができる。
【0102】
以下では、文書の内容に依存しない分類方法について詳細に説明する。これは、文書の内容ではなく、文書の外見的な特徴に注目するものである。すなわち、以下のような情報に基づいて分類を行う。
・文書の作成日時、更新日時。
・文書の作成者。
・文書の管理番号。
・文書に含まれる何らかの明示的な記述子。たとえば、HTML文書におけるMETAタグ内のキーワードの記述等。
・文書の配置された場所。URLやファイルシステム上の絶対パス等。
【0103】
木構造をなすURLにより分類する場合について説明する。この木構造を任意の深さの断面で切断することにより、複数のグループに分割することができる。そして、そのそれぞれのグループに属する検索対象文書の数を調べ、これが所定の数よりも大きい場合は、さらに深い断面で再分割する。一方、所定の数よりも小さい場合は、いずれか他のグループと併合する。各グループに含まれる検索対象文書の数が所望の範囲になるまでこれを繰り返す。
【0104】
このように、これらの情報を用いて分類する場合には、容易に大量の文書を分類することができる。
【0105】
(グループスコアの計算の実施形態)
以下では、グループスコアの計算の実施形態について詳細に説明する。
【0106】
グループスコアを計算する前に、まず準備として、入力された検索要求に含まれるタームの集合を構成する。適宜これらのタームをシソーラスを使って拡張したり、正規化をしておくことが望ましい。また、得られた検索結果の文書から特徴語を抽出して、当該ターム集合に追加してもよい。
【0107】
n個のグループがある場合、各タームtに対するグループcのグループスコアscore(t,c)の計算手法には、たとえば、以下のようなものがある。
【0108】
(1)DF×ICF1と呼ばれるもの。以下のような計算式を用いる。
score(t,c) = DF×ICF
ただし
DF = dfc/(dfc + K);
ICF = log((n+0.5)/CF)/log(n+1.0);
Kはempiricall yにより定められる定数;
dfcはタームtが出現する文書のグループc内における割合;
CFはタームtが現れる文書を含むグループの数
【0109】
(2)DF×ICF2と呼ばれるもの。以下のような計算式を用いる。
score(t,c) = DF×ICF
ただし
DF = dt + (1-dt)×dfc/maxc(dfc);
ICF = log(n/CF);
dtは0以上1以下の定数、典型的には0.5;
dfcはタームtが出現する文書のグループc内における割合;
maxc(dfc)は各グループのdfcの最大の値;
CFはタームtが現れる文書を含むグループの数
【0110】
(3)DF×AVG-IDFと呼ばれるもの。以下のような計算式を用いる。
score(t,c) = DF×AVGICF
ただし
DF = dt + (1-dt)×dfc/maxc(dfc);
AVGICF = (1/n)Σclog(n/dfc) + 1;
dtは0以上1以下の定数、典型的には0.5;
dfcはタームtが出現する文書のグループc内における割合;
maxc(dfc)は各グループのdfcの最大の値
【0111】
このような計算式により、各タームtに対するグループcのスコアが得られる。そこで、検索要求に含まれるタームのスコアの総和を、当該グループcのグループスコアとする。
【0112】
これらの計算を行うためには、索引部203は、「グループに含まれる検索対象文書が含む全単語数」「グループに含まれるタームの出現文書数」「タームが出現する文書を含むグループの数」などの情報を記憶しておく必要がある。
【0113】
このほか、以下のような処理を行ってもよい。
【0114】
DF×ICF1においてKの値を小さくしたり、DF×ICF2やDF×AVGICFにおいてdtの値を小さくしたりすると、サイズが大きい(グループ内に含まれる文書の数が多い)グループのスコアが大きくなる傾向にある。したがって、再現率を重視するか、初期精度を重視するか、によって、これらの値をグループスコア計算時にユーザの指示によって調整することとする。
【0115】
また、得られるスコアの総和sを、以下のような計算式により調整して、これをグループスコアとしてもよい。
s×(log(n)+k)
パラメータkを調整することにより、グループスコアを望ましい値とすることができる。
【0116】
また、検索要求に含まれるターム数が多い場合は、CFが大きいタームについては、計算を行わずにscore(t,c) = 0としてしまう手法も考えられる。また、このようなタームをストップワードとして、索引部203には登録しないこととするのも効果的である。
【0117】
さらに、各グループごとに優先タームを割り当て、優先タームが検索要求に含まれる場合は、そのグループを優先的に選択する(最も高いスコアとする)ような態様も考えられる。
【0118】
【発明の効果】
以上説明したように、本発明によれば、高速な検索を行うのに好適な検索装置、検索方法、ならびに、これらをコンピュータに実現させるためのプログラムを提供することができる。
【図面の簡単な説明】
【図1】 本発明の検索装置を構成するサブ装置を実現する典型的な情報処理装置の概要構成を示す模式図である。
【図2】 本実施形態に係る検索装置の概要構成を示す模式図である。
【図3】 本実施形態に係る索引作成処理の制御の流れを示すフローチャートである。
【図4】 本実施形態に係る検索応答処理の制御の流れを示すフローチャートである。
【符号の説明】
101 情報処理装置
102 CPU
103 ROM
104 HD
105 キーボード
106 マウス
107 RAM
108 表示装置
109 インターフェース
110 FDドライブ
111 CD−ROMドライブ
201 検索装置
202 グループ分割部
203 索引部
204 入力受付部
205 グループスコア計算部
206 グループ選択部
207 検索部
208 併合部
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a search device suitable for performing a high-speed search, a search method, and a program for causing a computer to implement these search methods.
[0002]
[Prior art]
2. Description of the Related Art Conventionally, a search system has been proposed in which a search target document is registered in a database, and when a search request is given to the database, a document that conforms to the search request is output as a search result.
[0003]
Even in the field of Internet technology, which has been remarkably popular in recent years, the URL (Universal Resource Locator) of websites that collect information on websites around the world, create a database, and adapt to search requests from users. Internet search engines are also provided by each company.
[0004]
[Problems to be solved by the invention]
However, in order to enable a large-scale search, it is necessary to increase the size and number of databases. In such a case, the input / output and communication amount with the database, and the processing amount of the database itself increase. As a result, the time (waiting time) required for the search becomes long and the load on each database system may increase.
[0005]
Japanese Patent Application Laid-Open No. 11-39324 discloses a search technique in which a plurality of search subsystems are prepared, a tendency of a search request issued by a user is analyzed in advance, and one of the search subsystems is selected to perform load distribution. Although disclosed, depending on the situation, the effect of this technique may not be obtained. Therefore, there is a great demand for various load distribution techniques to cope with various situations.
[0006]
The present invention solves the above-described problems, and an object of the present invention is to provide a search device and a search method suitable for performing high-speed search, and a program for causing a computer to implement them.
[0007]
[Means for Solving the Problems]
In order to achieve the above object, the following invention is disclosed in accordance with the principle of the present invention.
[0008]
A search device according to a first aspect of the present invention includes a group division unit, an index unit, an input reception unit, a group score calculation unit, a group selection unit, a search unit, and a merge unit, The configuration is as follows.
[0009]
That is, the group dividing unit divides the search target document into a plurality of groups.
[0010]
On the other hand, the index unit, for each of the plurality of divided groups, information of the group, the keyword that appears in the search target document included in the group, and the number of search target documents in which the keyword appears Store in association with each other.
[0011]
Further, the input receiving unit receives an input of a search request.
[0012]
And a group score calculation part calculates the group score with respect to the search request | requirement which was input with reference to the information memorize | stored in the index part about each of the some divided | segmented group.
[0013]
On the other hand, the group selection unit selects one or more groups from a plurality of groups based on the calculated group score.
[0014]
Further, the search unit searches in parallel for each of the selected one or more groups in response to a search request that has been accepted as an input.
[0015]
Then, the merging unit merges the results searched for each of the selected one or more groups, and outputs this as a search result for the search request for which the input has been accepted.
[0016]
According to the present invention, the search target documents are classified into groups based on a predetermined criterion in advance, a group score corresponding to the criterion is calculated from the search request, and a group to be searched is selected thereby, and load distribution is achieved. The user can obtain search results with a short waiting time.
[0017]
In the search device of the present invention, the index unit further stores, for each of the plurality of divided groups, information on the group and the total number of words included in the search target document included in the group in association with each other. It can be constituted as follows.
[0018]
Further, in the search device of the present invention, the index unit, for each of the plurality of divided groups, for the group and all keywords included in the search target document included in the group, the keyword, the group, and the group The number of documents in which the keyword appears can be stored in association with each other.
[0019]
These inventions are one of the preferred embodiments of the above invention, and the calculation of the group score includes “the total number of words included in the search target document included in the group”, “the number of appearance documents of the keyword included in the group”, etc. Information can be used.
[0020]
The search device of the present invention can be configured as follows.
[0021]
That is, for each of one or more selected groups, the search unit calculates a document score according to a search request that is accepted for input to a document included in the group.
[0022]
On the other hand, the merging unit refers to the calculated group score and the calculated document score, calculates the total score, and outputs the search results for the search request accepted for input in the order of the total score. .
[0023]
According to the present invention, it is possible to appropriately determine the order in which the search results are presented to the user using the total score, and to present the search results in the order according to the desire desired by the user.
[0024]
In the search device of the present invention, the merging unit merges the results searched for each of the selected one or more groups in the order in which the search target documents included in the results are obtained, and outputs them in that order. It can be constituted as follows.
[0025]
According to the present invention, when retrieval processing is performed in a plurality of database systems, it is possible to reduce the waiting time by presenting the retrieval target document to the user in the order in which the retrieval target documents are obtained.
[0026]
The search device of the present invention can be configured as follows.
[0027]
That is, each search target document is associated with a URL.
[0028]
On the other hand, when the number of search target documents included in each group exceeds the number of desired ranges, the group division unit divides the URL tree structure associated with the search target documents in the width direction. Subdivide the group.
[0029]
Further, when the number is less than the desired number, the group and another group are merged so that the number of search target documents included in the group after merging is equal to or less than the number of desired ranges.
[0030]
According to the present invention, an appropriate number of groups can be configured based on the URL tree structure.
[0031]
Further, in the search device of the present invention, the group dividing unit calculates a cosine of a vector composed of the frequencies of a plurality of words appearing in each search target document and a predetermined vector, and depending on the calculation result The search target document can be configured to be classified.
[0032]
According to the present invention, a feature of a document is expressed as a vector, and a cosine having information corresponding to an angle between the vector and a predetermined vector is calculated to calculate a “similarity” (how much) to the predetermined vector. The document can be divided into groups depending on whether the corner is small.
[0033]
In the search device of the present invention, the group score calculation unit performs a predetermined similarity calculation (including calculation of the cosine of both) on the search request that has been accepted and the predetermined vector. This can be configured as a group score.
[0034]
According to the present invention, the feature of the search request is represented by a vector, and the search request is classified into one or more groups based on the “similarity” between this and the “predetermined vector” used for document classification. It becomes possible to sort.
[0035]
In the search device of the present invention, the group dividing unit is configured to calculate a document score for each search target document according to a predetermined search request and classify the search target document according to the calculation result. be able to.
[0036]
According to the present invention, the document score used to determine the order in which the documents are arranged can be used for grouping.
[0037]
A search method according to another aspect of the present invention includes a group division process, an index process, an input reception process, a group score calculation process, a group selection process, a search process, and a merge process. Configure as follows.
[0038]
That is, in the group dividing step, the search target document is divided into a plurality of groups.
[0039]
On the other hand, in the indexing process, for each of the plurality of divided groups, information on the group, the keyword appearing in the search target document included in the group, and the number of search target documents in which the keyword appears is associated. Add and remember.
[0040]
Further, in the input receiving process, an input of a search request is received.
[0041]
In the group score calculation step, for each of the plurality of divided groups, a group score for a search request that is accepted by referring to stored information is calculated.
[0042]
On the other hand, in the group selection step, one or more groups are selected from a plurality of groups based on the calculated group score.
[0043]
Further, in the search step, search is performed in parallel for each of the selected one or more groups in response to a search request that has been accepted as input.
[0044]
In the merging step, the search results for each of the selected one or more groups are merged and output as search results for the search request that has been accepted as input.
[0045]
A program according to another aspect of the present invention is configured to cause a computer to function as the search device described above or to cause the computer to execute the registration method described above.
[0046]
The above program can be recorded on various recording media such as CD-ROM (Compact Disk Read Only Memory) and FD (Flexible Disk) and distributed via a computer communication network such as the Internet. Can do.
[0047]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below with reference to the accompanying drawings.
[0048]
(Outline configuration of information processing device)
FIG. 1 is a schematic diagram showing a schematic configuration of a typical information processing apparatus that can function as a sub apparatus constituting the search apparatus of the present invention by processing a recording medium in which the data structure of the present invention is recorded. Hereinafter, a description will be given with reference to FIG.
[0049]
The information processing apparatus 101 is controlled by a CPU (Central Processing Unit) 102. When the information processing apparatus 101 is turned on, the CPU 102 executes an IPL (Initial Program Loader) stored in the ROM 103.
[0050]
The IPL reads and executes an OS (Operating System) program stored in a recording medium such as the hard disk 104, the FD attached to the FD drive 110, and the CD-ROM attached to the CD-ROM drive 111. It is a program.
[0051]
After starting the OS, the CPU 102 executes an application program stored in the hard disk or the like in accordance with a user instruction input with the keyboard 105 or the mouse 106 or in accordance with the contents of a setting file described in advance on the hard disk or the like. Execute.
[0052]
By executing the application program, the information processing apparatus 101 functions as a sub apparatus.
[0053]
As a result, the management information of the sub device can be input, and the sub device responsible for the dialogue with the user can accept the input of the search request from the user.
[0054]
The CPU 102 uses the RAM 107 as a temporary work storage area when executing these programs. In addition, a register or a cache (not shown) provided in the CPU 102 is used as a temporary working storage area.
[0055]
As the program is executed, the CPU 102 reports the result to the user, shows the progress of the program, and presents management information. Can be displayed. In the instruction operation using the mouse 106, the cursor displayed on the screen is moved by moving the mouse 106, and the menu item pointed to by the cursor can be selected by clicking the mouse 106.
[0056]
The information processing apparatus 101 can communicate with each other via an interface 109 such as a NIC (Network Interface Card) or a modem, and can communicate with a computer communication network such as the Internet. In addition, a program received via the interface 109 can be executed.
[0057]
(Embodiment of the present invention)
In the following description, for ease of understanding, an embodiment of the present invention will be described by taking as an example a case where the present invention is applied to an Internet search engine. FIG. 2 is a schematic diagram showing a schematic configuration of the search device according to the present embodiment. Hereinafter, a description will be given with reference to FIG.
[0058]
The search device 201 of the present embodiment includes a group dividing unit 202, an index unit 203, an input receiving unit 204, a group score calculating unit 205, a group selecting unit 206, a searching unit 207, and a merging unit 208. Prepare.
[0059]
FIG. 3 is a flowchart showing the flow of index creation processing executed in the search device according to the present embodiment.
[0060]
The group dividing unit 202 divides the search target document into a plurality of groups (step S301). In this embodiment, the search target document is an HTML (Hyper Text Markup Language) document that exists on each website in the Internet. This is divided into a plurality of groups by the following method.
[0061]
The group division unit 202 calculates, for each of the search target documents, a cosine between a vector including a frequency of a plurality of words appearing therein and a predetermined vector, and classifies the search target document according to the calculation result. It is.
[0062]
Consider m vectors that are expected to be frequently used for search in advance, and consider a vector whose frequency is the frequency at which each keyword appears in the search target document.
[0063]
For example, when dividing into n groups, n unit vectors different from each other are appropriately prepared as “predetermined vectors”.
[0064]
Then, by calculating the cosine of each unit vector and the vector of the search target document, the one with the smallest angle between the unit vector and the vector of the search target document can be selected. Then, the search target document may be classified into a group associated with the selected unit vector.
[0065]
Other classification methods will be described later as other embodiments.
[0066]
On the other hand, for each of the plurality of divided groups, the index unit 203 includes information on the group, the keyword that appears in the search target document included in the group, and the number of search target documents in which the keyword appears. The data is stored in association with each other (step S302). As this keyword, the same keyword used in the above-mentioned group classification can be adopted.
[0067]
The index unit 203 can calculate a group score at high speed by using a transposed index table of various pieces of information of necessary documents. In the inverted index table, when a keyword (or an ID corresponding to the keyword) included in the search request is given, a position where the keyword appears and statistical information can be obtained. The inverted index table can be constructed by a known technique such as hash, B-tree, or trie structure using keywords as keys.
[0068]
The search unit 207 is provided with a database (DB) associated with each group, and the search target document itself belonging to each group together with the URL of the search target document and the like is also included in this database. Or a pre-processed version of this.
[0069]
Information that is desirably stored other than this will be described later as other embodiments.
[0070]
FIG. 4 is a flowchart showing the flow of search response processing executed in the search device according to the present embodiment.
[0071]
The input reception unit 204 receives a search request input (step S401). The search request to be accepted is preferably normalized so as to be expressed by an appropriate keyword. Moreover, you may weight a keyword suitably. For normalization, various database search techniques can be used.
[0072]
Then, the group score calculation unit 205 calculates, for each of the plurality of divided groups, a group score for a search request that has been accepted by referring to information stored in the index unit 203 (step S402).
[0073]
In this embodiment, the cosine of the vector is also used for calculating the group score. That is, for each of the n groups, a unit vector in the same direction as a vector whose element is the number of search target documents in which the keyword appears is considered. On the other hand, for a search request, a vector whose element is the number of keywords appearing in the search request (weighted) is obtained. Then, the cosine of each unit vector and the obtained search request vector is calculated, and this is used as the group score. In the case of this method, the value of the group score is 0 or more and 1 or less, and the larger the value, the smaller the angle between the two vectors.
[0074]
On the other hand, the group selection unit 206 selects one or more groups from the plurality of groups based on the calculated group score (step S403).
[0075]
In the present embodiment, a predetermined number of groups are selected from those having a large group score.
[0076]
Further, the search unit 207 searches in parallel for each of the selected one or more groups in response to a search request that has been accepted (step S404).
[0077]
A DB is assigned to each group in the search unit 207, and a system (Q) for performing a dedicated search is assigned to each group. Therefore, each Q can execute a search for each DB in parallel.
[0078]
The group to which the search target document that the user wants belongs is very likely to have a small angle between two vectors, so if database search processing is performed only on these, the necessary information can be almost obtained. It becomes. On the other hand, since unnecessary database search processing is not performed, load distribution can be appropriately achieved. In addition, since the database search process is performed in parallel, a search with a short waiting time is possible.
[0079]
Then, the merging unit 208 merges the results searched for each of the selected one or more groups, and outputs this as a search result for the search request that has been accepted (step S405).
[0080]
The following can be considered as a method of merging.
[0081]
Most simply, the search results for each of the selected one or more groups are merged in the order in which the search target documents included in the results are obtained, and output in that order.
[0082]
One or more of the above-mentioned sub devices may be assigned to each of these units, or one or more of the above-mentioned sub devices may be assigned to any combination of these units. However, it is desirable to assign the same number of sub-devices as the number of groups to the search unit 207 so that searches in each group can be independently performed in parallel.
[0083]
In this method, when search processing is performed in a plurality of database systems, the search target documents are presented to the user in the order in which the search target documents are obtained, and the waiting time can be reduced.
[0084]
In addition, for each of one or more selected groups, the search unit 207 calculates a document score according to a search request that is accepted for a document included in the group, and calculates the calculated group score and The total score may be calculated with reference to the calculated document score, and the search results for the search request accepted for input may be output in the order of the total score.
[0085]
The document score can be obtained, for example, by calculating a cosine between a keyword vector and an input request vector included in the search target document. The total score is the linear sum of the group score and the document score Etc. Can be considered.
[0086]
In this method, the order in which the search results are presented to the user is appropriately determined using the total score, and the search results can be presented in the order according to the desire desired by the user.
[0087]
As described above, in this embodiment, the search target documents are classified into groups based on a predetermined criterion in advance, a group score corresponding to the criterion is calculated from the search request, and a group to be searched is selected by this, and the load is calculated. In addition to achieving dispersion, the user can obtain search results with a short waiting time.
[0088]
Also, the index creation process and the search response process can be executed independently. For example, an index creation process may be performed every predetermined period or when a search response process is not being executed (idle state waiting for a search request input from a user) for a predetermined time or longer. It is done.
[0089]
(Embodiment of grouping)
In the following, embodiments of grouping various search target documents will be described in detail. First, it is a classification method depending on the contents of a document.
[0090]
In the first method, N case documents to which one or more labels indicating classification categories are assigned are prepared in advance, and classification is performed according to the degree of similarity with the case documents. There are n types of labels.
[0091]
There are various methods for calculating the degree of similarity (score) between documents. As described above, using a keyword appearance frequency vector, the cosine (inner product) between them is used as the degree of similarity.
[0092]
The degree of similarity between a certain search target document and each case document is calculated, and this is used as a score to select the top M (M ≦ N) case documents in the score.
[0093]
Then, each score is added to the score for the label given to the case document. Since the same label may be assigned to different case documents, the score of the label may be a sum of scores of a plurality of case documents.
[0094]
Then, the search target document is classified into a classification category represented by a label having the highest score.
[0095]
The second method also uses a similar search. In this method, an appropriate search request is prepared for classification.
[0096]
Then, using the similar search, the score of each search target document for this search request is calculated, and the top one search target document is obtained.
[0097]
Next, the top first document is used as the next search request, and the score of each remaining search target document is calculated. This score of the search target document is called a primary score. And the top M of the primary score 1 Pieces (M 1 ≦ N) and select this as the first group.
[0098]
Similarly, next, a document whose primary score is second or lower and which does not belong to the first group is used as the next search request, and the score of each other search target document is calculated. Obtain secondary score, top M of secondary score 2 Pieces (M 2 ≦ N) and select this as the second group.
[0099]
Then, the common elements of the first and second groups are reclassified into the group with the higher score.
[0100]
Further, a search target document that does not belong to either the first group or the second group is selected, and the same processing is repeated to classify the documents.
[0101]
As described above, various document classification methods depending on the contents of the document can be applied to the present invention.
[0102]
Hereinafter, a classification method that does not depend on the contents of a document will be described in detail. This focuses on the apparent features of the document, not the content of the document. That is, classification is performed based on the following information.
-Document creation date, update date.
・ Document creator.
-Document management number.
Any explicit descriptor included in the document. For example, description of keywords in META tags in HTML documents.
-Where the document is located. URL or absolute path on the file system.
[0103]
A case where classification is performed based on a URL having a tree structure will be described. The tree structure can be divided into a plurality of groups by cutting it with a cross section having an arbitrary depth. Then, the number of search target documents belonging to the respective groups is checked, and if this is larger than a predetermined number, the document is re-divided in a deeper section. On the other hand, if it is smaller than the predetermined number, it is merged with any other group. This is repeated until the number of search target documents included in each group falls within a desired range.
[0104]
Thus, when classifying using such information, a large amount of documents can be easily classified.
[0105]
(Embodiment of calculation of group score)
In the following, embodiments of group score calculation will be described in detail.
[0106]
Before calculating the group score, first, as a preparation, a set of terms included in the input search request is configured. It is desirable to extend these terms using a thesaurus or normalize them as appropriate. Also, feature words may be extracted from the obtained search result document and added to the term set.
[0107]
When there are n groups, the method for calculating the group score score (t, c) of the group c for each term t includes, for example, the following.
[0108]
(1) DF x ICF 1 What is called. The following calculation formula is used.
score (t, c) = DF × ICF
However,
DF = df c / (df c + K);
ICF = log ((n + 0.5) / CF) / log (n + 1.0);
K is a constant determined by empiricall y;
df c Is the proportion of documents in group c in which the term t appears;
CF is the number of groups containing documents in which the term t appears
[0109]
(2) DF x ICF 2 What is called. The following calculation formula is used.
score (t, c) = DF × ICF
However,
DF = dt + (1-dt) × df c / max c (df c );
ICF = log (n / CF);
dt is a constant not less than 0 and not more than 1, typically 0.5;
df c Is the proportion of documents in group c in which the term t appears;
max c (df c ) For each group df c The maximum value of;
CF is the number of groups containing documents in which the term t appears
[0110]
(3) What is called DF × AVG-IDF. The following calculation formula is used.
score (t, c) = DF × AVGICF
However,
DF = dt + (1-dt) × df c / max c (df c );
AVGICF = (1 / n) Σ c log (n / df c ) + 1;
dt is a constant not less than 0 and not more than 1, typically 0.5;
df c Is the proportion of documents in group c in which the term t appears;
max c (df c ) For each group df c The maximum value of
[0111]
With such a calculation formula, a score of group c for each term t is obtained. Therefore, the sum of the term scores included in the search request is set as the group score of the group c.
[0112]
In order to perform these calculations, the index unit 203 determines that “the total number of words included in the search target documents included in the group” “the number of occurrence documents of the term included in the group” “the number of groups including the document in which the term appears. It is necessary to memorize information such as “
[0113]
In addition, the following processing may be performed.
[0114]
DF × ICF 1 Decrease the value of K in DF × ICF 2 If the value of dt is decreased in DF × AVGICF, the score of a group having a large size (the number of documents included in the group is large) tends to increase. Therefore, these values are adjusted according to the user's instruction when calculating the group score depending on whether the reproduction rate is important or the initial accuracy is important.
[0115]
Further, the total score s obtained may be adjusted by the following calculation formula to be used as a group score.
s × (log (n) + k)
By adjusting the parameter k, the group score can be set to a desirable value.
[0116]
In addition, when the number of terms included in the search request is large, a method of setting score (t, c) = 0 without calculating for a term having a large CF can be considered. It is also effective to not register such terms as stop words in the index unit 203.
[0117]
Furthermore, a priority term is assigned to each group, and when the priority term is included in the search request, a mode in which the group is preferentially selected (with the highest score) is also conceivable.
[0118]
【The invention's effect】
As described above, according to the present invention, it is possible to provide a search device suitable for performing a high-speed search, a search method, and a program for causing a computer to realize them.
[Brief description of the drawings]
FIG. 1 is a schematic diagram showing a schematic configuration of a typical information processing apparatus that implements a sub apparatus constituting a search apparatus of the present invention.
FIG. 2 is a schematic diagram showing a schematic configuration of a search device according to the present embodiment.
FIG. 3 is a flowchart showing a flow of control of index creation processing according to the present embodiment.
FIG. 4 is a flowchart showing a control flow of search response processing according to the present embodiment.
[Explanation of symbols]
101 Information processing apparatus
102 CPU
103 ROM
104 HD
105 keyboard
106 mice
107 RAM
108 Display device
109 interface
110 FD drive
111 CD-ROM drive
201 Search device
202 Group division
203 Index
204 Input reception part
205 Group score calculator
206 Group selection part
207 Search part
208 annex

Claims (8)

検索対象文書を複数のグループに分割するグループ分割部と、
前記分割された複数のグループのそれぞれについて、当該グループと、当該グループに含まれる検索対象文書に出現するキーワードと、当該キーワードが出現する検索対象文書の数と、の情報を対応付けて記憶する索引部と、
検索要求の入力を受け付ける入力受付部と、
前記分割された複数のグループのそれぞれについて、前記入力を受け付けられた検索要求に出現するキーワードの数、もしくは、当該キーワードの数に重み付けをしたものを要素とするベクトルと、前記索引部に記憶された当該グループにおいて当該キーワードが出現する検索対象の文書の数を要素とするベクトルと、の余弦を計算し、当該計算された余弦の値をグループスコアとするグループスコア計算部と、
前記計算されたグループスコアにより、前記複数のグループからいずれか1つ以上のグループを選択するグループ選択部と、
前記選択された1つ以上のグループのそれぞれについて、前記入力を受け付けられた検索要求により、並列に検索を行う検索部と、
前記選択された1つ以上のグループのそれぞれについて検索された結果を併合して、これを前記入力を受け付けられた検索要求に対する検索結果として出力する併合部と、
を備え、
前記検索部は、前記選択された1つ以上のグループのそれぞれについて、当該グループに含まれる文書に対して前記入力を受け付けられた検索要求に出現するキーワードの数を要素とするベクトルと、当該文書に当該キーワードが出現する回数を要素とするベクトルと、の余弦を計算し、当該計算された余弦の値を文書スコアとし、
前記併合部は、前記計算されたグループスコアと、前記計算された文書スコアと、の線形和を計算して、これを総合スコアとし、前記入力を受け付けられた検索要求に対する検索結果を、当該総合スコアの順に出力する
ことを特徴とする検索装置。
A group division unit for dividing the search target document into a plurality of groups;
For each of the plurality of divided groups, an index that associates and stores information on the group, a keyword that appears in a search target document included in the group, and the number of search target documents in which the keyword appears And
An input receiving unit that receives an input of a search request;
For each of the plurality of divided groups, the number of keywords appearing in the search request for which the input has been accepted, or a vector whose elements are weighted to the number of the keywords, are stored in the index unit. A vector whose element is the number of documents to be searched for in which the keyword appears in the group, and a group score calculation unit which calculates a cosine of the calculated cosine value and a group score.
A group selection unit that selects one or more groups from the plurality of groups based on the calculated group score;
For each of the one or more selected groups, a search unit that performs a search in parallel according to a search request that has received the input;
Merging the results searched for each of the selected one or more groups, and outputting the result as a search result for the search request received the input;
With
The search unit includes, for each of the selected one or more groups, a vector whose elements are the number of keywords appearing in a search request for which the input is accepted for documents included in the group, and the document A vector whose element is the number of times the keyword appears in, and the cosine of the vector, the calculated cosine value as the document score,
The merging unit calculates a linear sum of the calculated group score and the calculated document score, sets this as a total score, and sets a search result for the search request accepted as the input as the total score. A search device that outputs in the order of scores.
請求項1に記載の検索装置であって、
当該検索対象文書には、それぞれURL(Universal Resource Locator)が対応付けられ、
前記グループ分割部は、前記検索対象文書を、各グループに含まれる検索対象文書の数が
(a)所望の範囲の数を超える場合は、これに対応付けられたURLの木構造をある深さの断面で切断することによりグループを再分割し、
(b)所望の範囲の数未満である場合は、当該グループと他のグループとを、併合後のグループに含まれる検索対象文書の数が所望の範囲の数以下となるように、併合する
ことを特徴とする検索装置。
The search device according to claim 1,
Each search target document is associated with a URL (Universal Resource Locator),
The group dividing unit determines that the search target documents include a tree structure of URLs associated with the search target documents when the number of search target documents included in each group exceeds (a) the number of desired ranges. Subdivide the group by cutting at
(B) If the number is less than the number of desired ranges, merge the group and other groups so that the number of search target documents included in the merged group is less than or equal to the number of desired ranges. A search device characterized by.
請求項1または2に記載の検索装置であって、
前記索引部は、前記分割された複数のグループのそれぞれについて、グループと、当該グループに含まれる検索対象文書が含む全単語数と、の情報を対応付けてさらに記憶する
ことを特徴とする検索装置。
The search device according to claim 1 or 2,
The indexing unit further stores, for each of the plurality of divided groups, information on a group and the total number of words included in a search target document included in the group in association with each other. .
請求項1から3のいずれか1項に記載の検索装置であって、
前記索引部は、前記分割された複数のグループのそれぞれについて、グループと、当該グループに含まれる検索対象文書が含む全キーワードについて、当該キーワードと、当該グループと、当該グループ内での当該キーワードの出現文書数と、の情報を対応付けてさらに記憶する
ことを特徴とする検索装置。
The search device according to any one of claims 1 to 3,
For each of the plurality of divided groups, the index unit includes the keyword, the group, and the appearance of the keyword in the group for all keywords included in the search target document included in the group. A search device characterized by further storing information associated with the number of documents.
請求項1から4のいずれか1項に記載の検索装置であって、
前記グループ分割部は、当該検索対象文書のそれぞれについて、これに出現する複数の単語の頻度からなるベクトルと、所定の複数のベクトルとの余弦を計算し、当該検索対象文書を、当該所定の複数のベクトルのうち、その余弦が最大のベクトルに対応付けられるグループに、当該検索対象文書を分類する
ことを特徴とする検索装置。
The search device according to any one of claims 1 to 4,
The group dividing unit calculates, for each of the search target documents, a cosine of a vector composed of frequencies of a plurality of words appearing in the search target document and a predetermined plurality of vectors, and the search target document is determined as the predetermined plurality A search apparatus, wherein the search target document is classified into a group associated with a vector having the largest cosine among the vectors.
請求項1から4のいずれか1項に記載の検索装置であって、The search device according to any one of claims 1 to 4,
前記グループ分割部は、当該検索対象文書のそれぞれに対して、所定の検索要求により文書スコアを計算し、当該計算結果によって当該検索対象文書を分類する  The group dividing unit calculates a document score for each of the search target documents according to a predetermined search request, and classifies the search target documents according to the calculation result.
ことを特徴とする検索装置。  A search device characterized by that.
検索対象文書を複数のグループに分割するグループ分割工程と、A group division process for dividing the search target document into a plurality of groups;
前記分割された複数のグループのそれぞれについて、当該グループと、当該グループに含まれる検索対象文書に出現するキーワードと、当該キーワードが出現する検索対象文書の数と、の情報を対応付けて記憶する索引工程と、  For each of the plurality of divided groups, an index that associates and stores information on the group, a keyword that appears in a search target document included in the group, and the number of search target documents in which the keyword appears Process,
検索要求の入力を受け付ける入力受付工程と、  An input receiving process for receiving an input of a search request;
前記分割された複数のグループのそれぞれについて、前記入力を受け付けられた検索要求に出現するキーワードの数、もしくは、当該キーワードの数に重み付けをしたものを要素とするベクトルと、前記索引工程にて記憶された当該グループにおいて当該キーワードが出現する検索対象の文書の数を要素とするベクトルと、の余弦を計算し、当該計算された余弦の値をグループスコアとするグループスコア計算工程と、  For each of the plurality of divided groups, the number of keywords appearing in the search request for which the input has been accepted, or a vector whose elements are weighted numbers of the keywords, and stored in the indexing step A group score calculation step of calculating a cosine of a vector having the number of documents to be searched for in which the keyword appears in the group as an element, and using the calculated cosine value as a group score;
前記計算されたグループスコアにより、前記複数のグループからいずれか1つ以上のグループを選択するグループ選択工程と、  A group selection step of selecting any one or more groups from the plurality of groups based on the calculated group score;
前記選択された1つ以上のグループのそれぞれについて、前記入力を受け付けられた検索要求により、並列に検索を行う検索工程と、  For each of the one or more selected groups, a search step of performing a search in parallel by a search request that has received the input;
前記選択された1つ以上のグループのそれぞれについて検索された結果を併合して、これを前記入力を受け付けられた検索要求に対する検索結果として出力する併合工程と、  Merging the search results for each of the selected one or more groups, and outputting this as a search result for the search request that received the input;
を備え、  With
前記検索工程では、前記選択された1つ以上のグループのそれぞれについて、当該グループに含まれる文書に対して前記入力を受け付けられた検索要求に出現するキーワードの数を要素とするベクトルと、当該文書に当該キーワードが出現する回数を要素とするベクトルと、の余弦を計算し、当該計算された余弦の値を文書スコアとし、  In the search step, for each of the selected one or more groups, a vector having as an element the number of keywords appearing in the search request that has received the input for the documents included in the group, and the document A vector whose element is the number of times the keyword appears in, and the cosine of the vector, the calculated cosine value as the document score,
前記併合工程では、前記計算されたグループスコアと、前記計算された文書スコアと、の線形和を計算して、これを総合スコアとし、前記入力を受け付けられた検索要求に対する検索結果を、当該総合スコアの順に出力する  In the merging step, a linear sum of the calculated group score and the calculated document score is calculated, and this is used as a total score, and a search result for the search request that has received the input is calculated as the total score. Output in order of score
ことを特徴とする検索方法。  A search method characterized by that.
コンピュータを、請求項1から6のいずれか1項に記載の検索装置として機能させることを特徴とするプログラム。A program that causes a computer to function as the search device according to any one of claims 1 to 6.
JP2002076543A 2002-03-19 2002-03-19 SEARCH DEVICE, SEARCH METHOD, AND PROGRAM Expired - Fee Related JP4230710B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002076543A JP4230710B2 (en) 2002-03-19 2002-03-19 SEARCH DEVICE, SEARCH METHOD, AND PROGRAM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002076543A JP4230710B2 (en) 2002-03-19 2002-03-19 SEARCH DEVICE, SEARCH METHOD, AND PROGRAM

Publications (2)

Publication Number Publication Date
JP2003271648A JP2003271648A (en) 2003-09-26
JP4230710B2 true JP4230710B2 (en) 2009-02-25

Family

ID=29205280

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002076543A Expired - Fee Related JP4230710B2 (en) 2002-03-19 2002-03-19 SEARCH DEVICE, SEARCH METHOD, AND PROGRAM

Country Status (1)

Country Link
JP (1) JP4230710B2 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4760348B2 (en) * 2005-12-07 2011-08-31 ヤマハ株式会社 Music selection apparatus and computer program for music selection
JP5194856B2 (en) * 2007-02-07 2013-05-08 富士通株式会社 Efficient indexing using compact decision diagrams
JP4930153B2 (en) * 2007-03-30 2012-05-16 富士通株式会社 Document search system, document number subsequence acquisition apparatus, and document search method
KR100898458B1 (en) * 2007-08-10 2009-05-21 엔에이치엔(주) Method for searching information and system thereof
KR100898459B1 (en) * 2007-08-10 2009-05-21 엔에이치엔(주) Method for classifying query and system thereof
KR101508939B1 (en) 2013-10-02 2015-04-07 네이버 주식회사 Parallel index method and parallel index system for real-time search
US20170147652A1 (en) * 2015-11-19 2017-05-25 Institute For Information Industry Search servers, end devices, and search methods for use in a distributed network
JP6764992B2 (en) * 2019-12-24 2020-10-07 楽天株式会社 Search system, search method, and program

Also Published As

Publication number Publication date
JP2003271648A (en) 2003-09-26

Similar Documents

Publication Publication Date Title
JP5316158B2 (en) Information processing apparatus, full-text search method, full-text search program, and recording medium
US7630973B2 (en) Method for identifying related pages in a hyperlinked database
JP5740029B2 (en) System and method for improving interactive search queries
US7783644B1 (en) Query-independent entity importance in books
US8452766B1 (en) Detecting query-specific duplicate documents
US8606778B1 (en) Document ranking based on semantic distance between terms in a document
US9251208B2 (en) Information theory based result merging for searching hierarchical entities across heterogeneous data sources
JP3717808B2 (en) Information retrieval system
JP2007519111A (en) Method, system, and program for processing anchor text
JP4746439B2 (en) Document search server and document search method
EP2367121A1 (en) Search system, search method, and program
CN101567011A (en) Document processing device and document processing method
JP2004054631A (en) Information retrieval system, information retrieval method, structural analysis method of html document, and program
JP2009031931A (en) Search word clustering device, method, program and recording medium
JP2004341753A (en) Retrieval support device, retrieval support method and program
JP4230710B2 (en) SEARCH DEVICE, SEARCH METHOD, AND PROGRAM
JP2004054588A (en) Document retrieval device and method and program for making computer execute the same method
JPH1145257A (en) Web document retrieval supporting device and computer readable recording medium recorded with program for functioning computer as the device
JP2009086774A (en) Retrieval service device
JP2001265774A (en) Method and device for retrieving information, recording medium with recorded information retrieval program and hypertext information retrieving system
JP2007188134A (en) Method of document retrieval using index file
JPH1145252A (en) Information retrieval device and computer readable recording medium for recording program for having computer function as the same device
JPH11154164A (en) Adaptability calculating method in whole sentence search processing and storage medium storing program related to the same
KR100942902B1 (en) A method of searching web page and computer readable recording media for recording the method program
JP2002132789A (en) Document retrieving method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080226

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080624

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080723

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: 20081202

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081204

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111212

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees