(57)【要約】【課題】所定の条件を満たすテキストにおいて高い頻度で用いられるキーワードを、これまでよりも効率的に検索する。【解決手段】本発明のシステムは、それぞれのテキストの識別情報から当該テキストに含まれるキーワードのリストを指定する第１インデックスと、それぞれのキーワードの識別情報から当該キーワードを含むテキストのリストを指定する第２インデックスと、それぞれのキーワードを含むテキストの数とを記憶している。そして、テキスト検索条件の入力を受け付けると、第１インデックスによる検索時間の見積もり、および、第２インデックスによる検索時間の見積もりを算出して、第１インデックスおよび第２インデックスの何れを用いた検索がより高速であるかを判断する。そして、テキスト検索条件を満たすテキストにおいて、高い頻度で出現するキーワードをより高速であると判断されたインデックスによって検索する。【選択図】図１
2007156739.tif 000002
【特許請求の範囲】
【請求項１】
テキストからキーワードを検索するシステムであって、
それぞれのテキストの識別情報から当該テキストに含まれるキーワードのリストを指定する第１インデックスを記憶する第１インデックス記憶部と、
それぞれのキーワードの識別情報から当該キーワードを含むテキストのリストを指定する第２インデックスを、それぞれのキーワードを含むテキストの数に対応付けて記憶する第２インデックス記憶部と、
キーワードを検索する対象となるテキストの条件であるテキスト検索条件の入力を受け付ける入力部と、
検索対象となる複数の前記テキストのうち前記テキスト検索条件を満たすテキストの数、および、前記第２インデックスに対応して記憶された前記テキストの数に基づいて、前記第１インデックスによる検索時間の見積もり、および、前記第２インデックスによる検索時間の見積もりを算出して、前記第１インデックスおよび前記第２インデックスの何れを用いた検索がより高速であるかを判断する判断部と、
前記テキスト検索条件を満たすテキストにおいて、予め定められた基準よりも高い頻度で出現するキーワードを、より高速であると判断された前記インデックスによって検索して出力する検索部と
を備えるシステム。
【請求項２】
当該システムは、複数のキーワードのうち、そのキーワードを含み、かつ前記テキスト検索条件を満たすテキストの数が多い方から、予め定められた基準個数のキーワードを選択した高頻度ワードを検索するものであり、
前記検索部は、前記第２インデックスにより検索する場合において、
前記高頻度ワードの候補となる候補ワードのそれぞれに対応付けて、当該候補ワードを含み、かつ前記テキスト検索条件を満たすテキストの数である候補ワード出現数を記憶している候補ワード記憶部と、
複数のキーワードのそれぞれを当該キーワードを含むテキストの数が大きい順に順次、前記高頻度ワードか否かを判断する対象となる対象ワードとして選択する選択部と、
前記対象ワードを含むテキストの数を前記第２インデックス記憶部から読み出し、読み出した当該テキストの数を前記候補ワード出現数と比較する比較部と、
読み出された当該テキストの数が、何れかの前記候補ワード出現数よりも大きいことを条件に、前記対象ワードを含むテキストのリストを前記第２インデックス記憶部から読み出し、読み出したリストのうち前記テキスト検索条件を満たすテキストの数を算出する算出部と、
算出されたテキストの数が、何れかの前記候補ワード出現数よりも大きいことを条件に、前記対象ワードおよび前記候補ワードの中から、含まれているテキストの数が多い方から前記基準個数を上限として新たな前記候補ワードとして選択して、前記候補ワード記憶部を更新する更新部と
を有し、前記選択部によって次に選択された前記対象ワードを含むテキストの数が、何れの前記候補ワード出現数よりも小さいことを条件に、前記候補ワード記憶部に記憶されたキーワードを前記高頻度ワードとして出力する
請求項１に記載のシステム。
【請求項３】
前記判断部は、
検索の対象となる全てのテキストの中で前記テキスト検索条件を満たすテキストの占める割合を示す条件充足率を算出する割合算出部と、
各キーワードについて当該キーワードを含みかつ前記テキスト検索条件を満たすテキストの数を示す確率変数の確率分布を、前記条件充足率に基づいて近似的に算出し、算出された前記確率分布に基づいて、各キーワードの前記確率変数がある閾値以上となる確率の和を求める前記閾値の関数を算出する関数算出部と、
算出された前記関数の値が前記基準個数と略同一となる前記閾値を算出する閾値算出部と、
算出した前記閾値よりも多い数のテキストに含まれる各キーワードを含んでいるテキストの数を、前記第２インデックス記憶部に記憶された前記テキストの数に基づいて算出し、算出されたテキストの数と、所定のアクセス時間との積を、前記第２インデックスによる検索時間の見積もりとして算出する第２検索時間算出部と、
検索対象となる複数の前記テキストのうち前記テキスト検索条件を満たすテキストの数と、所定のアクセス時間との積を、前記第１インデックスによる検索時間の見積もりとして算出する第１検索時間算出部と
を有し、前記第２検索時間算出部によって算出された検索時間の見積もりが、前記第１検索時間算出部によって算出された検索時間の見積もりよりも小さいことを条件に、前記第２インデックスによる検索の方が高速と判断する
請求項２に記載のシステム。
【請求項４】
前記関数算出部は、各キーワードについて、当該キーワードを含むテキストが前記テキスト検索条件を満たす確率を前記条件充足率によって近似することによって、前記確率変数の確率分布を二項分布として算出し、算出した前記確率分布に基づいて前記閾値の関数を算出する
請求項３に記載のシステム。
【請求項５】
前記第１インデックス記憶部は、キーワードのカテゴリー毎に、それぞれのテキストの識別情報から当該テキストに含まれる当該カテゴリーのキーワードのリストを指定する第１インデックスを記憶し、
前記第２インデックス記憶部は、キーワードのカテゴリー毎に、当該カテゴリーに含まれるキーワードの前記第２インデックスと、当該カテゴリーに含まれるそれぞれのキーワードを含むテキストの数とを記憶し、
前記入力部は、更に、検索の対象となるキーワードのカテゴリーの入力を受け付け、
前記判断部は、入力された前記カテゴリーに対応する、それぞれのキーワードを含むテキストの数に基づいて、前記カテゴリーに対応する前記第１インデックスおよび前記カテゴリーに対応する前記第２インデックスの何れを用いた検索がより高速であるかを判断する
請求項１に記載のシステム。
【請求項６】
テキストからキーワードを検索するシステムであって、
それぞれのキーワードの識別情報から当該キーワードを含むテキストのリストを指定する第２インデックスを記憶する第２インデックス記憶部と、
キーワードを検索する対象となるテキストの条件であるテキスト検索条件の入力を受け付ける入力部と、
複数のキーワードのうち、そのキーワードを含み、かつ前記テキスト検索条件を満たすテキストの数が多い方から、予め定められた基準個数のキーワードを選択した高頻度ワードを検索して出力する検索部と
を備え、前記検索部は、
前記高頻度ワードの候補となる候補ワードのそれぞれに対応付けて、当該候補ワードを含み、かつ前記テキスト検索条件を満たすテキストの数である候補ワード出現数を記憶している候補ワード記憶部と、
複数のキーワードのそれぞれを当該キーワードを含むテキストの数が大きい順に順次、前記高頻度ワードか否かを判断する対象となる対象ワードとして選択する選択部と、
前記対象ワードを含むテキストの数を前記第２インデックス記憶部から読み出し、読み出した当該テキストの数を前記候補ワード出現数と比較する比較部と、
読み出された当該テキストの数が、何れかの前記候補ワード出現数よりも大きいことを条件に、前記対象ワードを含むテキストのリストを前記第２インデックス記憶部から読み出し、読み出したリストのうち前記テキスト検索条件を満たすテキストの数を算出する算出部と、
算出されたテキストの数が、何れかの前記候補ワード出現数よりも大きいことを条件に、前記対象ワードおよび前記候補ワードの中から、含まれているテキストの数が多い方から前記基準個数を上限として新たな前記候補ワードとして選択して、前記候補ワード記憶部を更新する更新部と
を有し、前記選択部によって次に選択された前記対象ワードを含むテキストの数が、何れの前記候補ワード出現数よりも小さいことを条件に、前記候補ワード記憶部に記憶されたキーワードを前記高頻度ワードとして出力するシステム。
【請求項７】
前記第２インデックス記憶部は、前記第２インデックスに対応付けて、更に、それぞれのキーワードを含むテキストの数に対応付けて記憶し、
検索の対象となる全てのテキストの中で前記テキスト検索条件を満たすテキストの占める割合を示す条件充足率を算出する割合算出部と、
各キーワードについて当該キーワードを含みかつ前記テキスト検索条件を満たすテキストの数を示す確率変数の確率分布を、前記条件充足率に基づいて近似的に算出し、算出された前記確率分布に基づいて、各キーワードの前記確率変数がある閾値以上となる確率の和を求める前記閾値の関数を算出する関数算出部と、
算出された前記関数の値が前記基準個数と略同一となる前記閾値を算出する閾値算出部と、
算出した前記閾値よりも多い数のテキストに含まれる各キーワードを含んでいるテキストの数を、前記第２インデックス記憶部に記憶された前記テキストの数に基づいて算出し、算出されたテキストの数と、所定のアクセス時間との積を、前記第２インデックスによる検索時間の見積もりとして算出して出力する第２検索時間算出部と
を更に備える請求項６に記載のシステム。
【請求項８】
テキストからキーワードを検索するシステムを用いて前記キーワードを検索する方法であって、
前記システムは、
それぞれのテキストの識別情報から当該テキストに含まれるキーワードのリストを指定する第１インデックスを記憶する第１インデックス記憶部と、
それぞれのキーワードの識別情報から当該キーワードを含むテキストのリストを指定する第２インデックスを、それぞれのキーワードを含むテキストの数に対応付けて記憶する第２インデックス記憶部と
を有し、
キーワードを検索する対象となるテキストの条件であるテキスト検索条件の入力を受け付けるステップと、
検索対象となる複数の前記テキストのうち前記テキスト検索条件を満たすテキストの数、および、前記第２インデックスに対応して記憶された前記テキストの数に基づいて、前記第１インデックスによる検索時間の見積もり、および、前記第２インデックスによる検索時間の見積もりを算出して、前記第１インデックスおよび前記第２インデックスの何れを用いた検索がより高速であるかを判断するステップと、
前記テキスト検索条件を満たすテキストにおいて、予め定められた基準よりも高い頻度で出現するキーワードを、より高速であると判断された前記インデックスによって検索して出力するステップと
を備える方法。
【請求項９】
テキストからキーワードを検索するシステムとして、情報処理装置を機能させるプログラムであって、
前記情報処理装置を、
それぞれのテキストの識別情報から当該テキストに含まれるキーワードのリストを指定する第１インデックスを記憶する第１インデックス記憶部と、
それぞれのキーワードの識別情報から当該キーワードを含むテキストのリストを指定する第２インデックスを、それぞれのキーワードを含むテキストの数に対応付けて記憶する第２インデックス記憶部と、
キーワードを検索する対象となるテキストの条件であるテキスト検索条件の入力を受け付ける入力部と、
検索対象となる複数の前記テキストのうち前記テキスト検索条件を満たすテキストの数、および、前記第２インデックスに対応して記憶された前記テキストの数に基づいて、前記第１インデックスによる検索時間の見積もり、および、前記第２インデックスによる検索時間の見積もりを算出して、前記第１インデックスおよび前記第２インデックスの何れを用いた検索がより高速であるかを判断する判断部と、
前記テキスト検索条件を満たすテキストにおいて、予め定められた基準よりも高い頻度で出現するキーワードを、より高速であると判断された前記インデックスによって検索して出力する検索部と
して機能させるプログラム。
【請求項１０】
テキストからキーワードを検索するシステムを用いて、前記キーワードを検索する方法であって、
前記システムは、それぞれのキーワードの識別情報から当該キーワードを含むテキストのリストを指定する第２インデックスを記憶する第２インデックス記憶部を有し、
キーワードを検索する対象となるテキストの条件であるテキスト検索条件の入力を受け付けるステップと、
複数のキーワードのうち、そのキーワードを含み、かつ前記テキスト検索条件を満たすテキストの数が多い方から、予め定められた基準個数のキーワードを選択した高頻度ワードを検索して出力するステップと
を備え、
前記システムは、前記高頻度ワードの候補となる候補ワードのそれぞれに対応付けて、当該候補ワードを含み、かつ前記テキスト検索条件を満たすテキストの数である候補ワード出現数を記憶している候補ワード記憶部を更に有し、
前記高頻度ワードを検索して出力するステップは、
複数のキーワードのそれぞれを当該キーワードを含むテキストの数が大きい順に順次、前記高頻度ワードか否かを判断する対象となる対象ワードとして選択するステップと、
前記対象ワードを含むテキストの数を前記第２インデックス記憶部から読み出し、読み出した当該テキストの数を前記候補ワード出現数と比較するステップと、
読み出された当該テキストの数が、何れかの前記候補ワード出現数よりも大きいことを条件に、前記対象ワードを含むテキストのリストを前記第２インデックス記憶部から読み出し、読み出したリストのうち前記テキスト検索条件を満たすテキストの数を算出するステップと、
算出されたテキストの数が、何れかの前記候補ワード出現数よりも大きいことを条件に、前記対象ワードおよび前記候補ワードの中から、含まれているテキストの数が多い方から前記基準個数を上限として新たな前記候補ワードとして選択して、前記候補ワード記憶部を更新するステップと
を有し、前記比較するステップにおいて比較の対象とされた、前記対象ワードを含むテキストの数が、何れの前記候補ワード出現数よりも小さいことを条件に、前記候補ワード記憶部に記憶されたキーワードを前記高頻度ワードとして出力する方法。
【請求項１１】
テキストからキーワードを検索するシステムとして、情報処理装置を機能させるプログラムであって、
前記情報処理装置を、
それぞれのキーワードの識別情報から当該キーワードを含むテキストのリストを指定する第２インデックスを記憶する第２インデックス記憶部と、
キーワードを検索する対象となるテキストの条件であるテキスト検索条件の入力を受け付ける入力部と、
複数のキーワードのうち、そのキーワードを含み、かつ前記テキスト検索条件を満たすテキストの数が多い方から、予め定められた基準個数のキーワードを選択した高頻度ワードを検索して出力する検索部と
して機能させ、前記検索部は、
前記高頻度ワードの候補となる候補ワードのそれぞれに対応付けて、当該候補ワードを含み、かつ前記テキスト検索条件を満たすテキストの数である候補ワード出現数を記憶している候補ワード記憶部と、
複数のキーワードのそれぞれを当該キーワードを含むテキストの数が大きい順に順次、前記高頻度ワードか否かを判断する対象となる対象ワードとして選択する選択部と、
前記対象ワードを含むテキストの数を前記第２インデックス記憶部から読み出し、読み出した当該テキストの数を前記候補ワード出現数と比較する比較部と、
読み出された当該テキストの数が、何れかの前記候補ワード出現数よりも大きいことを条件に、前記対象ワードを含むテキストのリストを前記第２インデックス記憶部から読み出し、読み出したリストのうち前記テキスト検索条件を満たすテキストの数を算出する算出部と、
算出されたテキストの数が、何れかの前記候補ワード出現数よりも大きいことを条件に、前記対象ワードおよび前記候補ワードの中から、含まれているテキストの数が多い方から前記基準個数を上限として新たな前記候補ワードとして選択して、前記候補ワード記憶部を更新する更新部と
を有し、前記選択部によって次に選択された前記対象ワードを含むテキストの数が、何れの前記候補ワード出現数よりも小さいことを条件に、前記候補ワード記憶部に記憶されたキーワードを前記高頻度ワードとして出力する、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テキストからキーワードを検索するシステム、および、その方法に関する。特に、本発明は、予め準備されたインデックスを用いてキーワードを効率的に検索するシステム、および、その方法に関する。
【背景技術】
【０００２】
近年、通信ネットワークや情報処理装置の発達に伴い、多くのテキストが電子データとして蓄積されている。この結果、これらのテキストの中から有為な情報を得るための技術としてテキストマイニングが注目されてきている。テキストマイニングにおいて実用的な問題の１つに、「何らかの検索条件で絞り込まれたテキストの集合中で、何らかのカテゴリーに属するキーワードを、その出現頻度が高い順にＮ個検出する」という問題がある（非特許文献１を参照）。
【０００３】
この問題の解は、テキストの識別情報、および、キーワードの識別情報をプライマリキーとしたＲＤＢ（Ｒｅｌａｔｉｏｎａｌ  Ｄａｔａｂａｓｅ）を構築することで求められる。このＲＤＢは、例えば、あるテキストに対応付けて、そのテキストに含まれるキーワードを記録したデータベースである。しかしながら、このようなＲＤＢを用いた場合には、テキストの数が膨大となると検索の所要時間も膨大となる。そこで、従来、この問題を複数の情報処理装置によって並列に計算する技術が提案されている（非特許文献１を参照。）。
【０００４】
非特許文献２および３については後述する。
【非特許文献１】Yu C, Philip G, Meng WY. Distributed top-n query processing with possibly uncooperative local systems, Proc. of the 29th Int'l Conf. on Very Large Data Bases. Berlin: Morgan Kaufmann Publishers, 2003. 117-128.
【非特許文献２】Wei Wang, Jiong Yang, Richard Muntz: STING: A Statistical Information Grid Approach to Spatial Data Mining, Proceedings of the 23rd VLDB Conference, Athens, Greece, Aug 1997.
【非特許文献３】Nasukawa, T. and Nagano, T. "Text analysis and knowledge mining system", IBM Systems Journal 40(4): 967-984 (2001).
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の非特許文献１の方法では、並列・分散コンピューティング・システムが必要となり、膨大な費用や手間がかかる。即ち例えば、複数の情報処理装置を導入し、これらの間を高速な通信ネットワークで接続しなければならない。そこで、単一の情報処理装置でも実行できる効率的な検索技術の開発が望まれる。例えば、従来のテキスト検索の技術を応用して、テキストの識別情報やキーワードの識別情報を番号として用い、その番号に基づくインデックスやハッシュ構造のデータを予め準備することで、検索を高速化できると考えられる。具体的には、以下の２つのインデックスが考えられる。
【０００６】
（１）KEY_TO_DOCインデックス
これは、出現頻度順に配列されたキーワードの識別情報から、そのキーワードを含むテキストの識別情報のリストへの参照である。
（２）DOC_TO_KEYインデックス
これは、テキストの識別情報から、そのテキストに含まれるキーワードのリストへの参照である。
【０００７】
（１）のインデックスを用いた処理は、例えば、出現頻度の高い順にキーワードを順次選択して、そのキーワードを含むテキストのリストが、テキスト検索条件を満たすか否かを判断する処理となる。そして、テキスト検索条件を満たすテキストの数が多い順にＮ個のキーワードを選択すれば、それが検索結果となる。しかしながら、検索の対象となるキーワードの種類が多い場合には、キーワードの種類の数に応じた検索時間を要してしまう。
【０００８】
（２）のインデックスを用いた処理は、例えば、テキスト検索条件を満たすテキストを選択して、そのテキストの識別情報に対応するキーワードのリストを取得する。そして、そのキーワードを含むテキストの数をキーワード毎に集計する。しかしながら、検索の対象となるテキストの数が多い場合には、テキストの数に応じた検索時間を要してしまう。一部のテキストを標本抽出することで高速化することも考えられるが、充分な数のテキストが準備できない場合には、検索の精度が低下してしまう。
【０００９】
そこで本発明は、上記の課題を解決することのできるシステム、方法、および、プログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明の第１の形態においては、テキストからキーワードを検索するシステムであって、それぞれのテキストの識別情報から当該テキストに含まれるキーワードのリストを指定する第１インデックスを記憶する第１インデックス記憶部と、それぞれのキーワードの識別情報から当該キーワードを含むテキストのリストを指定する第２インデックスを、それぞれのキーワードを含むテキストの数に対応付けて記憶する第２インデックス記憶部と、キーワードを検索する対象となるテキストの条件であるテキスト検索条件の入力を受け付ける入力部と、検索対象となる複数のテキストのうちテキスト検索条件を満たすテキストの数、および、第２インデックスに対応して記憶されたテキストの数に基づいて、第１インデックスによる検索時間の見積もり、および、第２インデックスによる検索時間の見積もりを算出して、第１インデックスおよび第２インデックスの何れを用いた検索がより高速であるかを判断する判断部と、テキスト検索条件を満たすテキストにおいて、予め定められた基準よりも高い頻度で出現するキーワードを、より高速であると判断されたインデックスによって検索して出力する検索部とを備えるシステム、当該システムによってキーワードを検索する方法、および、当該システムとして情報処理装置を機能させるプログラムを提供する。
【００１１】
また、本発明の第２の形態においては、テキストからキーワードを検索するシステムであって、それぞれのキーワードの識別情報から当該キーワードを含むテキストのリストを指定する第２インデックスを記憶する第２インデックス記憶部と、キーワードを検索する対象となるテキストの条件であるテキスト検索条件の入力を受け付ける入力部と、複数のキーワードのうち、そのキーワードを含み、かつテキスト検索条件を満たすテキストの数が多い方から、予め定められた基準個数のキーワードを選択した高頻度ワードを検索して出力する検索部とを備え、検索部は、高頻度ワードの候補となる候補ワードのそれぞれに対応付けて、当該候補ワードを含み、かつテキスト検索条件を満たすテキストの数である候補ワード出現数を記憶している候補ワード記憶部と、複数のキーワードのそれぞれを当該キーワードを含むテキストの数が大きい順に順次、高頻度ワードか否かを判断する対象となる対象ワードとして選択する選択部と、対象ワードを含むテキストの数を第２インデックス記憶部から読み出し、読み出した当該テキストの数を候補ワード出現数と比較する比較部と、読み出された当該テキストの数が、何れかの候補ワード出現数よりも大きいことを条件に、対象ワードを含むテキストのリストを第２インデックス記憶部から読み出し、読み出したリストのうちテキスト検索条件を満たすテキストの数を算出する算出部と、算出されたテキストの数が、何れかの候補ワード出現数よりも大きいことを条件に、対象ワードを候補ワードとして候補ワード記憶部に追加して、既に候補ワード記憶部に記憶されていた一の候補ワードを候補ワード記憶部から除外する更新部とを有し、選択部によって次に選択された対象ワードを含むテキストの数が、何れの候補ワード出現数よりも小さいことを条件に、候補ワード記憶部に記憶されたキーワードを高頻度ワードとして出力するシステム、および、当該システムによってキーワードを検索する方法、および、当該システムとして情報処理装置を機能させるプログラムを提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明の効果】
【００１２】
本発明によれば、所定の条件を満たすテキストにおいて高い頻度で用いられるキーワードを、これまでよりも効率的に検索することができる。
【発明を実施するための最良の形態】
【００１３】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１４】
図１は、検索システム１０の全体構成を示す。検索システム１０は、テキストＤＢ１５に記憶された複数のテキストの中からキーワードを検出してそのリストを利用者に出力するシステムである。特に、検索システム１０は、複数のキーワードのうち、そのキーワードを含み、かつあるテキスト検索条件を満たすテキストの数が多い方から、予め定められた基準個数のキーワードを選択した高頻度ワードを検索するシステムである。利用者は、テキスト検索条件として自らの興味の対象を特定する条件を指定することによって、興味のある分野でよく使われるキーワードを知ることができる。
本実施例における検索システム１０は、このようなキーワードの検索処理を、これまでよりも効率的に実行することを目的とする。
【００１５】
検索システム１０は、入力部１００と、第１インデックス記憶部２００と、第２インデックス記憶部３００と、検索部４００と、判断部５００とを備える。入力部１００は、キーワードを検索する対象となるテキストの条件であるテキスト検索条件の入力を利用者から受け付ける。具体的には、入力部１００は、テキスト検索条件として、そのテキストが含んでいるべきキーワードの入力を受け付けてもよい。また、入力部１００は、検索の対象となるキーワードのカテゴリーの入力を受け付ける。具体的には、入力部１００は、検索の対象となるキーワードが用いられる分野、または、当該キーワードの品詞を示す情報を、カテゴリーとして受け付けてもよい。
【００１６】
第１インデックス記憶部２００は、それぞれのテキストの識別情報からそのテキストに含まれるキーワードのリストを指定する第１インデックスを、キーワードのカテゴリー毎に記憶する。この第１インデックスは、テキストＤＢ１５に記憶された複数のテキストに基づいて予め作成され、キーワードの検索に先立って第１インデックス記憶部２００に記憶されている。第２インデックス記憶部３００は、それぞれのキーワードの識別情報からそのキーワードを含むテキストのリストを指定する第２インデックスを、キーワードのカテゴリー毎に記憶する。また、第２インデックス記憶部３００は、この第２インデックスに対応付けて、それぞれのキーワードを含むテキストの数を記憶している。この第２インデックスも、第１インデックスと同様に、テキストＤＢ１５に記憶された複数のテキストに基づいて予め作成されている。
【００１７】
判断部５００は、第２インデックスに対応して記憶された、それぞれのキーワードを含むテキストの数を、第２インデックス記憶部２００から読み出す。判断部５００は、入力されたカテゴリーに対応するキーワードを含むテキストの数、および、検索対象となる複数のテキストのうちテキスト検索条件を満たすテキストの数に基づいて、第１インデックスによる検索時間の見積もり、および、第２インデックスによる検索時間の見積もりを算出する。そして、判断部５００は、算出したこれらの見積もりに基づいて、第１インデックスおよび第２インデックスの何れを用いた検索がより高速であるかを判断する。
【００１８】
検索部４００は、テキスト検索条件を満たすテキストにおいて、予め定められた基準よりも高い頻度で出現するキーワードを、より高速であると判断されたインデックスによって検索して、利用者に出力する。この基準とは、既に述べたとおり、例えば、含んでいるテキストの数が多い順から予め定められた基準個数以内であることである。検索部４００は、このような基準を満たすキーワードのリストを利用者に出力する。
【００１９】
図２は、第１インデックス記憶部２００のデータ構造の一例を示す。第１インデックス記憶部２００は、カテゴリー毎に設けられたハッシュファイル２１０−１〜Ｎのそれぞれと、カテゴリー毎に設けられたキーワードリストファイル２２０−１〜Ｎのそれぞれとを記憶する。本実施例においては説明の重複を避けるために、ハッシュファイル２１０−１〜Ｎを代表してハッシュファイル２１０−１について説明し、キーワードリストファイル２２０−１〜Ｎを代表してキーワードリストファイル２２０−１について説明する。なお、ハッシュファイル２１０−２〜Ｎのそれぞれは、ハッシュファイル２１０−１と略同一の構成を採り、キーワードリストファイル２２０−２〜Ｎのそれぞれは、キーワードリストファイル２２０−１と略同一の構成を採る。
【００２０】
ハッシュファイル２１０−１は、それぞれのテキストの識別情報（ＩＤ）に対応付けて、そのテキストに含まれるキーワードのリストを指示するポインタを記録している。例えば、テキスト０に対応するポインタＡＡＡＡは、テキスト０に含まれるキーワードのリストに対するポインタである。このポインタは、例えば、そのリストが後述するキーワードリストファイル２２０−１において記録されている記録位置であってもよい。
【００２１】
キーワードリストファイル２２０−１は、テキスト毎に、そのテキストに含まれるキーワードのリストを記録している。例えば、キーワードリストファイル２２０−１は、テキスト０に対応付けて、ＯＳ、Ｌｉｎｕｘ、および、ｓｓｈから構成されるキーワードのリストを記録している。また、キーワードリストファイル２２０−１は、テキスト１に対応付けて、このテキスト１に含まれるキーワードが存在しない旨を示す値（例えば、ＮＵＬＬ）が格納されている。なお、本例においては説明の便宜上、検索の対象となるキーワードをその文字列として示すが、実際には、キーワードリストファイル２２０−１は、それぞれのキーワードの識別情報を記録している。
【００２２】
ここで、ハッシュファイル２１０−１は、テキストの識別情報をハッシュ・キーとし、キーワードリストへのポインタをハッシュ値としたハッシュ構造であることが望ましい。これにより、指定したテキストに含まれるキーワードのリストを迅速に求めることができる。一方で、キーワードリストファイル２２０−１は、複数のキーワードを直列に連結したリスト構造のデータをキーワードリストとして記録してもよい。この場合、キーワードリストからそれぞれのキーワードを取得するためには、キーワードリストの長さに応じた処理時間を要する。
【００２３】
図３は、第２インデックス記憶部３００のデータ構造の一例を示す。第２インデックス記憶部３００は、サマリーファイル３１０−１〜Ｎと、ディストリビューションファイル３２０−１〜Ｎとを記憶する。第２インデックス記憶部３００は、カテゴリー毎に設けられたサマリーファイル３１０−１〜Ｎのそれぞれと、カテゴリー毎に設けられたディストリビューションファイル３２０−１〜Ｎのそれぞれとを記憶する。本実施例においては説明の重複を避けるために、サマリーファイル３１０−１〜Ｎを代表してサマリーファイル３１０−１について説明し、ディストリビューションファイル３２０−１〜Ｎを代表してディストリビューションファイル３２０−１について説明する。なお、サマリーファイル３１０−２〜Ｎのそれぞれは、サマリーファイル３１０−１と略同一の構成を採り、ディストリビューションファイル３２０−２〜Ｎのそれぞれは、ディストリビューションファイル３２０−１と略同一の構成を採る。
【００２４】
サマリーファイル３１０−１は、それぞれのキーワードの識別情報に対応付けて、そのキーワードを含むテキストの数を記録している。例えば、キーワード１５２４５は、「質問」というキーワードであり、そのキーワードを含むテキストの数が９９９０００個である。ディストリビューションファイル３２０−１は、キーワード毎に、そのキーワードを含むテキストのリストを記録している。例えば、ディストリビューションファイル３２０−１は、キーワード１５２４５に対応付けて、このキーワードを含むテキストの識別情報（０、１、２、３、…）を記録している。即ちキーワード「質問」は、テキスト０にも、テキスト１にも、テキスト２にも含まれている。
【００２５】
ここで、サマリーファイル３１０−１は、キーワードの識別情報をハッシュ・キーとし、各キーワードを含むテキストの数をハッシュ値としたハッシュ構造であることが望ましい。これにより、指定したキーワードを含むテキストのリストを迅速に求めることができる。更に、サマリーファイル３１０−１は、キーワードの識別情報を、そのキーワードを含むテキストの数が多い順に配列して記録していることが望ましい。これにより、後述する選択部４１０の処理において、キーワードをその頻度の順に選択する処理の効率を高めることができる。一方で、ディストリビューションファイル３２０−１は、複数のテキストの識別情報を直接に連結したリスト構造のデータを、テキストのリストとして記録してもよい。この場合、テキストのリストからそれぞれのテキストの識別情報を取得するためには、テキストのリストの長さに応じた処理時間を要する。
【００２６】
なお、本図の例に代えて、または、本図の例に加えて、サマリーファイル３１０−１は、それぞれのキーワードの識別情報に対応付けて、そのキーワードよりも含んでいるテキストの数が多い全てのキーワードを含んでいるテキストの総数を記録してもよい。即ち、サマリーファイル３１０−１は、あるキーワードに対応付けて、そのキーワードよりも先頭側に配列されている全てのキーワードに対応するテキスト数の合計を、更に記録してもよい。これにより、後述する第２検索時間算出部５４０による、検索時間を見積もる処理を高速化することができる。
【００２７】
図４は、検索部４００の機能構成を示す。図４を用いて、検索部４００が第２インデックスを用いて行う検索の機能を説明する。検索部４００は、候補ワード記憶部４０５と、選択部４１０と、比較部４２０と、算出部４４０と、更新部４５０とを有する。検索部４００は、複数のキーワードのうち、そのキーワードを含み、かつテキスト検索条件を満たすテキストの数が多い方から、予め定められた基準個数のキーワードを検索することを目的とする。検索されるこのキーワードを、高頻度ワードと呼ぶ。
【００２８】
候補ワード記憶部４０５は、この高頻度ワードの候補となる候補ワードのそれぞれに対応付けて、その候補ワードを含み、かつ、テキスト検索条件を満たすテキストの数である候補ワード出現数を記憶している。即ち例えば、高頻度ワードをＮ個検索するのが目的であれば、候補ワード記憶部４０５は、Ｎ個の候補ワードを記憶している。これらの候補ワードは、初期状態においてはどのようなキーワードであってもよい。選択部４１０は、検索の対象となる複数のキーワードのそれぞれを当該キーワードを含むテキストの数が多い順に順次、高頻度ワードか否かを判断する対象となる対象ワードとして選択する。例えば、選択部４１０は、第２インデックス記憶部３００のサマリーファイル３１０−１に配列して記録された複数のキーワードの識別情報を、その配列順に順次取得してもよい。
【００２９】
比較部４２０は、対象ワードを含むテキストの数を、第２インデックス記憶部３００のサマリーファイル３１０−１から読み出す。そして、比較部４２０は、読み出した当該テキストの数を、候補ワード記憶部４０５に記憶された候補ワード出現数と比較する。算出部４４０は、読み出された当該テキストの数が、何れかの候補ワード出現数よりも大きいことを条件に、この対象ワードを含むテキストのリストを第２インデックス記憶部３００から読み出す。そして、算出部４４０は、読み出したリストのうちテキスト検索条件を満たすテキストの数を算出する。更新部４５０は、算出されたこのテキストの数が、何れかの候補ワード出現数よりも大きいことを条件に、この対象ワードを候補ワードとして候補ワード記憶部４０５に追加する。そして、更新部４５０は、既に候補ワード記憶部４０５に記憶されていた一の候補ワードを候補ワード記憶部４０５から除外する。例えば、候補ワード記憶部４０５にＮ個の候補ワードが記憶されている場合には、更新部４５０は、Ｎ番目に候補ワード出現数が大きい候補ワードを候補ワード記憶部４０５から除外する。
【００３０】
比較部４２０、算出部４４０、および、更新部４５０は、選択部４１０によって対象ワードが選択される毎に、以上の処理を順次繰り返し実行する。そして、検索部４００は、選択部４１０によって選択された対象ワードを含むテキストの数が、何れの候補ワード出現数よりも小さいことを条件に、候補ワード記憶部４０５に記憶されたキーワードを高頻度ワードとして出力する。
【００３１】
図５は、判断部５００の機能構成を示す。判断部５００は、割合算出部５１０と、関数算出部５２０と、閾値算出部５３０と、第２検索時間算出部５４０と、第１検索時間算出部５５０とを有する。割合算出部５１０は、検索の対象となる全てのテキストの中でテキスト検索条件を満たすテキストの占める割合を示す条件充足率を算出する。関数算出部５２０は、各キーワードについて当該キーワードを含みかつテキスト検索条件を満たすテキストの数を示す確率変数の確率分布を、算出された条件充足率に基づいて近似的に算出する。具体的には、関数算出部５２０は、各キーワードについて、当該キーワードを含むテキストがテキスト検索条件を満たす確率を、上記の条件充足率によって近似することによって、この確率変数の確率分布を二項分布として算出する。
【００３２】
そして、関数算出部５２０は、各キーワードの確率変数がある閾値以上となる確率の和を求める閾値の関数を算出する。閾値算出部５３０は、算出されたこの関数の値が基準個数と略同一となる閾値を算出する。第２検索時間算出部５４０は、算出したこの閾値よりも多い数のテキストに含まれる各キーワードを、第２インデックス記憶部３００のサマリーファイル３１０−１を用いて選択する。そして、第２検索時間算出部５４０は、選択したこれらのキーワードを含んでいるテキストの総数を、サマリーファイル３１０−１を用いて算出する。なお、既に述べたように、あるキーワードよりも出現数の多いキーワードが含まれるテキストの総数は、予め算出されてサマリーファイル３１０−１に記録されていてもよい。この場合、第２検索時間算出部５４０は、この総数をサマリーファイル３１０−１から取得してもよい。
【００３３】
そして、第２検索時間算出部５４０は、算出されたこの総数と、所定のアクセス時間との積を、第２インデックスによる検索時間の見積もりとして算出する。第１検索時間算出部５５０は、テキスト検索条件を満たすテキストの数と、所定のアクセス時間との積を、第１インデックスによる検索時間の見積もりとして算出する。この所定のアクセス時間とは、例えば、第１インデックスに含まれるテキストの識別情報の中から、ある１つ識別情報を探し出してキーワードのリストを取得する時間（ランダム・アクセス時間）に、キーワードのリストからキーワードを順次読み出す時間（シーケンシャル・アクセス時間）と１テキスト辺りのキーワードの数との積を加えた時間となる。これに代えて、この所定のアクセス時間は、上記のランダム・アクセス時間に近似されてもよいし、その他の所定の定数値によって近似されてもよい。これを受けて、判断部５００は、第２検索時間算出部５４０によって算出された検索時間の見積もりが、第１検索時間算出部５５０によって算出された検索時間の見積もりよりも小さいことを条件に、第２インデックスによる検索の方が高速と判断する。
【００３４】
図６は、検索システム１０によってキーワードを検索する処理の流れを示す。入力部１００は、テキスト検索条件の入力を受け付け（Ｓ６００）、カテゴリーの入力を受け付ける（Ｓ６１０）。判断部５００は、テキスト検索条件を満たすテキストの数、および、それぞれのキーワードを含むテキストの数に基づいて、第１インデックスによる検索時間の見積もり、および、第２インデックスによる検索時間の見積もりを算出する（Ｓ６２０）。判断部５００は、第１インデックスによる検索時間の見積もり、および、第２インデックスによる検索時間の見積もりを比較することにより、何れのインデックスを用いた検索がより高速であるかを判断する（Ｓ６３０）。
【００３５】
そして、第１インデックスを用いた検索が、第２インデックスを用いた検索よりも高速と判断されたことを条件に（Ｓ６３０：ＹＥＳ）、検索部４００は、第１インデックスを用いた検索を行う（Ｓ６４０）。一方で、第２インデックスを用いた検索が、第１インデックスを用いた検索よりも高速と判断されたことを条件に（Ｓ６３０：ＮＯ）、検索部４００は、第２インデックスを用いた検索を行う（Ｓ６５０）。
【００３６】
図７は、Ｓ６５０における処理の詳細を示す。選択部４１０は、入力されたカテゴリーにおいて、対象ワードとして未だ選択していないキーワードが存在するか否かを判断する（Ｓ７００）。存在している場合には（Ｓ７００：ＹＥＳ）、選択部４１０は、対象ワードとして未だ選択していないキーワードの中から、そのキーワードを含むテキストの数が最も多いキーワードを対象ワードとして選択する（Ｓ７１０）。そして、比較部４２０は、この対象ワードを含むテキストの数を、候補ワード記憶部４０５に記憶された候補ワード出現数と比較する（Ｓ７２０）。
【００３７】
この対象ワードを含むテキストの数が、何れかの候補ワード出現数よりも大きいことを条件に（Ｓ７３０：ＹＥＳ）、算出部４４０は、この対象ワードを含むテキストのリストを第２インデックス記憶部３００から取得する（Ｓ７４０）。そして、算出部４４０は、このリストに含まれるテキストのうち、テキスト検索条件を満たすテキストの数を算出する（Ｓ７５０）。そして、更新部４５０は、算出されたこのテキストの数が、何れかの候補ワード出現数よりも大きいことを条件に、この対象ワードおよびこれらの候補ワードの中から、含まれているテキストの数が多い方から基準個数を上限として新たな候補ワードとして選択して、候補ワード記憶部４０５を更新する（Ｓ７６０）。具体的には、更新部４５０は、この対象ワードを候補ワードとして候補ワード記憶部４０５に追加する（Ｓ７６０）。追加した結果候補ワードの数が基準個数を超える場合には、更新部４５０は、既に記憶されている一の候補ワードを候補ワード記憶部４０５から除外する。
【００３８】
入力されたカテゴリーのキーワードの全てを既に対象ワードとして選択した場合には（Ｓ７００：ＮＯ）、検索部４００はＳ７７０に処理を移す。また、対象ワードを含むテキストの数が、何れの候補ワード出現数よりも小さいことを条件に（Ｓ７３０：ＮＯ）、検索部４００は、Ｓ７７０に処理を移す。Ｓ７７０において、検索部４００は、候補ワード記憶部４０５に記憶されている候補ワードを高頻度ワードとして出力する（Ｓ７７０）。
【００３９】
以上、図７のＳ７３０に示す処理によれば、全てのキーワードを対象ワードとして選択していない場合であっても、以降の処理において高頻度ワードが検索されないと判明した時点で処理を中止させる。これにより、図７に示す繰り返し処理の回数をキーワードの数よりも少なく抑えることができ、高頻度ワードの検索を効率化できる。また、発明者らの実験により、図７の処理は、実用的な用途において多くの場合、第１インデックスを用いた検索よりも高速に動作することが確かめられた。
【００４０】
なお、以上の図７の処理効率を検討するところ、この処理の効率が低下するのは、以下の２つの場合と考えられる。
（１）対象ワードの数が多いために繰り返し処理の回数の上限値が大きい場合。
これは、入力されたカテゴリーが多くのキーワードを含む場合であり、「名詞」などのカテゴリーが典型例として挙げられる。
（２）Ｓ７３０による判断がＮＯとならずに、繰り返し処理の回数が対象ワードの数と同程度となる場合。
これは、入力されたカテゴリーが、含まれているテキスト数の略等しい多数のキーワードを含む場合である。例えば、製品に対する意見や要望を電話で受け付けるコールセンターにおいて、オペレータは、対応したお客様の名前とそのお客様の意見などをテキストに記録する。テキストは、対応したお客様毎に管理され、統計的な解析などによって、今後の製品改良などに活用される。このような例において、同一のお客様から複数の意見が寄せられることは稀であれば、お客様の名前と言うカテゴリーに属するキーワードは、この（２）の典型例となる。
本実施例に係る検索システム１０は、以上のような検索環境を、キーワードの出現数の分布などによって予め判断して、第２インデックスを用いた検索が高速か否かを適切に判断する。以下、図８においてその処理について述べる。
【００４１】
図８は、Ｓ６２０における処理の詳細を示す。図９は、Ｓ８１０において算出される関数を示すグラフである。割合算出部５１０は、条件充足率を算出する（Ｓ８００）。条件充足率は、検索の対象となる全てのテキストの数を＃Ｄとし、テキスト検索条件を満たすテキストの数を＃ＤＳとすれば、＃ＤＳ／＃Ｄと表される。
【００４２】
次に、関数算出部５２０は、各キーワードの確率変数がある閾値以上となる確率の和を求める閾値の関数を算出する（Ｓ８１０）。具体的には、まず、関数算出部５２０は、各キーワードについて当該キーワードを含みかつテキスト検索条件を満たすテキストの数を示す確率変数の確率分布を、算出された条件充足率に基づいて近似的に算出する。この確率分布は、一例としては、二項分布であり、何れのキーワードについても、そのキーワードを含むテキストがテキスト検索条件を満たす確率が上記の条件充足率であると仮定することによって定められる。
【００４３】
ここで、キーワードｉについての確率変数をＸｉとする。また、キーワードｉを含むテキストの数の分布を示す二項分布は、Ｂ（ｎ，ｐ）＝Ｂ（＃Ｄｉ，＃ＤＳ／＃Ｄ）と表される。但し、キーワードｉを含むテキストの数を＃Ｄｉとする。また、キーワードｉと、ある閾値を示す整数Ｍに対し、以下の確率変数Ｙｉを定義する。
Ｙｉ＝１（Ｘｉ≧Ｍ）
Ｙｉ＝０（Ｘｉ＜Ｍ）
【００４４】
この確率変数Ｙｉを用いて、関数算出部５２０は、各キーワードの確率変数がこの閾値Ｍ以上となる確率の和を求める閾値Ｍの関数を算出する。この関数は、以下のＥ（Ｙ）として表される。
Ｅ（Ｙ）＝Ｅ（Σｉ＝１，２，…，ＩＹｉ）＝Σｉ＝１，２，…，ＩＥ（Ｙｉ）＝Σｉ＝１，２，…，ＩＰ（Ｘｉ≧Ｍ）
【００４５】
閾値算出部５３０は、この関数Ｅ（Ｙ）の値が基準個数Ｎと略同一となる閾値Ｍを算出する（Ｓ８２０）。このときの閾値Ｍの値をＭ＊とする。この関数Ｅ（Ｙ）は、図９に示すように、閾値Ｍに対して単調減少の関数となる。このため、例えば、閾値算出部５３０は、関数Ｅ（Ｙ）の値がＮとなるＭの値を二分探索によって算出してもよい。また、閾値算出部５３０は、ある閾値Ｍに対するＰ（Ｘｉ≧Ｍ）の値を、例えばＳＴＩＮＧアルゴリズムと呼ばれる計算手順によって算出してもよい（非特許文献２の６ページ目を参照。）。これにより、Ｓ８２０における閾値Ｍの計算を高速に実現することができる。
【００４６】
続いて、第２検索時間算出部５４０は、この閾値を用いて、第２インデックスを用いた検索の処理時間の見積もりを算出する（Ｓ８３０）。具体的には、まず、第２検索時間算出部５４０は、算出したこの閾値よりも多い数のテキストに含まれる各キーワードを、第２インデックス記憶部３００のサマリーファイル３１０−１を用いて選択する。そして、第２検索時間算出部５４０は、選択したこれらのキーワードを含んでいるテキストの総数を、サマリーファイル３１０−１を用いて算出する。なお、既に述べたように、あるキーワードよりも出現数の多いキーワードが含まれるテキストの総数は、予め算出されてサマリーファイル３１０−１に記録されていてもよい。この場合、第２検索時間算出部５４０は、この総数をサマリーファイル３１０−１から取得してもよい。そして、第２検索時間算出部５４０は、算出したこの総数と、所定のアクセス時間との積を、検索の処理時間の見積もりとして算出する。
【００４７】
ここで、所定のアクセス時間とは、図３に示すディストリビューションファイル３２０−１において、ある１つのテキストにおけるキーワードのリストを先頭から順に辿って各キーワードを選択する処理の所要時間であることが望ましい。例えば、第２検索時間算出部５４０は、キーワードのリストの長さの平均値を求め、その平均値と等しい長さのキーワードを辿る処理の時間をアクセス時間として算出してもよい。これに代えて、所定のアクセス時間は、所定の定数値に近似して設定されてもよい。
【００４８】
続いて、第１検索時間算出部５５０は、第１インデックスを用いた検索の処理時間の見積もりを算出する（Ｓ８４０）。例えば、第１検索時間算出部５５０は、テキスト検索条件を満たすテキストの数と、所定のアクセス時間との積を、第１インデックスによる検索時間の見積もりとして算出する。ここで、所定のアクセス時間は、例えば以下の式によって算出される。
ランダムアクセス時間  ＋  １つのテキストに含まれるキーワードの数の平均値  ×  シーケンシャルアクセス時間
【００４９】
ここで、ランダムアクセス時間とは、テキスト検索条件を満たす各テキストを選択して、選択された各テキストに対応するキーワードのリストを選択する処理に要する時間である。また、シーケンシャルアクセス時間とは、ある１つのテキストについて、そのテキストに含まれるキーワードを順次選択して、キーワード毎の出現回数を集計する処理に要する時間である。これらのランダムアクセス時間、および、シーケンシャルアクセス時間は、検索対象のキーワードによらず、所定の定数値に近似してもよい。
【００５０】
以上、図８および図９を用いて説明したように、判断部５００は、第１インデックスを用いた検索の所要時間と、第２インデックスを用いた検索の所要時間とを、実際の検索処理によらず迅速に計算することができる。この結果、実際の検索処理に先立って、何れのインデックスを用いてキーワードを検索するべきかを適切に判断することができる。
【００５１】
図１０は、本実施例によって検索されるキーワードの検索結果を示す。本図の縦軸は、あるテキストの集合において、品詞の「体言」をカテゴリーとして指定した場合について、検索システム１０によって検索された高頻度ワードの一覧を示す。また、本図の横軸は、それと同一のテキストの集合において、テキストの内容の主題をカテゴリーとして指定した場合について、検索システム１０によって検索された高頻度ワードの一覧を示す。
【００５２】
「体言」については、中国、ロイター、日本、および、東京、というキーワードが、この順に頻出するキーワードとして検索されている。「主題」については、社会、スポーツ、ビジネス、および、国際と言うキーワードが、この順に頻出するキーワードとして検索されている。このように、本実施例における検索システム１０によれば、各カテゴリーにおいて頻出するキーワードを迅速に検索することができる。
【００５３】
また、縦軸と横軸の交点には、それぞれのキーワードが共に出現するテキストの数を示す。また、テキストの数を示す各行の次の行には、それぞれのキーワードが相関する程度を示す指標値を示す。本実施例における検索システム１０は、第２インデックスを用いることによって各キーワードを含むテキストのリストを求めることもできるので、複数のキーワードが共に出現するテキストの数も効率的に算出することができる。
【００５４】
図１１は、キーワードの検索の所要時間を従来手法と比較して示す。この検索においては、テキスト検索条件として、テキストに含まれているキーワードを用いる。即ち、この検索においては、「ＷＩＮ９５」というキーワードを含むテキストを検索の対象とする。また、この検索においては、一般名詞、名詞、固有名詞、コマンド、ハードウェア、ソフトウェア、および、専門用語、のそれぞれを、キーワードのカテゴリーとして用いる。そしてそれぞれのカテゴリーについて、検索に要した所要時間を計測する実験を行う。
【００５５】
また、図１１には、本実施例に係る検索システム１０による検索の所要時間を、非特許文献３に記載された技術による所要時間と比較して示す。何れのカテゴリーにおいても、従来手法と比べて極めて高速にキーワードが検索されることが確かめられた。
【００５６】
図１２は、第１インデックス（ＤＯＣ＿ＴＯ＿ＫＥＹインデックス）による検索と第２インデックス（ＫＥＹ＿ＴＯ＿ＤＯＣインデックス）による検索との所要時間を比較して示す。図１２に示す所要時間は、判断部５００による判断結果によらず、同一条件下で第１インデックスを用いた検索と第２インデックスを用いた検索との双方を行った場合について、その所要時間を示す。また、図中の下線を示した所要時間は、判断部５００の判断によってより高速にキーワードが検索できると判断されたインデックスによる検索の所要時間を示す。図から明らかなように５例のうち４例において、より高速な検索方法を正しく判断できることが確かめられた。また、残りの１例についても、判断は誤ったものの、正しい判断と比較して概ね同一の所要時間で検索が実現できることが確かめられた。
【００５７】
図１３は、本実施例の検索システム１０として機能する情報処理装置９００のハードウェア構成の一例を示す。情報処理装置９００は、ホストコントローラ１０８２により相互に接続されるＣＰＵ１０００、ＲＡＭ１０２０、及びグラフィックコントローラ１０７５を有するＣＰＵ周辺部と、入出力コントローラ１０８４によりホストコントローラ１０８２に接続される通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を有する入出力部と、入出力コントローラ１０８４に接続されるＢＩＯＳ１０１０、フレキシブルディスクドライブ１０５０、及び入出力チップ１０７０を有するレガシー入出力部とを備える。
【００５８】
ホストコントローラ１０８２は、ＲＡＭ１０２０と、高い転送レートでＲＡＭ１０２０をアクセスするＣＰＵ１０００及びグラフィックコントローラ１０７５とを接続する。ＣＰＵ１０００は、ＢＩＯＳ１０１０及びＲＡＭ１０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ１０７５は、ＣＰＵ１０００等がＲＡＭ１０２０内に設けたフレームバッファ上に生成する画像データを取得し、表示装置１０８０上に表示させる。これに代えて、グラフィックコントローラ１０７５は、ＣＰＵ１０００等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
【００５９】
入出力コントローラ１０８４は、ホストコントローラ１０８２と、比較的高速な入出力装置である通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を接続する。通信インターフェイス１０３０は、ネットワークを介して外部の装置と通信する。ハードディスクドライブ１０４０は、情報処理装置９００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ１０６０は、ＣＤ−ＲＯＭ１０９５からプログラム又はデータを読み取り、ＲＡＭ１０２０又はハードディスクドライブ１０４０に提供する。
【００６０】
また、入出力コントローラ１０８４には、ＢＩＯＳ１０１０と、フレキシブルディスクドライブ１０５０や入出力チップ１０７０等の比較的低速な入出力装置とが接続される。ＢＩＯＳ１０１０は、情報処理装置９００の起動時にＣＰＵ１０００が実行するブートプログラムや、情報処理装置９００のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ１０５０は、フレキシブルディスク１０９０からプログラム又はデータを読み取り、入出力チップ１０７０を介してＲＡＭ１０２０またはハードディスクドライブ１０４０に提供する。入出力チップ１０７０は、フレキシブルディスク１０９０や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
【００６１】
情報処理装置９００に提供されるプログラムは、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ１０７０及び/又は入出力コントローラ１０８４を介して、記録媒体から読み出され情報処理装置９００にインストールされて実行される。プログラムが情報処理装置９００等に働きかけて行わせる動作は、図１から図１２において説明した検索システム１０における動作と同一であるから、説明を省略する。
【００６２】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムを情報処理装置９００に提供してもよい。
【００６３】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。例えば、本実施例に示す情報処理システム１０は、テキストマイニングのみならず、カテゴリ情報を含むアノテーションのついたレコードから成るデータベースのデータマイニングにも応用できる。即ち、カテゴリー間に階層構造が規定されたデータベースにおいては、上位カテゴリーを本実施例のテキストとし、下位カテゴリーを本実施例のキーワードとして取り扱うことによって、利用者の興味を持つ下位カテゴリーをその可能性の高さに応じて列挙することができる。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００６４】
【図１】図１は、検索システム１０の全体構成を示す。
【図２】図２は、第１インデックス記憶部２００のデータ構造の一例を示す。
【図３】図３は、第２インデックス記憶部３００のデータ構造の一例を示す。
【図４】図４は、検索部４００の機能構成を示す。
【図５】図５は、判断部５００の機能構成を示す。
【図６】図６は、検索システム１０によってキーワードを検索する処理の流れを示す。
【図７】図７は、Ｓ６５０における処理の詳細を示す。
【図８】図８は、Ｓ６２０における処理の詳細を示す。
【図９】図９は、Ｓ８１０において算出される関数を示すグラフである。
【図１０】図１０は、本実施例によって検索されるキーワードの検索結果を示す。
【図１１】図１１は、キーワードの検索の所要時間を従来手法と比較して示す。
【図１２】図１２は、第１インデックスによる検索と第２インデックスによる検索との所要時間を比較して示す。
【図１３】図１３は、本実施例の検索システム１０として機能する情報処理装置９００のハードウェア構成の一例を示す。
【符号の説明】
【００６５】
１０  検索システム
１５  テキストＤＢ
１００  入力部
２００  第１インデックス記憶部
２１０  ハッシュファイル
２２０  キーワードリストファイル
３００  第２インデックス記憶部
３１０  サマリーファイル
３２０  ディストリビューションファイル
４００  検索部
４０５  候補ワード記憶部
４１０  選択部
４２０  比較部
４４０  算出部
４５０  更新部
５００  判断部
５１０  割合算出部
５２０  関数算出部
５３０  閾値算出部
５４０  第２検索時間算出部
５５０  第１検索時間算出部
９００  情報処理装置
【図１】
2007156739.tif 000003
【図２】
2007156739.tif 000004
【図３】
2007156739.tif 000005
【図４】
2007156739.tif 000006
【図５】
2007156739.tif 000007
【図６】
2007156739.tif 000008
【図７】
2007156739.tif 000009
【図８】
2007156739.tif 000010
【図９】
2007156739.tif 000011
【図１０】
2007156739.tif 000012
【図１１】
2007156739.tif 000013
【図１２】
2007156739.tif 000014
【図１３】
2007156739.tif 000015