(57)【特許請求の範囲】
【請求項１】
検索対象の電子文書のうちの第１のカテゴリに属するテキストに含まれる複数のＮグラムと、前記第１のカテゴリに属するテキストにおける当該複数のＮグラムの出現位置と、を対応付けた第１のインデックス、及び、前記電子文書のうちの第２のカテゴリに属するテキストに含まれる複数のＮグラムと、前記第２のカテゴリに属するテキストにおける当該複数のＮグラムの出現位置と、を対応付けた第２のインデックスを記憶する記憶手段と、
検索キーワードを取得する取得手段と、
前記検索キーワードに含まれる複数のＮグラムの出現位置を前記第１のインデックスから読み出し、読み出した出現位置の連続性を評価することによって、前記第１のカテゴリに属するテキストから前記検索キーワードを検索する第１の検索手段と、
前記検索キーワードに含まれる複数のＮグラムの出現位置を前記第１のインデックス及び前記第２のインデックスから読み出し、読み出した出現位置の連続性を評価することによって、前記電子文書から前記検索キーワードを検索する第２の検索手段と、
少なくとも前記第１の検索手段と前記第２の検索手段の一方による検索結果を出力する出力手段と、
を備えることを特徴とする検索装置。
【請求項２】
前記取得手段は、前記検索キーワードを１文字ずつ取得し、
前記第１の検索手段は、前記取得手段によって前記検索キーワードが１文字ずつ取得される度に、前記取得手段によって既に取得された少なくとも１文字に新たに取得された１文字を加えた文字列を前記検索キーワードとして検索する、
ことを特徴とする請求項１に記載の検索装置。
【請求項３】
前記第１の検索手段は、前記検索キーワードに含まれる複数のＮグラムの出現位置を前記第１のインデックスから読み出し、読み出した出現位置が、前記検索キーワードにおける前記複数のＮグラムの位置と連続して合致する数に基づいて、前記第１のカテゴリに属するテキストから前記検索キーワードを検索する、
ことを特徴とする請求項１又は２に記載の検索装置。
【請求項４】
前記第１の検索手段は、前記第１のインデックスを参照して、前記第１のカテゴリに属するテキストから前記検索キーワードで始まる文字列を検索し、
前記第２の検索手段は、前記第１のインデックス及び前記第２のインデックスを参照して、前記電子文書から前記検索キーワードを含む文字列を検索する、
ことを特徴とする請求項１から３のいずれか１項に記載の検索装置。
【請求項５】
前記第１のカテゴリに属するテキストに含まれる複数のＮグラムと、前記第１のカテゴリに属するテキストにおける当該複数のＮグラムの出現位置と、を対応付けることによって、前記第１のインデックスを生成し、前記第２のカテゴリに属するテキストに含まれる複数のＮグラムと、前記第２のカテゴリに属するテキストにおける当該複数のＮグラムの出現位置と、を対応付けることによって、前記第２のインデックスを生成する生成手段、を更に備え、
前記記憶手段は、前記生成手段によって生成された前記第１のインデックス及び前記第２のインデックスを記憶する、
ことを特徴とする請求項１から４のいずれか１項に記載の検索装置。
【請求項６】
前記電子文書は、辞書データであり、
前記第１のカテゴリに属するテキストは、前記辞書データにおける見出し語を表すテキストであり、
前記第２のカテゴリに属するテキストは、前記見出し語の説明又は用例を表すテキストである、
ことを特徴とする請求項１から５のいずれか１項に記載の検索装置。
【請求項７】
コンピュータが、
検索対象の電子文書のうちの第１のカテゴリに属するテキストに含まれる複数のＮグラムと、前記第１のカテゴリに属するテキストにおける当該複数のＮグラムの出現位置と、を対応付けた第１のインデックス、及び、前記電子文書のうちの第２のカテゴリに属するテキストに含まれる複数のＮグラムと、前記第２のカテゴリに属するテキストにおける当該複数のＮグラムの出現位置と、を対応付けた第２のインデックスを取得するインデックス取得ステップと、
検索キーワードを取得する検索キーワード取得ステップと、
前記検索キーワードに含まれる複数のＮグラムの出現位置を前記第１のインデックスから読み出し、読み出した出現位置の連続性を評価することによって、前記第１のカテゴリに属するテキストから前記検索キーワードを検索する第１の検索ステップと、
前記検索キーワードに含まれる複数のＮグラムの出現位置を前記第１のインデックス及び前記第２のインデックスから読み出し、読み出した出現位置の連続性を評価することによって、前記電子文書から前記検索キーワードを検索する第２の検索ステップと、
少なくとも前記第１の検索ステップと前記第２の検索ステップの一方による検索結果を出力する出力ステップと、
を実行する検索方法。
【請求項８】
コンピュータを、
検索対象の電子文書のうちの第１のカテゴリに属するテキストに含まれる複数のＮグラムと、前記第１のカテゴリに属するテキストにおける当該複数のＮグラムの出現位置と、を対応付けた第１のインデックス、及び、前記電子文書のうちの第２のカテゴリに属するテキストに含まれる複数のＮグラムと、前記第２のカテゴリに属するテキストにおける当該複数のＮグラムの出現位置と、を対応付けた第２のインデックスを取得するインデックス取得手段、
検索キーワードを取得する検索キーワード取得手段、
前記検索キーワードに含まれる複数のＮグラムの出現位置を前記第１のインデックスから読み出し、読み出した出現位置の連続性を評価することによって、前記第１のカテゴリに属するテキストから前記検索キーワードを検索する第１の検索手段、
前記検索キーワードに含まれる複数のＮグラムの出現位置を前記第１のインデックス及び前記第２のインデックスから読み出し、読み出した出現位置の連続性を評価することによって、前記電子文書から前記検索キーワードを検索する第２の検索手段、
少なくとも前記第１の検索手段と前記第２の検索手段の一方による検索結果を出力する出力手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索装置、検索方法及びプログラムに関する。
【背景技術】
【０００２】
電子文書の増大に伴い、大規模な文書データベースから所望の電子文書を効率良く検索する技術の重要性が高まっている。
【０００３】
例えば、特許文献１及び特許文献２は、Ｎグラムを用いた検索技術を開示している。具体的に説明すると、特許文献１は、検索対象の辞書データのテキストを見出し語カテゴリと本文カテゴリとに分類し、見出し語カテゴリに属するテキストを前方一致検索し、見出し語カテゴリに属するテキストと本文カテゴリに属するテキストとを部分一致検索するテキスト検索装置を開示している。また、特許文献２は、検索文字列が少し誤って入力されても所望の文書を探し出すことができる曖昧検索技術を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１６１３７１号公報
【特許文献２】特開２０１４−１４６３０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のようなＮグラムを用いた電子文書の検索において、検索の効率を向上させ、検索時間を短縮することが望まれている。
【０００６】
本発明は、以上のような課題を解決するためのものであり、Ｎグラムを用いた電子文書の検索において、検索時間を短縮することが可能な検索装置、検索方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明に係る検索装置は、
検索対象の電子文書のうちの第１のカテゴリに属するテキストに含まれる複数のＮグラムと、前記第１のカテゴリに属するテキストにおける当該複数のＮグラムの出現位置と、を対応付けた第１のインデックス、及び、前記電子文書のうちの第２のカテゴリに属するテキストに含まれる複数のＮグラムと、前記第２のカテゴリに属するテキストにおける当該複数のＮグラムの出現位置と、を対応付けた第２のインデックスを記憶する記憶手段と、
検索キーワードを取得する取得手段と、
前記検索キーワードに含まれる複数のＮグラムの出現位置を前記第１のインデックスから読み出し、読み出した出現位置の連続性を評価することによって、前記第１のカテゴリに属するテキストから前記検索キーワードを検索する第１の検索手段と、
前記検索キーワードに含まれる複数のＮグラムの出現位置を前記第１のインデックス及び前記第２のインデックスから読み出し、読み出した出現位置の連続性を評価することによって、前記電子文書から前記検索キーワードを検索する第２の検索手段と、
少なくとも前記第１の検索手段と前記第２の検索手段の一方による検索結果を出力する出力手段と、
を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、Ｎグラムを用いた電子文書の検索において、検索時間を短縮させることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態に係る検索装置の外観を示す図である。
【図２】検索装置のハードウェア構成を示すブロック図である。
【図３】検索装置の機能的な構成を示すブロック図である。
【図４】辞書データ及び再配置データを示す図である。
【図５】検索インデックスの構成を示す第１の図である。
【図６】検索インデックスの構成を示す第２の図である。
【図７】インクリメンタル検索の例を示す図である。
【図８】全文検索の結果表示画面の例を示す図である。
【図９】曖昧検索の結果表示画面の例を示す図である。
【図１０】検索インデックス生成処理の流れを示すフローチャートである。
【図１１】インクリメンタル検索処理の流れを示すフローチャートである。
【図１２】全文検索処理の流れを示す第１のフローチャートである。
【図１３】全文検索処理の流れを示す第２のフローチャートである。
【図１４】全文検索処理の流れを示す第３のフローチャートである。
【図１５】全文検索処理の流れを示す第４のフローチャートである。
【図１６】全文検索処理の流れを示す第５のフローチャートである。
【図１７】曖昧検索処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について、図面を参照して説明する。なお、図中同一又は相当する部分には同一符号を付す。
【００１１】
図１に、本発明の実施形態に係る検索装置１００の外観を示す。検索装置１００は、一例として、電子辞書である。図１に示すように、検索装置１００は、ユーザの操作に応じて検索キーワードの入力を受け付けるキーボード１００ｉと、検索キーワードに基づいて辞書を検索した検索結果を表示するＬＣＤ（Liquid Crystal Display）１００ｈと、を備える。
【００１２】
図２に示すように、検索装置１００は、ＣＰＵ（Central Processing Unit）１００ａ、ＲＯＭ（Read Only Memory）１００ｂ、ＲＡＭ（Random Access Memory）１００ｃ、ハードディスク１００ｄ、メディアコントローラ１００ｅ、ビデオカード１００ｇ、及びスピーカ１００ｊをその内部に備える。これら各部は、ＬＣＤ１００ｈ及びキーボード１００ｉとバスを介して接続されている。
【００１３】
ＣＰＵ１００ａは、例えばマイクロプロセッサ等であって、様々な処理及び演算を実行する中央演算処理部である。ＣＰＵ１００ａは、中央処理装置、中央演算装置又はプロセッサ等とも呼ばれる。ＣＰＵ１００ａは、命令及びデータを転送するための伝送経路であるシステムバスを介して検索装置１００の各部と接続され、検索装置１００全体を統括制御する。ＣＰＵ１００ａは、ＲＯＭ１００ｂ又はハードディスク１００ｄに保存されたプログラムを実行するにより、下記の検索処理を含む各種の処理を実行する。ＲＡＭ１００ｃは、ＣＰＵ１００ａによるプログラムの実行時において、処理対象とするデータを一時的に記憶する等、作業領域として用いられる。
【００１４】
ハードディスク１００ｄは、各種のデータを保存したテーブルと、英和辞書、国語辞典又は百科事典等の辞書データと、を記憶する不揮発性の記憶部である。なお、検索装置１００は、ハードディスク１００ｄの代わりに、フラッシュメモリを備えても良い。
【００１５】
メディアコントローラ１００ｅは、フラッシュメモリ、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、及びブルーレイディスク（Blu-ray Disc）（登録商標）を含む記録媒体から各種のデータ及びプログラムを読み出す。
【００１６】
ビデオカード１００ｇは、ＣＰＵ１００ａから出力されたデジタル信号に基づいて画像を描画（つまり、レンダリング）すると共に、描画された画像を表す画像信号を出力する。ＬＣＤ１００ｈは、ビデオカード１００ｇから出力された画像信号に従って画像を表示する表示デバイスである。なお、検索装置１００は、ＬＣＤ１００ｈの代わりに、ＰＤＰ（Plasma Display Panel）若しくはＥＬ（Electroluminescence）ディスプレイを備えても良い。スピーカ１００ｊは、ＣＰＵ１００ａから出力された信号に基づいて音声を出力する。
【００１７】
図３に示すように、検索装置１００は、機能的に、生成部１２０と、取得部１３０と、検索部１４０と、評価部１５０と、出力部１６０と、表示部１７０と、を備える。ＣＰＵ１００ａは、ＲＯＭ１００ｂに記憶されたプログラムをＲＡＭ１００ｃに読み出して、そのプログラムを実行して制御することにより、これら各部として機能する。また、検索装置１００は、機能的に、データ記憶部１１０と、表示部１７０と、を備える。データ記憶部１１０は、ＲＡＭ１００ｃ又はハードディスク１００ｄの記憶領域に構築される。表示部１７０は、ＬＣＤ１００ｈ等の表示デバイスである。
【００１８】
データ記憶部１１０は、検索対象の電子文書の一例である辞書データを記憶する。この辞書データは、図４に示すように、見出し語を表すテキスト（以下、「見出し語テキスト」という。）と、見出し語の説明を表すテキスト（以下、「説明テキスト」という。）と、例えば、例文、成句又は複合語等（以下、「イディオム」という。）といった見出し語の用例を表すテキスト（以下、「用例テキスト」という。）と、を含んでいる。
【００１９】
以下では、説明テキストと用例テキストとを合わせて本文テキストと言う。言い換えれば、辞書データに含まれるテキストは、見出し語カテゴリに属するテキスト（見出し語テキスト）と、本文カテゴリに属するテキスト（本文テキスト）と、に分類される。見出し語カテゴリを第１のカテゴリといい、本文カテゴリを第２のカテゴリという。また、辞書データのうち、見出し語テキストが占める部分を見出し部、説明テキストが占める部分を説明部、用例テキストが占める部分を用例部という。
【００２０】
辞書データは、見出し部と説明部と用例部との組を一つの構成単位として、この構成単位が連なって構成されている。各構成単位は、例えば、辞書データが英和辞典であれば、見出し語テキストのアルファベット順に並べられている。各構成単位において、見出し部の直後にその見出し語を説明する説明部が配置されており、その直後にその見出し語の用例を表す用例部が配置されている。
【００２１】
辞書データには、複数の説明部が、電子辞書の編集者が定めた並び順に従って配置されている。具体的に説明すると、見出し語のより一般的な意味内容を説明する説明部の方が、見出し語のより特殊な意味内容を説明する説明部よりも先の位置に格納されている。或いは、より使用頻度の高い意味内容を説明する説明部の方が、より使用頻度の低い意味内容を説明する説明部よりも後の位置に格納されているとしても良い。用例部については、説明部に対応する用例が記載された用例部が該当する説明部毎に記載されている場合と、１つの説明部の後に複数の用例部がまとめて記載されている場合とがある。
【００２２】
生成部１２０は、検索対象の電子文書である辞書データに含まれる複数のＮグラムと、辞書データにおけるこの複数のＮグラムの出現位置と、を対応付けた検索インデックスを生成する。Ｎグラムとは、連続したＮ文字の文字列（Ｎは自然数）である。例えば、Ｎが１の場合のＮグラムをモノグラム、Ｎが２の場合のＮグラムをバイグラム、Ｎが３の場合のＮグラムをトライグラムという。生成部１２０は、ＣＰＵ１００ａがＲＡＭ１００ｃ又はハードディスク１００ｄ等と協働することによって実現される。生成部１２０は、生成手段として機能する。また、生成部１２０は、検索インデックスを生成することで検索インデックスを取得するインデックス取得手段として機能する。
【００２３】
生成部１２０は、検索インデックスを生成するために、再配置データ生成部１２１と検索インデックス生成部１２２との機能を備えている。
【００２４】
再配置データ生成部１２１は、データ記憶部１１０に記憶された辞書データを読み出し、辞書データに含まれるテキストを再配置することによって、再配置データを生成する。具体的に説明すると、辞書データは、図４左側に示したように、見出し語毎に、その説明部と用例部とが交互に配置されている。再配置データ生成部１２１は、交互に配置された説明部と用例部とを、それぞれまとまって配置されるように並び替えて、図４右側に示す再配置データを生成する。
【００２５】
検索インデックス生成部１２２は、再配置データ生成部１２１によって生成された再配置データから検索インデックスを生成する。具体的に説明すると、検索インデックス生成部１２２は、再配置データに含まれるＮグラムを順に抽出し、抽出した各Ｎグラムとその出現位置とを対応付けたテーブルを、検索インデックスとして生成する。検索インデックス生成部１２２は、Ｎグラムとして、モノグラムとバイグラムとを用いる。
【００２６】
図５及び図６に、検索インデックスの構成を示す。図５に示すように、検索インデックスは、見出し部インデックス、説明部インデックス、用例部インデックスを含んでいる。
【００２７】
見出し部インデックスは、辞書データのうちの見出し語テキストに含まれる複数のＮグラム（具体的にはモノグラム及びバイグラム）と、当該見出し語テキストにおける当該複数のＮグラムの出現位置と、を対応付けたインデックスである。見出し部インデックスは、（１）見出し部に含まれるＮグラムの文字列パターンに関するファイル（pattern_hdl.idx）と、（２）その出現位置及び出現頻度に関するファイル（position_hdl.idx）と、を含んでいる。
【００２８】
説明部インデックスは、辞書データのうちの説明テキストに含まれる複数のＮグラムと、当該説明テキストにおける当該複数のＮグラムの出現位置と、を対応付けたインデックスである。説明部インデックスは、（３）説明部に含まれるＮグラムの文字列パターンに関するファイル（pattern_bdy.idx）と、（４）その出現位置及び出現頻度に関するファイル（position_bdy.idx）と、を含んでいる。
【００２９】
用例部インデックスは、辞書データのうちの用例テキストに含まれる複数のＮグラムと、当該用例テキストにおける当該複数のＮグラムの出現位置と、を対応付けたインデックスである。用例部インデックスは、（５）用例部に含まれるＮグラムの文字列パターンに関するファイル（pattern_exp.idx）と、（６）その出現位置及び出現頻度に関するファイル（position_exp.idx）と、を含んでいる。
【００３０】
検索インデックス生成部１２２は、見出し語テキスト、説明テキスト及び用例テキストのそれぞれにおいて別々に、先頭から１文字ずつずらしながらモノグラム及びバイグラムを抽出し、抽出したモノグラム及びバイグラムの出現位置と出現頻度とを導出する。そして、検索インデックス生成部１２２は、抽出したモノグラム及びバイグラムとその出現位置及び出現頻度とを対応付けることによって、このような３種類のインデックスを生成する。
【００３１】
なお、見出し部インデックスを第１のインデックスといい、説明部インデックスと用例部インデックスとを合わせて第２のインデックスという。
【００３２】
また、図６に示すように、検索インデックスは、（７）見出し番号に関するファイル（number.idx）と、（８）見出し部の開始位置に関するファイル（headline.idx）と、（９）用例部の開始位置に関するファイル（example.idx）と、を含んでいる。見出し番号に関するファイル（number.idx）は、見出し語単位で、見出し部の開始位置、見出し語個数、説明部の開始位置、用例部の開始位置、用例個数、辞書番号、及び見出し番号の情報を含んでいる。辞書番号は、辞書データを識別する番号である。見出し番号は、複数の見出し部のそれぞれを識別するための番号である。
【００３３】
なお、見出し部インデックスに含まれるＮグラム文字列パターンの出現位置、及び、見出し番号に関するファイルにおける見出し部の開始位置は、再配置データの見出し部の先頭文字からの、見出し語テキストのみ（図４における見出し部１〜見出し部Ｍ）における文字数を数えて導出した位置である。同様に、説明部インデックスに含まれるＮグラム文字列パターンの出現位置、及び、見出し番号に関するファイルにおける説明部の開始位置は、再配置データの説明部の先頭文字からの、説明テキストのみ（図４における説明部１〜説明部Ｍ）における文字数を数えて導出した位置である。同様に、用例部インデックスに含まれるＮグラム文字列パターンの出現位置、及び、見出し番号に関するファイルにおける用例部の開始位置は、再配置データの用例部の先頭文字からの、用例テキストのみ（図４における用例部１〜用例部Ｍ）における文字数を数えて導出した位置である。
【００３４】
図３に示した検索装置１００の機能構成の説明に戻る。データ記憶部１１０は、生成部１２０によって生成された検索インデックスを記憶する。データ記憶部１１０は、記憶手段として機能する。
【００３５】
取得部１３０は、検索キーワードを取得する。ユーザは、キーボード１００ｉを操作することで、所望の検索キーワードを検索装置１００に入力することができる。取得部１３０は、また、検索装置１００に予め複数の電子文書が登録されている場合、ユーザは、キーボード１００ｉを操作することで、複数の電子文書のうちから検索対象となる電子文書を指定することができる。取得部１３０は、このようにして入力された検索キーワード及び電子文書の指定を取得する。取得部１３０は、ＣＰＵ１００ａがキーボード１００ｉ等と協働することによって実現される。取得部１３０は、取得手段（検索キーワード取得手段）として機能する。
【００３６】
検索部１４０は、検索対象の電子文書である辞書データから、取得部１３０によって取得された検索キーワードを検索する。具体的に説明すると、検索部１４０は、検索キーワードに含まれる複数のＮグラムの辞書データにおける出現位置を検索インデックスから読み出し、読み出した出現位置の連続性を評価することによって、辞書データから検索キーワードを検索する。検索部１４０は、ＣＰＵ１００ａがＲＡＭ１００ｃ等と協働することによって実現される。
【００３７】
より詳細に説明すると、検索部１４０は、インクリメンタル検索部１４１と、全文検索部１４２と、曖昧検索部１４３と、の機能を含んでいる。検索部１４０は、これら３種類の検索を実行することができる。
【００３８】
インクリメンタル検索部１４１は、見出し部を対象として、インクリメンタル検索を実行する。インクリメンタル検索は、ユーザによって検索キーワードが１文字ずつ入力される度に実行される前方一致検索である。インクリメンタル検索部１４１は、取得部１３０によって検索キーワードが１文字ずつ取得される度に、取得部１３０によって既に取得された少なくとも１文字に新たに取得された１文字を加えた文字列を検索キーワードとして検索する。
【００３９】
具体的に図７を参照して、インクリメンタル検索を実行した例を説明する。ユーザがキーボード１００ｉを介して検索キーワードを１文字ずつ入力すると、取得部１３０は、この入力に応じて検索キーワードを１文字ずつ取得する。ユーザが検索キーワードの先頭の１文字（図７の例では「ｗ」）を入力すると、インクリメンタル検索部１４１は、見出し部インデックスを参照して、検索対象となる辞書データにおいて先頭が「ｗ」から始まる見出し語を検索する。その結果、図７の左側に示したように、先頭が「ｗ」から始まる見出し語一覧が生成される。
【００４０】
次の１文字（図７の例では「ｈ」）が入力されると、インクリメンタル検索部１４１は、取得部１３０によって既に取得された１文字「ｗ」と新たに取得された１文字「ｈ」とを加えた文字列「ｗｈ」を先頭に持つ見出し語を、見出し部インデックスを参照して更に検索する。その結果、図７の中央に示すように、先頭が「ｗｈ」から始まる見出し語一覧が生成される。更に次の１文字（図７の例では「ｉ」）が入力されると、インクリメンタル検索部１４１は、取得部１３０によって既に取得された２文字「ｗｈ」と新たに取得された１文字「ｉ」とを加えた文字列「ｗｈｉ」を先頭に持つ見出し語を、見出し部インデックスを参照して更に検索する。その結果、図７の右に示すように、先頭が「ｗｈｉ」から始まる見出し語一覧が生成される。
【００４１】
このように、インクリメンタル検索部１４１は、ユーザによって検索キーワードが１文字ずつ入力される度に、見出し部インデックスを参照して、見出し語カテゴリに属する見出し語テキストから検索キーワードで始まる文字列を検索する前方一致検索を実行する。
【００４２】
全文検索部１４２は、辞書データ全体を対象として、全文検索を実行する。全文検索は、例えばユーザによってリターンキーが押下される等によって検索キーワードが確定された後に実行される完全一致検索である。全文検索部１４２は、検索キーワードが確定されると、見出し部インデックス、説明部インデックス及び用例部インデックスを参照して、辞書データ全体から検索キーワードを含む文字列を検索する全文検索を実行する。
【００４３】
例えば、検索キーワードとして「ｗｈｉｌｅ」との文字列が取得された場合、全文検索部１４２は、検索キーワード「ｗｈｉｌｅ」の先頭から末尾まで順に２文字ずつ切り出していき、「ｗｈ」、「ｈｉ」、「ｉｌ」、「ｌｅ」の４個のバイグラムを抽出する。そして、全文検索部１４２は、データ記憶部１１０に記憶された見出し部インデックス、説明部インデックス及び用例部インデックスから抽出した各バイグラムの出現位置を読み込んで、その連続性を評価する。具体的に説明すると、全文検索部１４２は、抽出した４個のバイグラム「ｗｈ」、「ｈｉ」、「ｉｌ」、「ｌｅ」が、この順番で１文字ずつずれた位置に出現するかを判定する。評価の結果、各バイグラムの出現位置に連続性が有ると評価した場合、全文検索部１４２は、その出現位置に、検索キーワードに相当する文字列が存在していると判定する。
【００４４】
図８に、「ｗｈｉｌｅ」との検索キーワードを全文検索した場合の例を示す。図８に示すように、全文検索部１４２は、「ｗｈｉｌｅ」との文字列の完全一致検索を、見出し部、説明部及び用例部のそれぞれについて実行する。その結果、見出し部、説明部及び用例部のそれぞれにおいて、検索キーワード（図８の例では「ｗｈｉｌｅ」）が含まれるテキストが見付け出される。
【００４５】
曖昧検索部１４３は、見出し部を対象として、曖昧検索を実行する。曖昧検索は、検索キーワードと部分的には一致するが完全には一致しない文字列を探し出すことが可能な部分一致検索である。曖昧検索部１４３は、ユーザがキーボード１００ｉを操作して検索キーワードを入力し、曖昧検索モードを選択した場合に、曖昧検索を実行する。曖昧検索の詳細については、上記特許文献２に開示されているため、ここでは簡単に説明する。
【００４６】
曖昧検索部１４３は、検索キーワードに含まれる複数のＮグラムの見出し語カテゴリに属するテキストにおける出現位置を見出し部インデックスから読み出し、読み出した出現位置が、検索キーワードにおける複数のＮグラムの位置と連続して合致する数（連続合致Ｎグラム数）に基づいて、見出し語テキストから検索キーワードを検索する。連続合致Ｎグラム数とは、検索キーワードから抽出した各Ｎグラムの見出し語テキストにおける出現位置が、検索キーワードにおける対応する各Ｎグラムの位置と連続して合致する数である。曖昧検索部１４３は、連続合致Ｎグラム数を算出し、連続合致Ｎグラム数が多いほど評価が高い（ユーザが望んでいる結果である確率が高い）検索結果であると判定する。
【００４７】
図９に、「ｓａｌａｅｄ」との検索キーワードを曖昧検索した場合の例を示す。図９に示すように、曖昧検索部１４３は、曖昧検索を実行することで、「ｓａｌａｅｄ」との文字列に近い文字列を見出し語の中から見付け出す。その結果、例えば「ｓａｌａｄ」等の見出し語が見付け出される。
【００４８】
インクリメンタル検索部１４１及び曖昧検索部１４３の検索対象は、どちらも辞書データのうちの見出し語カテゴリ（第１のカテゴリ）に属するテキストのみである。言い換えると、インクリメンタル検索部１４１及び曖昧検索部１４３は、それぞれ第１のカテゴリに属するテキストから検索キーワードを検索する第１の検索手段として機能する。これに対して、全文検索部１４２の検索対象は、辞書データ全体、言い換えると見出し語カテゴリ（第１のカテゴリ）と本文カテゴリ（第２のカテゴリ）との両方である。言い換えると、全文検索部１４２は、第１のカテゴリに属するテキストと第２のカテゴリに属するテキストとから検索キーワードを検索する第２の検索手段として機能する。
【００４９】
評価部１５０は、検索部１４０による検索結果に対する順位付け評価値を算出する。順位付け評価値とは、検索結果を出力する際の優先順位を示す値である。評価部１５０は、ＣＰＵ１００ａがＲＡＭ１００ｃ等と協働することによって実現される。評価部１５０は、評価手段として機能する。
【００５０】
例えば、評価部１５０は、検索によって得られた検索キーワードの出現位置が見出し部、説明部又は用例部の先頭に近いほど、順位を高く評価する。また、評価部１５０は、１つの見出し部に複数の見出し語がある場合には、先頭に近い見出し語が検索結果として得られた場合ほど、高く評価する。説明部及び用例部についても同様である。また、評価部１５０は、曖昧検索において、検索キーワードと合致する文字数が多いほど順位を高くする。また、評価部１５０は、全文検索におけるＡＮＤ検索の場合には、２つの検索キーワードの出現位置が近いほど順位を高く評価する。
【００５１】
出力部１６０は、検索部１４０による検索結果を出力する。具体的に説明すると、出力部１６０は、インクリメンタル検索部１４１、全文検索部１４２又は曖昧検索部１４３によって検索が実行されると、検索によって得られた検索キーワードの出現位置を、評価部１５０によって算出された順位付け評価値が高い順に並べ替える。そして、出力部１６０は、並び替えられた出現位置を示す情報を検索結果として表示部１７０に表示する。或いは、出力部１６０は、検索結果をスピーカ１００ｊから音声で出力しても良い。出力部１６０は、ＣＰＵ１００ａがビデオカード１００ｇ、ＬＣＤ１００ｈ又はスピーカ１００ｊ等と協働することによって実現される。出力部１６０は、出力手段として機能する。
【００５２】
具体的に説明すると、インクリメンタル検索が実行された場合、出力部１６０は、ユーザが検索キーワードを１文字ずつ入力する度に、例えば図７に示したような見出し語一覧を表示部１７０に表示する。これに対して、全文検索が実行された場合、出力部１６０は、例えば図８に示したように、検索結果を見出し部、説明部及び用例部に分けて表示部１７０に表示する。また、曖昧検索が実行された場合、出力部１６０は、例えば図９に示したように、曖昧検索結果を表示部１７０に表示する。
【００５３】
以上のように構成される検索装置１００によって実行される処理の流れについて、図１０から図１７に示すフローチャートを参照して説明する。
【００５４】
まず、図１０に示すフローチャートを参照して、生成部１２０によって実行される検索インデックス生成処理の流れを説明する。検索インデックス生成処理は、再配置データ生成処理と検索インデックス生成処理とに分けられる。図１０に示す検索インデックス生成処理は、例えばユーザがキーボード１００ｉを操作して検索インデックスを生成する指示を入力すると、開始する。
【００５５】
検索インデックス生成処理が開始すると、再配置データ生成部１２１は、データ記憶部１１０に記憶された辞書データを読み出す（ステップＳ１）。そして、再配置データ生成部１２１は、読み出した辞書データから見出し語テキスト、説明テキスト及び用例テキストを抽出する（ステップＳ２）。
【００５６】
再配置データ生成部１２１は、抽出した見出し語テキストのそれぞれの先頭と末尾とに、区切り文字を付加する（ステップＳ３）。区切り文字は、見出し語の区切りを示すためのマークとして機能する文字である。区切り文字として、例えばスペース又は特殊文字等、見出し語テキストに現れない文字が用いられる。
【００５７】
見出し語テキストに区切り文字を付加すると、再配置データ生成部１２１は、見出し語毎に説明テキストと用例テキストとをまとめた、図４右側に示したような再配置データを生成し、データ記憶部１１０へ保存する（ステップＳ４）。
【００５８】
次に、検索インデックス生成部１２２は、再配置データ生成部１２１によって生成された再配置データから検索インデックスを生成する（ステップＳ５）。具体的に説明すると、検索インデックス生成部１２２は、再配置データにおける見出し部、説明部及び用例部のそれぞれについて、先頭から１文字ずつずらしながらモノグラム及びバイグラムを抽出し、抽出したモノグラム及びバイグラムの出現位置と出現頻度とを導出する。そして、検索インデックス生成部１２２は、抽出したモノグラム及びバイグラムのそれぞれについてその出現位置と出現頻度とを対応付けることによって、図５及び図６に示すような検索インデックスを生成し、データ記憶部１１０に記憶する。以上により、図１０における検索インデックス生成処理は終了する。
【００５９】
次に、図１１から図１７に示すフローチャートを参照して、検索部１４０によって実行される検索処理の流れを説明する。上述したように、検索部１４０は、検索処理として、インクリメンタル検索処理、全文検索処理、及び曖昧検索処理を実行する。
【００６０】
第１に、図１１を参照して、インクリメンタル検索処理の流れを説明する。ユーザがキーボード１００ｉを操作して対象辞書を指定した上で検索キーワードを１文字ずつ入力する度に、インクリメンタル検索部１４１は、図１１に示すインクリメンタル検索処理を開始する。以下、検索キーワードとして「ｗｈｉ」との文字列が入力された場合を例にとって、説明する。
【００６１】
インクリメンタル検索処理が開始すると、インクリメンタル検索部１４１は、検索キーワードとして入力された入力文字列から、検索文字列を生成する（ステップＳ１１）。具体的に説明すると、インクリメンタル検索部１４１は、入力文字列の先頭に区切り文字を付加することによって、検索文字列を生成する。例えば区切り文字を「・」と表した場合、インクリメンタル検索部１４１は、検索キーワード「ｗｈｉ」の先頭に「・」を付加することによって、「・ｗｈｉ」との検索文字列を生成する。
【００６２】
検索文字列を生成すると、インクリメンタル検索部１４１は、検索文字列からバイグラムを抽出する（ステップＳ１２）。具体的に説明すると、インクリメンタル検索部１４１は、検索文字列「・ｗｈｉ」の先頭から末尾まで順に２文字ずつ切り出していき、「・ｗ」、「ｗｈ」、「ｈｉ」の３個のバイグラムを抽出する。そして、インクリメンタル検索部１４１は、検索文字列を基準文字列と設定する（ステップＳ１３）。
【００６３】
バイグラムを抽出すると、インクリメンタル検索部１４１は、見出し部インデックス（図５に示した（１）pattern_hdl.idx及び（２）position_hdl.idx）を参照して、基準文字列から抽出した各バイグラムの出現位置を読み込んで、その連続性を評価する（ステップＳ１４）。具体的に説明すると、インクリメンタル検索部１４１は、抽出した３個のバイグラム「・ｗ」、「ｗｈ」、「ｈｉ」が、見出し語テキストにおいてこの順番で１文字ずつずれた位置に出現するかを判定する。
【００６４】
評価の結果、連続性が無いと判定した場合は（ステップＳ１５；ＮＯ）、インクリメンタル検索部１４１は、ステップＳ１４において、見出し部インデックスから読み込んだ他の出現位置について同様に連続性を評価する。
【００６５】
これに対して、連続性有りと判定した場合（ステップＳ１５；ＹＥＳ）、インクリメンタル検索部１４１は、先頭のバイグラムの出現位置を基準文字列の出現位置と判定する（ステップＳ１６）。そして、インクリメンタル検索部１４１は、検索インデックスの見出し番号に関するファイルと見出し部の開始位置に関するファイル（図６に示した（７）number.idx及び（８）headline.idx）とを参照して、基準文字列の出現位置から検索結果として辞書番号及び見出し番号を導出する（ステップＳ１７）。そして、評価部１５０は、検索結果に対する順位付け評価値を算出する（ステップＳ１８）。
【００６６】
次に、インクリメンタル検索部１４１は、未評価の出現位置が存在するかを判定し（ステップＳ１９）、存在すると判定した場合には（ステップＳ１９；ＹＥＳ）、ステップＳ１４に戻る。一方、未評価の出現位置が存在しないと判定した場合には（ステップＳ１９；ＮＯ）、出力部１６０は、順位付け評価値に基づいて、検索結果を並べる（ステップＳ２０）。そして、出力部１６０は、検索結果を見出し語単位で表示部１７０に出力する（ステップＳ２１）。出力部１６０は、例えば図７に示した表示画面を表示部１７０に表示する。これにより、インクリメンタル検索処理は終了する。
【００６７】
第２に、図１２から図１６に示すフローチャートを参照して、全文検索処理の流れを説明する。ユーザがキーボード１００ｉを操作して対象辞書を指定した上で検索キーワードを確定させると、全文検索部１４２は、図１２から図１６に示す全文検索処理を開始する。
【００６８】
全文検索処理が開始すると、全文検索部１４２は、検索キーワードとして入力された入力文字列から、検索文字列を生成する（ステップＳ３１）。具体的に説明すると、全文検索部１４２は、入力文字列の両端に区切り文字を付加することによって、検索文字列を生成する。例えば検索キーワードとして「ｗｈｉｌｅ」との文字列が入力された場合、全文検索部１４２は、検索キーワード「ｗｈｉｌｅ」の先頭と末尾とに「・」を付加することによって、「・ｗｈｉｌｅ・」との検索文字列を生成する。
【００６９】
検索文字列を生成すると、全文検索部１４２は、検索文字列の個数が１個であるかを判定する（ステップＳ３２）。言い換えると、全文検索部１４２は、現在の検索が複数の検索キーワードによるＡＮＤ検索であるか否かを判定する。全文検索部１４２は、検索文字列の数が１個である場合は（ステップＳ３２；ＹＥＳ）、処理をステップＳ３３に進め、一方、検索文字列の数が複数である場合は（ステップＳ３２；ＮＯ）、処理をステップＳ３５に進める。
【００７０】
検索文字列が１個の場合には（ステップＳ３２；ＹＥＳ）、全文検索部１４２は、検索文字列からモノグラム及びバイグラムを抽出する（ステップＳ３３）。具体的に説明すると、検索文字列が３文字の文字列（・＋１文字の入力文字列＋・）である場合には、全文検索部１４２は、１文字の入力文字列に相当する１個のモノグラムと、両端の区切り文字を含む２個のバイグラムと、を抽出する。一方、検索文字列が４文字以上の文字列（・＋２文字以上の入力文字列＋・）である場合には、全文検索部１４２は、検索文字列の先頭から末尾まで順にバイグラムを抽出する。例えば、検索文字列「・ｗｈｉｌｅ・」からは「・ｗ」、「ｗｈ」、「ｈｉ」、「ｉｌ」、「ｌｅ」、「ｅ・」の６個のバイグラムが抽出される。
【００７１】
次に、全文検索部１４２は、検索文字列を基準文字列と設定する（ステップＳ３４）。そして、全文検索部１４２は、見出し部、説明部及び用例部の順で、すなわちカテゴリ毎に、抽出したバイグラムの連続性を評価する処理に移行する。
【００７２】
図１３に移って、全文検索部１４２は、基準文字列の文字数が３文字であるかを判定する（ステップＳ５１）。基準文字列の文字数が３文字であると判定した場合には（ステップＳ５１；ＹＥＳ）、全文検索部１４２は、見出し部インデックス（図５に示した（１）pattern_hdl.idx及び（２）position_hdl.idx）を参照して、基準文字列から抽出した１個のモノグラムの出現位置を読み込んで、これを基準文字列の出現位置と特定する（ステップＳ５２）。
【００７３】
基準文字列の出現位置を特定すると、全文検索部１４２は、検索状態を導出する（ステップＳ５３）。検索状態とは、検索キーワードが見出し語そのものであるか否かを示す情報である。具体的に説明すると、全文検索部１４２は、見出し部インデックスから、区切り文字を含む２個のバイグラムの出現位置を読み込んで、その連続性を評価する。連続性が有る場合、検索キーワードが見出し語そのものであるとの検索状態を導出する。
【００７４】
一方、ステップＳ５１において、基準文字列の文字数が４文字以上であると判定した場合には（ステップＳ５１；Ｎｏ）、全文検索部１４２は、見出し部インデックスを参照して、基準文字列から抽出したバイグラムのうちの区切り文字を含まないバイグラムの出現位置を読み込んで、その連続性を評価する（ステップＳ５４）。評価の結果、連続性が無いと判定した場合は（ステップＳ５５；ＮＯ）、全文検索部１４２は、ステップＳ５４において、見出し部インデックスから読み込んだ他の出現位置について同様に連続性を評価する。
【００７５】
これに対して、連続性が有ると判定した場合（ステップＳ５５；ＹＥＳ）、全文検索部１４２は、２番目のバイグラムの出現位置を、基準文字列の出現位置と判定する（ステップＳ５６）。そして、全文検索部１４２は、見出し部インデックスから、区切り文字を含む２個のバイグラムの出現位置を読み込んで、その連続性を評価することで、検索状態を導出する（ステップＳ５７）。
【００７６】
ステップＳ５３又はステップＳ５７において検索状態を導出すると、全文検索部１４２は、検索インデックスの見出し番号に関するファイル（（７）number.idx）と見出し部の開始位置に関するファイル（（８）headline.idx）とを参照して、基準文字列の出現位置から検索結果として辞書番号、見出し番号及び用例番号を導出する（ステップＳ５８）。そして、評価部１５０は、検索結果に対する順位付け評価値を算出する（ステップＳ５９）。
【００７７】
次に、全文検索部１４２は、未評価の出現位置が存在するかを判定し（ステップＳ６０）、未評価の出現位置が存在する場合は（ステップＳ６０；ＹＥＳ）、ステップＳ５１に戻る。一方、未評価の出現位置が存在しない場合は（ステップＳ６０；ＮＯ）、全文検索部１４２は、未評価のカテゴリが存在するかを判定する（ステップＳ６１）。未評価のカテゴリが存在する場合は（ステップＳ６１；ＹＥＳ）、全文検索部１４２は、ステップＳ５１に戻り、説明部及び用例部の順に未評価のカテゴリについて同様の処理を実行する。
【００７８】
最終的に、未評価のカテゴリが存在しないと判定した場合は（ステップＳ６１；ＮＯ）、出力部１６０は、順位付け評価値に基づいて、検索結果を並べ替える（ステップＳ６２）。そして、出力部１６０は、検索結果を表示部１７０に出力する（ステップＳ６３）。このとき、出力部１６０は、図８に示したように、見出し部、説明部及び用例部からの検索結果を、それぞれ見出し語単位、説明部単位及び用例部単位で表示部１７０に表示する。以上により、検索文字列の数が１個である場合の全文検索処理は終了する。
【００７９】
図１２に戻って、ステップＳ３２において、全文検索部１４２は、検索文字列の数が複数である場合には（ステップＳ３２；ＮＯ）、各検索文字列からモノグラム及びバイグラムを抽出する（ステップＳ３５）。言い換えると、全文検索部１４２は、複数の検索文字列のそれぞれについて、ステップＳ３２と同様の処理を実行する。
【００８０】
次に、全文検索部１４２は、見出し部インデックス、説明部インデックス及び用例部インデックスを参照して、抽出したモノグラム及びバイグラムのそれぞれの出現頻度を抽出する（ステップＳ３６）。そして、全文検索部１４２は、各検索文字列を構成するモノグラム及びバイグラムの中で最小出現頻度を特定する（ステップＳ３７）。
【００８１】
最小出現頻度を特定すると、全文検索部１４２は、複数の検索文字列から基準文字列と検証文字列とを決定する（ステップＳ３８）。具体的に説明すると、全文検索部１４２は、最小出現頻度のモノグラム又はバイグラムを含む１個の検索文字列を基準文字列と決定し、それ以外の少なくとも１個の検索文字列を検証文字列と設定する。これは、ＡＮＤ検索において、出現頻度が低い検索文字列を基準にして検索した方が、処理負荷を下げ、検索速度を上げることができるからである。或いは、検索文字列の入力順を考慮した検索の場合には、全文検索部１４２は、最初に入力した検索文字列を基準文字列と決定し、２番目以降に入力した検索文字列を検証文字列と決定しても良い。
【００８２】
その後、全文検索部１４２は、見出し部、説明部及び用例部の順で、すなわちカテゴリ毎に、抽出したバイグラムの連続性を評価する処理に移行する。
【００８３】
図１４に移って、全文検索部１４２は、基準文字列の文字数が３文字であるかを判定する（ステップＳ７１）。以降、全文検索部１４２は、基準文字列の出現位置を特定し、その検索状態を導出する（ステップＳ７１からステップＳ７７）。ステップＳ７１からステップＳ７７の処理は、検索文字列の数が１個の場合において説明したステップＳ５１からステップＳ５７の処理と同じであるため、説明を省略する。
【００８４】
基準文字列の出現位置を特定し、その検索状態を導出すると、全文検索部１４２は、検索インデックスの見出し番号に関するファイル（（７）number.idx）と見出し部の開始位置に関するファイル（（８）headline.idx）とを参照して、基準文字列の出現位置から検索結果候補として辞書番号、見出し番号及び用例番号を導出する（ステップＳ７８）。
【００８５】
このように基準文字列の評価処理を終了すると、全文検索部１４２は、図１５に移り、検証文字列の評価処理を実行する。図１５において、全文検索部１４２は、検証文字列の文字数が３文字であるかを判定する（ステップＳ８１）。
【００８６】
検証文字列の文字数が３文字であると判定した場合には（ステップＳ８１；ＹＥＳ）、全文検索部１４２は、見出し部インデックスから、抽出した１個のモノグラムの出現位置を読み込んで、これを検証文字列の出現位置と特定する（ステップＳ８２）。そして、全文検索部１４２は、見出し部インデックスから、区切り文字を含む２個のバイグラムの出現位置を読み込んで、その連続性を評価することで、検索状態を導出する（ステップＳ８３）。
【００８７】
検索状態を導出すると、全文検索部１４２は、ステップＳ７８において導出された検索結果候補の辞書番号、見出し番号及び用例番号によって指定される範囲内に検証文字列が存在するかを評価する（ステップＳ８４）。この範囲は、基準文字列と検証文字列とがＡＮＤ検索としてヒットする範囲である。例えば、基準文字列と検証文字列とがどちらも同じ辞書データにおける同じ見出し語の構成単位（説明部及び用例部を含む）に存在する場合に、ＡＮＤ検索がヒットするように設定する。或いは、基準文字列と検証文字列とがどちらも同じ用例部に存在する場合に、ＡＮＤ検索がヒットするように設定することもできる。
【００８８】
評価の結果、検証文字列の出現位置が指定範囲の最小位置以上で無いと判定した場合には（ステップＳ８５；ＮＯ）、全文検索部１４２は、処理をステップＳ８２に戻す。一方、検証文字列の出現位置が最小位置以上であると判定した場合には（ステップＳ８５；ＹＥＳ）、全文検索部１４２は、検証文字列の出現位置が指定範囲内の最大位置以下であるかを評価する（ステップＳ８６）。検証文字列の出現位置が最大位置以下でないと判定した場合は（ステップＳ８６；ＮＯ）、全文検索部１４２は、処理を図１６のステップＳ１０３に移す。一方、検証文字列の出現位置が最大位置以下であると判定した場合は（ステップＳ８６；ＹＥＳ）、全文検索部１４２は、処理をステップＳ９４に移す。
【００８９】
ステップＳ８１において、検証文字列が４文字以上であると判定した場合には（ステップＳ８１；ＮＯ）、全文検索部１４２は、見出し部インデックスから、検証文字列から抽出したバイグラムのうちの２番目のバイグラムの出現位置を読み込んで、これを検証文字列の出現位置と特定する（ステップＳ８７）。
【００９０】
検証文字列の出現位置を特定すると、全文検索部１４２は、ステップＳ７８において導出された検索結果候補の辞書番号、見出し番号及び用例番号によって指定される範囲内に検証文字列が存在するかを評価する（ステップＳ８８）。
【００９１】
評価の結果、検証文字列の出現位置が指定範囲の最小位置以上で無いと判定した場合には（ステップＳ８９；ＮＯ）、全文検索部１４２は、処理をステップＳ８７に戻す。一方、検証文字列の出現位置が最小位置以上であると判定した場合には（ステップＳ８９；ＹＥＳ）、全文検索部１４２は、検証文字列の出現位置が指定範囲内の最大位置以下であるかを評価する（ステップＳ９０）。検証文字列の出現位置が最大位置以下でないと判定した場合は（ステップＳ９０；ＮＯ）、全文検索部１４２は、処理を図１６のステップＳ１０３に移す。
【００９２】
一方、検証文字列の出現位置が最大位置以下であると判定した場合は（ステップＳ９０；ＹＥＳ）、全文検索部１４２は、見出し部インデックスから、検証文字列から抽出したバイグラムのうちの区切り文字を含まないバイグラムの出現位置を読み込んで、その連続性を評価する（ステップＳ９１）。評価の結果、連続性が無いと判定した場合は（ステップＳ９２；ＮＯ）、全文検索部１４２は、処理をステップＳ８７に戻し、２番目のバイグラムの他の出現位置について同様の処理を実行する。
【００９３】
これに対して、連続性が有ると判定した場合（ステップＳ９２；ＹＥＳ）、全文検索部１４２は、見出し部インデックスから、区切り文字を含むバイグラムの出現位置を読み込んで、その連続性を評価することで、検証状態を導出する（ステップＳ９３）。そして、全文検索部１４２は、処理をステップＳ９４に移す。
【００９４】
ステップＳ９４において、全文検索部１４２は、全ての検証文字列について評価を完了したかを判定する（ステップＳ９４）。全ての検証文字列について評価を完了していないと判定した場合には（ステップＳ９４；ＮＯ）、処理をステップＳ８１に戻し、全ての検証文字列について同様の処理を実行する。
【００９５】
一方、全ての検証文字列について評価を完了したと判定した場合には（ステップＳ９４；ＹＥＳ）、全文検索部１４２は、図１６に移り、以上の処理で得られた検索結果候補をＡＮＤ検索の検索結果と決定する（ステップＳ１０１）。言い換えると、全文検索部１４２は、指定範囲内に存在する１個の基準文字列の出現位置と少なくとも１個の検証文字列の出現位置とを、ＡＮＤ検索でヒットした位置と決定する。評価部１５０は、このＡＮＤ検索の検索結果に対する順位付け評価値を算出する（ステップＳ１０２）。
【００９６】
次に、全文検索部１４２は、未評価の出現位置が存在するかを判定し（ステップＳ１０３）、未評価の出現位置が存在すると判定した場合には（ステップＳ１０３；ＹＥＳ）、処理を図１４に示したステップＳ７１に戻す。一方、全文検索部１４２は、未評価の出現位置が存在しないと判定した場合には（ステップＳ１０３；ＮＯ）、未評価のカテゴリが存在するかを判定する（ステップＳ１０４）。未評価のカテゴリが存在する場合は（ステップＳ１０４；ＹＥＳ）、全文検索部１４２は、ステップＳ７１に戻り、説明部及び用例部の順に未評価のカテゴリについて同様の処理を実行する。
【００９７】
最終的に、未評価のカテゴリが存在しないと判定した場合は（ステップＳ１０４；ＮＯ）、出力部１６０は、順位付け評価値に基づいて、カテゴリ別に検索結果を並べ替える（ステップＳ１０５）。そして、出力部１６０は、検索結果を表示部１７０に出力する（ステップＳ１０６）。このとき、出力部１６０は、図８に示したように、見出し部、説明部及び用例部からの検索結果を、それぞれ見出し語単位、説明部単位及び用例部単位で表示部１７０に表示する。以上により、検索文字列の数が複数である場合の全文検索処理は終了する。
【００９８】
第３に、図１７に示すフローチャートを参照して、曖昧検索処理の流れを説明する。ユーザがキーボード１００ｉを操作して検索キーワードを入力し、曖昧検索モードを選択した場合に、曖昧検索部１４３は、図１７に示す曖昧検索処理を開始する。
【００９９】
曖昧検索処理が開始すると、曖昧検索部１４３は、検索キーワードとして入力された入力文字列から、検索文字列を生成する（ステップＳ１２１）。具体的に説明すると、曖昧検索部１４３は、入力文字列の両端に区切り文字を付加することによって、検索文字列を生成する。例えば検索キーワードとして「ｓａｌａｅｄ」との文字列が入力された場合、曖昧検索部１４３は、検索キーワード「ｓａｌａｅｄ」の先頭と末尾とに「・」を付加することによって、「・ｓａｌａｅｄ・」との検索文字列を生成する。
【０１００】
検索文字列を生成すると、曖昧検索部１４３は、検索文字列からモノグラム及びバイグラムを抽出する（ステップＳ１２２）。具体的に説明すると、曖昧検索部１４３は、検証文字列がＭ文字であるとすると、検証文字列から、両端の区切り文字をそれぞれ含む２個のバイグラムと、区切り文字を含まない（Ｍ−２）個のモノグラムを抽出する。例えば、検索文字列「・ｓａｌａｅｄ・」からは、両端の「・ｓ」、「ｄ・」の２個のバイグラムと、中央の「ｓ」、「ａ」、「ｌ」、「ａ」、「ｅ」、「ｄ」の６個のモノグラムと、が抽出される。
【０１０１】
次に、曖昧検索部１４３は、検証文字列を基準文字列と設定する（ステップＳ１２３）。基準文字列を設定すると、曖昧検索部１４３は、辞書データに含まれる見出し語毎に、抽出したモノグラム及びバイグラムの連続性を評価する処理に移る。
【０１０２】
まず、曖昧検索部１４３は、辞書データに含まれる複数の見出し語のうちの第１の見出し語を選択し、その見出し語の出現範囲を導出する（ステップＳ１２４）。具体的に説明すると、曖昧検索部１４３は、検索インデックスの見出し番号に関するファイルと見出し部の開始位置に関するファイル（図６に示した（７）number.idx及び（８）headline.idx）とを参照して、辞書データ内において見出し語が出現する範囲を特定する。
【０１０３】
見出し語の出現範囲を導出すると、曖昧検索部１４３は、見出し部インデックス（図５に示した（１）pattern_hdl.idx及び（２）position_hdl.idx）を参照して、基準文字列から抽出した各モノグラム及びバイグラムの出現位置を読み込む（ステップＳ１２５）。
【０１０４】
出現位置を読み込むと、曖昧検索部１４３は、ステップＳ１２４で導出した見出し語テキストの出現範囲内に存在する各モノグラム及びバイグラムの出現位置を基準として、連続合致Ｎグラム数を算出する（ステップＳ１２６）。具体的に説明すると、例えば検索文字列が「・ｓａｌａｅｄ・」である場合、曖昧検索部１４３は、この検索文字列を構成する「・ｓ」、「ｓ」、「ａ」、「ｌ」、「ａ」、「ｅ」、「ｄ」、「ｄ・」の８個のモノグラム又はバイグラムが、見出し語テキストにおいてこの順番で１文字ずつずれて出現するかを判定する。そして、曖昧検索部１４３は、出現位置が連続して出現するモノグラム及びバイグラムの数を、連続合致Ｎグラム数として算出する。
【０１０５】
連続合致Ｎグラム数を算出すると、曖昧検索部１４３は、算出した連続合致Ｎグラム数に基づいて、連続合致Ｎグラム数の頻度分布を生成する（ステップＳ１２７）。そして、曖昧検索部１４３は、生成した頻度分布から曖昧検索評価値を算出する(ステップＳ１２８）。曖昧検索評価値の算出方法は、上記特許文献２によって開示された方法を用いることができる。具体的に説明すると、曖昧検索部１４３は、生成した頻度分布を参照して、連続合致Ｎグラム数が多いほど大きな値を曖昧検索評価値として算出する。また、曖昧検索部１４３は、曖昧検索評価値として、連続合致するＮグラムの出現頻度が高いほど大きな値を曖昧検索評価値として算出する。
【０１０６】
次に、評価部１５０は、順位付け評価値を算出する（ステップＳ１２９）。そして、曖昧検索部１４３は、未評価の見出し語が存在するかを判定する（ステップＳ１３０）。未評価の見出し語が存在すると判定した場合には（ステップＳ１３０；ＹＥＳ）、曖昧検索部１４３は、処理をステップＳ１２４に戻し、未評価の見出し語について同様の処理を実行する。
【０１０７】
最終的に、未評価の見出し語が存在しないと判定した場合は（ステップＳ１３０；ＮＯ）、出力部１６０は、曖昧検索評価値及び順位付け評価値に基づいて、検索結果を並べ替える（ステップＳ１３１）。そして、出力部１６０は、例えば図９に示したように、検索結果を表示部１７０に出力する（ステップＳ１３２）。以上により、曖昧検索処理は終了する。
【０１０８】
以上に説明したように、本実施形態に係る検索装置１００は、検索対象の電子文書である辞書データに含まれる複数のＮグラムとその出現位置とを対応付けた検索インデックスを、辞書データのうちの見出し語カテゴリに属するテキストと本文カテゴリに属するテキストとに分けて生成する。そして、検索装置１００は、辞書データ内の見出し語テキストのみを対象とするインクリメンタル検索及び曖昧検索の際には、見出し部インデックスのみを参照して検索キーワードを検索し、辞書データ全体を対象とする全文検索の際には、検索インデックス全体を参照して検索キーワードを検索する。
【０１０９】
言い換えると、検索装置１００は、Ｎグラムの出現位置をカテゴリ毎に集計してインデックスを生成し、インクリメンタル検索及び曖昧検索の際には、辞書データ全体ではなく、見出し語カテゴリ単位で生成された、データサイズの小さいインデックスを用いて検索する。これにより、インクリメンタル検索及び曖昧検索の際の検索効率が向上するため、検索時間を短縮することができ、所望の電子文書を効率良く探し出すことができる。
【０１１０】
特に、インクリメンタル検索は、検索キーワードが１文字ずつ入力される毎に実行されるため、インクリメンタル検索による検索時間を短縮することで、全文検索を含めた検索処理全体の処理時間を大きく短縮することができる。また、曖昧検索は、処理時間が比較的大きい検索であるため、検索時間を短縮することによる効果が大きい。
【０１１１】
（変形例）
以上に本発明の実施形態について説明したが、上記実施形態は一例であり、本発明の適用範囲はこれに限られない。すなわち、本発明の実施形態は種々の応用が可能であり、あらゆる実施の形態が本発明の範囲に含まれる。
【０１１２】
例えば、上記実施形態では、検索装置１００は、検索インデックスを生成する生成部１２０を備えていた。しかしながら、本発明において、検索装置１００は、検索インデックスを生成する機能を備えていなくても良い。予め外部装置が生成した検索インデックスを取得し、取得した検索キーワードをデータ記憶部１１０に記憶しておけば、検索装置１００は、上述した検索処理を実行することができる。例えば、工場出荷時において、検索装置１００に搭載される複数の辞書データのそれぞれに対応する検索インデックスをデータ記憶部１１０に記憶するとしても良い。
【０１１３】
上記実施形態では、検索対象の電子文書として辞書データを例にとって説明した。しかしながら、検索対象の電子文書は、辞書に限定される訳ではなく、複数のカテゴリに分類されたテキストを含む文書であれば、どのような文書でも良い。例えば、検索対象の電子文書は、「発明の名称」及び「特許請求の範囲」等のカテゴリにそれぞれ分類されたテキストを含む特許明細書であっても良い。或いは、検索対象の電子文書は、ある製品が有する機能の名称を表すテキストが分類されるカテゴリ（機能名カテゴリ）と、当該機能を利用するための操作方法を表すテキストが分類されるカテゴリ（操作方法カテゴリ）とを含む説明書であっても良い。
【０１１４】
上記実施形態では、検索装置１００は、第１の検索手段としてインクリメンタル検索部１４１と曖昧検索部１４３とを備え、第２の検索手段として全文検索部１４２を備えていた。しかしながら、本発明において、検索装置１００は、第１の検索手段として、インクリメンタル検索又は曖昧検索のどちらか一方のみ備えていても良い。或いは、検索装置１００は、第１の検索手段又は第２の検索手段として、これらの検索に限らず、他の種類の検索機能を備えていても良い。また、インクリメンタル検索（前方一致検索）、全文検索（完全一致検索）、及び曖昧検索（部分一致検索）における具体的な方法、特に順位付けの方法については、任意に設定可能である。また、上記実施形態では、Ｎグラムとしてモノグラム及びバイグラムを用いたが、例えばトライグラム等、他のＮグラムを用いても良い。
【０１１５】
上記実施形態では、検索装置１００において、ＣＰＵ１００ａがＲＯＭ１００ｂに記憶されたプログラムを実行することによって、生成部１２０、取得部１３０、検索部１４０、評価部１５０及び出力部１６０のそれぞれとして機能した。しかしながら、本発明において、検索装置１００は、ＣＰＵ１００ａの代わりに、例えばＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field-Programmable Gate Array）、又は、各種制御回路等の専用のハードウェアを備え、専用のハードウェアが、生成部１２０、取得部１３０、検索部１４０、評価部１５０及び出力部１６０のそれぞれとして機能してもよい。この場合、各部の機能それぞれを個別のハードウェアで実現してもよいし、各部の機能をまとめて単一のハードウェアで実現してもよい。また、各部の機能のうち、一部を専用のハードウェアによって実現し、他の一部をソフトウェア又はファームウェアによって実現してもよい。
【０１１６】
なお、本発明に係る機能を実現するための構成を予め備えた検索装置として提供できることはもとより、プログラムの適用により、既存のパーソナルコンピュータや情報端末機器を、本発明に係る検索装置として機能させることもできる。すなわち、上記実施形態で説明した検索装置１００による各機能構成を実現させるためのテキスト検索プログラムを、既存のパーソナルコンピュータや情報端末機器等を制御するＣＰＵ等が実行できるように適用することで、本発明に係る検索装置１００として機能させることができる。また、本発明に係る検索方法は、検索装置１００を用いて実施することができる。
【０１１７】
また、このようなプログラムの適用方法は任意である。プログラムを、例えば、コンピュータが読取可能な記録媒体（ＣＤ−ＲＯＭ（Compact Disc Read-Only Memory）、ＤＶＤ（Digital Versatile Disc）、ＭＯ（Magneto Optical disc）等）に格納して適用できる他、インターネット等のネットワーク上のストレージにプログラムを格納しておき、これをダウンロードさせることにより適用することもできる。また、辞書データ、再配置データ及び検索インデックス等の上記処理に必要なデータの一部又は全部を外部サーバに記憶し、通信機能を用いてこれらのデータを取得して上記処理を実行する構成も可能である。
【０１１８】
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲とが含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【０１１９】
（付記１）
検索対象の電子文書のうちの第１のカテゴリに属するテキストに含まれる複数のＮグラムと、前記第１のカテゴリに属するテキストにおける当該複数のＮグラムの出現位置と、を対応付けた第１のインデックス、及び、前記電子文書のうちの第２のカテゴリに属するテキストに含まれる複数のＮグラムと、前記第２のカテゴリに属するテキストにおける当該複数のＮグラムの出現位置と、を対応付けた第２のインデックスを記憶する記憶手段と、
検索キーワードを取得する取得手段と、
前記検索キーワードに含まれる複数のＮグラムの出現位置を前記第１のインデックスから読み出し、読み出した出現位置の連続性を評価することによって、前記第１のカテゴリに属するテキストから前記検索キーワードを検索する第１の検索手段と、
前記検索キーワードに含まれる複数のＮグラムの出現位置を前記第１のインデックス及び前記第２のインデックスから読み出し、読み出した出現位置の連続性を評価することによって、前記電子文書から前記検索キーワードを検索する第２の検索手段と、
少なくとも前記第１の検索手段と前記第２の検索手段の一方による検索結果を出力する出力手段と、
を備えることを特徴とする検索装置。
【０１２０】
（付記２）
前記取得手段は、前記検索キーワードを１文字ずつ取得し、
前記第１の検索手段は、前記取得手段によって前記検索キーワードが１文字ずつ取得される度に、前記取得手段によって既に取得された少なくとも１文字に新たに取得された１文字を加えた文字列を前記検索キーワードとして検索する、
ことを特徴とする付記１に記載の検索装置。
【０１２１】
（付記３）
前記第１の検索手段は、前記検索キーワードに含まれる複数のＮグラムの出現位置を前記第１のインデックスから読み出し、読み出した出現位置が、前記検索キーワードにおける前記複数のＮグラムの位置と連続して合致する数に基づいて、前記第１のカテゴリに属するテキストから前記検索キーワードを検索する、
ことを特徴とする付記１又は２に記載の検索装置。
【０１２２】
（付記４）
前記第１の検索手段は、前記第１のインデックスを参照して、前記第１のカテゴリに属するテキストから前記検索キーワードで始まる文字列を検索し、
前記第２の検索手段は、前記第１のインデックス及び前記第２のインデックスを参照して、前記電子文書から前記検索キーワードを含む文字列を検索する、
ことを特徴とする付記１から３のいずれか１つに記載の検索装置。
【０１２３】
（付記５）
前記第１のカテゴリに属するテキストに含まれる複数のＮグラムと、前記第１のカテゴリに属するテキストにおける当該複数のＮグラムの出現位置と、を対応付けることによって、前記第１のインデックスを生成し、前記第２のカテゴリに属するテキストに含まれる複数のＮグラムと、前記第２のカテゴリに属するテキストにおける当該複数のＮグラムの出現位置と、を対応付けることによって、前記第２のインデックスを生成する生成手段、を更に備え、
前記記憶手段は、前記生成手段によって生成された前記第１のインデックス及び前記第２のインデックスを記憶する、
ことを特徴とする付記１から４のいずれか１つに記載の検索装置。
【０１２４】
（付記６）
前記電子文書は、辞書データであり、
前記第１のカテゴリに属するテキストは、前記辞書データにおける見出し語を表すテキストであり、
前記第２のカテゴリに属するテキストは、前記見出し語の説明又は用例を表すテキストである、
ことを特徴とする付記１から５のいずれか１つに記載の検索装置。
【０１２５】
（付記７）
検索対象の電子文書のうちの第１のカテゴリに属するテキストに含まれる複数のＮグラムと、前記第１のカテゴリに属するテキストにおける当該複数のＮグラムの出現位置と、を対応付けた第１のインデックス、及び、前記電子文書のうちの第２のカテゴリに属するテキストに含まれる複数のＮグラムと、前記第２のカテゴリに属するテキストにおける当該複数のＮグラムの出現位置と、を対応付けた第２のインデックスを取得するインデックス取得ステップと、
検索キーワードを取得する検索キーワード取得ステップと、
前記検索キーワードに含まれる複数のＮグラムの出現位置を前記第１のインデックスから読み出し、読み出した出現位置の連続性を評価することによって、前記第１のカテゴリに属するテキストから前記検索キーワードを検索する第１の検索ステップと、
前記検索キーワードに含まれる複数のＮグラムの出現位置を前記第１のインデックス及び前記第２のインデックスから読み出し、読み出した出現位置の連続性を評価することによって、前記電子文書から前記検索キーワードを検索する第２の検索ステップと、
少なくとも前記第１の検索ステップと前記第２の検索ステップの一方による検索結果を出力する出力ステップと、
を含む検索方法。
【０１２６】
（付記８）
コンピュータを、
検索対象の電子文書のうちの第１のカテゴリに属するテキストに含まれる複数のＮグラムと、前記第１のカテゴリに属するテキストにおける当該複数のＮグラムの出現位置と、を対応付けた第１のインデックス、及び、前記電子文書のうちの第２のカテゴリに属するテキストに含まれる複数のＮグラムと、前記第２のカテゴリに属するテキストにおける当該複数のＮグラムの出現位置と、を対応付けた第２のインデックスを取得するインデックス取得手段、
検索キーワードを取得する検索キーワード取得手段、
前記検索キーワードに含まれる複数のＮグラムの出現位置を前記第１のインデックスから読み出し、読み出した出現位置の連続性を評価することによって、前記第１のカテゴリに属するテキストから前記検索キーワードを検索する第１の検索手段、
前記検索キーワードに含まれる複数のＮグラムの出現位置を前記第１のインデックス及び前記第２のインデックスから読み出し、読み出した出現位置の連続性を評価することによって、前記電子文書から前記検索キーワードを検索する第２の検索手段、
少なくとも前記第１の検索手段と前記第２の検索手段の一方による検索結果を出力する出力手段、
として機能させるためのプログラム。
【符号の説明】
【０１２７】
１００…検索装置、１００ａ…ＣＰＵ、１００ｂ…ＲＯＭ、１００ｃ…ＲＡＭ、１００ｄ…ハードディスク、１００ｅ…メディアコントローラ、１００ｇ…ビデオカード、１００ｈ…ＬＣＤ、１００ｉ…キーボード、１００ｊ…スピーカ、１１０…データ記憶部、１２０…生成部、１２１…再配置データ生成部、１２２…検索インデックス生成部、１３０…取得部、１４０…検索部、１４１…インクリメンタル検索部、１４２…全文検索部、１４３…曖昧検索部、１５０…評価部、１６０…出力部、１７０…表示部
【図１】
0006668855.tif 000002
【図２】
0006668855.tif 000003
【図３】
0006668855.tif 000004
【図４】
0006668855.tif 000005
【図５】
0006668855.tif 000006
【図６】
0006668855.tif 000007
【図７】
0006668855.tif 000008
【図８】
0006668855.tif 000009
【図９】
0006668855.tif 000010
【図１０】
0006668855.tif 000011
【図１１】
0006668855.tif 000012
【図１２】
0006668855.tif 000013
【図１３】
0006668855.tif 000014
【図１４】
0006668855.tif 000015
【図１５】
0006668855.tif 000016
【図１６】
0006668855.tif 000017
【図１７】
0006668855.tif 000018