(57)【要約】【課題】高速に検索インデックスを作成することが可能な検索インデックス作成装置、検索インデックス作成方法及びプログラムを提供する。【解決手段】検索インデックス作成装置１００において、検索対象文書１３０から抽出したＮグラムと第１文字が同一であるＮグラムが抽出済みＮグラム群に含まれていないと判別した場合、及び、抽出したＮグラムと第２文字が同一であるＮグラムが、第１文字が同一であるＮグラムの中に含まれていないと判別した場合、Ｎグラム追加手段は、抽出したＮグラムを、該Ｎグラムの検索対象文書１３０における位置を示す位置情報と紐付けて、抽出済みＮグラム群に追加する。位置情報追加手段は、抽出したＮグラムが抽出済みＮグラム群に含まれている場合、該Ｎグラムの検索対象文書１３０における位置を示す位置情報を、抽出済みＮグラム群において該Ｎグラムに紐付けられた位置情報に追加する。【選択図】図２
2016058016.tif 000002
【特許請求の範囲】
【請求項１】
検索対象文書から、Ｎ文字の文字列であるＮグラムを抽出する抽出手段と、
前記抽出手段が抽出した前記Ｎグラムと第１文字が同一であるＮグラムが、抽出済みＮグラム群に含まれているか否かを判別する第１の判別手段と、
前記第１文字が同一である前記Ｎグラムが前記抽出済みＮグラム群に含まれていると前記第１の判別手段が判別した場合、前記抽出手段が抽出した前記Ｎグラムと第２文字が同一であるＮグラムが、前記第１文字が同一である前記Ｎグラムに含まれているか否かを判別する第２の判別手段と、
前記第１文字が同一である前記Ｎグラムが前記抽出済みＮグラム群に含まれていないと前記第１の判別手段が判別した場合、及び、前記第２文字が同一である前記Ｎグラムが、前記第１文字が同一である前記Ｎグラムの中に含まれていないと前記第２の判別手段が判別した場合、前記抽出手段が抽出した前記Ｎグラムを、該Ｎグラムの前記検索対象文書における位置を示す位置情報と紐付けて、前記抽出済みＮグラム群に追加するＮグラム追加手段と、
前記第２文字が同一である前記Ｎグラムが、前記第１文字が同一である前記Ｎグラムの中に含まれていると前記第２の判別手段が判別した場合であって、前記抽出手段が抽出した前記Ｎグラムが前記抽出済みＮグラム群に含まれている場合、該Ｎグラムの前記検索対象文書における位置を示す位置情報を、前記抽出済みＮグラム群において該Ｎグラムに紐付けられた位置情報に追加する位置情報追加手段と、
前記抽出手段が前記検索対象文書から前記Ｎグラムを抽出する位置を変えて、前記抽出手段、前記第１の判別手段、前記第２の判別手段、前記Ｎグラム追加手段、及び前記位置情報追加手段の処理を繰り返す繰り返し手段と、
前記繰り返し手段が繰り返し処理を実行した後の前記抽出済みＮグラム群に基づいて、前記検索対象文書に含まれる各Ｎグラムと、該各Ｎグラムの前記検索対象文書における位置を示す位置情報と、が紐付けられた検索インデックスを作成する検索インデックス作成手段と、
を備えることを特徴とする検索インデックス作成装置。
【請求項２】
前記繰り返し手段は、前記抽出手段が前記検索対象文書から前記Ｎグラムを抽出する位置を、前記検索対象文書における先頭の文字から順に１文字ずつ変えて、前記抽出手段、前記第１の判別手段、前記第２の判別手段、前記Ｎグラム追加手段、及び前記位置情報追加手段の処理を繰り返す、
ことを特徴とする請求項１に記載の検索インデックス作成装置。
【請求項３】
前記検索インデックス作成手段は、前記繰り返し手段が繰り返し処理を実行した後の前記抽出済みＮグラム群に含まれる、前記検索対象文書における位置を示す位置情報が紐付けられた各Ｎグラムを、文字コード順に並べ替えて、前記検索インデックスを作成する、
ことを特徴とする請求項１又は２に記載の検索インデックス作成装置。
【請求項４】
検索対象文書から、Ｎ文字の文字列であるＮグラムを抽出する抽出ステップと、
前記抽出ステップで抽出した前記Ｎグラムと第１文字が同一であるＮグラムが、抽出済みＮグラム群に含まれているか否かを判別する第１の判別ステップと、
前記第１文字が同一である前記Ｎグラムが前記抽出済みＮグラム群に含まれていると前記第１の判別ステップで判別した場合、前記抽出ステップで抽出した前記Ｎグラムと第２文字が同一であるＮグラムが、前記第１文字が同一である前記Ｎグラムに含まれているか否かを判別する第２の判別ステップと、
前記第１文字が同一である前記Ｎグラムが前記抽出済みＮグラム群に含まれていないと前記第１の判別ステップで判別した場合、及び、前記第２文字が同一である前記Ｎグラムが、前記第１文字が同一である前記Ｎグラムの中に含まれていないと前記第２の判別ステップで判別した場合、前記抽出ステップで抽出した前記Ｎグラムを、該Ｎグラムの前記検索対象文書における位置を示す位置情報と紐付けて、前記抽出済みＮグラム群に追加するＮグラム追加ステップと、
前記第２文字が同一である前記Ｎグラムが、前記第１文字が同一である前記Ｎグラムの中に含まれていると前記第２の判別ステップで判別した場合であって、前記抽出ステップで抽出した前記Ｎグラムが前記抽出済みＮグラム群に含まれている場合、該Ｎグラムの前記検索対象文書における位置を示す位置情報を、前記抽出済みＮグラム群において該Ｎグラムに紐付けられた位置情報に追加する位置情報追加ステップと、
前記抽出ステップで前記検索対象文書から前記Ｎグラムを抽出する位置を変えて、前記抽出ステップ、前記第１の判別ステップ、前記第２の判別ステップ、前記Ｎグラム追加ステップ、及び前記位置情報追加ステップの処理を繰り返す繰り返しステップと、
前記繰り返しステップで繰り返し処理を実行した後の前記抽出済みＮグラム群に基づいて、前記検索対象文書に含まれる各Ｎグラムと、該各Ｎグラムの前記検索対象文書における位置を示す位置情報と、が紐付けられた検索インデックスを作成する検索インデックス作成ステップと、
を含む検索インデックス作成方法。
【請求項５】
コンピュータを、
検索対象文書から、Ｎ文字の文字列であるＮグラムを抽出する抽出手段、
前記抽出手段が抽出した前記Ｎグラムと第１文字が同一であるＮグラムが、抽出済みＮグラム群に含まれているか否かを判別する第１の判別手段、
前記第１文字が同一である前記Ｎグラムが前記抽出済みＮグラム群に含まれていると前記第１の判別手段が判別した場合、前記抽出手段が抽出した前記Ｎグラムと第２文字が同一であるＮグラムが、前記第１文字が同一である前記Ｎグラムに含まれているか否かを判別する第２の判別手段、
前記第１文字が同一である前記Ｎグラムが前記抽出済みＮグラム群に含まれていないと前記第１の判別手段が判別した場合、及び、前記第２文字が同一である前記Ｎグラムが、前記第１文字が同一である前記Ｎグラムの中に含まれていないと前記第２の判別手段が判別した場合、前記抽出手段が抽出した前記Ｎグラムを、該Ｎグラムの前記検索対象文書における位置を示す位置情報と紐付けて、前記抽出済みＮグラム群に追加するＮグラム追加手段、
前記第２文字が同一である前記Ｎグラムが、前記第１文字が同一である前記Ｎグラムの中に含まれていると前記第２の判別手段が判別した場合であって、前記抽出手段が抽出した前記Ｎグラムが前記抽出済みＮグラム群に含まれている場合、該Ｎグラムの前記検索対象文書における位置を示す位置情報を、前記抽出済みＮグラム群において該Ｎグラムに紐付けられた位置情報に追加する位置情報追加手段、
前記抽出手段が前記検索対象文書から前記Ｎグラムを抽出する位置を変えて、前記抽出手段、前記第１の判別手段、前記第２の判別手段、前記Ｎグラム追加手段、及び前記位置情報追加手段の処理を繰り返す繰り返し手段、
前記繰り返し手段が繰り返し処理を実行した後の前記抽出済みＮグラム群に基づいて、前記検索対象文書に含まれる各Ｎグラムと、該各Ｎグラムの前記検索対象文書における位置を示す位置情報と、が紐付けられた検索インデックスを作成する検索インデックス作成手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索インデックス作成装置、検索インデックス作成方法及びプログラムに関する。
【背景技術】
【０００２】
文書の電子化の増大に伴い、これまでに蓄積されてきた大量の文書群から所望の文書を見つけ出す検索技術の重要性が高まっている。
【０００３】
大量の文書群を対象とした検索では、検索処理の高速化のため、検索対象となる文書群に含まれる単語等を索引単位として、索引ファイルを作成することが一般的である。あらかじめ作成された索引ファイル（検索インデックス、転置インデックスと呼称する。）を検索時に用いることで、検索のたびに大量の文書群にアクセスする必要がなくなり、高速な検索処理が実現されるからである。
【０００４】
英語などの多くの言語においては、単語を索引単位として転置インデックスを作成することが一般的である。しかし、日本語の場合、スペース等によって単語の切れ目が明示的に示されないため、しばしば、単語の代わりにＮグラムを索引単位とする方法が用いられる。Ｎグラムとは、連続するＮ文字の部分文字列のことである。Ｎグラムによる検索インデックスの作成は、単語を認識する必要がないため、日本語の文書を検索対象とした検索に適している。
【０００５】
Ｎグラムを索引単位とする検索インデックスは、検索対象文書の先頭から１文字ずつずらしながらＮ文字ずつ文字列を抽出して、抽出したＮ文字の文字列（Ｎグラム）の種類毎に検索対象文書内における出現位置を記録することにより、作成される。例えば特許文献１は、検索対象となる文書群を文書番号順に並べたテキストに対して、先頭から１文字ずつずらしながら２文字ずつ文字列抽出して、抽出した２文字の文字列（バイグラム）毎に出現位置と出現頻度とを記録することにより、転置インデックスを生成する方法を開示している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−１９８７９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
検索対象となる文書群（以下、検索対象文書という。）内にＭ種類の文字が存在すると仮定すると、この検索対象文書内に存在するＮグラムの種類は最大でＭのＮ乗通りになる。そのため、検索インデックスを作成する際、検索対象文書から抽出されたＮグラムが抽出済みのＮグラムと同一であるか否かを、最大でＭのＮ乗回評価する必要がある。これは、検索インデックスの作成時間を増大させる要因となっていた。特に、検索対象文書が更新されて検索インデックスを更新したり、検索対象文書に新規の文書を追加して検索インデックスを追加したりすることを考慮すると、検索インデックスの作成時間増大による影響が大きくなる。そのため、検索インデックスの作成時間を短縮することが求められていた。
【０００８】
本発明は、以上のような課題を解決するためのものであり、高速に検索インデックスを作成することが可能な検索インデックス作成装置、検索インデックス作成方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明に係る検索インデックス作成装置は、
検索対象文書から、Ｎ文字の文字列であるＮグラムを抽出する抽出手段と、
前記抽出手段が抽出した前記Ｎグラムと第１文字が同一であるＮグラムが、抽出済みＮグラム群に含まれているか否かを判別する第１の判別手段と、
前記第１文字が同一である前記Ｎグラムが前記抽出済みＮグラム群に含まれていると前記第１の判別手段が判別した場合、前記抽出手段が抽出した前記Ｎグラムと第２文字が同一であるＮグラムが、前記第１文字が同一である前記Ｎグラムに含まれているか否かを判別する第２の判別手段と、
前記第１文字が同一である前記Ｎグラムが前記抽出済みＮグラム群に含まれていないと前記第１の判別手段が判別した場合、及び、前記第２文字が同一である前記Ｎグラムが、前記第１文字が同一である前記Ｎグラムの中に含まれていないと前記第２の判別手段が判別した場合、前記抽出手段が抽出した前記Ｎグラムを、該Ｎグラムの前記検索対象文書における位置を示す位置情報と紐付けて、前記抽出済みＮグラム群に追加するＮグラム追加手段と、
前記第２文字が同一である前記Ｎグラムが、前記第１文字が同一である前記Ｎグラムの中に含まれていると前記第２の判別手段が判別した場合であって、前記抽出手段が抽出した前記Ｎグラムが前記抽出済みＮグラム群に含まれている場合、該Ｎグラムの前記検索対象文書における位置を示す位置情報を、前記抽出済みＮグラム群において該Ｎグラムに紐付けられた位置情報に追加する位置情報追加手段と、
前記抽出手段が前記検索対象文書から前記Ｎグラムを抽出する位置を変えて、前記抽出手段、前記第１の判別手段、前記第２の判別手段、前記Ｎグラム追加手段、及び前記位置情報追加手段の処理を繰り返す繰り返し手段と、
前記繰り返し手段が繰り返し処理を実行した後の前記抽出済みＮグラム群に基づいて、前記検索対象文書に含まれる各Ｎグラムと、該各Ｎグラムの前記検索対象文書における位置を示す位置情報と、が紐付けられた検索インデックスを作成する検索インデックス作成手段と、
を備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、高速に検索インデックスを作成することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係る検索インデックス作成装置の物理構成を示すブロック図である。
【図２】本発明の実施形態に係る検索インデックス作成装置の機能構成を示すブロック図である。
【図３】検索対象文書の例を示す図である。
【図４】抽出済みバイグラム群の例を示す図である。
【図５】本発明の実施形態に係る検索インデックス作成装置が実行する検索インデックス作成処理の流れを示す第１のフローチャートである。
【図６】本発明の実施形態に係る検索インデックス作成装置が実行する検索インデックス作成処理の流れを示す第２のフローチャートである。
【図７】（ａ）、（ｂ）共に、バイグラム文字列を抽出済みバイグラム群に追加する例を示す図である。
【図８】位置情報を抽出済みバイグラム群に追加する例を示す図である。
【図９】本発明の実施形態に係る検索インデックス作成装置が作成した検索インデックスの例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について、図面を参照して説明する。なお、図中同一又は相当する部分には同一符号を付す。
【００１３】
本実施形態に係る検索インデックス作成装置は、電子辞書等のような多数の文書データを搭載した情報処理装置において、ユーザが所望の検索文字列を含む文書データを検索する際に用いられる検索インデックスを作成する。
【００１４】
本実施形態に係る検索インデックス作成装置は、物理的には図１に示すように構成される。検索インデックス作成装置１００は、ＲＯＭ（Read Only Memory）１と、ＲＡＭ（Random Access Memory）２と、外部記憶装置３と、入力装置４と、出力装置５と、外部インターフェース６と、ＣＰＵ（Central Processing Unit）７と、を備える。
【００１５】
ＲＯＭ１は、各種初期設定、ハードウェアの検査、プログラムのロード等を行うための初期プログラムを記憶する。ＲＡＭ２は、ＣＰＵ７が実行する各種ソフトウェアプログラム、これらのソフトウェアプログラムの実行に必要なデータ等を一時的に記憶する。
【００１６】
外部記憶装置３は、例えば、ハードディスク等であって、各種ソフトウェアプログラム、データ等を記憶する。これらソフトウェアプログラムの中には、アプリケーションソフトウェアプログラムやＯＳ（Operating System）のような基本ソフトウェアプログラムなどが含まれている。
【００１７】
入力装置４は、例えば、キーボード等である。入力装置４は、ユーザがキーボードを用いて操作入力したテキストデータ等をＣＰＵ７に入力する。出力装置５は、例えば、液晶ディスプレイ等の画面を備える。出力装置５は、ＣＰＵ７によって出力されたテキストデータを画面に表示出力する。
【００１８】
外部インターフェース６は、検索インデックス作成装置１００の外部の機器とデータをやり取りするためのインターフェースである。外部インターフェース６は、ＵＳＢ（Universal Serial Bus）やＬＡＮ（Local Area Network）等を介してデータを送受信することにより、又は、フラッシュメモリ等の各種の記憶媒体にデータを読み書きすることにより、外部の機器との間でデータの授受を行う。
【００１９】
ＣＰＵ７は、命令やデータを転送するための伝送経路であるシステムバスを介して検索インデックス作成装置１００の各部と接続され、検索インデックス作成装置１００全体を制御する。
【００２０】
検索インデックス作成装置１００は、機能的には図２に示すように構成される。検索インデックス作成装置１００は、抽出部１０１と、第１の判別部１０２と、第２の判別部１０３と、バイグラム追加部１０４と、位置情報追加部１０５と、繰り返し部１０６と、検索インデックス作成部１０７と、を備える。ＣＰＵ７は、ＲＯＭ１に記憶されたソフトウェアプログラムをＲＡＭ２に読み出して、そのソフトウェアプログラムを実行制御することにより、これら各部として機能する。
【００２１】
また、検索インデックス作成装置１００は、検索対象文書１３０と、抽出済みバイグラム群１４０と、検索インデックス１５０と、を記憶する記憶部１１０を備える。記憶部１１０は、外部記憶装置３によって構成される。
【００２２】
検索対象文書１３０は、文字列検索の対象となる文書（テキスト）である。図３に、検索対象文書１３０の一例を示す。検索対象文書１３０は、文字列検索の対象となる多数の文字列を含むものであって、具体的には、辞書を構成する複数の文書データを含む。検索対象文書１３０を構成する個々の文書データは、辞書を構成する構成単位であって、辞書の見出しとなる語句である「見出し語」と、「見出し語」を説明する「説明文」と、を含む。検索インデックス作成装置１００は、このような検索対象文書１３０を、検索インデックス１５０の作成前に予め、外部インターフェース６を介して外部の機器から取得しておき、記憶部１１０に記憶しておく。
【００２３】
抽出済みバイグラム群１４０とは、抽出部１０１が検索対象文書１３０から抽出した抽出済みバイグラムを、検索対象文書１３０内の出現位置情報に紐付けて格納したデータである。
【００２４】
図４に、抽出済みバイグラム群１４０の例を示す。抽出済みバイグラム群１４０は、抽出済みバイグラムとして、「ＲＴ」、「ＲＡ」、「ＥＬ」という３個のバイグラムを、検索対象文書１３０内における出現位置情報に紐付けて格納している。具体的に説明すると、バイグラム「ＲＴ」は、検索対象文書１３０の先頭から５文字目と３２４文字目に出現し、バイグラム「ＲＡ」は、検索対象文書１３０の先頭から３２文字目と１９８文字目に出現し、バイグラム「ＥＬ」は、検索対象文書１３０の先頭から８文字目と１０９文字目に出現する。
【００２５】
より詳細に説明すると、抽出済みバイグラム群１４０は、バイグラムを、バイグラム第１文字ExtractedBigram1stChar[i]毎に分類し、各バイグラム第１文字ExtractedBigram1stChar[i]にバイグラム第２文字ExtractedBigram2ndChar[i][j]を紐付けて、格納する。例えば、２個のバイグラム「ＲＴ」及び「ＲＡ」は、共通の第１文字「Ｒ」をバイグラム第１文字ExtractedBigram1stChar[0]として、このバイグラム第１文字ExtractedBigram1stChar[0]に、バイグラム第２文字ExtractedBigram2ndChar[0][0]とバイグラム第２文字ExtractedBigram2ndChar[0][1]としてそれぞれ文字「Ｔ」と文字「Ａ」とが紐付けられる。
【００２６】
検索インデックス作成装置１００は、このような抽出済みバイグラム群１４０を中間データとして記憶部１１０に記憶しながら、最終的な目的物である検索インデックス１５０を作成する。
【００２７】
以下、検索インデックス作成装置１００が備える各機能構成の詳細について、図５及び図６に示すフローチャートを参照しながら、説明する。
【００２８】
図５のフローチャートに示す検索インデックス作成処理は、検索対象文書１３０を指定する操作入力を、例えば入力装置４を介してユーザから受け付け、検索対象文書１３０を文字列検索するための検索インデックス１５０の作成を開始する旨の操作入力を受け付けると、開始する。
【００２９】
検索インデックス作成処理が開始すると、ＣＰＵ７は、第１に、変数ｐ，ｉ，ｊを初期化する（ステップＳ１）。変数ｐ，ｉ，ｊは、以降の検索インデックス作成処理において使用する変数である。ＣＰＵ７は、変数ｐ，ｉ，ｊのそれぞれに値１を代入することにより、変数ｐ，ｉ，ｊのそれぞれを初期化する。
【００３０】
変数ｐ，ｉ，ｊを初期化すると、抽出部１０１は、検索対象文書１３０の先頭からｐ文字目の出現位置において、２文字を切り出して、Ｎグラムの一種であるバイグラム文字列BigramStrを抽出する（ステップＳ２）。検索インデックス作成処理の開始時には、変数ｐは１に初期化されているので、抽出部１０１は、検索対象文書１３０の先頭の２文字のバイグラム文字列を抽出する。
【００３１】
抽出部１０１がバイグラム文字列を抽出すると、第１の判別部１０２は、抽出したバイグラム文字列BigramStrの第１文字と、抽出済みバイグラム群１４０内のバイグラム第１文字ExtractedBigram1stChar[i]とが、同一であるか否かを判別する（ステップＳ３）。ここで、バイグラム第１文字ExtractedBigram1stChar[i]は、抽出済みバイグラム群１４０に含まれるバイグラムの第１文字としてＸ種類の文字があると仮定した場合の、Ｘ種類の文字のうちの第ｉ種類目の文字を示す。
【００３２】
例えば、図４に示したように、抽出済みバイグラム群１４０が「ＲＴ」、「ＲＡ」、「ＥＬ」という３個のバイグラムを含んでいる場合、これらのバイグラムの第１文字は、それぞれ「Ｒ」、「Ｒ」、「Ｅ」である。そのため、抽出済みバイグラム群１４０内のバイグラム第１文字ExtractedBigram1stChar[i]として、「Ｒ」と「Ｅ」との２種類の文字がある。第１の判別部１０２は、これら２種類のバイグラム第１文字「Ｒ」と「Ｅ」とを順次選択して、選択したバイグラム第１文字と、抽出したバイグラム文字列BigramStrの第１文字とが、同一であるか否かを判別する。
【００３３】
なお、検索インデックス作成処理の開始時には、抽出済みバイグラム群１４０は未だバイグラムを含んでいないため、第１の判別部１０２は、抽出済みバイグラム群１４０内のバイグラム第１文字ExtractedBigram1stChar[i]と、抽出したバイグラム文字列BigramStrの第１文字とが、同一でないと判別する。
【００３４】
判別の結果、抽出したバイグラム文字列BigramStrの第１文字と、抽出済みバイグラム群１４０内のバイグラム第１文字ExtractedBigram1stChar[i]とが、同一でない場合（ステップＳ３；ＮＯ）、続いて、第１の判別部１０２は、抽出したバイグラム文字列BigramStrの第１文字を、抽出済みバイグラム群１４０内のバイグラム第１文字の全てと比較し終えたか否かを判別する（ステップＳ４）。
【００３５】
抽出したバイグラム文字列BigramStrの第１文字を抽出済みバイグラム群１４０内のバイグラム第１文字の全てと比較し終えていない場合（ステップＳ４；ＮＯ）、第１の判別部１０２は、変数ｉをインクリメントして（ステップＳ５）、処理をステップＳ３に戻す。すなわち、第１の判別部１０２は、抽出済みバイグラム群１４０内の別のバイグラム第１文字を新たに１つ選択して、抽出したバイグラム文字列BigramStrの第１文字が、選択したバイグラム第１文字と同一であるか否かを判別する。
【００３６】
このように、第１の判別部１０２は、抽出済みバイグラム群１４０内のバイグラム第１文字のそれぞれについて、抽出したバイグラム文字列BigramStrの第１文字と同一であるか否かを、順次判別していく。これにより、第１の判別部１０２は、抽出したバイグラム文字列BigramStrと第１文字が同一であるバイグラムが、抽出済みバイグラム群１４０に含まれているか否かを判別する。例えば、抽出済みバイグラム群１４０内にＸ種類のバイグラム第１文字がある場合、第１の判別部１０２は、バイグラム文字列BigramStrの第１文字と同一のバイグラム第１文字を抽出済みバイグラム群１４０の中から見付けるまで、ステップＳ３〜Ｓ５の処理を、最大Ｘ回繰り返す。
【００３７】
最終的に、抽出したバイグラム文字列BigramStrの第１文字を、抽出済みバイグラム群１４０内のバイグラム第１文字の全てと比較し終えても、抽出したバイグラム文字列BigramStrの第１文字と同一のバイグラム第１文字を抽出済みバイグラム群１４０内から見付けられなかった場合（ステップＳ４；ＹＥＳ）、すなわち、バイグラム文字列BigramStrと第１文字が同一であるバイグラムが、抽出済みバイグラム群１４０に含まれていないと第１の判別部１０２が判別した場合、バイグラム追加部１０４は、検索対象文書１３０における位置を示す位置情報と紐付けて、抽出したバイグラム文字列BigramStrを、抽出済みバイグラム群１４０に新規追加する（ステップＳ６）。
【００３８】
図７（ａ）に、図４に示した抽出済みバイグラム群１４０に、抽出したバイグラム文字列BigramStrを追加する例を示す。例えば、抽出部１０１が、検索対象文書１３０の先頭から３３１文字目からバイグラム文字列BigramStr「ＢＩ」を抽出した場合、抽出したバイグラム文字列BigramStrの第１文字「Ｂ」と同一のバイグラム第１文字ExtractedBigram1stChar[i]は、図４に示した抽出済みバイグラム群１４０内に存在しない。この場合、バイグラム追加部１０４は、図７（ａ）において破線で示したように、抽出したバイグラム文字列BigramStr「ＢＩ」を、文字「Ｂ」をバイグラム第１文字ExtractedBigram1stChar[2]とし、文字「Ｉ」をバイグラム第２文字ExtractedBigram2ndChar[2][0]として、且つ、出現位置情報として「３３１」を紐付けて、抽出済みバイグラム群１４０に新規追加する。
【００３９】
このように、抽出したバイグラム文字列BigramStrを抽出済みバイグラム群１４０に新規追加すると、検索インデックス作成処理は、図６に示すフローチャートに移る。
【００４０】
図６に示すフローチャートにおいて、バイグラム追加部１０４が抽出したバイグラム文字列BigramStrを抽出済みバイグラム群１４０に新規追加すると、繰り返し部１０６は、検索対象文書１３０内の全バイグラムを抽出し終えたか否かを判別する（ステップＳ７）。すなわち、繰り返し部１０６は、検索対象文書１３０の末尾の文字を含むバイグラムまで、抽出部１０１が抽出し終えたか否かを判別する。
【００４１】
検索対象文書１３０内の全バイグラムを抽出し終えていない場合（ステップＳ７；ＮＯ）、繰り返し部１０６は、変数ｐをインクリメントして（ステップＳ８）、また変数ｉ,ｊを１に初期化して、処理を図５のフローチャートにおけるステップＳ２に戻す。そして、繰り返し部１０６は、検索対象文書１３０内の次の文字の出現位置において、２文字を切り出して、バイグラム文字列BigramStrを抽出し、抽出したバイグラム文字列BigramStrに対して、上述した処理を実行する。
【００４２】
このように、繰り返し部１０６による繰り返し処理の過程において、抽出部１０１は、検索対象文書１３０内の各バイグラム文字列BigramStrを順次抽出して、バイグラム追加部１０４は、検出対象テキスト内の位置情報と紐付けて、抽出したバイグラム文字列BigramStrを抽出済みバイグラム群１４０に追加していく。
【００４３】
繰り返し部１０６による繰り返し処理の過程において、抽出部１０１が検索対象文書１３０から抽出したバイグラム文字列BigramStrの第１文字と同一のバイグラム第１文字が、抽出済みバイグラム群１４０内のバイグラム第１文字ExtractedBigram1stChar[i]と同一である場合（ステップＳ３；ＹＥＳ）、すなわち、抽出部１０１が抽出したバイグラム文字列BigramStrの第１文字と同一のバイグラム第１文字が抽出済みバイグラム群１４０内にある場合、次に、第２の判別部１０３が第２の判別処理を実行する。
【００４４】
具体的に説明すると、第２の判別部１０３は、抽出したバイグラム文字列BigramStrの第２文字と、抽出したバイグラム文字列BigramStrと第１文字が同一であるバイグラム内のバイグラム第２文字ExtractedBigram2ndChar[i][j]と、が同一であるか否かを判別する（ステップＳ９）。ここで、バイグラム第２文字ExtractedBigram2ndChar[i][j]は、抽出したバイグラム文字列BigramStrと第１文字が同一であるバイグラムの第２文字としてＹ種類の文字があると仮定した場合の、Ｙ種類の文字のうちの第ｊ番目の文字を示す。
【００４５】
例えば図７（ａ）に示したように、抽出済みバイグラム群１４０に、「ＲＴ」、「ＲＡ」、「ＥＬ」、「ＢＩ」という４個のバイグラムが含まれていた場合であって、抽出部１０１が抽出したバイグラム文字列BigramStrの第１文字が「Ｒ」である場合、抽出したバイグラム文字列BigramStrと第１文字が同一であるバイグラムとして、「ＲＴ」と「ＲＡ」との２個のバイグラムがある。これらのバイグラムの第２文字は、それぞれ「Ｒ」と「Ａ」であるため、バイグラム第２文字ExtractedBigram2ndChar[i][j]として、「Ｒ」と「Ａ」との２種類の文字がある。第２の判別部１０３は、これら２種類のバイグラム第２文字「Ｒ」と「Ａ」とを順次選択して、選択したバイグラム第２文字と、抽出したバイグラム文字列BigramStrの第２文字とが同一であるか否かを判別する。
【００４６】
判別の結果、抽出したバイグラム文字列BigramStrの第２文字と、バイグラム第２文字ExtractedBigram2ndChar[i][j]とが、同一でない場合（ステップＳ９；ＮＯ）、続いて、第２の判別部１０３は、抽出したバイグラム文字列BigramStrの第２文字を、抽出したバイグラム文字列BigramStrと第１文字が同一であるバイグラム内のバイグラム第２文字の全てと比較し終えたか否かを判別する（ステップＳ１０）。
【００４７】
抽出したバイグラム文字列BigramStrの第２文字を、抽出したバイグラム文字列BigramStrと第１文字が同一であるバイグラム内のバイグラム第２文字の全てと比較し終えていない場合（ステップＳ１０；ＮＯ）、第２の判別部１０３は、変数ｊをインクリメントして（ステップＳ１１）、処理をステップＳ９に戻す。すなわち、第２の判別部１０３は、抽出したバイグラム文字列BigramStrと第１文字が同一であるバイグラム内の別のバイグラム第２文字を新たに１つ選択して、抽出したバイグラム文字列BigramStrの第２文字が、選択したバイグラム第２文字と同一であるか否かを判別する。
【００４８】
このように、第２の判別部１０３は、バイグラム文字列BigramStrと第１文字が同一であるバイグラム内のバイグラム第２文字のそれぞれについて、抽出したバイグラム文字列BigramStrの第２文字と同一であるか否かを、順次判別していく。これにより、第２の判別部１０３は、抽出したバイグラム文字列BigramStrと第２文字が同一であるバイグラムが、バイグラム文字列BigramStrと第１文字が同一であるバイグラムに含まれているか否かを判別する。例えば、バイグラム文字列BigramStrと第１文字が同一であるバイグラム内にＹ種類のバイグラム第２文字がある場合、第２の判別部１０３は、バイグラム文字列BigramStrの第２文字と同一のバイグラム第２文字を、バイグラム文字列BigramStrと第１文字が同一であるバイグラムの中から見付けるまで、ステップＳ９〜Ｓ１１の処理を、最大Ｙ回繰り返す。
【００４９】
最終的に、抽出したバイグラム文字列BigramStrの第２文字を、バイグラム文字列BigramStrと第１文字が同一であるバイグラム内のバイグラム第２文字の全てと比較し終えても、抽出したバイグラム文字列BigramStrの第２文字と同一のバイグラム第２文字を見付けられなかった場合（ステップＳ１０；ＹＥＳ）、すなわち、バイグラム文字列BigramStrと第２文字が同一であるバイグラムが、バイグラム文字列BigramStrと第１文字が同一であるバイグラムの中に含まれていないと第２の判別部１０３が判別した場合、バイグラム追加部１０４は、検索対象文書１３０における位置を示す位置情報と紐付けて、抽出したバイグラム文字列BigramStrを、抽出済みバイグラム群１４０に新規追加する（ステップＳ６）。
【００５０】
図７（ｂ）に、図７（ａ）に示した抽出済みバイグラム群１４０に、抽出したバイグラム文字列BigramStrを追加する例を示す。例えば、抽出部１０１が、検索対象文書１３０の先頭から３９２文字目からバイグラム文字列BigramStr「ＲＶ」を抽出した場合、抽出したバイグラム文字列BigramStrの第１文字「Ｒ」と同一のバイグラム第１文字ExtractedBigram1stChar[i]として、２個のバイグラム「ＲＴ」と「ＲＡ」とが抽出済みバイグラム群１４０内にある。しかし、抽出したバイグラム文字列BigramStrの第２文字「Ｖ」と同一のバイグラム第２文字ExtractedBigram2ndChar[i][j]は、バイグラム文字列BigramStrと第１文字が同一であるバイグラム「ＲＴ」と「ＲＡ」との中には含まれていない。この場合、バイグラム追加部１０４は、図７（ｂ）において破線で示したように、抽出したバイグラム文字列BigramStr「ＲＶ」を、バイグラム第１文字ExtractedBigram1stChar[0]（文字「Ｒ」）のグループの中に、文字「Ｖ」をバイグラム第２文字ExtractedBigram2ndChar[0][2]として、且つ、出現位置情報として「３９２」を紐付けて、抽出済みバイグラム群１４０に新規追加する。
【００５１】
一方で、抽出部１０１が検索対象文書１３０から抽出したバイグラム文字列BigramStrの第２文字と同一のバイグラム第２文字が、バイグラム第２文字ExtractedBigram2ndChar[i][j]と同一である場合（ステップＳ９；ＹＥＳ）、すなわち、バイグラム文字列BigramStrの第２文字と同一のバイグラム第２文字が、バイグラム文字列BigramStrと第１文字が同一であるバイグラム内に含まれていると第２の判別部１０３が判別した場合、位置情報追加部１０５は、検索対象文書１３０内におけるバイグラム文字列BigramStrの位置を示す位置情報を、抽出済みバイグラム群１４０内の該当するバイグラムの位置情報に追加する（ステップＳ１２）。
【００５２】
すなわち、ステップＳ９において、バイグラム文字列BigramStrと第２文字が同一であるバイグラムが、バイグラム文字列BigramStrと第１文字が同一であるバイグラムの中から見付かったということは、抽出したバイグラム文字列BigramStrと同一のバイグラムが、抽出済みバイグラム群１４０に既に含まれているということを意味する。そのため、位置情報追加部１０５は、重複を避けるため、抽出したバイグラム文字列BigramStrを抽出済みバイグラム群１４０に新たに追加することはせず、バイグラム文字列BigramStrの位置情報を抽出済みバイグラム群１４０内の該当するバイグラムの位置情報に追加することに留める。
【００５３】
図８に、図７（ｂ）に示した抽出済みバイグラム群１４０に、抽出したバイグラム文字列BigramStrの位置情報を追加する例を示す。例えば、抽出部１０１が、検索対象文書１３０の先頭から５７１文字目からバイグラム文字列BigramStr「ＲＴ」を抽出した場合、抽出したバイグラム文字列BigramStr「ＲＴ」と同一のバイグラムは、抽出済みバイグラム群１４０内に既に存在している。この場合、バイグラム追加部１０４は、図８において破線で示したように、抽出済みバイグラム群１４０内のバイグラム文字列「ＲＴ」に紐付けられた出現位置情報に、抽出したバイグラム文字列BigramStr「ＲＴ」の検索対象文書１３０における出現位置情報「５７１」を追加する。
【００５４】
なお、検索インデックス作成装置１００が、出現位置情報だけでなく、検索対象文書１３０内における各バイグラムの出現頻度（出現回数）の情報を、各バイグラムに紐付けて格納した検索インデックス１５０を作成する場合には、位置情報追加部１０５は、ステップＳ１２において、抽出済みバイグラム群１４０内の該当するバイグラムの出現回数に１を加えることにより、出現頻度を更新する。
【００５５】
この後、検索インデックス作成処理は、図６に示すフローチャートのステップＳ７に移行して、繰り返し部１０６が、検索対象文書１３０内の全バイグラムを抽出し終えたか否かを判別する（ステップＳ７）。検索対象文書１３０内の全バイグラムを抽出し終えていない場合（ステップＳ７；ＮＯ）、繰り返し部１０６は、変数ｐをインクリメントして（ステップＳ８）、また変数ｉ,ｊを１に初期化して、処理を図５のフローチャートにおけるステップＳ２に戻す。そして、繰り返し部１０６は、抽出部１０１が検索対象文書１３０からバイグラムを抽出する位置を次の文字の出現位置に変えて、ステップＳ２〜Ｓ１２に示した抽出部１０１、第１の判別部１０２、第２の判別部１０３、バイグラム追加部１０４、及び位置情報追加部１０５の処理を、検索対象文書１３０内の全バイグラムを抽出し終えるまで繰り返す。
【００５６】
最終的に、検索対象文書１３０内の全バイグラムを抽出し終えると（ステップＳ７；ＹＥＳ）、検索インデックス作成部１０７は、抽出済みバイグラム群１４０に含まれる、検索対象文書１３０における位置を示す位置情報が紐付けられた各バイグラムを、文字コード順（例えばアルファベット順や五十音順）に並べ替える（ステップＳ１３）。そして、検索インデックス作成部１０７は、バイグラムを文字コード順に並べ替えた抽出済みバイグラム群１４０を、検索インデックス１５０としてファイルに出力する（ステップＳ１４）。
【００５７】
図９に、検索インデックス作成部１０７が作成した検索インデックス１５０の例を示す。検索インデックス作成部１０７は、繰り返し部１０６が繰り返し処理を実行した後の検索対象文書１３０に含まれるバイグラムを、「ＡＡ」、「ＡＢ」、「ＡＣ」、…というように、文字コード順（アルファベット順）に並べる。そして、検索対象文書１３０に含まれる各バイグラムと、該各バイグラムの検索対象文書１３０における位置を示す位置情報と、が紐付けられた検索インデックス１５０を作成する。バイグラムを文字コード順に並べて検索インデックス１５０を作成することで、検索インデックス１５０を用いた検索時に、例えば二分探索によって検索インデックス１５０の中から必要なバイグラムを探索することができるので、高速な文字列検索が可能になる。
【００５８】
以上により、検索インデックス作成装置１００が実行する検索インデックス作成処理は終了する。検索インデックス作成部１０７が作成した検索インデックス１５０は、外部インターフェース６を介して外部の機器に提供され、例えば電子辞書のような、検索対象文書１３０を検索対象とする検索装置に搭載される。
【００５９】
検索インデックス作成装置１００が作成した検索インデックス１５０を搭載した検索装置は、検索インデックスを用いる周知の検索方法によって、検索文字列が出現する検索対象文書１３０内の位置を検索することができる。具体的に説明すると、検索インデックス１５０を搭載した検索装置は、所望の検索文字列に含まれるバイグラムの検索対象文書１３０内における出現位置情報を、検索インデックス１５０から取得して、検索文字列が出現する検索対象文書１３０内の位置を検索する。
【００６０】
以上説明したように、本実施形態に係る検索インデックス作成装置１００は、検索対象文書１３０に含まれるバイグラムを抽出して検索インデックス１５０を作成する際、抽出したバイグラムと同一のバイグラムが抽出済みバイグラム群１４０内に存在するか否かを、抽出したバイグラム文字列全体で評価するのではなく、抽出したバイグラムを構成する１文字単位で階層的に評価する。
【００６１】
検索対象文書１３０内にＭ種類の文字が存在すると仮定すると、この検索対象文書１３０内には、最大でＭの２乗通りのバイグラムが存在する。そのため、検索インデックス１５０を作成する際、従来のように抽出したバイグラム文字列全体で評価する場合には、検索対象文書１３０から抽出されたバイグラムが抽出済みのバイグラムと同一であるか否かを、最大でＭの２乗回評価する必要がある。これに対して、本実施形態に係る検索インデックス作成装置１００は、検索対象文書１３０から抽出したバイグラムが抽出済みのバイグラムと同一であるか否かを、抽出したバイグラムを構成する１文字単位で階層的に評価するため、評価回数は最大でＭ×２回で済む。評価の対象数を削減することができるため、本実施形態に係る検索インデックス作成装置１００は、高速に検索インデックス１５０を作成することができる。
【００６２】
（変形例）
以上に本発明の実施形態について説明したが、上記実施形態は一例であり、本発明の適用範囲はこれに限られない。すなわち、本発明の実施形態は種々の応用が可能であり、あらゆる実施の形態が本発明の範囲に含まれる。
【００６３】
例えば、上記実施形態では、検索インデックス作成装置１００は、２文字の文字列であるバイグラムを検索対象文書１３０から抽出して、検索インデックス１５０を作成した。しかし、本発明に係る検索インデックス作成装置は、バイグラムに限らず、トライグラム等、Ｎが３以上のＮグラムを検索対象文書１３０から抽出して、検索インデックスを作成してもよい。すなわち、本発明に係る検索インデックス作成装置は、検索対象文書１３０から抽出されたＮグラムが抽出済みのＮグラムと同一であるか否かを、Ｎグラムを構成する１文字単位で階層的に評価して、検索対象文書１３０に含まれる各Ｎグラムと、各Ｎグラムの検索対象文書１３０における位置情報と、が紐付けられた検索インデックスを作成する構成とすることができる。
【００６４】
Ｎが３以上のＮグラムを用いて検索インデックスを作成する場合、検索インデックス作成装置は、第１の判別部１０２と第２の判別部１０３という２個の判別部だけでなく、抽出部１０１が抽出したＮグラムを構成する文字が既に抽出済みのＮグラム群の対応する文字を同一であるか否かを、１文字ずつ階層的に判別するＮ個の判別部を備える。具体的に説明すると、ｎ番目の判別部（ｎは２からＮまでの自然数）は、抽出したＮグラムと第（ｎ−１）文字が同一であるＮグラムが抽出済みＮグラム群に含まれていると第（ｎ−１）番目の判別部が判別した場合に、抽出したＮグラムと第ｎ文字が同一であるＮグラムが、抽出したＮグラムと第（ｎ−１）文字が同一であるＮグラムに含まれているか否かを判別する。
【００６５】
そして、Ｎ個の判別部のうちのいずれかの判別部が、抽出したＮグラムを構成する文字が抽出済みＮグラム群の対応する文字と同一でないと判別した場合、後続する判別部は判別処理を実行せずに、バイグラム追加部１０４に相当するＮグラム追加部が、抽出したＮグラムを、該Ｎグラムの検索対象文書１３０における位置情報と紐付けて、抽出済みＮグラム群に追加する。一方で、全ての判別部が、抽出したＮグラムを構成する文字が抽出済みＮグラム群の対応する文字と同一であると判別した場合のみ、抽出部１０１が抽出したＮグラム文字列が既に抽出済みＮグラム群に含まれていると判別して、位置情報追加部１０５が、抽出したＮグラムの検索対象文書１３０における位置情報を、抽出済みＮグラム群において該Ｎグラムに紐付けられた位置情報に追加する。
【００６６】
検索対象文書１３０内にＭ種類の文字が存在すると仮定すると、この検索対象文書１３０内には、最大でＭのＮ乗通りのＮグラムが存在する。そのため、検索インデックスを作成する際、従来のように抽出したＮグラム文字列全体で評価する場合には、検索対象文書１３０から抽出されたＮグラムが抽出済みのＮグラムと同一であるか否かを、最大でＭのＮ乗回評価する必要がある。これに対して、本発明に係る検索インデックス作成装置は、検索対象文書１３０から抽出したＮグラムが抽出済みのＮグラムと同一であるか否かを、抽出したＮグラムを構成する１文字単位で階層的に評価するため、評価回数は最大でＭ×Ｎ回で十分である。Ｎの値が大きくなるほど、検索インデックス１５０を作成する際の高速化の程度が大きくなるため、本発明の効果がより発揮される。
【００６７】
また、上記実施形態では、検索インデックス作成装置１００は、検索対象文書１３０の先頭の文字から順に１文字ずつ変えてバイグラムを抽出して、抽出したバイグラムを検索対象文書１３０内の出現位置情報と紐付けて検索インデックス１５０を作成した。しかし、本発明に係る検索インデックス作成装置は、バイグラム（Ｎグラム）を、検索対象文書１３０の先頭の文字から抽出することに限らず、末尾の文字から逆の順序で抽出してもよいし、ランダムな順序で抽出してもよい。
【００６８】
なお、本発明に係る機能を実現するための構成を予め備えた検索インデックス作成装置として提供できることはもとより、プログラムの適用により、既存のパーソナルコンピュータや情報端末機器等を、本発明に係る検索インデックス作成装置として機能させることもできる。すなわち、上記実施形態で例示した検索インデックス作成装置１００による各機能構成を実現させるためのプログラムを、既存のパーソナルコンピュータや情報端末機器等を制御するＣＰＵ等が実行できるように適用することで、本発明に係る検索インデックス作成装置として機能させることができる。また、本発明に係る検索インデックス作成方法は、検索インデックス作成装置を用いて実施できる。
【００６９】
また、このようなプログラムの適用方法は任意である。プログラムを、例えば、コンピュータが読取可能な記録媒体（ＣＤ−ＲＯＭ（Compact Disc Read-Only Memory）、ＤＶＤ（Digital Versatile Disc）、ＭＯ（Magneto Optical disc）等）に格納して適用できる他、インターネット等のネットワーク上のストレージにプログラムを格納しておき、これをダウンロードさせることにより適用することもできる。
【００７０】
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲とが含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【００７１】
（付記１）
検索対象文書から、Ｎ文字の文字列であるＮグラムを抽出する抽出手段と、
前記抽出手段が抽出した前記Ｎグラムと第１文字が同一であるＮグラムが、抽出済みＮグラム群に含まれているか否かを判別する第１の判別手段と、
前記第１文字が同一である前記Ｎグラムが前記抽出済みＮグラム群に含まれていると前記第１の判別手段が判別した場合、前記抽出手段が抽出した前記Ｎグラムと第２文字が同一であるＮグラムが、前記第１文字が同一である前記Ｎグラムに含まれているか否かを判別する第２の判別手段と、
前記第１文字が同一である前記Ｎグラムが前記抽出済みＮグラム群に含まれていないと前記第１の判別手段が判別した場合、及び、前記第２文字が同一である前記Ｎグラムが、前記第１文字が同一である前記Ｎグラムの中に含まれていないと前記第２の判別手段が判別した場合、前記抽出手段が抽出した前記Ｎグラムを、該Ｎグラムの前記検索対象文書における位置を示す位置情報と紐付けて、前記抽出済みＮグラム群に追加するＮグラム追加手段と、
前記第２文字が同一である前記Ｎグラムが、前記第１文字が同一である前記Ｎグラムの中に含まれていると前記第２の判別手段が判別した場合であって、前記抽出手段が抽出した前記Ｎグラムが前記抽出済みＮグラム群に含まれている場合、該Ｎグラムの前記検索対象文書における位置を示す位置情報を、前記抽出済みＮグラム群において該Ｎグラムに紐付けられた位置情報に追加する位置情報追加手段と、
前記抽出手段が前記検索対象文書から前記Ｎグラムを抽出する位置を変えて、前記抽出手段、前記第１の判別手段、前記第２の判別手段、前記Ｎグラム追加手段、及び前記位置情報追加手段の処理を繰り返す繰り返し手段と、
前記繰り返し手段が繰り返し処理を実行した後の前記抽出済みＮグラム群に基づいて、前記検索対象文書に含まれる各Ｎグラムと、該各Ｎグラムの前記検索対象文書における位置を示す位置情報と、が紐付けられた検索インデックスを作成する検索インデックス作成手段と、
を備えることを特徴とする検索インデックス作成装置。
【００７２】
（付記２）
前記繰り返し手段は、前記抽出手段が前記検索対象文書から前記Ｎグラムを抽出する位置を、前記検索対象文書における先頭の文字から順に１文字ずつ変えて、前記抽出手段、前記第１の判別手段、前記第２の判別手段、前記Ｎグラム追加手段、及び前記位置情報追加手段の処理を繰り返す、
ことを特徴とする付記１に記載の検索インデックス作成装置。
【００７３】
（付記３）
前記検索インデックス作成手段は、前記繰り返し手段が繰り返し処理を実行した後の前記抽出済みＮグラム群に含まれる、前記検索対象文書における位置を示す位置情報が紐付けられた各Ｎグラムを、文字コード順に並べ替えて、前記検索インデックスを作成する、
ことを特徴とする付記１又は２に記載の検索インデックス作成装置。
【００７４】
（付記４）
検索対象文書から、Ｎ文字の文字列であるＮグラムを抽出する抽出ステップと、
前記抽出ステップで抽出した前記Ｎグラムと第１文字が同一であるＮグラムが、抽出済みＮグラム群に含まれているか否かを判別する第１の判別ステップと、
前記第１文字が同一である前記Ｎグラムが前記抽出済みＮグラム群に含まれていると前記第１の判別ステップで判別した場合、前記抽出ステップで抽出した前記Ｎグラムと第２文字が同一であるＮグラムが、前記第１文字が同一である前記Ｎグラムに含まれているか否かを判別する第２の判別ステップと、
前記第１文字が同一である前記Ｎグラムが前記抽出済みＮグラム群に含まれていないと前記第１の判別ステップで判別した場合、及び、前記第２文字が同一である前記Ｎグラムが、前記第１文字が同一である前記Ｎグラムの中に含まれていないと前記第２の判別ステップで判別した場合、前記抽出ステップで抽出した前記Ｎグラムを、該Ｎグラムの前記検索対象文書における位置を示す位置情報と紐付けて、前記抽出済みＮグラム群に追加するＮグラム追加ステップと、
前記第２文字が同一である前記Ｎグラムが、前記第１文字が同一である前記Ｎグラムの中に含まれていると前記第２の判別ステップで判別した場合であって、前記抽出ステップで抽出した前記Ｎグラムが前記抽出済みＮグラム群に含まれている場合、該Ｎグラムの前記検索対象文書における位置を示す位置情報を、前記抽出済みＮグラム群において該Ｎグラムに紐付けられた位置情報に追加する位置情報追加ステップと、
前記抽出ステップで前記検索対象文書から前記Ｎグラムを抽出する位置を変えて、前記抽出ステップ、前記第１の判別ステップ、前記第２の判別ステップ、前記Ｎグラム追加ステップ、及び前記位置情報追加ステップの処理を繰り返す繰り返しステップと、
前記繰り返しステップで繰り返し処理を実行した後の前記抽出済みＮグラム群に基づいて、前記検索対象文書に含まれる各Ｎグラムと、該各Ｎグラムの前記検索対象文書における位置を示す位置情報と、が紐付けられた検索インデックスを作成する検索インデックス作成ステップと、
を含む検索インデックス作成方法。
【００７５】
（付記５）
コンピュータを、
検索対象文書から、Ｎ文字の文字列であるＮグラムを抽出する抽出手段、
前記抽出手段が抽出した前記Ｎグラムと第１文字が同一であるＮグラムが、抽出済みＮグラム群に含まれているか否かを判別する第１の判別手段、
前記第１文字が同一である前記Ｎグラムが前記抽出済みＮグラム群に含まれていると前記第１の判別手段が判別した場合、前記抽出手段が抽出した前記Ｎグラムと第２文字が同一であるＮグラムが、前記第１文字が同一である前記Ｎグラムに含まれているか否かを判別する第２の判別手段、
前記第１文字が同一である前記Ｎグラムが前記抽出済みＮグラム群に含まれていないと前記第１の判別手段が判別した場合、及び、前記第２文字が同一である前記Ｎグラムが、前記第１文字が同一である前記Ｎグラムの中に含まれていないと前記第２の判別手段が判別した場合、前記抽出手段が抽出した前記Ｎグラムを、該Ｎグラムの前記検索対象文書における位置を示す位置情報と紐付けて、前記抽出済みＮグラム群に追加するＮグラム追加手段、
前記第２文字が同一である前記Ｎグラムが、前記第１文字が同一である前記Ｎグラムの中に含まれていると前記第２の判別手段が判別した場合であって、前記抽出手段が抽出した前記Ｎグラムが前記抽出済みＮグラム群に含まれている場合、該Ｎグラムの前記検索対象文書における位置を示す位置情報を、前記抽出済みＮグラム群において該Ｎグラムに紐付けられた位置情報に追加する位置情報追加手段、
前記抽出手段が前記検索対象文書から前記Ｎグラムを抽出する位置を変えて、前記抽出手段、前記第１の判別手段、前記第２の判別手段、前記Ｎグラム追加手段、及び前記位置情報追加手段の処理を繰り返す繰り返し手段、
前記繰り返し手段が繰り返し処理を実行した後の前記抽出済みＮグラム群に基づいて、前記検索対象文書に含まれる各Ｎグラムと、該各Ｎグラムの前記検索対象文書における位置を示す位置情報と、が紐付けられた検索インデックスを作成する検索インデックス作成手段、
として機能させるためのプログラム。
【符号の説明】
【００７６】
１…ＲＯＭ、２…ＲＡＭ、３…外部記憶装置、４…入力装置、５…出力装置、６…外部インターフェース、７…ＣＰＵ、１００…検索インデックス作成装置、１０１…抽出部、１０２…第１の判別部、１０３…第２の判別部、１０４…バイグラム追加部、１０５…位置情報追加部、１０６…繰り返し部、１０７…検索インデックス作成部、１１０…記憶部、１３０…検索対象文書、１４０…抽出済みバイグラム群、１５０…検索インデックス
【図１】
2016058016.tif 000003
【図２】
2016058016.tif 000004
【図３】
2016058016.tif 000005
【図４】
2016058016.tif 000006
【図５】
2016058016.tif 000007
【図６】
2016058016.tif 000008
【図７】
2016058016.tif 000009
【図８】
2016058016.tif 000010
【図９】
2016058016.tif 000011