(57)【要約】【課題】計算効率及びメモリ効率と共に、システムの保守性がよい検索装置等を提供することを目的とする。【解決手段】検索対象データ列を保持する検索対象データ列保持手段と、検索データ列を取得する検索データ列取得手段と、検索データ列取得手段において取得された検索データ列に対して、オブジェクトを用いる回数の範囲を、予め定められたルールに応じて設定する設定手段と、検索処理として、設定手段において設定された回数の範囲内で、オブジェクトを用いて、検索データ列取得手段において取得された検索データ列と、検索対象データ列保持手段において保持されている検索対象データ列と、の比較を行う検索手段と、を有することによって課題を解決する。【選択図】図２
2008102641.tif 000002
【特許請求の範囲】
【請求項１】
検索対象データ列を保持する検索対象データ列保持手段と、
検索データ列を取得する検索データ列取得手段と、
前記検索データ列取得手段において取得された検索データ列に対して、オブジェクトを用いる回数の範囲を、予め定められたルールに応じて設定する設定手段と、
検索処理として、前記設定手段において設定された回数の範囲内で、前記オブジェクトを用いて、前記検索データ列取得手段において取得された検索データ列と、前記検索対象データ列保持手段において保持されている検索対象データ列と、の比較を行う検索手段と、
を有することを特徴とする検索装置。
【請求項２】
前記検索手段は、前記設定手段において設定された回数の範囲内で、前記オブジェクトを用いて、前記検索データ列を構成する単位データと、前記検索対象データ列を構成する単位データと、の比較を行うことを特徴とする請求項１に記載の検索装置。
【請求項３】
前記検索手段は、前記検索データ列を構成する単位データと、前記検索対象データ列を構成する単位データと、の比較を、ビット積演算を用いて行うことを特徴とする請求項２に記載の検索装置。
【請求項４】
前記検索手段は、前記検索データ列を構成する単位データと、前記検索対象データ列を構成する単位データと、の比較を、単位データ毎に行い、一致しない単位データが存在すると、前記設定手段において設定された回数の範囲内で、前記オブジェクトを用いて、前記一致しない単位データが、前記オブジェクトを適用できる単位データか否かの比較を行うことを特徴とする請求項２又は３に記載の検索装置。
【請求項５】
前記設定手段は、単位データと、検索結果として出力すべき前記検索データ列に適用できる前記検索対象データに係る、類似単位データと、の関係を保持するテーブルをオブジェクトとして、前記検索データ列取得手段において取得された検索データ列に対して、前記オブジェクトを用いる回数の範囲を、予め定められたルールに応じて設定し、
前記検索手段は、前記検索データ列を構成する単位データと、前記検索対象データ列を構成する単位データと、の比較を、単位データ毎に行い、一致しない単位データが存在すると、前記設定手段において設定された回数の範囲内で、前記オブジェクトを用いて、前記一致しない単位データが、前記オブジェクトを適用できる単位データか否かの比較を行うことを特徴とする請求項２乃至４の何れか１項に記載の検索装置。
【請求項６】
前記オブジェクトを複数有し、
前記検索手段は、検索処理として、前記設定手段において設定された回数の範囲内で、優先順位に応じて、前記複数の内の一のオブジェクトを用いて、前記検索データ列取得手段において取得された検索データ列と、前記検索対象データ列保持手段において保持されている検索対象データ列と、の比較を行うことを特徴とする請求項１乃至５の何れか１項に記載の検索装置。
【請求項７】
前記検索手段は、前記オブジェクトを用いて、前記検索データ列を構成する単位データと、前記検索対象データ列を構成する単位データと、の比較を行った回数をカウントし、カウントした回数に応じて、前記検索データ列と、前記検証対象データ列との適用度に係る重み付けを行い、前記重み付けに応じて、前記検索データ列に適用する前記検索対象データ列を出力することを特徴とする請求項１乃至６の何れか１項に記載の検索装置。
【請求項８】
検索対象データ列を保持する検索対象データ列保持手段と、
検索データ列を取得する検索データ列取得手段と、
検索処理として、前記検索データ列取得手段において取得された検索データ列と、前記検索対象データ列保持手段において保持されている検索対象データ列と、の比較を、ビット積演算を用いて行う検索手段と、
を有することを特徴とする検索装置。
【請求項９】
前記検索手段は、前記検索データ列を構成する単位データと、前記検索対象データ列を構成する単位データと、の比較を、ビット積演算を用いて行うことを特徴とする請求項８に記載の検索装置。
【請求項１０】
検索装置における検索方法であって、
検索データ列を取得する検索データ列取得段階と、
前記検索データ列取得段階において取得された検索データ列に対して、オブジェクトを用いる回数の範囲を、予め定められたルールに応じて設定する設定段階と、
検索処理として、前記設定段階において設定された回数の範囲内で、前記オブジェクトを用いて、前記検索データ列取得段階において取得された検索データ列と、検索対象データ列を保持する検索対象データ列保持手段において保持されている検索対象データ列と、の比較を行う検索段階と、
を有することを特徴とする検索方法。
【請求項１１】
検索装置における検索方法であって、
検索データ列を取得する検索データ列取得段階と、
検索処理として、前記検索データ列取得段階において取得された検索データ列と、検索対象データ列を保持する検索対象データ列保持手段において保持されている検索対象データ列と、の比較を、ビット積演算を用いて行う検索段階と、
を有することを特徴とする検索方法。
【請求項１２】
請求項１０又は１１に記載の検索方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索装置、検索方法及びプログラムに関する。
【背景技術】
【０００２】
従来は、類似文字列の検索において、類似基準に従って適用した類似展開文字列を洩れなく単純に派生させ、完全一致でマッチングを行っていた。例えば、類似基準「相違する任意の文字列が図４の関係にある」、質問称呼「エヌエス」の場合、類似展開文字列「イヌエス、ヘヌエス、エムエス・・・・、エヌエシュ」は、３×４×３×２−１＝７１通りである。
【０００３】
このような従来方法では、類似展開文字列が膨大な数になり、それらに対して何度も比較を行うため、計算効率は非常に悪く、メモリ使用量が膨大になっていた。
【０００４】
一方、オートマトンを用いて類似文字列を検索する方法が開示されている（例えば、特許文献１参照）。
【０００５】
【特許文献１】特開平８−３３９３７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
オートマトンを用いた類似文字列の検索方法では、計算効率や、メモリ効率はよい代わりに、ルールが作成し難く、作成したルールも理解が難しかったりするため、システムの保守性に問題があった。
【０００７】
本発明はこのような問題点に鑑みなされたもので、計算効率及びメモリ効率と共に、システムの保守性がよい検索装置、検索方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
そこで、本発明は、検索対象データ列を保持する検索対象データ列保持手段と、検索データ列を取得する検索データ列取得手段と、前記検索データ列取得手段において取得された検索データ列に対して、オブジェクトを用いる回数の範囲を、予め定められたルールに応じて設定する設定手段と、検索処理として、前記設定手段において設定された回数の範囲内で、前記オブジェクトを用いて、前記検索データ列取得手段において取得された検索データ列と、前記検索対象データ列保持手段において保持されている検索対象データ列と、の比較を行う検索手段と、を有することを特徴とすることを特徴とする。
【０００９】
係る構成とすることにより、予め定められたルールに応じて、オブジェクトを用いる回数の範囲を設定し、この範囲内で、検索データ列と、検索対象データ列と、の比較を行うので、計算効率及びメモリ効率と共に、システムの保守性がよい検索装置を提供することができる。
【００１０】
なお、オブジェクトとは、例えば、後述する類似関係テーブル等に対応する。
【００１１】
また、本発明によれば、検索対象データ列を保持する検索対象データ列保持手段と、検索データ列を取得する検索データ列取得手段と、検索処理として、前記検索データ列取得手段において取得された検索データ列と、前記検索対象データ列保持手段において保持されている検索対象データ列と、の比較を、ビット積演算を用いて行う検索手段と、を有することを特徴とする。
【００１２】
係る構成とすることにより、検索データ列と、検索対象データ列と、の比較を、ビット積演算を用いて行うので、計算効率がよい検索装置を提供することができる。
【００１３】
また、本発明は、検索方法及びプログラムとしてもよい。
【発明の効果】
【００１４】
本発明によれば、計算効率、メモリ効率及びシステムのメンテナンス性がよい検索装置等を提供することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施形態について図面に基づいて説明する。
【００１６】
＜実施形態１＞
以下、情報処理装置１の一例のハードウェア構成を図１に示す。図１は、情報処理装置１の一例のハードウェア構成図である。
【００１７】
図１に示されるように、情報処理装置１は、ハードウェア構成として、入力装置１１と、表示装置１２と、記録媒体ドライブ装置１３と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１５と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１６と、少なくとも１つ以上のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１７と、インターフェース装置１８と、ＨＤ（Ｈａｒｄ  Ｄｉｓｋ）１９と、を含む。
【００１８】
入力装置１１は、情報処理装置１の操作者（又はユーザ）が操作するキーボード及びマウス等で構成され、情報処理装置１に各種操作情報等を入力するのに用いられる。表示装置１２は、情報処理装置１の操作者が利用するディスプレイ等で構成され、各種情報（又は画面）等を表示するのに用いられる。
【００１９】
インターフェース装置１８は、情報処理装置１をネットワーク等に接続するインターフェースである。後述する情報処理装置１の類似検索に係る機能又は後述する類似検索に係るフローチャート等に関するプログラムは、例えば、ＣＤ−ＲＯＭ等の記録媒体１４によって情報処理装置１に提供されるか、ネットワーク等を通じてダウンロードされる。記録媒体１４は、記録媒体ドライブ装置１３にセットされ、プログラムが記録媒体１４から記録媒体ドライブ装置１３を介してＨＤ１９にインストールされる。
【００２０】
ＲＯＭ１５は、情報処理装置１の電源投入時に最初に読み込まれるプログラム等を記録する。ＲＡＭ１６は、情報処理装置１のメインメモリである。ＣＰＵ１７は、必要に応じて、ＨＤ１９よりプログラムを読み出して、ＲＡＭ１６に格納し、プログラムを実行することで、後述する類似検索に係る機能の全て又は一部を提供したり、後述する類似検索に係る機能に係るフローチャート等を実行したりする。また、ＨＤ１９は、プログラム以外に、例えば後述するルール、ルールに対応する類似関係テーブルの適用可能回数及び閾値、検索対象文字列、類似関係テーブル等を格納する。
【００２１】
以下、ＣＰＵ１７、ＲＡＭ１６、ＨＤ１９及びプログラム等から構成される、情報処理装置１の機能構成の一例を図２に示す。図２は、情報処理装置１の一例の機能構成図（その１）である。図２に示されるように、情報処理装置１は、機能構成として、検索文字列取得部２１と、設定部２２と、ルール保持部２３と、検索部２４と、検索対象文字列保持部２５と、類似関係テーブル保持部２６と、検索結果集約部２７と、を含む。
【００２２】
検索文字列取得部２１は、検索文字列を取得する。検索文字列取得部２１は、例えば、検索画面等においてユーザが入力した検索したい文字列を検索文字列として取得する。設定部２２は、検索文字列取得部２１が取得した検索文字列に対して、ルール保持部２３に保持されているルールに応じて、図３に示されるような、類似関係テーブルの適用可能回数及び閾値を設定する。図３は、類似関係テーブルの適用可能回数及び閾値の一例を示す図（その１）である。ここで、類似関係テーブルの適用可能回数は、類似関係テーブルを用いる（参照する）ことができる最大値（最大回数）を表しており、閾値は、類似関係テーブルを用いなければならない（参照しなければならない）最小値（最小回数）を表していると言える。
【００２３】
ルール保持部２３は、ルールと、ルールに対応する図３に示されるような類似関係テーブルの適用可能回数及び閾値とを保持する。ここで、ルールとは、例えば、「１音乃至２音が類似関係テーブルＡの関係にある」等である。なお、ルールは、例えば、ファイル等に記述されているものとする。
【００２４】
ルールは、複数であってもよいし、単数であってもよい。複数のルールが存在する場合は、例えば、検索画面等においてユーザが選択（又は入力）した検索条件等に応じて、情報処理装置１が自動的に、複数のルールの中から一つ或いは複数のルールを選択して、検索文字列に対して適用するようにしてもよいし、ユーザが検索画面等において一つ或いは複数のルールを選択できるようにしてもよい。
【００２５】
検索部２４は、設定部２２において設定された類似関係テーブルの適用可能回数及び閾値の範囲内で、検索文字列と、検索対象文字列保持部２５において保持されている検索対象文字列との比較を行い、ヒットした検索対象文字列を出力する。なお、検索部２４における比較処理の詳細は、後述する図５を用いて説明する。
【００２６】
検索対象文字列保持部２５は、検索対象文字列を保持する。ここで、検索対象文字列とは、例えば、商標の称呼検索を例にすると、商標（文字列の商標）である。検索対象文字列保持部２５は、検索対象文字列を、例えばトライ構造で保持する。
【００２７】
類似関係テーブル保持部２６は、図４に示されるような、類似関係テーブルを保持する。図４は、類似関係テーブルの一例を示す図（その１）である。
【００２８】
検索結果集約部２７は、検索部２４における検索処理の結果を集約し（例えば、重複したデータのマージ等を行い）、検索結果（検索結果の一覧）を検索結果画面等に出力する。
【００２９】
図５は、比較処理の一例を示すフローチャートである。なお、図５に示す比較処理は、１つの検索文字列と、１つの検索対象文字列との比較処理である。
ステップＳ１０において、検索部２４は、類似関係テーブル適用カウンタをリセットする（ゼロにする）。
【００３０】
続いて、ステップＳ１１において、検索部２４は、検索文字列と、検索対象文字列との注目文字の位置（注目文字位置）を先頭にする。ステップＳ１２において、検索部２４は、検索文字列と、検索対象文字列との注目文字位置を取り出す。ここで、以下、ステップＳ１２において検索部２４が取り出した、注目文字位置の検索文字列の文字を検索文字という。また、以下、ステップＳ１２において検索部２４が取り出した、注目文字位置の検索対象文字列の文字を検索対象文字という。
【００３１】
ステップＳ１３において、検索部２４は、検索文字と、検索対象文字とを類似関係テーブルを適用せず、比較する。ここで、検索部２４は、検索文字の種類と、検索対象文字の種類とを、ビット列中の1となるビットの位置で表現し、検索文字と、検索対象文字とが一致するか否かを、ビット演算を用いて比較する。
例えば、
ア：０００１、イ：００１０、ウ：０１００、エ：１０００、
等４種類の文字を４ビットで、ア又はイ又はウ（＝ア｜イ｜ウ）を論理和"０１１１"と表現し、検索部２４は、検索文字と、検索対象文字とが一致するか否かを、ビット演算を用いて比較する。なお、説明の簡略化のため、文字を４ビットで表しているが、より多い種類の文字を表すのにもっと多いビット数を用いてもよい。また当然ながら、ビット数と種類の数が同じである必要は無い。
つまり、検索文字がア"０００１"で、検索対象文字がア"０００１"の場合、検索部２４は、ビット積演算を行い、
０００１＆０００１＝０００１≠０
と算出する。また、検索文字がア"０００１"で、検索対象文字がイ"００１０"の場合、検索部２４は、ビット積演算を行い、
０００１＆００１０＝００００＝０
と算出する。また、検索文字列が、検索対象文字列の中に一致する文字があるか否かを、ビット積演算を用いて比較することもできる。検索文字に類似関係テーブルを適用した検索文字が、ア又はイ又はウ "０１１１"で、検索対象文字がア "０００１"の場合、検索部２４は、ビット積演算を行い、
０１１１＆０００１＝０００１≠０
と算出する。このように、比較したい文字が複数あっても、１つの検索文字との比較を１回のビット積演算でまとめて行える為、計算効率が非常によくなっている。
【００３２】
ステップＳ１４において検索部２４は、ステップＳ１３のビット積演算の結果に基づいて、検索文字と、検索対象文字とが一致したか否かを判定する。検索部２４は、ビット積演算の結果≠０の場合は、検索文字と、検索対象文字とが一致したと判定し（ステップＳ１４においてＹＥＳ）、ステップＳ１９に進む。一方、検索部２４は、ビット積演算の結果＝０の場合は、検索文字と、検索対象文字とが一致しなかったと判定し（ステップＳ１４においてＮＯ）、ステップＳ１５に進む。
【００３３】
ステップＳ１５において、検索部２４は、類似関係テーブルＡの適用可能回数が、類似関係テーブル適用カウンタより大きいか否かを判定する。検索部２４は、類似関係テーブルＡの適用可能回数が、類似関係テーブル適用カウンタより大きいと判定すると（ステップＳ１５においてＹＥＳ）、ステップＳ１６に進む。一方、検索部２４は、類似関係テーブルＡの適用可能回数が、類似関係テーブル適用カウンタより大きくないと判定すると（ステップＳ１５においてＮＯ）、図５に示す処理を終了する。
【００３４】
ステップＳ１６において、検索部２４は、検索文字と、検索対象文字とを例えば、類似関係テーブルＡを適用して比較する。ステップＳ１７において、検索部２４は、検索文字と、検索対象文字とが類似関係にあるか否かを判定する。検索部２４は、検索文字と、検索対象文字とが類似関係にあると判定すると（ステップＳ１７においてＹＥＳ）、ステップＳ１８に進む。一方、検索部２４は、検索文字と、検索対象文字とが類似関係にないと判定すると（ステップＳ１７においてＮＯ）、図５に示す処理を終了する。
【００３５】
ステップＳ１８において、検索部２４は、類似関係テーブル適用カウンタを１つ増やす。ステップＳ１９において、検索部２４は、検索文字列に次の文字があるか否かを判定する。検索部２４は、検索文字列に次の文字があると判定すると（ステップＳ１９においてＹＥＳ）、ステップＳ２０に進む。一方、検索部２４は、検索文字列に次の文字がないと判定すると（ステップＳ１９においてＮＯ）、ステップＳ２１に進む。
【００３６】
ステップＳ２０において、検索部２４は、検索文字列と、検索対象文字列との注目文字位置を一つ（一文字分）進める。そして、検索部２４は、ステップＳ１２に戻る。
【００３７】
一方、ステップＳ２１において、検索部２４は、類似関係テーブル適用カウンタが、閾値以上か否かを判定する。検索部２４は、類似関係テーブル適用カウンタが、閾値以上であると判定すると（ステップＳ２１においてＹＥＳ）、ステップＳ２２に進む。一方、検索部２４は、類似関係テーブル適用カウンタが、閾値以上でないと判定すると（ステップＳ２２においてＮＯ）、図５に示す処理を終了する。
【００３８】
ステップＳ２２において、検索部２４は、対象としている検索対象文字列を、検索文字列に類似する文字列として、つまり、検索にヒットした検索対象文字列として、検索結果集約部２７に出力する。
【００３９】
なお、ステップＳ１５、ステップＳ１７、ステップＳ２１の判定においてＮＯと判定した場合、図５に示す処理を終了するよう説明を行ったが、そのまま処理を終了するのではなく、検索部２４は、例えば、対象としている検索対象文字列は、検索文字列に類似する文字列ではなかった旨の検索結果等を、検索結果集約部２７に出力するようにしてもよい。
【００４０】
次に、より具体的に例を用いて、検索部２４が行う比較処理を説明する。ここで、検索部２４は、検索文字列"アイウエオ"と、検索対象文字列"アエユエオ"との比較を行うものとする。
【００４１】
上述したように、ステップＳ１０において、検索部２４は、類似関係テーブル適用カウンタをリセットする（ゼロにする）。続いて、ステップＳ１１において、検索部２４は、検索文字列と、検索対象文字列との注目文字位置を先頭にする。ステップＳ１２において、検索部２４は、検索文字列と、検索対象文字列との注目文字位置を取り出す。つまり、まず、検索部２４は、検索文字として、検索文字列の先頭文字である"ア"を取り出し、検索対象文字として、検索対象文字列の先頭文字である"ア"を取り出す。
【００４２】
ステップＳ１３において、検索部２４は、ビット積演算を用いて、検索文字列と、検索対象文字列とを、類似関係テーブルを適用せずに比較する。そして、ステップＳ１４において、検索部２４は、一致するか否かを判定する。今、両者は共に"ア"で一致するため、検索部２４は、ステップＳ１９に進み、検索文字列に次の文字があるか否かを判定する。今の場合、次に文字があるので、検索部２４は、ステップＳ２０に進み、注目文字位置を一つ進め、ステップＳ１２に進む。
【００４３】
ステップＳ１２において、検索部２４は、検索文字として、検索文字列の二番目の文字である"イ"を取り出し、検索対象文字として、検索対象文字列の二番目の文字である"エ"を取り出す。ステップＳ１３において、検索部２４は、ビット積演算を用いて、検索文字列と、検索対象文字列とを、類似関係テーブルを適用せずに比較する。そして、ステップＳ１４において、検索部２４は、一致するか否かを上述したビットを用いた比較処理により判定する。今、検索文字は"イ"、検索対象文字は"エ"で一致しないため、検索部２４は、ステップＳ１５に進み、類似関係テーブルＡの適用可能回数が、類似関係テーブル適用カウンタより大きいか否かを判定する。今の例では、類似関係テーブルＡの適用可能回数は２、類似関係テーブル適用カウンタは０のため、検索部２４は、ステップＳ１６に進み、検索文字と、検索対象文字とを、類似関係テーブルＡを適用して比較する。
【００４４】
類似関係テーブルＡを参照すると、"イ"と、"エ"とは類似関係にあるため、検索部２４は、上述したビットを用いた比較処理により類似すると判定し、ステップＳ１８に進み、類似関係テーブル適用カウンタを１つ増やして１とする。そして、検索部２４は、ステップＳ１９に進み、検索文字列に次の文字があるか否かを判定する。今の場合、次に文字があるので、検索部２４は、ステップＳ２０に進み、注目文字位置を一つ進め、ステップＳ１２に進む。
【００４５】
ステップＳ１２において、検索部２４は、検索文字として、検索文字列の三番目の文字である"ウ"を取り出し、検索対象文字として、検索対象文字列の三番目の文字である"ユ"を取り出す。ステップＳ１３において、検索部２４は、ビット積演算を用いて、検索文字列と、検索対象文字列とを、類似関係テーブルを適用せずに比較する。そして、ステップＳ１４において、検索部２４は、一致するか否かを判定する。今、検索文字は"ウ"、検索対象文字は"ユ"で一致しないため、検索部２４は、ステップＳ１５に進み、類似関係テーブルＡの適用可能回数が、類似関係テーブル適用カウンタより大きいか否かを判定する。今の例では、類似関係テーブルＡの適用可能回数は２、類似関係テーブル適用カウンタは１のため、検索部２４は、ステップＳ１６に進み、検索文字と、検索対象文字とを、類似関係テーブルＡを適用して比較する。
【００４６】
類似関係テーブルＡを参照すると、"ウ"と、"ユ"とは類似関係にあるため、検索部２４は、類似すると判定し、ステップＳ１８に進み、類似関係テーブル適用カウンタを１つ増やして２とする。そして、検索部２４は、ステップＳ１９に進み、検索文字列に次の文字があるか否かを判定する。今の場合、次に文字があるので、検索部２４は、ステップＳ２０に進み、注目文字位置を一つ進め、ステップＳ１２に進む。
【００４７】
ステップＳ１２において、検索部２４は、検索文字として、検索文字列の四番目の文字である"エ"を取り出し、検索対象文字として、検索対象文字列の四番目の文字である"エ"を取り出す。
【００４８】
ステップＳ１３において、検索部２４は、ビット積演算を用いて、検索文字列と、検索対象文字列とを、類似関係テーブルを適用せずに比較する。そして、ステップＳ１４において、検索部２４は、一致するか否かを判定する。今、両者は共に"エ"で一致するため、検索部２４は、ステップＳ１９に進み、検索文字列に次の文字があるか否かを判定する。今の場合、次に文字があるので、検索部２４は、ステップＳ２０に進み、注目文字位置を一つ進め、ステップＳ１２に進む。
【００４９】
ステップＳ１２において、検索部２４は、検索文字として、検索文字列の五番目の文字である"オ"を取り出し、検索対象文字として、検索対象文字列の五番目の文字である"オ"を取り出す。
【００５０】
ステップＳ１３において、検索部２４は、ビット積演算を用いて、検索文字列と、検索対象文字列とを、類似関係テーブルを適用せずに比較する。そして、ステップＳ１４において、検索部２４は、一致するか否かを判定する。今、両者は共に"オ"で一致するため、検索部２４は、ステップＳ１９に進み、検索文字列に次の文字があるか否かを判定する。今の場合、次に文字がないので、検索部２４は、ステップＳ２１に進み、類似関係テーブル適用カウンタが、閾値以上か否かを判定する。
【００５１】
今の場合、類似関係テーブル適用カウンタは２、閾値は１であるため、検索部２４は、類似関係テーブル適用カウンタが、閾値以上であると判定し、ステップＳ２２に進み、検索対象文字列"アエユエオ"を、検索文字列"アイウエオ"に類似する文字列として、つまり、検索にヒットした検索対象文字列として、検索結果集約部２７に出力する。
【００５２】
他に、類似関係テーブルＡの適用可能回数が、類似関係テーブル適用カウンタより大きくない場合、検索文字列全てに対して比較処理を行わずに済む。例えば、検索対象文字列が"アエユルレ"、他は上述と同じ条件の処理の場合を説明する。検索文字列の注目文字位置が３番目までは、上述と同じ処理である為省略する。検索文字列の注目文字が４番目に移動し、ステップＳ１４において、検索部２４は、一致するか否かを上述したビットを用いた比較処理により判定する。今、検索文字は"ウ"、検索対象文字は"ル"で一致しないため、検索部２４は、ステップＳ１５に進み、類似関係テーブルＡの適用可能回数が、類似関係テーブル適用カウンタより大きいか否かを判定する。２番目と３番目の検索文字列において類似関係テーブルＡを適用して比較しているため、類似関係テーブルＡの適用可能回数は２、類似関係テーブル適用カウンタは２となっている。そのため、検索部２４は、類似関係テーブルＡの適用可能回数が、類似関係テーブル適用カウンタより大きくないと判定すると（ステップＳ１５においてＮＯ）、図５に示す処理を終了する。
つまり、残りの４番目と５番目の検索文字列を比較する処理（ステップ１６、ステップ１３）を実行しなくとも、検索対象文字列"アエユルレ"を、検索文字列"アイウエオ"に類似しない文字列として、判定することが可能となる。
【００５３】
以上、上述したように本実施形態によれば、音の種類をビット列中の1となるビットの位置で表現し、ビット積演算を用いて比較を行うことによって、比較時間（又は検索時間）を短くすることができる。つまり、計算効率をよくすることができる。
【００５４】
また、上述したように本実施形態によれば、ルールに応じて、類似関係テーブルの適用可能回数及び閾値を設定し、この範囲内において比較を行うので、無駄な比較処理を行わなくてもよく、比較時間（又は検索時間）を短くすることができる。つまり、計算効率をよくすることができる。また、無駄な類似展開を行わなくてもよいため、メモリ効率をよくすることができる。また、オートマトンを用いる方法に比べて、ユーザがルールを設定し易く、また、ルールも理解し易いため、メンテナンス性がよい。
【００５５】
また、説明の簡略化のため1つの検索対象文字列との比較を例に挙げたが、検索対象文字列保持部２５に保持されている複数ある全ての検索対象文字列との比較であっても本願は対応可能あることは言うまでも無い。例えば、検索対象文字列保持部２５において検索対象文字列をトライ構造で保持しているのであればバックトラッキングを利用し、また、一覧形式で保持しているのであれば図５に示す処理を繰返すことによって、検索対象文字列保持部２５において保持されている全ての検索対象文字列との比較を行い、その結果を検索結果集約部２７に出力可能である。
【００５６】
＜実施形態２＞
図６は、情報処理装置１の一例の機能構成図（その２）である。図６に示されるように、情報処理装置１は、機能構成として、検索文字列取得部２１と、設定部２２と、ルール保持部２３と、検索部２４と、検索対象文字列保持部２５と、類似関係テーブル保持部２６と、検索結果集約部２７と、ルール操作部２８とを含む。
【００５７】
ルール操作部２８以外の他の機能構成は、実施形態１と同様であるため、本実施形態では説明を省略する。
ルール操作部２８は、入力装置１１、表示装置１２等を用いたユーザ操作に応じて、ルール保持部２３に保持されているルールや、ルールに対応する類似関係テーブルの適用可能回数及び閾値等を、変更したり、新たなルールや、ルールに対応する類似関係テーブルの適用可能回数及び閾値等をルール保持部２３に設定したりする。
【００５８】
例えば、実施形態１では、ルールとして、「１音乃至２音が類似関係テーブルＡの関係にある」を例に説明を行ったが、例えば、このルールを「０音乃至２音が類似関係テーブルＡの関係にある」に変更したい場合、ルール操作部２８は、入力装置１１、表示装置１２等を用いたユーザ操作に応じて、ルール保持部２３に保持されているファイルに記述されている「１音乃至２音が類似関係テーブルＡの関係にある」を「０音乃至２音が類似関係テーブルＡの関係にある」に変更する。また、ルール操作部２８は、前記ルールに対応して、ルール保持部２３に保持されている図３に示されるような類似関係テーブルの適用可能回数及び閾値の閾値を１から０に変更する。このように変更することで、検索文字列と完全一致する検索対象文字列についても、検索文字列に類似する文字列として、つまり、検索にヒットした検索対象文字列として、検索結果集約部２７に出力する仕様へと変更できる。
【００５９】
以上、上述したように本実施形態によれば、ユーザは、ルールや、ルールに対応する類似関係テーブルの適用可能回数及び閾値等をより容易に設定、変更することができる。つまり、メンテナンス性をよくすることができる。
【００６０】
＜その他の実施形態＞
上述した実施形態１では、ルールとして、「１音乃至２音が類似関係テーブルＡの関係にある」を例に説明を行った。しかしながら、ルールが例えば、「１音乃至２音が類似関係テーブルＡ、又は類似関係テーブルＢ、又は類似関係テーブルＣの関係にある」等の場合もある。このような場合、検索部２４は、図５のステップＳ１６において、検索文字と、検索対象文字とが類似しているか否かを、類似関係テーブルＡ、類似関係テーブルＢ、類似関係テーブルＣを適用して比較する。この際、各テーブルに優先順位が付加されている場合は、検索部２４は、その優先順位に応じて、類似関係テーブルを用いて比較を行う。
【００６１】
なお、このような場合、類似関係テーブルの適用可能回数は、各テーブルに対して設定されていてもよいし、全てのテーブルに対して一つの値が設定されていてもよい。閾値も同様に、各テーブルに対して設定されていてもよいし、全てのテーブルに対して一つの値が設定されていてもよい。
【００６２】
上述した実施形態では、図５のステップＳ２２において、検索部２４は、対象としている検索対象文字列を、検索文字列に類似する文字列として、つまり、検索にヒットした検索対象文字列として、検索結果集約部２７に出力するよう説明を行った。
【００６３】
しかしながら、検索部２４は、図５のステップＳ２２において、類似関係テーブル適用カウンタと共に、検索対象文字列を検索結果集約部２７に出力するようにしてもよい。このようにすることによって、検索結果集約部２７は、類似関係テーブル適用カウンタに応じて重み付けを行い、この重み付けに応じて、検索結果を出力することができる。
【００６４】
例えば、類似関係テーブル適用カウンタが１の検索対象文字列は、類似関係テーブル適用カウンタが２の検索対象文字列に比べて、検索文字列に対してより類似していると言える。したがって、検索結果集約部２７は、類似関係テーブル適用カウンタが２の検索対象文字列より、類似関係テーブル適用カウンタが１の検索対象文字列に対して重み付けを行い、例えば、重み付けが高い（より類似している）検索対象文字列から順に、検索結果として出力するようにしてもよい。
【００６５】
このようにすることによって、ユーザは、例えば、検索文字列により類似した検索対象文字列の順に、検索対象文字列を得ることができる。
【００６６】
また、上述した実施形態では、検索文字列に対して類似関係テーブルの適用可能回数を設定する例を説明したが、図７或いは図８に示す通り、検索文字列を構成する各文字（一文字）に対して類似関係テーブルの適用可能回数を設定するようにしてもよいし、検索文字列を構成する各文字の集合（つまり、二文字、三文字、・・・）に対して類似関係テーブルの適用可能回数を設定するようにしてもよい。但し、検索文字列を構成する各文字の集合に対して類似関係テーブルの適用可能回数を設定する場合、検索文字列と、検索対象文字列との比較は、一文字ずつではなく、各文字の集合（つまり、二文字、三文字、・・・）ずつである。
【００６７】
また、上述した実施形態では、適用文字１文字に対応する類似文字は１文字であったが、図９に示す通り、適用文字１文字に対応する類似文字が複数文字から成る文字列であってもよい。
【００６８】
また、上述した実施形態では、テーブル（類似関係テーブル）を用いて文字（又は文字の音）同士の類似関係を示す例を用いて説明を行ったが、本発明の実施はテーブルに限定されるものではなく、例えば、ファイル（類似関係が記述されたファイル）等であってもよい。
【００６９】
また、上述した実施形態では、検索文字列と、検索対象文字列とを、互いの文字列の先頭から比較していく例を用いて説明を行ったが、本発明の実施は文字列の先頭からに限定されるものではなく、例えば、互いの文字列の末尾や特定の任意の場所から比較してもよい。
【００７０】
また、上述した実施形態では、検索文字列取得部２１は、例えば、検索画面等においてユーザが入力した検索したい文字列を検索文字列として取得するよう説明を行ったが、本発明の実施はこのことに限定されるものではない。検索文字列取得部２１は、例えば、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）等で読み取った文字列を検索対象として取得するようにしてもよい。この場合、例えば、情報処理装置１は画像形成装置等に対応し、自身で文字列を読み取ってもよいし、文字列を読み取った画像形成装置より、文字列を取得してもよい。なお、ＯＣＲは、例えば、下線が付されている文字列等を検索文字列として読み取る。
【００７１】
また、上述した実施形態１では、ルールとして、「１音乃至２音が類似関係テーブルＡの関係にある」を例に説明を行ったため、検索が類似検索となったが、本発明の実施は類似検索に限定されるものではなく、あるルールに従う記号間の配列を検索するようにしてもよい。例えば、ＤＮＡ配列の一部"Ａ（アデニン）Ｇ（グアニン）Ｃ（シトシン）Ｔ（チミン）"のうち先頭と先頭から２番目のアミノ酸配列が同じであれば、同じ特性を持つとする。この条件で同じ特性を持つＤＮＡを検索したい場合、図１０に示す適用関係テーブル、適用可能回数及び閾値を設定して上述した実施形態と同様に処理すれば、"ＡＧＧＴ"、"ＡＧＣＡ"、"ＡＧＴＴ"等、同じ特性を持ったＤＮＡ配列を検索することが可能になる。なお、ここでいう適用関係テーブルとは、実施形態１における類似関係テーブル（図４）と同等の役割を持つテーブルである。
【００７２】
また、上述した実施形態では、検索対象文字列は検索文字列の一部或いは全部を置き換えた文字列によって構成されていたが、本発明の実施はこれに限定されるものではなく、検索文字列の任意の位置に、任意の数の空白や文字、記号等が挿入された構成にある検索対象文字列であってもよい。
【００７３】
また、上述した実施形態では、文字列や記号を例に類似検索の説明を行ったが、本発明の実施はこれらに限定されるものではなく、音声や画像等あらゆるデータ列間の検索等であってもよい。
【００７４】
以上、上述した各実施形態によれば、計算効率及びメモリ効率と共に、システムの保守性がよい検索装置、検索方法及びプログラムを提供することができる。
なお、上述した各実施形態を任意に組み合わせて実施してもよい。
【００７５】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【００７６】
【図１】情報処理装置１の一例のハードウェア構成図である。
【図２】情報処理装置１の一例の機能構成図（その１）である。
【図３】類似関係テーブルの適用可能回数及び閾値の一例を示す図（その１）である。
【図４】類似関係テーブルの一例を示す図（その１）である。
【図５】比較処理の一例を示すフローチャートである。
【図６】情報処理装置１の一例の機能構成図（その２）である。
【図７】類似関係テーブルの適用可能回数及び閾値の一例を示す図（その２）である。
【図８】類似関係テーブルの適用可能回数及び閾値の一例を示す図（その３）である。
【図９】類似関係テーブルの一例を示す図（その２）である。
【図１０】類似関係テーブルと、類似関係テーブルの適用可能回数及び閾値との一例を示す図である。
【符号の説明】
【００７７】
１    情報処理装置
１１  入力装置
１２  表示装置
１３  記録媒体ドライブ装置
１４  記録媒体
１５  ＲＯＭ
１６  ＲＡＭ
１７  ＣＰＵ
１８  インターフェース装置
１９  ＨＤ
２１  検索文字列取得部
２２  設定部
２３  ルール保持部
２４  検索部
２５  検索対象文字列保持部
２６  類似関係テーブル保持部
２７  検索結果集約部
２８  ルール操作部
【図１】
2008102641.tif 000003
【図２】
2008102641.tif 000004
【図３】
2008102641.tif 000005
【図４】
2008102641.tif 000006
【図５】
2008102641.tif 000007
【図６】
2008102641.tif 000008
【図７】
2008102641.tif 000009
【図８】
2008102641.tif 000010
【図９】
2008102641.tif 000011
【図１０】
2008102641.tif 000012