(57)【特許請求の範囲】
【請求項１】
単語ごとに区切られている第１の言語と単語ごとに区切られていない第２の言語からなるテキストデータを検索する情報処理装置であって、
前記テキストデータ中の、前記第１の言語の文字が連続する部分の両端に、該連続する部分を単語として識別するための識別文字を付加する付加手段と、
前記付加手段によって前記識別文字が付加された前記テキストデータ中の各文字の位置に関する位置情報を作成する作成手段と、
入力手段によって入力された検索条件に対し、前記付加手段による前記識別文字の付加を行い、前記識別文字が付加されたテキストデータの中から、前記位置情報を参照して前記識別文字が付加された検索条件に該当するテキストデータを検索する検索手段と
を備えることを特徴とする情報処理装置。
【請求項２】
単語ごとに区切られている第１の言語と単語ごとに区切られていない第２の言語からなるテキストデータを管理する情報処理装置であって、
前記テキストデータ中の、前記第１の言語の文字が連続する部分の両端に、該連続する部分を単語として識別するための識別文字を付加する付加手段と、
前記付加手段によって前記識別文字が付加されたテキストデータ中の各文字の位置に関する位置情報を作成する作成手段と、
前記作成手段で作成した位置情報と対応づけて、前記テキストデータを管理する管理手段と
を備えることを特徴とする情報処理装置。
【請求項３】
単語ごとに区切られている第１の言語と単語ごとに区切られていない第２の言語からなるテキストデータを検索する情報処理装置の情報処理方法であって、
記憶媒体に保持されるテキストデータ中の、前記第１の言語の文字が連続する部分の両端に、該連続する部分を単語として識別するための識別文字を処理ユニットが付加する付加工程と、
前記付加工程において、前記識別文字が付加されたテキストデータ中の各文字の位置に関する位置情報を前記処理ユニットが作成する作成工程と、
前記作成工程において作成された位置情報を前記処理ユニットが前記記憶媒体に保持する位置情報保持工程と、
入力された検索条件に対し、前記検索条件中の、前記第１の言語の文字が連続する部分の両端に、該連続する部分を単語として識別するための識別文字を前記処理ユニットが付加し、かつ前記記憶媒体に保持される位置情報を参照して、前記識別文字が付加された検索条件に該当するテキストデータを前記記憶媒体に保持されるテキストデータの中から前記処理ユニットが検索する検索工程と
を備えることを特徴とする情報処理装置の情報処理方法。
【請求項４】
単語ごとに区切られている第１の言語と単語ごとに区切られていない第２の言語からなるテキストデータを管理する情報処理装置の情報処理方法であって、
前記テキストデータ中の、前記第１の言語の文字が連続する部分の両端に、該連続する部分を単語として識別するための識別文字を処理ユニットが付加する付加工程と、
前記付加工程において付加されたテキストデータ中の各文字の位置に関する位置情報を処理ユニットが作成する作成工程と、
前記作成工程において作成された位置情報と対応づけて、前記識別文字が付加されたテキストデータを前記処理ユニットが管理する管理工程と
を備えることを特徴とする情報処理装置の情報処理方法。
【請求項５】
単語ごとに区切られている第１の言語と単語ごとに区切られていない第２の言語からなるテキストデータを検索する情報処理のプログラムが格納されたコンピュータ可読メモリであって、
コンピュータに、
記憶媒体に保持されるテキストデータ中の、前記第１の言語の文字が連続する部分の両端に、該連続する部分を単語として識別するための識別文字を処理ユニットが付加する付加工程と、
前記付加工程において、前記識別文字が付加されたテキストデータ中の各文字の位置に関する位置情報を前記処理ユニットが作成する作成工程と、
前記作成工程において作成された位置情報を前記処理ユニットが前記記憶媒体に保持する位置情報保持工程と、
入力された検索条件に対し、前記検索条件中の、前記第１の言語の文字が連続する部分の両端に、該連続する部分を単語として識別するための識別文字を前記処理ユニットが付加し、かつ前記記憶媒体に保持される位置情報を参照して、前記識別文字が付加された検索条件に該当するテキストデータを前記記憶媒体に保持されるテキストデータの中から前記処理ユニットが検索する検索工程と
を実現させるプログラムを記憶したことを特徴とするコンピュータ可読メモリ。
【請求項６】
単語ごとに区切られている第１の言語と単語ごとに区切られていない第２の言語からなるテキストデータを管理する情報処理のプログラムが格納されたコンピュータ可読メモリであって、
コンピュータに、
前記テキストデータ中の、前記第１の言語の文字が連続する部分の両端に、該連続する部分を単語として識別するための識別文字を処理ユニットが付加する付加工程と、
前記付加工程において付加されたテキストデータ中の各文字の位置に関する位置情報を前記処理ユニットが作成する作成工程と、
前記作成工程において作成された位置情報と対応づけて、前記識別文字が付加されたテキストデータを前記処理ユニットが管理する管理工程と
を実現させるプログラムを記憶したことを特徴とするコンピュータ可読メモリ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、テキストデータを検索あるいは管理する情報処理装置及びその方法に関するものである。
【０００２】
【従来の技術】
文書データ中の全てのテキストデータを対象として与えられた検索キーを含む文書データを検索する全文検索装置等の情報処理装置では、大量のテキストデータを高速に検索するために、検索対象文書のインデックスを予め作成して、インデックスを用いて検索を行なうインデックス技術が利用されている。インデックス技術の一例として、特開平４−２０５５６０公報では、文字位置インデックス技術について述べられている。
【０００３】
文字位置インデックス技術の基本的な考え方は、被検索テキストデータ中に出現する文字および文字列の位置を文字ごとに１ずつ増加する整数で表わすことにある。その上で、各文字および文字列ごとに、当該文字および文字列をキーとして、当該文字および文字列が現れる全ての位置を列挙する。このインデックスにおいて、ある検索文字列を被検索テキストデータから検索する場合には、当該検索文字列をインデックスのキーとなっている文字および文字列に分解する。そして、分解した文字および文字列の位置関係が、当該検索文字列における位置関係に一致する組み合わせを探すことで検索を行なう。
【０００４】
ここで、従来の情報処理装置の機能構成について、図１０を用いて説明する。
図１０は従来の情報処理装置の機能構成を示すブロック図である。
図１０において、５０１は被検索テキストデータを保持する被検索テキスト保持部である。５０２は被検索テキスト保持部５０１に保持されている被検索テキストデータに対して、被検索テキストデータ中の文字及び文字列ごとに、被検索テキストデータ中での当該文字の位置を保持したインデックスを作成するインデックス作成部である。５０３はインデックス作成部５０２で作成したインデックスを保持するインデックス保持部である。５０４は検索を行う文字列を保持する検索文字列保持部である。５０５はインデックス保持部５０３に保持されているインデックスを用いて、検索文字列保持部５０４に保持されている検索文字列に一致する被検索テキストデータ中の文字列を検索する検索部である。５０６は検索部による検索結果を保持する検索結果保持部である。
【０００５】
次に、従来の情報処理装置で実行されるインデックスを作成するインデックス作成処理について、図１１を用いて説明する。
図１１は従来の情報処理装置で実行されるインデックス作成処理を示すフローチャートである。
まず、ステップＳ６０１では、カウンタｃの初期化を行う。カウンタｃは、処理の対象となっている文字の位置を示すもので、これを０に初期化する。ステップＳ６０２では、ポインタｐの初期化を行う。ポインタｐは、処理の対象となっている文字を指し示すもので、これを被検索テキストデータの先頭文字を指し示すように初期化する。
【０００６】
ステップＳ６０３では、ポインタｐが被検索テキストデータの最後の文字に達したか否かを判定する。最後に達している場合（ステップＳ６０３でＹＥＳ）、インデックス作成処理を終了する。一方、最後に達していない場合（ステップＳ６０３でＮＯ）、ステップＳ６０４に進む。
ステップＳ６０４では、ポインタｐが指し示す位置にある文字について、インデックスの当該文字の位置リストにカウンタｃの値を追加する。ステップＳ６０５では、カウンタｃの値を１増やす。ステップＳ６０６では、ポインタｐが次の文字を指し示すようにポインタｐを進め、ステップＳ６０３に戻る。
【０００７】
以上のインデックス作成処理により、例えば、図１３に示す文書に対して、図１４に示すようなインデックスが作成される。尚、図１３及び図１４では、幾つかの文字以外については表示を省略している。また、図１４の各行が、各文字が現れる位置のリストとなっている。例えば、文字「プ」は、位置３、１５、３６、…に出現していることがわかる。
【０００８】
次に従来の情報処理装置で実行される文字列を検索する検索処理について、図１２を用いて説明する。
図１２は従来の情報処理装置で実行される検索処理を示すフローチャートである。
まず、ステップＳ７０１では、検索文字列保持部５０４に保持されている検索文字列の長さをレジスタｌに代入する。また、カウンタｎに１を代入する。例えば、検索文字列が「Ｃプログラム」である場合は、ｌ＝６、ｎ＝１となる。ステップＳ７０２では、検索文字列保持部５０４に保持されている検索文字列の１番目の文字について、インデックスの読み込みを行う。当該文字の文字位置全てを配列１に読み込む。図１５は、図１４に示したインデックスを用いて検索文字列「Ｃプログラム」を検索しているときの配列１の状態を示している。
【０００９】
ステップＳ７０３では、レジスタｌの内容とカウンタｎの内容を比較する。カウンタｎの内容＜レジスタｌの内容である場合（ステップＳ７０３でＹＥＳ）、ステップＳ７０４に進む。一方、カウンタｎの内容≧レジスタｌの内容である場合（ステップＳ７０３でＮＯ）、ステップＳ７０７に進む。
ステップＳ７０４では、カウンタｎの値を１増やす。ステップＳ７０５では、検索文字列保持部５０４に保持されている検索文字列のカウンタｎの内容が示すｎ番目の文字について、インデックスの読み込みを行う。当該文字の全ての文字位置から（ｎ−１）を減じた値を配列２に読み込む。
【００１０】
ステップＳ７０６では、配列１と配列２から、配列１と配列２の両方に存在している値を全て取り出し、これらの値だけを新たに配列１の値とする。そして、ステップＳ７０３に戻る。図１６は、図１５に示した配列１と、その配列１に対する配列２において、ｎ＝３の時の配列１の状態を示している。
ステップＳ７０７では、配列１が空でない場合は、検索文字列が検索されたことを示す値として１を検索結果保持部５０６に保持する。配列１が空の場合は、検索文字列が検索されなかったことを示す値として０を検索結果保持部５０６に保持する。そして、検索処理を終了する。
【００１１】
以上の検索処理により、上述の例である検索文字列「Ｃプログラム」を検索すると、一２と３５に当該文字列があるので、このテキストは検索される。日本語の場合、語の区切りを容易に求められないため、このように文字列として一致するテキストを検索する検索方法は有効である。
【００１２】
【発明が解決しようとする課題】
しかしながら、上記従来の情報処理装置では、英語のように単語の区切りが明確な言語に対して、単語として一致するテキストだけを検索することができないという問題があった。これは、日本語における空白文字は語の区切りを表すものではないので、空白文字を読み飛ばしてインデックスを作成するためである。そのため、上記の例では、「Ｃプログラム」という検索語に対して、「ＲＰＣプログラム」という単語でも検索されてしまう。
【００１３】
一方、単語ごとにインデックスを作成して検索する方法もあるが、これでは日本語文書などのように単語を容易に区切ることができない言語では、正しいインデックスが作成されるとは限らず、検索結果に誤りが生じる問題がある。
本発明は上記の問題に鑑みてなされたものであり、テキストデータの検索精度を向上することができる情報処理装置及びその方法を提供することを目的とする。
【００１４】
【課題を解決するための手段】
上記の目的を達成するための本発明による情報処理装置は以下の構成を備える。即ち、
テキストデータを検索する情報処理装置であって、
テキストデータを保持する保持手段と、
前記保持手段で保持されているテキストデータ中の所定文字列に該所定文字列を識別するための識別文字を付加する付加手段と、
前記付加手段による付加がなされたテキストデータ中の各文字の位置に関する位置情報を作成する作成手段と、
前記作成手段で作成した位置情報を保持する位置情報保持手段と、
検索条件を入力する入力手段と、
前記入力手段によって入力された検索条件に対し前記付加手段による付加を行い、該検索条件に該当する前記保持手段に保持されているテキストデータを、前記位置情報保持手段で保持される位置情報を参照して検索する検索手段と
を備える。
【００１５】
また、好ましくは、前記保持手段に保持されているテキストデータ中の所定文字列の両端に区切り文字を挿入して該テキストデータを変換する変換手段と、
前記変換手段により変換されたテキストデータを保持する変換テキストデータ保持手段とを更に備え、
前記位置情報作成手段は、前記変換テキストデータ保持手段に保持されているテキストデータ中の各文字の位置に関する位置情報を作成する。
【００１６】
また、好ましくは、前記付加手段は、前記所定文字列の前方、あるいは後方に前記識別文字を付加する。
また、好ましくは、前記入力手段で入力された検索条件中の所定文字列の両端に区切り文字を挿入して該検索条件を変換する検索条件変換手段と、
前記検索条件変換手段により変換された検索条件を保持する変換検索条件保持手段とを更に備え、
前記検索手段は、前記変換検索条件保持手段に保持されている検索条件に該当する前記保持手段に保持されているテキストデータを検索する。
【００１７】
また、好ましくは、前記所定文字列を検出する検出手段を
更に備える。
また、好ましくは、前記所定文字列は、所定の言語の文字が連続する文字列である。
上記の目的を達成するための本発明による情報処理装置は以下の構成を備える。即ち、
テキストデータを管理する情報処理装置であって、
前記テキストデータ中の所定文字列に該所定文字列を識別するための識別文字を付加する付加手段と、
前記付加手段による付加がなされたテキストデータ中の各文字の位置に関する位置情報を作成する作成手段と、
前記作成手段で作成した位置情報と対応づけて、前記テキストデータを管理する管理手段と
を備える。
【００１８】
上記の目的を達成するための本発明による情報処理方法は以下の構成を備える。即ち、
テキストデータを検索する情報処理方法であって、
テキストデータを第１記憶媒体に保持する保持工程と、
前記保持工程で前記記憶媒体に保持されているテキストデータ中の所定文字列に該所定文字列を識別するための識別文字を付加する付加工程と、
前記付加工程による付加がなされたテキストデータ中の各文字の位置に関する位置情報を作成する作成工程と、
前記作成工程で作成した位置情報を第２記憶媒体に保持する位置情報保持工程と、
検索条件を入力する入力工程と、
前記入力工程によって入力された検索条件に対し前記付加工程による付加を行い、該検索条件に該当する前記保持工程で前記第１記憶媒体に保持されているテキストデータを、前記位置情報保持工程で前記第２記憶媒体に保持される位置情報を参照して検索する検索工程と
を備える。
【００１９】
上記の目的を達成するための本発明による情報処理方法は以下の構成を備える。即ち、
テキストデータを管理する情報処理方法であって、
前記テキストデータ中の所定文字列に該所定文字列を識別するための識別文字を付加する付加工程と、
前記付加工程による付加がなされたテキストデータ中の各文字の位置に関する位置情報を作成する作成工程と、
前記作成工程で作成した位置情報と対応づけて、前記テキストデータを記憶媒体に管理する管理工程と
を備える。
【００２０】
上記の目的を達成するための本発明によるコンピュータ可読メモリは以下の構成を備える。即ち、
テキストデータを検索する情報処理のプログラムコードが格納されたコンピュータ可読メモリであって、
テキストデータを第１記憶媒体に保持する保持工程のプログラムコードと、
前記保持工程で前記記憶媒体に保持されているテキストデータ中の所定文字列に該所定文字列を識別するための識別文字を付加する付加工程のプログラムコードと、
前記付加工程による付加がなされたテキストデータ中の各文字の位置に関する位置情報を作成する作成工程のプログラムコードと、
前記作成工程で作成した位置情報を第２記憶媒体に保持する位置情報保持工程と、
検索条件を入力する入力工程のプログラムコードと、
前記入力工程によって入力された検索条件に対し前記付加工程による付加を行い、該検索条件に該当する前記保持工程で前記第１記憶媒体に保持されているテキストデータを、前記位置情報保持工程で前記第２記憶媒体に保持される位置情報を参照して検索する検索工程のプログラムコードと
を備える。
【００２１】
上記の目的を達成するための本発明によるコンピュータ可読メモリは以下の構成を備える。即ち、
テキストデータを管理する情報処理のプログラムコードが格納されたコンピュータ可読メモリであって、
前記テキストデータ中の所定文字列に該所定文字列を識別するための識別文字を付加する付加工程のプログラムコードと、
前記付加工程による付加がなされたテキストデータ中の各文字の位置に関する位置情報を作成する作成工程のプログラムコードと、
前記作成工程で作成した位置情報と対応づけて、前記テキストデータを記憶媒体に管理する管理工程のプログラムコードと
を備える。
【００２２】
【発明の実施の形態】
以下、図面を参照して本発明の好適な実施形態を詳細に説明する。
図１は本発明の実施形態に係る情報処理装置の機能構成を示すブロック図である。
図１において、１０１は被検索テキストデータを保持する被検索テキスト保持部である。１０２は被検索テキスト保持部１０１に保持されている被検索テキストデータ中の英単語の両端に区切り文字を挿入して被検索テキストデータを変換する被検索テキスト変換部である。１０３は被検索テキスト変換部により変換されたテキストデータを保持する変換テキスト保持部である。１０４は変換テキスト保持部１０３に保持されている変換されたテキストデータに対して、変換されたテキストデータ中の文字ごとに、変換されたテキストデータ中での当該文字の位置を列挙したインデックスを保持するインデックス作成部である。
【００２３】
１０５はインデックス作成部１０４で作成したインデックスを保持するインデックス保持部である。１０６は検索のキーとなる文字列あるいは単語を保持する検索キー保持部である。１０７は検索キー保持部１０６に保持されている検索キー中の英単語の両端に区切り文字を挿入して検索キーを変換する検索キー変換部である。１０８は検索キー変換部１０７で変換された変換キーを保持する変換キー保持部である。１０９はインデックス保持部１０５に保持されているインデックスを用いて、変換キー保持部１０８に保持されている変換キーに一致する文字列を検索する検索部である。１１０は検索部１０９による検索結果を保持する検索結果保持部である。
【００２４】
次に本発明の実施形態の情報処理装置の構成について、図２を用いて説明する。
図２は本発明の実施形態の情報処理装置の構成を示すブロック図である。
図２において、２０１はＣＰＵであり、後述する手順を実現するプログラムに従って動作する。２０２はＲＡＭであり、被検索テキスト保持部１０１、変換テキスト保持部１０３、検索キー保持部１０６、変換キー保持部１０８、検索結果保持部１１０と上記プログラムの動作に必要な記憶領域とを提供する。２０３はＲＯＭであり、後述する手順を実現するプログラムを保持する。２０４はディスク装置であり、インデックス保持部１０５を実現する。２０５は情報処理装置の各種構成要素を相互に接続するバスである。
【００２５】
以下、説明していく本発明の実施形態で実行される処理は、インデックスを作成するインデックス作成処理と文字列を検索する検索処理の２つに大きく分かれる。まず、インデックス作成処理について、図３を用いて説明する。
図３は本発明の実施形態で実行されるインデックス作成処理を示すフローチャートである。
【００２６】
まず、ステップＳ３０１では、テキストデータの変換処理を行う。被検索テキスト保持部１０１に保持されているテキストデータのうち、英単語の両端に区切り文字“＠”を挿入する。英単語とは、アルファベット文字（“Ａ”から“Ｚ”および“ａ”から“ｚ”まで）だけが連続する部分である。区切り文字を挿入したテキストデータを、変換テキスト保持部１０３に保持する。例えば、図１３に示す文書に対して、区切り文字を挿入すると、図５にようになる。ステップＳ３０２では、カウンタｃの初期化を行う。カウンタｃは、処理の対象となっている文字の位置を示すもので、これを０に初期化する。
【００２７】
ステップＳ３０３では、ポインタｐの初期化を行う。ポインタｐは、処理の対象となっている文字を指し示すもので、これを被検索テキストデータの先頭文字を指し示すように初期化する。ステップＳ３０４では、ポインタｐが被検索テキストデータの最後に達したか否かを判定する。最後に達している場合（ステップＳ３０４でＹＥＳ）、インデックス作成処理を終了する。一方、最後に達していない場合（ステップＳ３０４でＮＯ）、ステップＳ３０５に進む。
【００２８】
ステップＳ３０５では、ポインタｐが指し示す位置にある文字について、インデックスの当該文字の位置リストにカウンタｃの値を追加する。ステップＳ３０６では、カウンタｃの値を１増やす。ステップＳ３０７では、ポインタｐが次の文字を指し示すようポインタｐを進め、ステップＳ３０４に戻る。
以上のインデックス処理により、例えば、図１３に示す文書に対して、図６に示すインデックスが作成される。まず、図６の各行が、各文字が現れる位置のリストとなっている。リストの最初の行が、区切り文字が現れる位置のリストを示している
次に本発明の実施形態で実行される検索処理について、図４を用いて説明する。
【００２９】
図４は本発明の実施形態で実行される検索処理を示すフローチャートである。
まず、ステップＳ４０１では、検索キーの変換処理を行う。検索キー保持部１０６に保持されている検索キーのうち、英単語の両端に区切り文字“＠”を挿入する。ここで英単語は、上述した図３のフローチャートのステップＳ３０１と同様にして判断する。区切り文字を挿入した検索キーを、変換テキスト保持部１０８に保持する。例えば、検索キーが「Ｃプログラム」である場合は、変換キーは、「＠Ｃ＠プログラム」となる。
【００３０】
ステップＳ４０２では、変換キー保持部１０８に保持されている変換キーの長さをレジスタｌに代入する。また、カウンタｎに１を代入する。例えば、変換キーが、「＠Ｃ＠プログラム」である場合は、ｌ＝８、ｎ＝１となる。ステップＳ４０３では、変換キー保持部１０８に保持されている変換キーの１番目の文字について、インデックスの読み込みを行う。当該文字の文字位置全てを配列１に読み込む。
【００３１】
ステップＳ４０４では、レジスタｌの内容とカウンタｎの内容を比較する。カウンタｎの内容＜レジスタｌの内容である場合（ステップＳ４０４でＹＥＳ）、ステップＳ４０８に進む。一方、カウンタｎの内容≧レジスタｌの内容である場合（ステップＳ４０４でＮＯ）、ステップＳ４０５に進む。
ステップＳ４０５では、カウンタｎの値を１増やす。ステップＳ４０６では、変換キー保持部１０８に保持されている変換キーのカウンタｎの内容が示すｎ番目の文字について、インデックスの読み込みを行う。当該文字の全ての文字位置から（ｎ−１）を減じた値を配列２に読み込む。
【００３２】
ステップＳ４０７では、配列１と配列２から、配列１と配列２の両方に存在している値を全て取り出し、これらの値だけを新たに配列１の値とする。そして、ステップＳ４０４に戻る。図７は、上述した検索列「Ｃプログラム」において、ｎ＝５の時の配列１の状態を示している。
ステップＳ４０８では、配列１が空でない場合は、検索キーが検索されたことを示す値として１を検索結果保持部１１０に保持する。配列１が空の場合は、検索キーが検索されなかったことを示す値として０を検索結果保持部１１０に保持する。そして、検索処理を終了する。
【００３３】
以上の検索処理により、上述の例である検索キー「Ｃプログラム」に対して、「ＲＰＣプログラム」を含む、検索結果として不適切な文字列は検索されない。
以上説明したように、本実施形態によれば、英語のように単語の区切りが明確な言語に対する検索において、単語と一致する文字列だけを正確に検索することができる。
【００３４】
尚、本実施形態においては、インデックス作成処理と検索処理を同一の情報処理装置で実行する場合について説明したが、これに限定されるものではない。インデックス作成処理と検索処理を異なる情報処理装置で行ってもよい。この場合の各情報処理装置の機能構成について、図８と図９を用いて説明する。尚、図８に示す情報処理装置と、図９に示す情報処理装置は、ネットワーク回線等で接続され互いにデータの授受を可能とする構成になっている。あるいは、ＣＤ−ＲＯＭ等の可搬記憶媒体により図８の情報処理装置で作成したインデックスを図９の情報処理装置で利用する。
【００３５】
図８は本発明の他の実施形態に係る情報処理装置の機能構成を示すブロック図である。
図８において、１５０１は被検索テキストデータを保持する被検索テキスト保持部である。１５０２は被検索テキスト保持部１５０１に保持されている被検索テキストデータ中の英単語の両端に区切り文字を挿入して被検索テキストを変換する被検索テキスト変換部である。１５０３は被検索テキスト変換部により変換されたテキストデータを保持する変換テキスト保持部である。１５０４は変換テキスト保持部１５０３に保持されている変換されたテキストデータに対して、変換されたテキストデータ中の文字ごとに、変換されたテキストデータ中での当該文字の位置を列挙したインデックスを保持するインデックス作成部である。１５０５はインデックス作成部１０４で作成したインデックスを保持するインデックス保持部である。
【００３６】
図９は本発明の他の実施形態に係る情報処理装置の機能構成を示すブロック図である。
図９において、１６０１は図８に示す情報処理装置で作成されたインデックスを保持するインデックス保持部である。１６０２は検索のキーとなる文字列あるいは単語を保持する検索キー保持部である。１６０３は検索キーテキスト保持部に接続されている検索キー中の英単語の両端に区切り文字を挿入して検索キーを変換する検索キー変換部である。１６０４は検索キー変換部１６０３で変換された変換キーを保持する変換キー保持部である。１６０５はインデックス保持部１６０１に保持されているインデックスを用いて、変換キー保持部１６０４に保持されている変換キーに一致する文字列を検索する検索部である。１６０６は検索部１６０５による検索結果を保持する検索結果保持部である。
【００３７】
また、本実施形態では、被検索テキストデータ及び検索キー共に、区切り文字を挿入する変換を行った上で、インデックス作成処理や検索処理を行う場合について説明したが、これに限定されるものではない。例えば、インデックス作成処理や検索処理の途中で、区切り文字の挿入を行ってもよい。
また、英単語の両端に区切り文字を実際に挿入する場合について説明したが、これに限定されるものではない。例えば、文字の挿入に代わって、当該位置を列挙するインデックスを設けて、区切り文字を仮想的に実現してもよい。
【００３８】
また、検索キーの英単語の両端に区切り文字を挿入して検索を行う場合について説明したが、これに限定されるものではない。例えば、検索キーの前方だけに区切り文字を挿入すれば、前方一致検索が実現される。また、検索キーの後方だけに区切り文字を挿入すれば、後方一致検索が実現される。区切り文字を挿入しなければ、部分一致検索が実現される。
【００３９】
また、英単語の両端に常に区切り文字を挿入する場合について説明したが、これに限定されるものではない。英単語が連続する場合には、区切り文字を一つにまとめてもよい。例えば、“information retrieval”に対しては、“@information@retrieval@”とする。
また、アルファベットの連続を区切り文字を挿入する対象とする特定部分文字列とした場合について説明したが、これに限定されるものではない。例えば、数字やカタカナの連続など任意の文字集合の属する文字の連続を特定文字列としてもよい。
【００４０】
また、文字集合に属する文字の連続を特定部分文字列とする場合について説明したが、これに限定されるものではない。
また、一つのテキストデータに対して検索を行う場合について説明したが、これに限定されるものではない。複数のテキストデータに対して検索を行なってもよい。例えば、全テキストに連続させて位置を割り振り、テキストデータが切り替わる位置の情報を保持することで、検索された位置と各テキストデータの切り替わり位置を比較することで、複数のテキストデータの検索が可能になる。
【００４１】
また、被検索テキスト保持部１０１、変換テキスト保持部１０３、検索キー保持部１０６、変換キー保持部１０８、検索結果保持部１１０をＲＡＭで、インデックス保持部１０５をディスク装置で実現する場合について説明したが、これに限定されるものではなく、任意の記憶媒体を用いて実現してもよい。
また、情報処理装置の機能構成の各構成要素を同一の情報処理装置上で構成する場合について説明したが、これに限定されるものではなく、ネットワーク上に分散した情報処理装置に分かれて構成してもよい。
【００４２】
また、プログラムをＲＯＭに保持する場合について説明したが、これに限定されるものではなく、任意の記憶媒体を用いて実現してもよい。また、同様の動作をする回路で実現してもよい。
尚、本発明は、複数の機器（例えば、ホストコンピュータ、インタフェース機器、リーダ、プリンタ等）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置等）に適用してもよい。
【００４３】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００４４】
この場合、記憶媒体から読出されたプログラムコード自体が上述した実施の形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００４５】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【００４６】
更に、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００４７】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードを格納することになるが、簡単に説明すると、図１７、図１８のメモリマップ例に示す各モジュールを記憶媒体に格納することになる。
すなわち、図１７に示すように、少なくとも「保持モジュール」、「付加モジュール」、「作成モジュール」、「入力モジュール」および「検索モジュール」の各モジュールのプログラムコードを記憶媒体に格納すればよい。
【００４８】
尚、「付加モジュール」は、テキストデータを第１記憶媒体に保持する。「付加モジュール」は、保持されているテキストデータ中の所定文字列に該所定文字列を識別するための識別文字を付加する。「作成モジュール」は、付加がなされたテキストデータ中の各文字の位置に関する位置情報を作成する。「位置情報保持モジュール」は、作成した位置情報を第２記憶媒体に保持する。「入力モジュール」は、検索条件を入力する。「検索モジュール」は、入力された検索条件に対し付加を行い、該検索条件に該当する第１記憶媒体に保持されているテキストデータを、第２記憶媒体に保持される位置情報を参照して検索する。
【００４９】
すなわち、図１８に示すように、少なくとも「付加モジュール」、「作成モジュール」、および「管理モジュール」の各モジュールのプログラムコードを記憶媒体に格納すればよい。
尚、「付加モジュール」は、テキストデータ中の所定文字列に該所定文字列を識別するための識別文字を付加する。「作成モジュール」は、付加がなされたテキストデータ中の各文字の位置に関する位置情報を作成する。「管理モジュール」は、作成した位置情報と対応づけて、テキストデータを記憶媒体に管理する。
【００５０】
【発明の効果】
以上説明したように、本発明によれば、テキストデータの検索精度を向上することができる情報処理装置及びその方法を提供できる。
【図面の簡単な説明】
【図１】本発明の実施形態に係る情報処理装置の機能構成を示すブロック図である。
【図２】本発明の実施形態の情報処理装置の構成を示すブロック図である。
【図３】本発明の実施形態で実行されるインデックス作成処理を示すフローチャートである。
【図４】本発明の実施形態で実行される検索処理を示すフローチャートである。
【図５】本発明の実施形態の変換されたテキストデータの一例を示す図である。
【図６】本発明の実施形態のインデックスの一例を示す図である。
【図７】本発明の実施形態の配列１の状態の一例を示す図である。
【図８】本発明の他の実施形態の情報処理装置の機能構成を示すブロック図である。
【図９】本発明の他の実施形態の情報処理装置の機能構成を示すブロック図である。
【図１０】従来の情報処理装置の機能構成を示すブロック図である。
【図１１】従来の情報処理装置で実行されるインデックス作成処理を示すフローチャートである。
【図１２】従来の情報処理装置で実行される検索処理を示すフローチャートである。
【図１３】被検索テキストデータの一例を示す図である。
【図１４】従来のインデックスの一例を示す図である。
【図１５】従来の配列１の状態の一例を示す図である。
【図１６】従来の配列１の状態の一例を示す図である。
【図１７】  本発明の実施形態を実現するプログラムコードを格納した記憶媒体のメモリマップの構造を示す図である。
【図１８】  本発明の実施形態を実現するプログラムコードを格納した記憶媒体のメモリマップの構造を示す図である。
【符号の説明】
１０１  被検索テキスト保持部
１０２  被検索テキスト変換部
１０３  変換テキスト保持部
１０４  インデックス作成部
１０５  インデックス保持部
１０６  検索キー保持部
１０７  検索キー変換部
１０８  変換キー保持部
１０９  検索部
１１０  検索結果保持部
【図１】
0003854684.tif 000002
【図２】
0003854684.tif 000003
【図３】
0003854684.tif 000004
【図４】
0003854684.tif 000005
【図５】
0003854684.tif 000006
【図６】
0003854684.tif 000007
【図７】
0003854684.tif 000008
【図８】
0003854684.tif 000009
【図９】
0003854684.tif 000010
【図１０】
0003854684.tif 000011
【図１１】
0003854684.tif 000012
【図１２】
0003854684.tif 000013
【図１３】
0003854684.tif 000014
【図１４】
0003854684.tif 000015
【図１５】
0003854684.tif 000016
【図１６】
0003854684.tif 000017
【図１７】
0003854684.tif 000018
【図１８】
0003854684.tif 000019