(57)【要約】【課題】  句転置索引へ格納すべき句を適切に選択し、索引を用いた検索における計算負荷を効率的に低減する。【解決手段】  文書検索装置１の句・頻度抽出手段７は、検索履歴データベース８に格納されている検索履歴を参照して、過去にキーワードとして使用された句およびその頻度を抽出する。併合負荷算出手段９は、検索履歴データベース８に格納されている検索履歴を参照して、一定期間内での検索履歴中に出現した句を抽出し、抽出した各句が出現する文書を語転置索引データベース６を用いて検査する場合に予想される計算負荷を算出する。格納句決定手段１０は、前記頻度および計算負荷を用いて、句転置索引データベース１１に索引を格納する句を決定する。検索実行手段１２は、前記両データベース６．１１を検索した結果をユーザ端末２へ返信する。【選択図】  図１
2010134720.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ端末から検索指示された単語を含む電子文書を検索するときに、単語と電子文書との関連情報を格納する語転置索引と、
複数の単語からなる句と電子文書との関連情報を格納する句転置索引とを利用する文書検索装置であって、
検索履歴に含まれる句を抽出し、該抽出した各句を含む電子文書を前記語転置索引を用いて検索するときの計算量を求める算出手段と、
前記算出した各句の計算量および検索履歴中での出現頻度に基づいて前記句転置索引に格納する句を決定する決定手段と、
を備えることを特徴とする文書検索装置。
【請求項２】
前記算出手段は、前記検索履歴から抽出した句を構成する各単語をもって前記語転置索引を参照し、
該各単語の転置リストを前記関連情報として取得するとともに、取得した各転置リストのうち最短の転置リストの長さを前記計算量として求める
ことを特徴とする請求項１記載の文書検索装置。
【請求項３】
前記決定手段は、前記計算量および前記出現頻度を用いて各句のスコアを算出し、該スコアに従って前記句転置索引に格納する句を決定する
ことを特徴とする請求項１または２のいずれか１項に記載の文書検索装置。
【請求項４】
請求項１〜３のいずれか１項に記載の文書検索装置を構成する各手段としてコンピュータを機能させることを特徴とする文書検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子文書群中からキーワードに該当する電子文書を検索する技術に関する。
【背景技術】
【０００２】
文書の電子化の普及やインターネットの爆発的な普及に伴い、インターネットや企業内ネットワークのユーザは、大量の電子文書を閲覧可能になっている。このような大量の電子文書に対して、ユーザが表現した検索要求を満たす文書を高速に検索できる検索システム（全文検索システム）が広く使われている。検索要求の一般的な表現方法としては、検索対象の電子文書に含まれるような語の列（キーワード列）を指定する方法が使われている。
【０００３】
特定のキーワードを含む電子文書の数は文書全体の一部であるため、検索要求が入力される度に蓄積された全ての文書毎にキーワードの有無を確認したのでは、キーワードを一切含まない文書に対する処理を数多く繰り返すことになり効率が悪い。このため、語を索引語として、その語を含むような文書群、およびそれら各文書における索引語の出現位置を持つ語転置索引と呼ばれる索引を使って高速化する方法が非特許文献１に提案されている。
【０００４】
大量の電子文書を検索対象とする場合、複数のキーワードが入力された場合には、それぞれのキーワードを少なくともひとつ含むような文書の検索（ＡＮＤ検索）を実行することが一般的である。一方で、複数のキーワードを個別に扱うのではなく、それらのキーワードの検索要求内での隣接情報や順序の情報を保持したような、句による文書検索を行いたいという需要がある。
【０００５】
しかし、単純な語転置索引だけを用いて句が出現するような文書を検索しようとする場合、計算のための負荷が大きいという問題がある。なぜなら、句を構成する各語が順序を保って隣接して出現することを確認するためには、句を構成する各語を鍵として得られる転置索引の値（転置リスト）を併合し、その結果のリストを逐次確認し、句を構成する各語が要求された順序で隣接して出現しているかどうかを文書毎に確認する必要があるためである。
【０００６】
上記の問題に対し、語を単位とした索引だけではなく、句全体をあたかもひとつの語であるかのように取り扱い、句に対応する索引（以下、句転置索引と呼ぶ）を保持することにより、句を含んだ検索のための計算負荷を下げる方法が知られている。
【０００７】
しかし、全ての句に対して句転置索引を用意したのでは、膨大な容量の記憶装置が必要になり現実的ではない。このため、限られた容量の句転置索引に対してどのような句を格納するのかについて、何らかの基準に基づいて選択することが必要となる。そこで、句の選択基準として、過去の検索履歴中に高頻度で出現する句を句転置索引に格納する方法が非特許文献２に提案されている。
【非特許文献１】「分散型高速情報収集／全文検索システムＩｎｆｏＢｅｅ／Ｅｖａｎｇｅｌｉｓｔ」，竹野浩，井上孝史，ＮＴＴ  Ｒ＆Ｄ，ｖｏｌ．５２，ｎｏ．２，２００３，ｐｐ７８−８４．
【非特許文献２】“Ｆａｓｔ  Ｐｈｒａｓｅ  ｑｕｅｒｙｉｎｇ  ｗｉｔｈ  ｃｏｍｂｉｎｅｄ  ｉｎｄｅｘｅｓ”，Ｈｕｇｈ  Ｅ．Ｗｉｌｌｉａｍｓ，Ｊｕｓｔｉｎ  Ｚｏｂｅｌ  ａｎｄ  Ｄｉｒｋ  Ｂａｈｌｅ，ＡＣＭ  ＴＯＩＳ，ｖｏｌ．２２，ｎｏ．４，２００４
【発明の開示】
【発明が解決しようとする課題】
【０００８】
非特許文献２の手法では、検索に利用される頻度の高い句を優先的に句転置索引へ格納している。しかしながら、この手法では、句を含んだ検索の計算負荷を効率的に削減できないおそれがある。
【０００９】
すなわち、そもそも句検索を語転置索引のみで対処した場合の計算負荷の大きさは、句を構成する各語の転置リストの長さに依存する。したがって、もともと転置リストが短いような語から構成される句の格納によって削減される計算負荷は小さいという問題があった。
【００１０】
そこで本発明は、このような問題に鑑み、句転置索引へ格納すべき句を適切に選択し、索引を用いた検索における計算負荷を効率的に低減することを解決課題としている。
【課題を解決するための手段】
【００１１】
本発明は、前記課題を解決するため、句を構成する各単語の連接関係の確認に処理時間がかかることに鑑み、利用頻度の高い句を転置索引の生成対象とする。このとき、句を構成する各単語の転置リストのうち長さが最小のものが必要処理量であり、処理時間に比例するとの考えに基づいて、索引生成対象の句を決定している。
【００１２】
具体的には、請求項１記載の発明は、ユーザ端末から検索指示された単語を含む電子文書を検索するときに、単語と電子文書との関連情報を格納する語転置索引と、複数の単語からなる句と電子文書との関連情報を格納する句転置索引とを利用する文書検索装置であって、検索履歴に含まれる句を抽出し、該抽出した各句を含む電子文書を前記語転置索引を用いて検索するときの計算量を求める算出手段と、前記算出した各句の計算量および検索履歴中での出現頻度に基づいて前記句転置索引に格納する句を決定する決定手段とを備えることを特徴としている。
【００１３】
また、請求項２記載の発明は、前記算出手段は、前記検索履歴から抽出した句を構成する各単語をもって前記語転置索引を参照し、該各単語の転置リストを前記関連情報として取得するとともに、取得した各転置リストのうち最短の転置リストの長さを前記計算量として求めることを特徴としている。
【００１４】
また、請求項３記載の発明は、前記決定手段は、前記計算量および前記出現頻度を用いて各句のスコアを算出し、該スコアに従って前記句転置索引に格納する句を決定することを特徴としている。
【００１５】
また、請求項４記載の発明は、文書検索プログラムであり、請求項１〜３のいずれか１項に記載の文書検索装置を構成する各手段としてコンピュータを機能させることを特徴としている。
【発明の効果】
【００１６】
請求項１〜４記載の発明によれば、句の利用頻度および句を構成する単語の連接確認に要する計算負荷を考慮して、索引生成対象とする句が適切に選択されることから、検索処理の計算負荷が低減され、処理時間が短縮される。
【発明を実施するための最良の形態】
【００１７】
図１は、本発明の実施形態に係る文書検索装置１の構成例を示している。この文書検索装置１は、ネットワークを介して検索条件（キーワード）を指示するユーザ端末２と、検索対象の電子文書群を格納するコンテンツサーバＳと通信可能に接続されている。
【００１８】
ここでは前記文書検索装置１は、インターネット上の前記コンテンツサーバＳに存在するコンテンツなどを検索するサーバ（例えば検索エンジンなど）として構成されているものとする。なお、文書検索装置１は、例えばネットワークに接続可能で文書検索の処理ロジックを実行可能な計算機などでもよく、また前記文書検索装置１を社内ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などのインターネット以外のネットワークに接続してもよい。
【００１９】
前記ユーザ端末２は、ネットワークに接続可能なブラウザなどのユーザインタフェースを備えていればよい。例えば、パーソナルコンピュータ（ＰＣ）や携帯電話などが該当する。このユーザ端末２をもって、ユーザはキーワードを送信し文書検索を行う。なお、前記文書検索装置１には、通常はユーザ端末２が複数台接続されている。
【００２０】
前記文書検索装置１は、事前に転置索引を生成する索引生成機能と、生成された転置索引を利用して電子文書を検索する検索エンジンの機能とを有している。
【００２１】
前記索引生成機能は、図１中の文書収集手段３，文書データベース４，索引生成手段５，語転置索引データベース６，句・頻度抽出手段７，検索履歴データベース８，併合負荷算出手段９，格納句決定手段１０，句転置索引データベース１１をもって実行されている。また、前記検索エンジンの機能は、検索実行手段１２をもって実行されている。
【００２２】
前記各手段３〜１２の機能は、コンピュータのハードウェアとソフトウェアの協働で実現されている。なお、前記文書検索装置１は、コンピュータの通常の構成要素、例えば前記各手段３〜１２の処理データを一時記憶する書き換え可能なメモリ（ＲＡＭ）と、ネットワーク接続に使用する通信デバイスと、前記各手段３〜１２の制御や演算処理などを行う処理部（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ等）と、ハードディスクドライブ装置などの保存部を備え、前記各データベース４．６．８．１１は前記ハードディスクドライブ装置上に構築されている。以下、前記各手段３〜１１の索引生成処理を図２のフローチャートに基づき説明する。
【００２３】
Ｓ０１：まず、前記文書収集手段３は、前記通信デバイスを通じて前記コンテンツサーバＳにアクセスし、検索対象となる電子文書群を収集して前記文書データベース４に格納する。この文書収集手段３の機能は、前記コンテンツサーバＳから電子文書群を回収するプログラム（クローラなど）で実現される。
【００２４】
Ｓ０２：前記索引生成手段５は、前記文書データベース４に格納された電子文書群を参照して語転置索引（語転置インデックス）を生成し、前記語転置索引データベース６に格納する。
【００２５】
語転置索引は、語を索引キーとして、その語を含むような文書番号（文書ＩＤ）と、各文書内での語の出現開始位置を含む索引である。この索引は転置リストと呼ばれ、その長さは通常、各語が出現する文書数などに応じて異なっている。語転置索引データベース６のデータ例を表１に示す。
【００２６】
【表１】
2010134720.tif 000003
【００２７】
表１の例は、「今日」「しかし」「ｄｏｃｏｍｏ」「ＮＴＴ」の単語が含まれる文書数および文書ＩＤを示している。なお、前記索引生成手段５および前記語転置索引データベース６は、情報検索において広く使われている既存の手法を用いることができる。
【００２８】
Ｓ０３：前記句・頻度抽出手段７は、前記検索履歴データベース８に格納されている検索履歴を参照して、過去にキーワードとして使用された句およびその頻度を抽出する。
【００２９】
前記検索履歴データベース８には、文書検索装置１に対してこれまでにユーザが入力した検索要求（キーワード）が日時情報付きで格納される。検索履歴データベース８のデータ例を表２に示す。
【００３０】
【表２】
2010134720.tif 000004
【００３１】
表２の例には、「天気」「“ＮＴＴ  Ｄｏｃｏｍｏ”」「“Ｎｅｘｔ  Ｇｅｎｅｒａｔｉｏｎ”」「カメラ」の検索履歴の日付・時刻が示されている。
【００３２】
前記句・頻度抽出手段７は、一定期間内（例えば１ヶ月）での検索履歴中に出現した句を抽出するとともに、抽出した各句の出現頻度Ｆiを調べる。ここでは、一定期間内の検索履歴中に出現した回数を前記出現頻度Ｆiとして説明する。
【００３３】
具体的には、一定期間内の検索履歴から引用符（「」や“”）を含んでいるキーワードを抽出する。そして、それらキーワード中の引用符の内側を句とし、それぞれの句について出現回数を対応付けた「句→出現回数」の連想配列（ハッシュテーブル）Ａを生成する。
【００３４】
なお、本実施例では明示的な引用符を含むものについて説明したが、これ以外にもキーワード中から暗黙的に句とみなせる部分を抽出する既存技術を用いることもできる。そのような手法で句の抽出を行う場合、場合によっては、本来句ではないような語の並びを誤って句とみなす可能性もある。そのような誤りはない方が好ましいが、仮に誤りが含まれていたとしても本発明自体は適用可能である。
【００３５】
Ｓ０４：前記併合負荷算出手段９は、前記検索履歴データベース８に格納されている検索履歴を参照して、前記句・頻度抽出手段７と同様の手法で、一定期間内での検索履歴中に出現した句を抽出する。そして、抽出した各句が含まれる文書を、前記語転置索引データベース６を用いて検査する場合に予想される計算負荷を算出する。
【００３６】
すなわち、句が文書中に出現することを確認するためには、句を構成する各語が順序を保ち、隣接して文書中に出現することを確認する必要がある。そのためには、まず、句を構成する各語を索引キーとして、前記語転置索引データベース６から各語の転置リストを取得し、取得した各転置リストの各値を併合する。次に、併合した結果のリストに含まれた全ての文書に対し、句を構成する各語が要求された順序で隣接して出現するかどうかを逐次確認する必要がある。そのため、この場合の計算負荷は、各語の転置リストを併合したリストの長さに依存する。
【００３７】
ここで計算負荷は、各語の転置リストのうち、最短となる転置リストの長さに比例するとの考えに基づいて算出される。すなわち、前記併合負荷算出部９は、句を構成する各語の転置リストのうち最短のリストの長さをこの句の併合負荷Ｃiとして算出する。そして、検索履歴から抽出したそれぞれの句について、前記併合負荷Ｃiを対応付けた「句→併合負荷」の連想配列（ハッシュテーブル）Ｂを生成する。
【００３８】
Ｓ０５：前記格納句決定手段１０は、前記両連想配列Ａ．Ｂを参照して、前記句転置索引データベース１１に索引を格納する句を決定する。ここでは、句の利用頻度および単語の連接関係の確認に要する計算負荷を考慮して、転置索引を生成すべき句を選択している。
【００３９】
すなわち、前記格納句決定手段１０は、前記連想配列Ａを参照して、句Ｐiの一定期間内の検索履歴における出現頻度Ｆiを読み出す。また、これと同時に前記連想配列Ｂを参照して、句Ｐiの併合負荷Ｃiを読み出す。そして、これらを用いて句Ｐiの句格納スコアＳiを以下の式（１）により算出する。
【００４０】
【数１】
2010134720.tif 000005
【００４１】
ここで、αは重みを表し、句の出現頻度Ｆiあるいは併合負荷Ｃiのどちらを優先してスコアを付与するかを任意に設定することができる。この式（１）は、プログラムなどに定義されていればよい。
【００４２】
前記格納句決定手段１０は、このように算出した句格納スコアＳiの値が大きい句から順に、句転置索引の生成対象とする。これにより、検索履歴に出現した頻度の高い句や、語転置索引を用いて検索を行った場合の併合負荷が大きい句を、優先的に句転置索引の生成対象とすることができる。なお、句格納スコアＳiおよび前記両連想配列Ａ．Ｂは、前記メモリ（ＲＡＭ）あるいは前記ハードディスクドライブ装置に保存して処理を行ってもよい。
【００４３】
Ｓ０６：句転置索引の生成対象となった句のデータは、前記格納句決定手段１０から前記索引生成手段５へ送信され、該索引生成手段５にて各句の句転置索引（句転置インデックス）が生成される。生成された句転置索引は、事前に設定された記憶容量を超えない範囲で前記句転置索引データベース１１に格納される。なお、Ｓ０１〜０６で説明した索引生成処理は一定期間ごとに行ってもよく、これにより前記両索引データベース６．１１は最新の状態に更新される。
【００４４】
このように生成された句転置索引データベース１１は、前記ユーザ端末２から受信したキーワードをもって前記検索実行手段１２が電子文書を検索するときに利用される。ここでは前記検索実行手段１２は、キーワードが句であり、かつ前記句転置索引データベース１１に存在した場合には、該句転置索引データベース１１を検索し、その結果を前記ユーザ端末２へ返信する。
【００４５】
このとき、前記句転置索引データベース１１に格納された句転置索引は、利用頻度が高く、かつ単語の連接関係確認に処理時間を要する句について優先的に生成されているので、前記検索実行手段１２が文書を検索するときの処理時間が短縮される。
【００４６】
なお、前記ユーザ端末２から受信したキーワードが語、あるいは前記句転置索引データベース１１に存在しない句であった場合には、前記検索実行手段１２はさらに前記語転置索引データベース６を検索し、その結果を前記ユーザ端末２へ返信する。
【００４７】
本発明は、コンピュータを前記文書検索装置１の各手段３〜１２として機能させる文書検索プログラムとしても提供することができる。このプログラムは、コンピュータに各手段３〜１２の全ての機能を実現させるものでもよく、あるいは一部の機能を実現させるものであってもよい。
【００４８】
このプログラムは、Ｗｅｂサイトなどからのダウンロードによってコンピュータに提供される。また、前記プログラムは、ＣＤ−ＲＯＭ，ＤＶＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ，ＤＶＤ−Ｒ，ＤＶＤ−ＲＷ，ＭＯ，ＨＤＤ，Ｂｌｕ−ｒａｙ  Ｄｉｓｋ（登録商標）などの記録媒体に格納してコンピュータに提供してもよい。
【図面の簡単な説明】
【００４９】
【図１】本発明の実施形態に係る文書検索装置の構成図。
【図２】同  索引生成の処理フロー図。
【符号の説明】
【００５０】
１…文書検索装置
２…ユーザ端末
３…文書収集手段
４…文書データベース
５…索引生成手段
６…語転置索引データベース
７…句・頻度抽出手段
８…検索履歴データベース
９…併合負荷算出手段
１０…格納句決定手段
１１…句転置索引データベース
１２…検索実行手段
Ｓ…コンテンツサーバ
【図１】
2010134720.tif 000006
【図２】
2010134720.tif 000007