(57)【特許請求の範囲】
【請求項１】
複数の検索対象の文書を表示する順序を指定された検索条件に対する適合度に基づいて決定する情報検索装置であって、
１以上の検索語と、前記複数の検索対象の文書のうち前記順序の決定を行う対象となる検索対象文書の母集団を限定する分類キーとを含む検索条件を入力する検索条件入力手段と、
前記分類キー毎に前記検索対象の文書の母集団が対応付けられるとともに、前記母集団内の文書格納数値と、前記母集団内の文書の平均文書長値と、前記複数の検索対象の文書内のワード毎に当該ワードを含む前記母集団内の文書数である文書頻度値とが少なくとも算出され格納された索引情報を記憶した記憶手段と、
前記検索条件が入力されたとき、入力分類キーに対応付けされた前記母集団内の文書の文書格納数値及び平均文書長値と、入力分類キーに対応付けられた前記母集団内の文書のうち、入力検索語と一致するワードを含む当該母集団内の文書数である文書頻度値とを前記記憶手段の検索情報から取得し、取得された文書格納数値、平均文書長値、及び文書頻度値を含む適合度を算出するためのパラメータ値に基づいて当該母集団内の文書毎の適合度を算出することにより、文書を検索する検索手段と、
検索された文書に適合度を付して検索結果として出力する検索結果出力手段と、
を有することを特徴とする情報検索装置。
【請求項２】
前記記憶手段の索引情報は、前記分類キー毎に前記ワードが対応付けされて索引が作成され、
前記検索手段は、入力分類キー、入力検索語の順で前記索引を辿ることにより前記文書頻度値が取得されること、
を特徴とする請求項１記載の情報検索装置。
【請求項３】
前記記憶手段の索引情報は、前記ワード毎に前記分類キーが対応付けされて索引が作成され、
前記検索手段は、入力検索語、入力分類キーの順で前記索引を辿ることにより前記文書頻度値が取得されること、
を特徴とする請求項１記載の情報検索装置。
【請求項４】
複数の検索対象の文書を表示する順序を指定された検索条件に対する適合度に基づいて決定する情報検索装置における情報検索方法であって、
前記複数の検索対象の文書のうち前記順序の決定を行う対象となる検索対象文書の母集団を限定する分類キー毎に前記検索対象の文書の母集団が対応付けられるとともに、前記母集団内の文書格納数値と、前記母集団内の文書の平均文書長値と、前記複数の検索対象の文書内のワード毎に当該ワードを含む前記母集団内の文書数である文書頻度値とが少なくとも算出され格納された索引情報を記憶する記憶手順と、
１以上の検索語と、前記分類キーとを含む検索条件を入力する検索条件入力手順と、
前記検索条件が入力されたとき、入力分類キーに対応付けされた前記母集団内の文書の文書格納数値及び平均文書長値と、入力分類キーに対応付けられた前記母集団内の文書のうち、入力検索語と一致するワードを含む当該母集団内の文書数である文書頻度値とを前記記憶手段の検索情報から取得し、取得された文書格納数値、平均文書長値、及び文書頻度値を含む適合度を算出するためのパラメータ値に基づいて当該母集団内の文書毎の適合度を算出することにより、文書を検索する検索手順と、
検索された文書に適合度を付して検索結果として出力する検索結果出力手順と、
を有することを特徴とする情報検索方法。
【請求項５】
請求項４記載の情報検索方法をコンピュータに実行させるための情報検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報検索装置、情報検索方法及び情報検索プログラムに関する。
【背景技術】
【０００２】
近年、電子データに対する検索技術あるいは検索結果のランキング検索技術は、検索対象の情報量の増大による検索結果数の増大のため、ますます重要な技術となっている。求める情報が大量の検索結果に埋もれてしまい、見つけることが困難になっているからである。
【０００３】
検索システムで用いられるランキング検索は、検索条件を満たす検索結果集合をある評価方法で順序付けて出力する機能である。検索条件と評価方法が適切であれば、ランキング上位には利用者が求めるデータが出力される可能性が高くなる。またランキングの上位に利用者が求めるデータと近いデータが存在しなければ、早い段階で検索条件の見直しも可能になる。このようにランキング検索は利用者の検索負担を小さくするための必須機能となっている。
【０００４】
ランキング検索の精度を左右する評価方法には、Ｗｅｂページ検索でよく用いられているページへの被参照数を利用した方法や検索条件に含まれる検索語のデータベースにおける出現頻度を利用した方法などがあり、特に後者においては上述したＷｅｂページのハイパーリンクや学術論文の引用のような、他のデータへの参照・被参照が存在しないデータに対しても有効であり、用途が広い。
【０００５】
さて、この検索語のデータベースにおける出現頻度を利用した検索結果集合の評価方法は、必ずしも適切でないことがある。具体的に、出現頻度を利用した検索語の重要度の評価方法は、ある検索語を含むデータが、データベース中に少ないほど、検索語の重要度を高く評価している。そして、そのような重要度の高い検索語を多く含み、かつ、それぞれの検索語がデータ内で頻出する文書ほど、スコアが高くなる評価手法を使っている。即ち検索語の重要度は、データベースの検索対象となる情報の母集団に依存し、この母集団の範囲がスコアに影響を与えることになる。
【０００６】
これに関する技術として、例えば特許文献１において特許文献を検索する場合、文献中に含まれる文言の指定に加えて、ＩＰＣ（Ｉｎｔｅｒｎａｔｉｏｎａｌ Ｐａｔｅｎｔ Ｃｌａｓｓｉｆｉｃａｔｉｏｎ）やＦＩ（Ｆｉｌｅ Ｉｎｄｅｘ）等の分類情報が設定されている場合等である。このように分類情報が設定されている場合、検索語（キーワード）による検索は指定された分類情報の範囲内において、即ち限定された母集団の範囲内において行われる。
【０００７】
このように検索条件において、検索語のみならず、検索対象とする文書が指定されている場合（つまり検索対象となる情報の母集団が限定されている場合）、検索語の重要度を決める母集団を、検索条件で指定された文書集合に変更してから、検索語の重要度の評価を行うことができる。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述のような評価に用いる文書母集団を限定された集合に変更する方法は、限定された文書集合の範囲内に対し検索語の重要度を評価できるため、より適切なスコアを算出できることがあるものの、その一方で従来の索引構造ではこの評価を高速に実行できないという問題があった。
【０００９】
従来一般の全文索引では、ある索引語がどの文書に含まれているかを高速に検索するために、少なくとも索引語とその索引語を含む文書に対応した文書ＩＤのリストとの組を格納している。またさらにランキング検索を行なう場合には、索引語の単語頻度（tf値：対象の文書における対象の索引語数）、索引語の文書頻度（df値：対象の文書集合における対象の索引語を含む文書数）、文書格納数、対象の文書の文書長、対象の文書集合の平均文書長などの値を全文索引で格納している。
【００１０】
いずれの値もスコア算出時に用いられるパラメータでありランキング検索の精度に関わる重要な値であるが、このうち索引語の文書頻度や平均文書長、文書格納数のような値は、検索条件に分類情報のような検索対象を絞り込む条件があった場合、分類情報によって文書母集団は限定された集合に変更されるため、これら値は全文索引に格納されたものをそのまま利用できず、そのため検索の度にあらためて計算される必要があった。これは検索精度と速度とにトレードオフの関係が生じていることになる。
【００１１】
本発明は、上記の点に鑑みてなされたものであって、検索精度と速度とにトレードオフの関係を回避すべく、検索条件により文書集合が限定された場合でも、限定された文書集合に対応する索引語の文書頻度、平均文書長及び文書格納数を高速に取得可能な索引を備え、スコア算出時に高速にこれら値を取得し、検索語に対する各文書のスコアの出力を行う情報検索装置、情報検索方法及び情報検索プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記の目的を達成するために、本発明に係る情報検索装置は、複数の検索対象の文書を表示する順序を指定された検索条件に対する適合度に基づいて決定する情報検索装置であって、１以上の検索語と、前記複数の検索対象の文書のうち前記順序の決定を行う対象となる検索対象文書の母集団を限定する分類キーとを含む検索条件を入力する検索条件入力手段と、前記分類キー毎に前記検索対象の文書の母集団が対応付けられるとともに、前記母集団内の文書格納数値と、前記母集団内の文書の平均文書長値と、前記複数の検索対象の文書内のワード毎に当該ワードを含む前記母集団内の文書数である文書頻度値とが少なくとも算出され格納された索引情報を記憶した記憶手段と、前記検索条件が入力されたとき、入力分類キーに対応付けされた前記母集団内の文書の文書格納数値及び平均文書長値と、入力分類キーに対応付けられた前記母集団内の文書のうち、入力検索語と一致するワードを含む当該母集団内の文書数である文書頻度値とを前記記憶手段の検索情報から取得し、取得された文書格納数値、平均文書長値、及び文書頻度値を含む適合度を算出するためのパラメータ値に基づいて当該母集団内の文書毎の適合度を算出することにより、文書を検索する検索手段と、検索された文書に適合度を付して検索結果として出力する検索結果出力手段とを有することを特徴とする。
【００１３】
また、上記の目的を達成するために、上記情報検索装置において、前記記憶手段の索引情報は、前記分類キー毎に前記ワードが対応付けされて索引が作成され、前記検索手段は、入力分類キー、入力検索語の順で前記索引を辿ることにより前記文書頻度値が取得されることを特徴とする。
【００１４】
また、上記の目的を達成するために、上記情報検索装置において、前記記憶手段の索引情報は、前記ワード毎に前記分類キーが対応付けされて索引が作成され、前記検索手段は、入力検索語、入力分類キーの順で前記索引を辿ることにより前記文書頻度値が取得されることを特徴とする。
【００１５】
なお、本発明の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、などに適用したものも本発明の態様として有効である。
【発明の効果】
【００１６】
本発明によれば、検索条件により文書集合が限定された場合でも、限定された文書集合に対応する索引語の文書頻度、平均文書長及び文書格納数を高速に取得可能な索引を備え、スコア算出時に高速にこれら値を取得し、検索語に対する各文書のスコアの出力を行う情報検索装置、情報検索方法及び情報検索プログラムを提供することができる。
【図面の簡単な説明】
【００１７】
【図１】本実施の形態に係る情報検索システム例を示す図である。
【図２】検索条件指定画面例を示す。
【図３】本実施形態に係る情報検索装置１のハードウェア構成を示すブロック図である。
【図４】従来の索引情報（全文索引と非全文表）の構成例を示す。
【図５】従来の索引情報（全文索引と非全文表）への文書データ挿入フロー例を示す。
【図６】従来の索引情報（全文索引と非全文表）を使った検索フロー例を示す。
【図７】本実施形態に係る全文と非全文データの複合索引１４１の構成例を示す。
【図８】本実施形態に係る全文と非全文データの複合索引１４１への文書データ挿入フロー例を示す。
【図９】本実施形態に係る複合索引１４１を使った検索フロー例を示す。
【図１０】本実施形態に係る複合索引１４１を使った検索フロー例を示す。
【図１１】本実施形態に係る全文と非全文データの複合索引１４２への文書データ挿入フロー例を示す。
【図１２】本実施形態に係る複合索引１４２を使った検索フロー例を示す。
【発明を実施するための形態】
【００１８】
以下、本発明を実施するための最良の形態について図面を参照して説明する。本実施形態においては、文書を検索する情報検索装置を含む情報検索システムを例として説明する。
【００１９】
[システム構成]
図１は、本実施の形態に係る情報検索システム例を示す図である。図１に示すように、本実施形態に係る情報検索システムは、情報検索装置１、クライアント装置２及び検索対象情報データベース（ＤＢ）１５０を含む。クライアント装置２は、ＰＣ（Ｐｅｒｓｏｎａｌ Ｃｏｍｐｕｔｅｒ）等の一般的な情報処理装置によって構成される。情報検索装置１は、ネットワークを介してクライアント装置２と接続されており、クライアント装置２からの検索要求を受けて検索対象情報ＤＢ２００に格納されている文書情報を検索するサーバとして運用される。
【００２０】
検索対象情報ＤＢ２００（以下単にＤＢという）は、検索対象の情報としての文書や文献を記憶している。即ち、本実施形態に係る検索対象情報は、ＤＢ２００に格納されている文書情報（文書ファイル）である。尚、図１に示すように、本実施形態においては、ＤＢ２００が情報検索装置１とは別に設けられている例を説明するが、ＤＢ２００を情報検索装置１内部に構成することも可能である。ＤＢ２００は、ＨＤＤ等の不揮発性記憶媒体によって構成される。
【００２１】
また図に示されるように、本実施形態に係る情報検索装置１は、条件入力部１１０、検索部１２０、検索結果出力部１３０及び索引ＤＢ１４０を有する。
【００２２】
条件入力部１１０は、ユーザのクライアント装置２から検索条件を入力する。図３に示すＩ／Ｆ５０によって実現される。なお情報検索装置１の備える操作部７０からも検索条件を入力できる。
【００２３】
検索部１２０は、入力された検索条件に基づいて、索引ＤＢ１４０の検索情報を利用して対象となる文書を検索する。検索結果には、検索条件の適合度（スコア）に応じたランキング形式の文書一覧表示等も含まれる。
【００２４】
検索結果出力部１３０は、検索された検索結果を出力する。ユーザのクライアント装置２から検索条件が入力されたときには、クライアント装置２に対して検索された検索結果を出力する。
【００２５】
索引ＤＢ１４０は、ＤＢ２００に格納されている文書の索引情報（索引データ）を記憶しているＤＢ記憶部であり、例えば図３に示すＨＤＤ４０やＲＡＭ２０によって実現される。検索対象となる文書数が膨大な場合、検索にかかる時間も長くなっていってしまうが、予め検索対象となるＤＢ２００の文書群を走査しておき、高速な検索が可能になるような索引情報を準備しておくことで検索時のパフォーマンスを向上させる。検索情報はインデックスともいい文字列が検索キーとなっている。索引の具体例について図を参照して後述する。
【００２６】
ここで、条件入力部１１０に入力される検索条件は、例えばクライアント装置２（又は操作部７０）から入力できる。図２は、検索条件指定画面例を示す。ユーザは当該画面の「普通文指定（又はキーワード指定）」及び「分類情報指定」に検索条件を入力する。「普通文指定（又はキーワード指定）」には、文章形式又はワード形式で検索語を入力する。「分類情報指定」には、検索対象となる文書の母集団を指定するための所定の分類キーや分類コードを入力する。例えば検索対象の文書が特許文献である場合には、「G06F 17/30」などがここに入力される。このように本実施形態に係る情報検索装置１は、入力された少なくとも１以上の検索語及び１以上の所定の分類キーに基づいて検索処理を行うものである。
【００２７】
次に、本実施形態に係る情報検索装置１のハードウェア構成について説明する。図３は、本実施形態に係る情報検索装置１のハードウェア構成を示すブロック図である。図３に示すように、本実施形態に係る情報検索装置１は、一般的なサーバやＰＣ（Ｐｅｒｓｏｎａｌ Ｃｏｍｐｕｔｅｒ）等の情報処理端末と同様の構成を有する。即ち、本実施形態に係る情報検索装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）１０、ＲＡＭ（Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）２０、ＲＯＭ（Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｏｒｙ）３０、ＨＤＤ（Ｈａｒｄ Ｄｉｓｋ Ｄｒｉｖｅ）４０及びＩ／Ｆ５０がバス８０を介して接続されている。また、Ｉ／Ｆ５０にはＬＣＤ（Ｌｉｑｕｉｄ Ｃｒｙｓｔａｌ Ｄｉｓｐｌａｙ）６０及び操作部７０が接続されている。
【００２８】
ＣＰＵ１０は演算手段であり、情報検索装置１全体の動作を制御する。ＲＡＭ２０は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、ＣＰＵ１０が情報を処理する際の作業領域として用いられる。ＲＯＭ３０は、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のプログラムが格納されている。ＨＤＤ４０は、情報の読み書きが可能な不揮発性の記憶媒体であり、ＯＳ（Ｏｐｅｒａｔｉｎｇ Ｓｙｓｔｅｍ）や各種の制御プログラム、アプリケーション・プログラム等が格納される。Ｉ／Ｆ５０は、バス８０と各種のハードウェアやネットワーク等を接続し制御する。ＬＣＤ６０は、ユーザが情報検索装置１の状態を確認するための視覚的ユーザインタフェースである。操作部７０は、キーボードやマウス等、ユーザが情報検索装置１に情報（例えば検索条件）を入力するためのユーザインタフェースである。尚、図１において説明したように、本実施形態に係る情報検索装置１は、クライアント装置２に対するサーバとして運用される。従って、ＬＣＤ６０及び操作部７０等のユーザインタフェースは省略することも可能である。
【００２９】
このようなハードウェア構成において、ＲＯＭ３０やＨＤＤ４０若しくは図示しない光学ディスク等の記憶媒体に格納されたプログラムがＲＡＭ２０に読み出され、ＣＰＵ１０の制御に従って動作することにより、ソフトウェア制御部（図１）が構成される。このようにして構成されたソフトウェア制御部と、ハードウェアとの組み合わせによって、本実施形態に係る情報検索装置１の機能を実現する機能ブロックが構成される。
【００３０】
[従来例]
さてここで、まず従来の全文索引の構成及び動作について説明してから、その後本実施形態に係る全文及び非全文の複合索引の構成及び動作を説明する。なおシステム構成については、従来例においても上述と概ね同等の構成でよい。但し索引ＤＢ１４０の索引情報（索引データ）及び検索部１２０による索引情報を利用した検索動作の点では差異がある。
【００３１】
図４は、従来の索引情報（全文索引と非全文表）の構成例を示す。全文索引は、索引語（図中indexkey=A、indexkey=Bなど）から、その索引語を含む文書の文書ＩＤ(各文書に付けられた一意の値で図中docID)等を格納したエントリを素早く取得できるデータ構造を持っている。またランキング検索をするのであれば、指定された検索条件に含まれる検索語等が夫々の文書において出現する回数である索引語の単語頻度(図中tf:Term Frequency)や、検索語等を含む文書の数である索引語の文書頻度(図中df:Document Frequency)などもエントリに含まれる。他にも文書長表において、各文書の文書長（図中len）や、文書集合の平均文書長（図中aveLen）や、格納文書数（図中N）なども含まれる。全文索引は、検索対象となるＤＢ２００の文書群中のワードが抽出され上述の各値（td,tf,len,aveLen等）が計算されて予めインデックス化される。
【００３２】
非全文表に関し、ＤＢ２００の文書は予めカテゴライズされており予め分類キー（図中key=#1、key=#2など）が指定されている。非全文表は、分類キー毎にその分類キーに属する文書ＩＤ（図中docID）がインデックス化されており、入力された分類キーから、検索対象文書の母集団の文書ＩＤを素早く取得できるデータ構造を持っている。また文書ＩＤからその逆引きが必要な場合は逆引きで分類キーを取得できる。
【００３３】
なお本図では、あくまで一例として、索引語に対応するエントリを取得するための構造は木（ツリー）構造を想定した図を用い、文書長等を格納する構造や非全文表には配列を想定した図を用いているが、いうまでもなく個々のデータ構造の実装には他にも様々な方法がありうる。
【００３４】
図５は、従来の索引情報（全文索引と非全文表）への文書データ挿入フロー例を示す。つまりＤＢ２００に文書が追加されたとき、この追加文書を索引情報ＤＢ１４０の索引に追加更新するものである。索引への入力は、追加文書の文書ＩＤと追加文書の全文データと非全文データ（例えば追加文書の分類キーという）とから構成されているとする。また、全文データは解析済みで、追加文書内の全文データに含まれるワード：索引語（indexkey）とその単語頻度（tf）の組が計算を経て得られているものとする。
【００３５】
まず、非全文表にアクセスする（Ｓ１０１）。非全文表に、非全文データをキーとし非全文キーに対応する値を文書ＩＤとしたデータを追加する（Ｓ１０２）。
【００３６】
次に、全文索引にアクセスする（Ｓ１０３）。追加文書内の１のワードを全文索引のキーとして、全文索引の値である索引語（indexkey）のエントリを取得する（Ｓ１０４）。そのエントリに文書ＩＤ（docID）と単語頻度（tf）の組を一行追加する（Ｓ１０５）。文書ＩＤ（docID）と単語頻度（tf）の組を１件追加したので文書頻度（df）を１インクリメントする（Ｓ１０６）。
【００３７】
次いで追加文書内の新たな１のワードを全文索引のキーとして、同様の処理を繰り返す（Ｓ１０７→Ｓ１０４）。新たなワードがもうない場合は、次のステップに移動する（Ｓ１０７→Ｓ１０８）。
【００３８】
次に、文書長表にアクセスする（Ｓ１０８）。文書長表に、文書ＩＤをキーとし、文書ＩＤに対する値を文書長（len）としたデータを一行追加する（Ｓ１０９）。文書ＩＤを１件追加したので、文書長表の格納件数（N）を１インクリメントし、また追加した文書の文書長の増加分に合わせて平均文書長（aveLen）を更新する（Ｓ１１０）。
【００３９】
図６は、従来の索引情報（全文索引と非全文表）を使った検索フロー例を示す。検索に際し、ユーザから入力された検索条件は、検索語と分類キーであり（例えば図２）、検索語（全文条件ともいう）によるマッチングと、分類キー（非全文条件ともいう）よるマッチングとの両方が満たされるものを検索結果とする。なお、全文条件は例えば図２のように「普通文指定」で入力された場合、「ＡのＢでＣされたＤ」という文章を「Ａ／の／Ｂ／で／Ｃ／された／Ｄ」というようにワードに区切り、このうち意味のあるワードを抽出し検索語（Ａ、Ｂ、Ｃ、Ｄ）とすればよい。これを検索語リストに入れておく。
【００４０】
まず、非全文表にアクセスする（Ｓ２０１）。非全文条件の分類キーをキーとして、条件を満たす文書ＩＤを全て取得する（Ｓ２０２）。また取得された文書ＩＤの数をカウントし絞り込み文書格納数（N）として取得する。絞り込み文書格納数（N）は、分類キーによって絞り込まれて限定された分類集合文書数である。なおここで文書ＩＤが大量だった場合、その取得に計算やメモリ領域確保のコストがかかる。
【００４１】
次に、全文索引にアクセスする（Ｓ２０３）。索引語を全文索引のキーとして、全文索引の値である索引語のエントリを取得する（Ｓ２０４）。そして取得されたエントリに含まれる文書ＩＤ（docID）と単語頻度（tf）の組のうち、非全文表で取得された文書ＩＤと合致する組のみメモリに保持する（Ｓ２０５）。ここで合致するかどうかを確認しながら保持する組を決定するので取得コストがかかる。そして保持した文書ＩＤ（docID）と単語頻度（tf）の組の個数から、分類キーによって限定された文書の母集団における絞り込み文書頻度（df）が得られる（Ｓ２０６）。
【００４２】
次に、文書長表にアクセスする（Ｓ２０７）。エントリから取得した文書ＩＤと合致する組の文書長だけでなく、非全文表で得られた文書ＩＤと合致する文書ＩＤの文書長を全て取得する。ここで非全文表で得られた文書ＩＤの数は、エントリから取得された文書ＩＤの数より多いため文書長の取得コストがかかる。取得された文書長から、分類キーによって限定された文書の母集団における絞り込み平均文書長（aveLen）を計算する（Ｓ２０９）。
【００４３】
次に、索引語毎に各文書との適合度を、これまでに取得された単語頻度（tf）、絞り込み文書頻度（df）、絞り込み文書格納数（N）、文書長（len）、絞り込み平均文書長（aveLen）を使って計算する（Ｓ２１０）。なお入力された索引語に対する文書の適合度（スコア）の具体的計算については、公知のものを適用できるが例えば本発明者による特開２００９−２７１６５９号（段落番号００５５−００５７、００８５等）を参考にできる。ここでの文書頻度、平均文書長及び文書格納数は、非全文条件である分類キーによって絞り込まれ限定された文書の母集団から取得された値なので適合度の精度は高い。
【００４４】
次に、全文条件の索引語リストに検索語の残りがあれば、全文索引へのアクセスから繰り返し（Ｓ２１１→Ｓ２０４）、残りがなければ次のステップに進む（Ｓ２１１→Ｓ２１２）。
【００４５】
次に、複数の検索語が入力されている場合には、検索語毎対して文献の適合度が計算されているので、文書毎に適合度を合成する（Ｓ２１２）。検索結果としてランキング形式で文書を表示するため、適合度の高い順に文書ＩＤ等をクライアント装置２などの呼び出し側に返す（Ｓ２１３）。
【００４６】
[実施形態１]
さて次に、実施形態１に係る全文及び非全文の複合索引の構成及び動作を説明する。
【００４７】
図７は、本実施形態に係る全文と非全文データの複合索引１４１の構成例を示す。従来例の図４と比較し図に示される複合索引１４１は、図４の全文索引と非全文表とを統合し、また全文索引の索引構造と文書長表とを、非全文表の非全文データ（図中key=#1,key=#2など）の値で分割したものである。非全文データは例えば分類コードであるので、文書の分類カテゴリ数に応じた数に分割されている。
【００４８】
この複合索引１４１の特徴は、索引を非全文データの値で分割しインデックス化しておくことで、非全文データの値によって変わる索引語の絞り込み文書頻度（df）や絞り込み平均文書長（aveLen）、絞り込み文書格納数（N）は予め計算し索引に登録しておくことができるので、これら値を少ないコストで取得できる。この点、検索の動作において後述する。
【００４９】
このように分割された各索引構造においては、複合索引のルートノード（Root）から非全文データの値（図中#1,#2など）への分岐によって、全文索引の検索語のルートノードへ辿ることができる構造になっている。また、非全文データの値によって分割された複数ある文書長表も、非全文データの値（図中#1,#2など）によって一意に選択できる構造を持っている。
【００５０】
図８は、本実施形態に係る全文と非全文データの複合索引１４１への文書データ挿入フロー例を示す。つまりＤＢ２００に文書が追加されたとき、この追加文書を索引情報ＤＢ１４０の複合索引１４１に追加更新するものである。索引への入力は、追加文書の文書ＩＤと追加文書の全文データと非全文データ（例えば追加文書の分類コード）とから構成されているとする。また、追加文書内の全文データは解析済みで、全文データに含まれるワード：索引語（indexkey）とその単語頻度（tf）の組が計算を経て得られているものとする。
【００５１】
まず、複合索引１４１にアクセスし、非全文データ（追加文書の分類コード）が示す索引構造（木構造）にアクセスする（Ｓ３０１）。追加文書内の全文データに含まれる１のワードを全文索引のキーとして、全文索引の値である索引語のエントリを取得する（Ｓ３０２）。そのエントリに文書ＩＤ（docID）と単語頻度（tf）の組を一行追加する（Ｓ３０３）。文書ＩＤ（docID）と単語頻度（tf）の組を１件追加したので絞り込み文書頻度（df）を１インクリメントする（Ｓ３０４）。
【００５２】
次いで追加文書内の新たな１のワードを全文索引のキーとして、同様の処理を繰り返す（Ｓ３０５→Ｓ３０２）。新たなワードがもうない場合は、次のステップに移動する（Ｓ３０５→Ｓ３０６）。
【００５３】
次に、非全文データが示す文書長表にアクセスする（Ｓ３０６）。文書長表に、文書ＩＤをキーとし、文書ＩＤに対する値を文書長（len）としたデータを一行追加する（Ｓ３０７）。文書ＩＤを１件追加したので、文書長表の絞り込み格納件数（N）を１インクリメントし、また追加した文書の文書長の増加分に合わせて絞り込み平均文書長（aveLen）を更新する（Ｓ３０８）。なお絞り込み格納件数（N）は分類キーによって分類される文書母集団内の文書数を示す。絞り込み平均文書長（aveLen）は、分類キーによって分類される文書母集団内の文書の平均文書長を示す。
【００５４】
以上で示したように、従来例の図６と比較しても、複合索引化による文書データ挿入コストの上昇はほとんどない。
【００５５】
図９は、本実施形態に係る複合索引１４１を使った検索フロー例を示す。検索に際し、入力された検索条件は、検索語と分類コードであり（例えば図２）、検索語によるマッチング（全文条件という）と、分類コードよるマッチング（非全文条件という）との両方が満たされる条件とする。なお、全文条件は例えば図２のように「普通文指定」で入力された場合、上述した通り、文章をワードに区切り、意味のあるワードを抽出し検索語とすればよい。これを検索語リストに入れておく。
【００５６】
まず、複合索引１４１にアクセスし、入力された非全文条件の分類コードをキーとして、非全文データが示す索引構造（木構造）にアクセスする（Ｓ４０１）。例えば「key=#1」のツリーにアクセスする（図７）。入力された索引語を全文索引のキーとして、全文索引の値である索引語のエントリを取得する（Ｓ４０２）。例えば入力された索引語が「Ａ」ならば、「indexkey=A」の子ツリーにアクセスし、「indexkey=A」のエントリを取得する。取得されたそのエントリに含まれる文書ＩＤ（docID）と単語頻度(tf)の組を全て取得する（Ｓ４０３）。例えば組（docID,tf）とするならば、（1,3）、（3,1）・・などとなる。またそのエントリから絞り込み文書頻度（df）を取得する（Ｓ４０４）。例えばdf=10が取得される。
【００５７】
次に、非全文データが示す文書長表にアクセスする（Ｓ４０５）。例えば「key=#1」の文書長表にアクセスする（図７）。その文書長表から、Ｓ４０３で取得した文書ＩＤと合致する文書ＩＤの文書長（len）を全て取得する（Ｓ４０６）。例えば文書ＩＤ「1」の文書長「500」、文書ＩＤ「3」の文書長「1500」・・などとなる。また絞り込み平均文書長（aveLen）及び絞り込み文書格納数（N）を取得する（Ｓ４０７）。例えばaveLen=900が取得され、N=50が取得される。なおここで、絞り込み文書頻度（df）や絞り込み平均文書長（aveLen）、絞り込み文書格納数（N）は既に複合索引１４１に登録されているため単にこれら値は取得されればよく、特段の計算等は不要である。
【００５８】
次に、索引語毎に各文書との適合度を、これまでに取得された単語頻度（tf）、絞り込み文書頻度（df）、絞り込み文書格納数（N）、文書長（len）、絞り込み平均文書長（aveLen）を使って計算する（Ｓ４０８）。なお入力された索引語に対する文書の適合度（スコア）の具体的計算については、上述した通り、公知のものを適用できる（例えば特開２００９−２７１６５９号）。ここでの絞り込み文書頻度、絞り込み平均文書長及び絞り込み文書格納数は、非全文条件である分類コードによって限定された文書の母集団から絞り込まれて取得された値なので適合度の精度は高い。
【００５９】
次に、全文条件の索引語リストに検索語の残りがあれば、全文索引へのアクセスから繰り返し（Ｓ４０９→Ｓ４０２）、残りがなければ次のステップに進む（Ｓ４０９→Ｓ４１０）。
【００６０】
次に、複数の検索語が入力されている場合には、検索語毎対して文献の適合度が計算されているので、文書毎に適合度を合成する（Ｓ４１０）。検索結果としてランキング形式で文書を表示するため、適合度の高い順に文書ＩＤ等をクライアント装置２などの呼び出し側に返す（Ｓ４１０）。
【００６１】
以上のように、索引語毎に各文書との適合度を算出するに際し、単語頻度（tf）、文書頻度（df）、文書格納数（N）、文書長（len）、平均文書長（aveLen）などの値が必要であるが、このうち文書頻度、平均文書長及び文書格納数の値には、非全文条件である分類コードによって限定された文書の母集団に基づく絞り込み文書頻度、絞り込み平均文書長及び絞り込み文書格納数を用いるため、適合度を高いものとすることができる。そしてここで本実施形態に係る複合索引１４１は、上述のような索引構造を有するため、絞り込み文書頻度（df）や絞り込み平均文書長（aveLen）、絞り込み文書格納数（N）は予め複合索引１４１に登録しておくことが可能であり、検索部１２０が検索を行なうとき、単にこれら値は取得されればよいので（特段の計算等は不要）、検索速度の向上を図ることができる。
【００６２】
即ち従来の全文索引を拡張して、全文要素と非全文要素との複合索引を作成し、複合索引において、母集団を限定する条件によって分割された各集合に対応づけて索引を分割しておくことで、各集合における各索引語の文書頻度や各集合における平均文書長及び文書格納数を、分割された各索引にあらかじめ格納しておくことができるため、検索結果の評価時（適合度算出時）にこれらの値を計算なしで使うことができる。
【００６３】
[実施形態２]
続いて、実施形態２に係る全文及び非全文の複合索引の構成及び動作を説明する。
【００６４】
図１０は、本実施形態に係る複合索引１４１を使った検索フロー例を示す。図に示される複合索引１４２は、上述の実施形態に係る複合索引１４１と概ね同様である。図４の全文索引と非全文表とを統合し、また全文索引の索引構造と文書長表とを、非全文表の非全文データ（図中key=#1,key=#2など）の値で分割したものである。
【００６５】
但し、実施形態２に係る複合索引１４１を比較し、本実施形態に係る複合索引１４２は、文書ＩＤと文書頻度とを取得するためのエントリまでの到達ルートの点で異なっている。ここで分割された各索引構造へは、複合索引のルートノード（Root）から全文データの値（図中indexkey=A, indexkey=Bなど）への分岐によって、非全文データのルートノードへ辿ることができる構造になっている。
【００６６】
いずれにしてもこの複合索引１４２もまた、索引を非全文データの値で分割しインデックス化しておくことで、非全文データの値によって変わる索引語の文書頻度（df）や平均文書長（aveLen）を少ないコストで取得できる。
【００６７】
図１１は、本実施形態に係る全文と非全文データの複合索引１４２への文書データ挿入フロー例を示す。但し図８と比較し、その差異はＳ５０１及びＳ５０２である。
【００６８】
まず、複合索引１４２にアクセスし追加文書内の全文データに含まれる１のワードを全文索引のキーとして、ルートノードから索引構造（木構造）にアクセスする（Ｓ５０１）。次に非全文データ（追加文書の分類コード）をキーとして、全文索引の値である索引語のエントリを取得する（Ｓ５０２）。要するに図８と比較し、複合索引１４２にアクセスしてから、新エントリとして文書ＩＤと単語頻度との組を格納するためのエントリポイントまで到達するまでに、先に非全文データ（追加文書の分類コード）で引くか、追加文書の全文データ内のワードで引くかの違いであり、いずれにしても最終的には、エントリポイントにおいて追加文書の文書ＩＤ（docID）と単語頻度（tf）との組からなる新エントリが追加される。また絞り込み文書頻度（df）も１インクリメントされ更新される。なお、これ以降のステップは図８と同様であるためその説明は省略する。
【００６９】
図１２は、本実施形態に係る複合索引１４２を使った検索フロー例を示す。但し図９と比較し、その差異はＳ６０１及びＳ６０２である。
【００７０】
まず、複合索引１４２にアクセスし、入力された索引語を全文索引のキーとして、ルートノードから全文データが示す索引構造（木構造）にアクセスする（Ｓ６０１）。次に入力された非全文条件の分類コードをキーとして、全文索引の値である索引語のエントリを取得する（Ｓ６０２）。要するに図９と比較し、複合索引１４２にアクセスしてから、文書ＩＤと単語頻度との組を取得するためのエントリまで到達するまでに、先に非全文データ（追加文書の分類コード）で引くか、追加文書の全文データ内のワードで引くかの違いであり、いずれにしても最終的には、追加文書の文書ＩＤ（docID）及び単語頻度（tf）の組のエントリが取得される。また絞り込み文書頻度（df）も取得される。なお、これ以降のステップは図９と同様であるためその説明は省略する。
【００７１】
[総括]
以上本実施形態に係る情報検索装置１は、索引語毎に各文書との適合度を算出するに際し、単語頻度（tf）、文書頻度（df）、文書格納数（N）、文書長（len）、平均文書長（aveLen）などの値が必要であるが、このうち文書頻度、平均文書長及び文書格納数の値には、非全文条件である分類コードによって限定された文書の母集団に基づく絞り込み文書頻度、絞り込み平均文書長及び絞り込み文書格納数を複合索引から取得して用いるため、適合度を高いものとすることができる。そしてここで本実施形態に係る複合索引は、上述のような索引構造を有するため、絞り込み文書頻度（df）や絞り込み平均文書長（aveLen）、絞り込み文書格納数（N）は予め複合索引に登録しておくことが可能であり、情報検索装置１が検索を行なうとき、単にこれら値は取得されればよいので（特段の計算等は不要）、検索速度の向上を図ることができる。
【００７２】
即ち上述の本実施形態によれば、検索条件により文書集合が限定された場合でも、限定された文書集合に対応する索引語の文書頻度、平均文書長及び文書格納数を高速に取得可能な索引を備え、スコア算出時に高速にこれら値を取得し、検索語に対する各文書のスコアの出力を行う情報検索装置等を提供することが可能となる。
【００７３】
各実施形態に基づき本発明の説明を行ってきたが、上記各実施形態にあげたその他の要素との組み合わせなど、ここで示した要件に本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。また、本発明の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、などに適用したものも本発明の態様として有効である。
【符号の説明】
【００７４】
１        情報検索装置
２        クライアント装置
１０        ＣＰＵ
２０        ＲＡＭ
３０        ＲＯＭ
４０        ＨＤＤ
５０        Ｉ／Ｆ
６０        ＬＣＤ
７０        操作部
８０        バス
１１０    条件入力部
１２０    検索部
１３０    検索結果出力部
１４０    索引ＤＢ
２００    検索対象情報ＤＢ
【先行技術文献】
【特許文献】
【００７５】
【特許文献１】特開２００９−２７１６５９号
【図１】
0005505207.tif 000002
【図２】
0005505207.tif 000003
【図３】
0005505207.tif 000004
【図４】
0005505207.tif 000005
【図５】
0005505207.tif 000006
【図６】
0005505207.tif 000007
【図７】
0005505207.tif 000008
【図８】
0005505207.tif 000009
【図９】
0005505207.tif 000010
【図１０】
0005505207.tif 000011
【図１１】
0005505207.tif 000012
【図１２】
0005505207.tif 000013