以下、本発明の実施形態に係るテキスト検索装置100について、添付図面を参照しつつ説明する。
本発明の実施形態に係るテキスト検索装置100は、図1に示すような電子辞書で構成され、ユーザの操作に応じて検索キーワードを入力するキーボード100iと、検索キーワードに基づいて辞書を検索した検索結果を表示するLCD(Liquid Crystal Display)100hと、を備える。
テキスト検索装置100の内部には、図2に示すようなCPU(Central Processing Unit)100a、ROM(Read Only Memory)100b、RAM(Random Access Memory)100c、ハードディスク100d、メディアコントローラ100e、ビデオカード100g、及びスピーカ100jが内蔵され、図1に示したLCD100h及びキーボード100iとバスを介して接続されている。
CPU100aは、ROM100b若しくはハードディスク100dに保存されたプログラムに従ってソフトウェア処理を実行することで、テキスト検索装置100の全体制御を行う。RAM100cは、CPU100aによるプログラムの実行時において、処理対象とするデータを一時的に記憶する。
ハードディスク100dは、各種のデータを保存したテーブルと、英和辞書等を表す辞書データと、を記憶する。尚、テキスト検索装置100は、ハードディスク100dの代わりに、フラッシュメモリを備えても良い。
メディアコントローラ100eは、フラッシュメモリ、CD(Compact Disc)、DVD(Digital Versatile Disc)、及びブルーレイディスク(Blu-ray Disc)(登録商標)を含む記録媒体から各種のデータ及びプログラムを読み出す。
ビデオカード100gは、CPU100aから出力されたデジタル信号に基づいて画像を描画(つまり、レンダリング)すると共に、描画された画像を表す画像信号を出力する。LCD100hは、ビデオカード100gから出力された画像信号に従って画像を表示する。尚、テキスト検索装置100は、LCD100hの代わりに、PDP(Plasma Display Panel)若しくはEL(Electroluminescence)ディスプレイを備えても良い。スピーカ100jは、CPU100aから出力された信号に基づいて音声を出力する。
ここで、ユーザが、辞書データを記録した記録媒体を購入し、図2に示したメディアコントローラ100eへ当該記録媒体を挿入すると、CPU100aは、メディアコントローラ100eから所定の信号を入力される。次に、CPU100aは、メディアコントローラ100eから辞書データを取得すると、辞書データをハードディスク100dに保存する。その後、CPU100aは、辞書データで表される辞書を検索キーワードに基づいて検索するために用いられるデータ及び電子ファイルを生成する、図3に示すようなデータ等生成処理を実行する。これにより、CPU100aは、図4に示すような生成部120として機能する。また、CPU100aは、図2に示したハードディスク100dと協働することで、情報記憶部110として機能する。
図3に示したデータ等生成処理を開始すると、生成部120は、情報記憶部110に記憶された辞書コンテンツを表す辞書データを読み出す(ステップS01)。ここで、辞書データは、図5(a)に示すように、見出語を表すテキスト(以下、見出語テキストという)が分類されたカテゴリ(以下、見出部という)CEと、見出語の解説を表すテキスト(以下、解説テキストという)及び、例えば、成句や複合語など(以下、イディオムという)といった見出語の用例を表すテキスト(以下、用例テキストという)で構成される本文テキストが分類されたカテゴリ(以下、本文部という)CBと、で構成される。解説テキストは、当該テキストで表される内容が解説であることを表す解説タグに囲まれており、用例テキストは、当該テキストで表される内容が用例であることを表す用例タグに囲まれている。
複数の見出部CEは、それぞれの見出部CEに分類されたテキストで表される見出語に基づいてアルファベット順に並べられており、それぞれの見出語が分類された見出部CEの直後に、それぞれの見出語を説明する本文テキストが分類された本文部CBが並べられている。また、見出部CEは、見出部CEを識別する見出語番号が予め割り当てられている。さらに、辞書データには、見出語番号を表す情報と、当該見出語番号で識別される見出部CEが格納された情報記憶部110における記憶領域の先頭アドレスを表す情報と、当該見出部CEの直後に格納された本文部CBの先頭アドレスを表す情報と、が対応付けられた情報が複数含まれる。
本文部CBにおける複数の解説テキストの並び順は、電子辞書の編集者が定めた並び順に従っている。具体例としては、見出語のより一般的な意味内容を解説する解説テキストの方が、見出語のより特殊な意味内容を解説する解説テキストよりも先の位置に格納されているとしても良いし、若しくは、より使用頻度の高い意味内容を解説する解説テキストの方が、より使用頻度の低い意味内容を解説する解説テキストよりも先の位置に格納されているとしても良い。
ここで、本文部CBには、解説テキストと用例テキストとが混在しているので、生成部120は、これらのテキストを内容に応じて分類分けをする。このため、生成部120は、辞書データに含まれる見出語番号を表す情報と、見出部CEの先頭アドレスを表す情報と、本文部CBの先頭アドレスを表す情報と、を用いて、辞書データから見出語テキストと本文テキストとを複数抽出する。また、生成部120は、抽出された見出語テキスト毎に、見出語テキストで表される見出語を解説する解説テキストを本文テキストから解説タグに基づいて複数抽出し、かつ見出語の用例を表す用例テキストを用例タグに基づいて本文テキストから複数抽出する。
その後、生成部120は、図5(b)に示すように、抽出された見出語テキスト毎に、抽出された複数の解説テキストの本来の並び順を変更せずに配置を変更することで、抽出された複数の解説テキストが分類されるカテゴリ(以下、解説部という)CCを生成する。同様に、生成部120は、抽出された見出語テキスト毎に、抽出された複数の用例テキストの本来の並び順を変更せずに配置を変更することで、抽出された複数の用例テキストが分類されるカテゴリ(以下、用例部という)CXと、を生成する。
このようにして生成された見出部CEと、解説部CCと、用例部CXと、を対応付けた複数のデータで構成されるデータを、再配置コンテンツテキストデータ(若しくは再配置CDT)と称する。次に、生成部120は、再配置コンテンツテキストデータを情報記憶部110へ保存する(図3に示すステップS02)。
その後、生成部120は、再配置コンテンツテキストデータで表される辞書を識別する辞書番号を生成する。次に、生成部120は、図6に示す辞書テーブルへ、生成された辞書番号を表す情報と、辞書の名称を表す情報と、再配置コンテンツテキストデータが格納された情報記憶部110の記憶領域の先頭アドレスを表す情報と、を対応付けた情報を保存する。尚、辞書テーブルは、情報記憶部110が記憶している。
その後、生成部120は、再配置コンテンツテキストデータで表されるテキスト(つまり、見出部CE、解説部CC、及び用例部CXのそれぞれに分類されたテキスト)の先頭から1文字ずつずらしながら1文字を切り出すことで、モノグラム文字列パタンを抽出する。また、同様に、生成部120は、再配置コンテンツテキストデータで表されるテキストの先頭から1文字ずつずらしながら2文字を切り出すことで、バイグラム文字列パタンを抽出する。以下、モノグラム文字列パタンとバイグラム文字列パタンとを、Nグラム文字列パタンと総称する。尚、本実施形態では、文字は文字列に含まれるとし、特別に区別する記載がある場合を除き、文字と文字列とを区別しない。
次に、生成部120は、各Nグラム文字列パタンについて、Nグラム文字列パタンが再配置コンテンツテキストデータで表されるテキスト(以下、再配置テキストという)に出現する位置(以下、出現位置という)を1又は複数特定する。その後、生成部120は、Nグラム文字列パタン毎に、再配置テキストにおけるNグラム文字列パタンの出現頻度を算出する。ここで、出現頻度は、例えば、再配置テキストにNグラム文字列パタンが現われる総回数であるとして説明するが、これに限定される訳ではない。
次に、生成部120は、Nグラム文字列パタン毎に、Nグラム文字列パタンが出現する出現位置を示すアドレス(以下、出現位置アドレスという)を表す1又は複数の情報と、当該Nグラム文字列パタンの出現頻度を表す情報と、を対応付けた出現位置情報を生成する。
次に、生成部120は、図7に示すような、出現位置情報を1又は複数含む電子ファイル(以下、出現位置情報ファイル若しくはAPファイルという)を生成し、当該出現位置情報ファイルに対して「position.idx」という名称を付けて情報記憶部110へ保存する(図3に示すステップS03)。尚、出現位置情報ファイルに保存された出現位置情報は、先頭アドレスから出現頻度用の所定バイト数までの領域に出現頻度を表す情報が格納され、当該領域の直後から出現位置用の所定バイト数毎に出現位置アドレスを表す情報が格納される。
次に、生成部120は、Nグラム文字列パタンを表す情報(以下、Nグラム文字列パタン情報という)と、当該Nグラム文字列パタンの出現位置情報が格納された情報記憶部110の記憶領域の先頭アドレス(以下、出現位置情報格納アドレスという)を表す情報と、を対応付けた情報を複数含む電子ファイル(以下、Nグラム文字列パタンファイル若しくはSファイルという)を生成する。その後、生成部120は、図7に示すような「pattern.idx」という名称をNグラム文字列パタンファイルに付けて情報記憶部110へ保存する(ステップS04)。
その後、生成部120は、見出語毎に、見出語の用例を表す用例テキストが分類された用例部CXの先頭アドレスと、当該用例テキストの先頭アドレスと、の差分(以下、用例部開始位置からの差分という)を、用例部CXに分類された用例テキストの個数(以下、用例個数という)だけ算出する。次に、生成部120は、見出語毎に、1又は複数の用例部開始位置からの差分を表す情報で構成される用例開始位置情報を生成し、生成された用例開始位置情報を複数含む電子ファイル(以下、用例開始位置情報ファイル若しくはEPファイルという)を生成する。その後、生成部120は、図7に示すような「example.idx」という名称を当該用例開始位置情報ファイルに付けて情報記憶部110へ保存する(図3に示すステップS05)。尚、EPファイルに保存された用例開始位置情報は、用例部開始位置からの差分を表す情報が、先頭アドレスから当該差分用の所定バイト数までの領域に格納され、当該領域の直後から所定バイト数毎に他の差分を表す情報が格納される。
次に、生成部120は、見出語テキストが分類された見出部CEを識別する見出番号と、当該見出部CEの格納された情報記憶部110の記憶領域の先頭アドレス(以下、見出部CEの開始位置を表すアドレスという)を表す情報と、当該見出語テキストで表される見出語を解説する解説テキストが分類された解説部CCの先頭アドレス(以下、解説部CCの開始位置を表すアドレスという)を表す情報と、当該見出語の用例を表す用例テキストが分類された用例部CXの先頭アドレス(以下、用例部CXの開始位置を表すアドレスという)を表す情報と、当該用例部CXの用例個数を表す情報と、当該用例部CXの用例部開始位置情報が情報記憶部110に格納された領域の先頭位置を表すアドレス(以下、用例部開始位置情報格納アドレスという)を表す情報と、当該見出語を掲載した辞書の辞書番号を表す情報と、を対応付けた情報を複数含む電子ファイル(以下、見出等ファイル若しくはTファイルという)を生成する。その後、生成部120は、図7に示すような「number.idx」という名称を見出等ファイルに付けて情報記憶部110へ保存した後に(図3に示すステップS06)、データ等生成処理の実行を終了する。
次に、ユーザが、辞書の検索に用いる検索キーワードと、検索キーワードに基づいた検索を指示する検索指示と、を入力するためにキーボード100iを操作すると、CPU100aは、当該操作に応じた信号若しくは情報をキーボード100iから入力される。次に、CPU100aは、図8に示すテキスト検索処理を実行することで、図4に示すような取得部130、検索部140、算出部150、決定部160、及び出力部170として機能する。また、CPU100aは、図2に示したビデオカード100g及びLCD100hと協働して表示部180として機能する。
図8に示すテキスト検索処理の実行が開始されると、図4に示す取得部130は、1又は複数の検索キーワードを取得した後に(ステップS11)、検索指示を取得する。
以降、検索指示が取得されるまでに、1つの検索キーワード「while」が取得された場合を例に挙げて説明を行う。
ステップS11の後に、検索部140は、取得された検索キーワード「while」からNグラム文字列パタンを生成し、生成したNグラム文字列パタンを検索パタンとする(ステップS12)。検索キーワードが1文字で構成される場合には、検索部140は、モノグラム文字列パタンを検索パタンとして生成するが、ここでは、検索キーワード「while」が1文字以上の文字で構成されるため、バイグラム文字列パタン「wh」、「hi」、「il」、及び「le」を検索パタンとして生成する。
次に、検索部140は、検索パタン毎に、図3に示したステップS03及びステップS04でそれぞれ生成されたAPファイル(つまり、出現位置情報ファイル)及びSファイル(つまり、Nグラム文字列パタンファイル)から、検索パタンの出現頻度を検索する(図8に示すステップS13)。具体的には、検索部140は、図7に示したファイル名が「pattern.idx」のNグラム文字列パタンファイルから、ステップS12で生成された検索パタンを表す情報に対応付けられた出現位置情報格納アドレスを表す情報を検索する。その後、検索部140は、図7に示したファイル名が「position.idx」の出現位置情報ファイルから、検索された情報で表される出現位置情報格納アドレスが指し示す位置を開始位置として、情報記憶部110に格納された出現位置情報を取得する。次に、検索部140は、取得した出現位置情報の先頭アドレスから上記出現頻度用の所定バイト数までの領域に格納された出現頻度を表す情報を抽出する。
その後、検索部140は、ステップS12で生成された検索パタン「wh」、「hi」、「il」、及び「le」の内で、最少の出現頻度に対応付けられた検索パタンを特定する(図8に示すステップS14)。出現頻度が最も少ない検索パタンに基づいて辞書から検索キーワードを検索すれば、出現頻度がより多い検索パタンに基づいて辞書を検索するよりもテキスト検索処理が短時間で終了するためである。ここでは、「il」の出現頻度が最も少ないとして説明を行う。
その後、検索部140は、ステップS11で取得された検索キーワードが「while」1つであると判別し(ステップS15;Yes)、当該検索キーワードを基準文字列とする(ステップS16)。次に、検索部140は、単一の文字列「while」に基づいて電子辞書を検索する、図9に示すような単一文字列検索処理を実行した後に(図8に示すステップS17)、テキスト検索処理の実行を終了する。
図9に示す単一文字列検索処理の実行が開始されると、検索部140は、検索に用いられる基準文字列「while」が1文字ではないと判別する(ステップS31;No)。次に、検索部140は、検索パタン毎に、それぞれの出現位置情報における出現頻度を表す情報が格納された領域の直後から上記出現位置用の所定バイト数までの読み込みを繰り返すことで、検索パタンの出現位置を複数検索する。
その後、検索部140は、図8に示したステップS14で特定された最少出現頻度の検索パタン「il」の1又は複数の出現位置の内で、未だ注目していない出現位置に注目する(ステップS32)。テキスト検索処理に要する時間を短縮するためである。次に、検索部140は、注目した出現位置を注目出現位置とし、注目出現位置に出現する検索パタンを注目検索パタンとする。
その後、検索部140は、情報記憶部110が予め記憶する所定範囲を表す情報を取得する。次に、検索部140は、基準文字列を構成する注目検索パタン「il」以外の検索パタン「wh」、「hi」、及び「le」の1又は複数の出現位置の内で、注目出現位置から所定範囲までの出現位置をそれぞれ特定し、特定された出現位置をそれぞれ特定出現位置とする(ステップS33)。
次に、検索部140は、検索パタン「wh」の特定出現位置と、検索パタン「hi」の特定出現位置と、注目検索パタン「il」の注目出現位置と、検索パタン「le」の特定出現位置と、の連続性を評価する(ステップS34)。具体的には、検索部140は、各検索パタンについて、基準文字列(つまり、検索キーワード)における検索パタンから注目検索パタンまでの文字数と、当該検索パタンの特定出現位置から当該注目検索パタンの注目出現位置までの文字数と、がそれぞれ同一か否かを判別する。次に、検索部140は、全ての検索パタンについて、検索パタンから注目検索パタンまでの文字数と、特定出現位置から注目出現位置までの文字数と、が一致する場合に連続性ありと判別する。これに対して、検索部140は、検索パタンから注目検索パタンまでの文字数と、特定出現位置から注目出現位置までの文字数と、のいずれか1つ以上が相違する場合に連続性なしと判別する。
検索部140は、連続性の評価結果が連続性なしであると判別し(ステップS35;No)、最少出現頻度の検索パタン「il」の出現位置の全てについて注目したか否かを判別する(ステップS36)。このとき、検索部140は、最少出現頻度の検索パタン「il」の出現位置の全てについて注目した訳ではないと判別し(ステップS36;No)、ステップS32から上記処理を繰り返す。尚、検索部140は、最少出現頻度の検索パタン「il」の出現位置の全てについて注目したと判別すると(ステップS36;Yes)、ステップS43の処理を実行する。
その後、ステップS32からステップS34の処理が実行された後に、ステップS35において、検索部140は、連続性の評価結果が連続性ありであると判別する(ステップS35;Yes)。次に、検索部140は、基準文字列「while」を構成する検索パタンの内で、先頭の検索パタン「wh」の特定出現位置を、基準文字列「while」が再配置テキストにおいて出現する出現位置と特定し、特定された出現位置を基準文字列「while」の特定出現位置とする(ステップS37)。
尚、ステップS31において、検索部140は、検索に用いられる基準文字列が1文字であると判別すると(ステップS31;Yes)、図8に示したステップS12で生成された検索パタン(つまり、モノグラム文字列パタン)の1又は複数の出現位置の内で、未だ注目対象としていない出現位置に注目する(図9に示すステップS38)。次に、検索部140は、注目された出現位置を基準文字列の特定出現位置とする(ステップS39)。
ステップS37(若しくはステップS39)の後に、検索部140は、図7に示したファイル名が「number.idx」の見出等ファイル(つまり、Tファイル)及びファイル名が「example.idx」の用例開始位置情報ファイル(つまり、EPファイル)と、基準文字列「while」の特定出現位置と、に基づいて、特定出現位置にあるテキスト(以下、特定テキストという)が分類されたカテゴリ(つまり、見出部CE、解説部CC、及び用例部CXのいずれか)等を特定する(ステップS40)。
具体的には、検索部140は、基準文字列「while」の特定出現位置を表すアドレス以前のアドレスが指し示す位置から開始する見出部CEであって、開始位置を指し示すアドレスが最大の見出部CEを特定する。その後、検索部140は、特定された見出部CEを特定見出部とする。
次に、検索部140は、ファイル名が「number.idx」の見出等ファイルから、当該特定見出部の開始位置を指し示すアドレスを表す情報、当該特定見出部に分類された見出語テキストが表す見出語を解説する解説テキストが分類された解説部(以下、当該特定見出部に対応する解説部という)CCの開始位置を指し示すアドレスを表す情報、当該特定見出部に対応する用例部CXの開始位置を指し示すアドレスを表す情報、当該特定見出部に対応する用例開始位置情報格納アドレスを表す情報、当該見出語を掲載した辞書を識別する辞書番号を表す情報、及び当該特定見出部を識別する見出番号を表す情報を検索する。
次に、検索部140は、基準文字列「while」の特定出現位置を指し示すアドレスが、検索された情報で表される特定見出部の開始位置を指し示すアドレス以上、かつ特定見出部に対応する解説部CCの開始位置を指し示すアドレス未満である場合に、特定テキストは、特定見出部というカテゴリに分類されていると特定する。同様に、検索部140は、基準文字列「while」の特定出現位置を指し示すアドレスが、解説部CCの開始位置を指し示すアドレス以上、かつ特定見出部に対応する用例部CXの開始位置を指し示すアドレス未満である場合に、特定テキストは、解説部CCというカテゴリに分類されていると特定する。また同様に、検索部140は、基準文字列「while」の特定出現位置を表すアドレスが、用例部CXの開始位置を指し示すアドレス以上である場合に、特定テキストは、用例部CXというカテゴリに分類されていると特定する。
次に、検索部140は、図10に示す決定方法テーブルから、検索キーワードが「単一」(つまり、1個)であることを表す情報と、特定テキストが分類されたカテゴリを表す情報と、に対応付けられた特定テキストの表示順位を決定する決定方法(以下、順位決定方法という)を表す情報を検索する。尚、決定方法テーブルは、情報記憶部110に予め記憶されている。次に、図4に示した算出部150は、検索された情報で表される順位決定方法を用いて、表示順序の決定に用いられる特定テキストの評価値を算出する(ステップS41)。この評価値は、値が小さい程ユーザがより所望するテキストである可能性が高いことを表す。
具体例としては、特定テキストが分類されたカテゴリ(以下、特定カテゴリという)が見出部CEである場合には、検索部140は、図10に示す決定方法テーブルから、検索キーワードが「単一」であることを表す情報と、特定カテゴリ「見出部」を表す情報と、に対応付けられた順位決定方法「数式1」を表す情報を検索する。
次に、算出部150は、特定テキストの文字数を算出し、算出された文字数を特定見出部の文字数とする。また、算出部150は、基準文字列「while」の文字数を算出する。次に、特定見出部の文字数と基準文字列「while」の文字数とを、以下の数式(1)に用いて特定テキストの評価値を算出する。
数式(1)で算出される評価値は、基準文字列「while」と特定見出部の文字列(つまり、見出テキスト)とが完全に一致する場合に最小の値となり、特定見出部の見出テキストに基準文字列「while」以外の文字が多く含まれる程大きい値となる。これは、通常、ユーザは、検索キーワードである基準文字列「while」と完全一致する見出テキストの表示を所望することが多いからである。また、通常、ユーザは、検索キーワード以外の文字を多く含む見出テキストよりも検索キーワード以外の文字を少なく含む見出テキストの表示を所望することが多いからである。
また、例えば、特定カテゴリが解説部CCである場合には、検索部140は、図10に示す決定方法テーブルから、検索キーワードが「単一」であることを表す情報と、特定カテゴリ「解説部」を表す情報と、に対応付けられた順位決定方法「数式2」を表す情報を検索する。
次に、算出部150は、基準文字列「while」の特定出現位置と、図9に示したステップS40で検索された情報で表される位置であって、特定見出部に対応する解説部CCの開始位置と、を以下の数式(2)に用いることで、特定テキストの評価値を算出する。
数式(2)で算出される評価値は、基準文字列「while」の特定出現位置が、解説部CCの開始位置に近い程小さい値となる。例えば、基準文字列「while」をそれぞれ含む複数の解説テキストが同じ解説部CCに分類されている場合には、解説部CCにおいて先の位置に格納された解説テキストの評価値程小さい値となる。図5(b)に示した再配置コンテンツテキストデータの解説部CCに分類された解説テキストは、例えば、見出語の一般的な意味内容若しくは見出語の使用頻度の高い意味内容を解説する解説テキスト程先の位置に格納されており、通常、ユーザは、一般的な解説を行う若しくは使用頻度の高いテキストの表示を所望することが多いためである。つまり、解説部CCにおいて先の位置に格納された解説テキスト程ユーザが所望するテキストである可能性が高いと考えられるためである。
さらに、例えば、特定カテゴリが用例部CXである場合には、検索部140は、図10に示す決定方法テーブルから、検索キーワードが「単一」であることを表す情報と、特定カテゴリ「用例部」を表す情報と、に対応付けられた順位決定方法「数式3」を表す情報を検索する。
次に、検索部140は、用例部CXの開始位置と、基準文字列「while」の特定出現位置と、の差分を算出する。その後、検索部140は、ステップS40で検索された情報で表される用例開始位置情報格納アドレスに基づいて、図7に示したファイル名が「example.idx」のEPファイル(つまり、用例開始位置情報ファイル)から用例開始位置情報を検索する。その後、検索部140は、用例開始位置情報に含まれる用例部開始位置からの差分を表す情報の内で、算出された用例部CXの開始位置と基準文字列「while」の特定出現位置との差分以下であり、かつ最大の差分を検索する。次に、検索部140は、検索した差分を表す情報が用例開始位置情報において何番目の情報であるかを上記差分用の所定バイト数に基づいて特定し、特定した番号を用例番号とする。
その後、算出部150は、検索された情報で表される差分を、特定見出部に対応した用例部CXの開始位置に加算することで、特定した用例番号の用例テキストの開始位置を算出する。次に、算出部150は、算出された用例テキストの開始位置と、基準文字列「while」の特定出現位置と、を以下の数式(3)に用いて特定テキストの評価値を算出する。
数式(3)で算出される評価値は、基準文字列「while」の特定出現位置が、用例テキストの開始位置に近い程小さい値となる。例えば、基準文字列「while」をそれぞれ含む複数の解説テキストが同じ用例部CXに分類されている場合には、用例部CXにおける格納位置が先であるか後であるかではなく、用例テキストにおいて基準文字列「while」が使用される位置が先である程評価値が小さい値となる。通常、例えば、検索キーワードである基準文字列「while」の一般的な使用例若しくは使用頻度の高い使用例を表す用例テキスト程先の位置で基準文字列「while」を使用することが多いからである。また、通常、ユーザは、一般的な使用例を表すテキスト若しくは使用頻度の高いテキストの表示を所望することが多いためである。つまり、先の位置に基準文字列「while」が格納された用例テキスト程ユーザが所望するテキストである可能性が高いと考えられるためである。
図9に示したステップS41の後に、検索部140は、出現位置の全てについて注目したか否かを判別する(ステップS42)。このとき、検索部140は、出現位置の全てについて注目した訳ではないと判別し(ステップS42;No)、ステップS31から上記処理を繰り返す。
その後、検索部140は、ステップS31から上記処理を繰り返した後に、ステップS42(若しくはステップS36)において、出現位置の全てについて注目したと判別する(ステップS36;Yes若しくはステップS42;Yes)。その後、図4に示す決定部160は、特定テキストが分類されたカテゴリ毎に、ステップS41で算出された特定テキストの評価値に基づき、1又は複数の特定テキストの表示順位を決定する(ステップS43)。本実施形態では、決定部160は、特定テキストの評価値が小さい特定テキストの表示順位程、先に表示される順位に決定する。
その後、図4に示す出力部170は、カテゴリ毎に、決定された表示順位で1又は複数の特定テキストを表示する、図11に示すような検索結果表示画面を表す信号を表示部180へ出力した後に(図9に示すステップS44)、単一文字列検索処理の実行を終了する。尚、表示部180は、出力された信号に基づいて検索結果表示画面を表する。
次に、検索指示が入力されるまでに、3つの検索キーワード「for」、「a」、及び「while」が順に入力された場合を例に挙げて、図8に示したテキスト検索処理について説明を行う。
テキスト検索処理の実行が開始されると、取得部130は、検索指示を取得するまでに、3つの検索キーワード「for」、「a」、及び「while」を順に取得する(ステップS11)。次に、検索部140は、取得された検索キーワード「for」及び「while」が1文字以上の文字で構成されるため、バイグラム文字列パタンである検索パタン「fo」及び「or」、並びに検索パタン「wh」、「hi」、「il」、及び「le」を生成する。また、検索キーワード「a」が1文字で構成されるため、検索キーワード「a」からモノグラム文字列パタンである検索パタン「a」を生成する(ステップS12)。
次に、検索部140は、検索パタン毎に検索パタンの出現頻度を検索する(ステップS13)。その後、検索部140は、検索パタン「fo」及び「or」、「wh」、「hi」、「il」、及び「le」、並びに「a」の内で、最少の出現頻度に対応付けられた検索パタンを特定する(ステップS14)。以下、検索パタン「il」の出現頻度が最少であるとして説明を行う。
その後、検索部140は、取得されたキーワードが3つであって1つでないと判別すると(ステップS15;No)、最少の出現頻度の検索パタン「il」で構成される検索キーワード「while」を基準文字列とし、基準文字列「while」以外のキーワード「for」及び「a」を検証文字列とする(ステップS18)。検索に要する計算量を削減するためである。
次に、検索部140は、複数の文字列「for」、「a」、及び「while」に基づいて電子辞書を検索する、図12に示すような複数文字列検索処理を実行した後に(ステップS19)、テキスト検索処理の実行を終了する。
図12に示す複数文字列検索処理の実行が開始されると、基準文字列「while」について、図9に示したステップS31からステップS35と同様の処理が実行される(ステップS51からステップS55)。
ステップS55において、検索部140は、連続性の評価結果が連続性なしであると判別し(ステップS55;No)、ステップS36と同様に、最少出現頻度の検索パタンの出現位置の全てについて注目したか否かを判別する(ステップS56)。このとき、検索部140は、最少出現頻度の検索パタンの出現位置の全てについて注目した訳ではないと判別し(ステップS56;No)、ステップS52から上記処理を繰り返す。尚、検索部140は、最少出現頻度の検索パタンの出現位置の全てについて注目したと判別すると(ステップS56;Yes)、図13に示すステップS72の処理を実行する。
ステップS52から上記処理が繰り返された後に、ステップS55において、検索部140は、連続性の評価結果が連続性ありであると判別し(ステップS55;Yes)、ステップS37と同様の処理を実行する(ステップS57)。
尚、ステップS51において、検索部140は、基準文字列が1文字であると判別すると(ステップS51;Yes)、図9に示したステップS38及びステップS39の処理と同様の処理を実行する(ステップS58及びステップS59)。
ステップS57(若しくはステップS59)の後に、検索部140は、図9に示したステップS40と同様の処理を実行することで、注目出現位置において基準文字列「while」が出現するテキスト(つまり、特定テキスト)と、当該テキストが分類されたカテゴリ(つまり、特定カテゴリ)などと、を特定する(ステップS60)。その後、検索部140は、特定テキストを、複数の検索キーワードでAND検索(つまり、複数の検索キーワードの双方を含むテキストを検索)した結果の候補(以下、検索結果候補)とする(ステップS61)。
次に、検索部140は、情報記憶部110から予め記憶された検索範囲を表す情報を読み出し、基準文字列「while」の特定出現位置から当該情報で表される範囲までを検索範囲とする(ステップS62)。この検索範囲内において全ての検証文字列(つまり、「for」及び「a」の双方)が出現する場合に検索結果候補が検索結果とされる。
その後、検索部140は、図8に示したステップS18で決定された検証文字列「for」及び「a」の内で、未だ注目されていない検証文字列「a」に注目する(ステップS63)。次に、検索部140は、注目した検証文字列「a」を注目検証文字列とする。
その後、検索部140は、注目検証文字列「a」が1文字で構成されると判別し(ステップS64;Yes)、注目検証文字列が1文字で構成される場合に、基準文字列「while」の特定出現位置において同じイディオムを構成する注目検証文字列「a」の出現位置を特定する、図14に示すような第1注目検証文字列出現位置特定処理を実行する(ステップS65)。
検索部140は、第1注目検証文字列出現位置特定処理の実行を開始すると、注目検証文字列「a」におけるモノグラム文字列パタンの出現位置の内で、未注目の出現位置であり、かつ最も先の出現位置に注目し、注目した出現位置を注目出現位置とする(ステップS81)。次に、検索部140は、図12に示したステップS62で画定された検索範囲に注目出現位置が含まれるか否かを判別する(図14に示すステップS82a及びステップS82b)。このとき、検索部140は、注目出現位置を指し示すアドレスの値が検索範囲の最小位置を指し示すアドレスの値以上でないと判別する(ステップS82a;No)。次に、検索部140は、注目検証文字列のモノグラム文字列パタン「a」の出現位置の全てについて注目した訳ではないと判別し(ステップS84;No)、ステップS81から上記処理を繰り返す。
その後、検索部140は、ステップS81、ステップS82a、及びステップS84を繰り返した後に、全ての出現位置について注目したと判別し(ステップS84;Yes)、注目検証文字列の特定出現位置を特定せずに、第1注目検証文字列出現位置特定処理の実行を終了する。
尚、検索部140は、注目出現位置を表すアドレスの値が検索範囲の最小位置を指し示すアドレスの値以上であると判別すると(ステップS82b;Yes)、注目出現位置を指し示すアドレスの値が検索範囲の最大位置を指し示すアドレスの値以下であるか否かを判別する(ステップS82b)。このとき、検索部140は、注目出現位置を指し示すアドレスの値が検索範囲の最大位置を表すアドレスの値より大きいと判別すると(ステップS82b;No)、検索範囲に含まれる出現位置が無いと判別し、注目検証文字列「a」の特定出現位置を特定せずに、第1注目検証文字列出現位置特定処理の実行を終了する。ステップS81において、先の出現位置から順に注目するためである。
図13に示したステップS65の後に、検索部140は、第1注目検証文字列出現位置特定処理の実行によって、注目検証文字列「a」の特定出現位置が特定されなかった(つまり、基本文字列「while」が検索されたが、基本文字列「while」の特定出現位置を基準とした検索範囲に「a」が発見されなかった)と判別する(ステップS67;No)。その後、検索部140は、基準文字列「while」の最小出現頻度の検索パタン「il」の全出現位置について注目した訳ではないと判別し(ステップS71;No)、図12に示すステップS51から上記処理を繰り返す。
その後、検索部140は、最少出現頻度の検索パタン「il」の他の出現位置に注目して上記処理を繰り返した後に、図14に示した第1注目検証文字列出現位置特定処理を再度実行する(図13に示すステップS65)。
第1注目検証文字列出現位置特定処理を開始すると、検索部140は、注目検証文字列「a」から生成された検索パタン「a」の未注目の出現位置であって、かつ最も先の出現位置に注目し、注目した出現位置を注目出現位置とする(ステップS81)。次に、検索部140は、検索範囲に注目出現位置が含まれると判別する(ステップS82a;Yes及びステップS82b;Yes)。その後、検索部140は、注目出現位置を、基準文字列「while」の特定出現位置において同じイディオムを構成する注目検証文字列「a」の出現位置と特定する。また、検索部140は、当該特定された出現位置を注目検証文字列「a」の特定出現位置とした後に(ステップS83)、第1注目検証文字列出現位置特定処理の実行を終了する。
図13に示すステップS67において、検索部140は、第1注目検証文字列出現位置特定処理の実行によって、注目検証文字列「a」の特定出現位置が特定された(つまり、基本文字列「while」の特定出現位置を基準とした検索範囲に「a」が発見された)と判別する(ステップS67;Yes)。
次に、検索部140は、全ての検証文字列に注目した訳ではないと判別し(ステップS68;No)、ステップS63から上記処理を繰り返す。
その後、検索部140は、検証文字列「for」及び「a」の内で、未だ注目されていない検証文字列「for」に注目し、当該検証文字列「for」を注目検証文字列とする(ステップS63)。
その後、検索部140は、注目検証文字列「for」が1文字で構成されるのでないと判別し(ステップS64;No)、注目検証文字列が複数の文字で構成される場合に、基準文字列「while」の特定出現位置において同じイディオムを構成する注目検証文字列「for」の出現位置を特定する、図15に示すような第2注目検証文字列出現位置特定処理を実行する(ステップS66)。
検索部140は、第2注目検証文字列出現位置特定処理の実行を開始すると、図8に示したステップS14において取得された各検索パタンの出現頻度に基づいて、注目検証文字列「for」から生成された検索パタンの内で、最も出現頻度が低い検索パタンを特定する。本実施形態においては、検索パタン「fo」の出現頻度が最も低いとして説明する。次に、検索部140は、最少出現頻度の検索パタン「fo」の1又は複数の出現位置の内で、未だ注目対象としていない出現位置であって、かつ最も先の出現位置に注目する。次に、検索部140は、注目した出現位置を注目出現位置とし、注目出現位置に出現する検索パタンを注目検索パタンとする(ステップS91)。
その後、検索部140は、図14に示したステップS82a及びステップS82bと同様に、注目出現位置を指し示すアドレスの値が、検索範囲の最小位置を指し示すアドレスの値以上であり、かつ検索範囲の最大位置を指し示すアドレスの値以下であるか(つまり、検索範囲に注目出現位置が含まれるか)否かを判別する(ステップS92a及びステップS92b)。このとき、検索部140は、注目出現位置を指し示すアドレスの値が検索範囲の最小位置を指し示すアドレスの値以上でないと判別した後に(ステップS92a;No)、注目検証文字列「for」のバイグラム文字列パタン「fo」の出現位置の全てについて注目した訳ではないと判別し(ステップS97;No)、ステップS91から上記処理を繰り返す。
尚、検索部140は、注目出現位置を表すアドレスの値が検索範囲の最小位置を指し示すアドレスの値以上であると判別すると(ステップS92b;Yes)、注目出現位置を指し示すアドレスの値が検索範囲の最大位置を指し示すアドレスの値以下であるか否かを判別する(ステップS92b)。ここで、検索部140は、注目出現位置を指し示すアドレスの値が検索範囲の最大位置を表すアドレスの値より大きいと判別すると(ステップS92b;No)、検索範囲に含まれる出現位置が無いと判別し、注目検証文字列「for」の特定出現位置を特定せずに、第2注目検証文字列出現位置特定処理の実行を終了する。ステップS91において、先の出現位置から順に注目するためである。
検索部140は、ステップS91、ステップS92a、及びステップS92bを繰り返した後に、検索範囲に注目出現位置が含まれると判別し(ステップS92a;YesかつステップS92b;Yes)、検索部140は、注目検証文字列「for」を構成する他の検索パタン「or」の1又は複数の出現位置の内で、注目出現位置から所定範囲までの出現位置を特定し、特定された出現位置を特定出現位置とする(ステップS93)。
次に、検索部140は、検索パタン「fo」の特定出現位置と、注目検索パタン「or」の注目出現位置と、の連続性を、図9に示したステップS34と同様の方法で評価する(ステップS94)。このとき、検索部140は、連続性の評価結果が連続性なしであると判別した後に(ステップS95;No)、最少出現頻度の検索パタン「fo」の出現位置の全てについて注目したと判別する(ステップS97)。その後、検索部140は、注目検証文字列「for」の特定出現位置を特定せずに、第2注目検証文字列出現位置特定処理の実行を終了する。
図13に示したステップS65の後に、検索部140は、第2注目検証文字列出現位置特定処理の実行によって、注目検証文字列「for」の特定出現位置が特定されなかったと判別する(ステップS67;No)。その後、検索部140は、基準文字列「while」の最小出現頻度の検索パタン「il」の全出現位置について注目した訳ではないと判別し(ステップS71;No)、図12に示すステップS51から上記処理を繰り返す。
その後、検索部140は、最少出現頻度の検索パタン「il」の他の出現位置に注目して上記処理を繰り返すことで、基準文字列「while」の特定出現位置、及び検証文字列「a」の特定出現位置を特定し直した後に(ステップS65)、検証文字列「for」を注目検証文字列とし、図15に示した第2注目検証文字列出現位置特定処理を再度実行する(図13に示すステップS66)。
第2注目検証文字列出現位置特定処理を開始すると、検索部140は、ステップS91からステップS94の処理を実行した後に、連続性の評価結果が連続性ありであると判別する(ステップS95;Yes)。次に、検索部140は、注目検証文字列「for」を構成する検索パタンの内で、先頭の検索パタン「fo」の特定出現位置を、注目検証文字列「for」の特定出現位置とした後に(ステップS96)、第2注目検証文字列出現位置特定処理の実行を終了する。
図13に示したステップS66の後に、検索部140は、第2注目検証文字列出現位置特定処理の実行によって、注目検証文字列の特定出現位置が特定されたと判別すると(ステップS67;Yes)、全ての検証文字列に注目したと判別する(ステップS68;Yes)。
その後、検索部140は、図12に示したステップS61で特定された検索結果候補を、基準文字列「while」と、検証文字列「for」及び「a」とを用いたAND検索の検索結果とする(ステップS69)。その後、図9に示したステップS41と同様の処理により、検索結果とされた特定テキストの評価値を算出する(ステップS70)。
具体例としては、特定テキストの特定カテゴリが見出部CEである場合には、検索部140は、図10に示す決定方法テーブルから、検索キーワードが「複数」であることを表す情報と、特定カテゴリ「見出部」を表す情報と、に対応付けられた順位決定方法「数式4」を表す情報を検索する。
次に、算出部150は、基準文字列「while」、1番目の検証文字列「for」、及び2番目の検証文字列「a」の文字数「5」、「3」、及び「1」を算出する。次に、算出部150は、基準文字列「while」、1番目の基準文字列「for」、及び2番目の基準文字列「a」文字数及び特定出現位置を、以下の数式(4)に用いることで、特定テキストの評価値を算出する。
ここで、数式(4)で算出される基準文字列とk番目の検証文字列との距離について、基準文字列「while」と1番目の検証文字列「for」との距離を具体例として挙げて説明を行う。図16(a)に示すように、基準文字列「while」の特定出現位置が、1番目の検証文字列「for」の特定出現位置よりも先である場合には、基準文字列「while」と1番目の検証文字列「for」との距離は、基準文字列「while」の先頭から検証文字列の末尾までの距離を表す。これに対して、図16(b)に示すように、基準文字列「while」の特定出現位置が、1番目の検証文字列「for」の特定出現位置よりも後である場合には、基準文字列「while」と1番目の検証文字列「for」との距離は、検証文字列「for」の先頭から基準文字列「while」の末尾まで距離を表す。
次に、数式(4)で算出される上限値maxPos及び下限値minPos並びにこれらを用いて算出される検索キーワード間距離(入力順を考慮しない場合)について、基準文字列「while」と1番目の検証文字列「for」と2番目の検証文字列「a」とを具体例として挙げて説明を行う。図17に示すように、上限値maxPos及び下限値minPosは、基準文字列と、基準文字列「while」との距離を最小とする1番目の検証文字列「for」と、基準文字列「while」との距離を最小とする2番目の検証文字列「a」と、基準文字列「while」、1番目の検証文字列「for」、及び2番目の検証文字列「a」の全てを含む最小の範囲(以下、最小包含範囲という)の下限値及び上限値である。また、検索キーワード間距離(入力順を考慮しない場合)は、当該下限値minPosと上限値maxPosとの差異である。
このため、数式(4)で算出される評価値は、最小包含範囲に含まれる文字列が、入力された検索キーワードのみである場合に最小値となる。また、検索キーワードの全てがより狭い最小包含範囲に含まれている程(つまり、検索キーワードのいずれかの使用が開始される位置が、全ての検索キーワードの使用が終了される位置により近い程)算出される評価値が小さい値となる。例えば、入力された複数の検索キーワードが「for」、「a」、及び「while」である場合には、「for a while」を含む用例テキストの評価値の方が、「for a brief while」を含む用例テキストの評価値よりも小さい値となる。また、「for a brief while」を含む用例テキストの評価値の方が、「for a job while」を含む「This will allow you to look 『for a job while』 you are working at a part-time job」というテキストの評価値よりも小さい値となる。つまり、通常、ユーザは、検索キーワードのみで構成されるイディオムの使用例を表す用例テキストの表示を所望することが多いからであり、かつ検索キーワード以外の文字列を多く含む用例テキストよりも検索キーワード以外の文字を少なく含む用例テキストの表示を所望するからである。また、入力された複数の検索キーワードの間に文字が多く使用されている用例テキスト程、入力された複数の検索キーワードで構成されるイディオムとは異なるイディオムの使用例を表すことが多いためである。
また、特定テキストの特定カテゴリが解説部CCである場合には、検索部140は、図10に示す決定方法テーブルから、検索キーワードが「複数」であることを表す情報と、特定カテゴリ「解説部」を表す情報と、に対応付けられた順位決定方法「数式5」を表す情報を検索する。
次に、算出部150は、数式(4)を用いて評価値を算出する場合と同様に、検索キーワード間距離及び下限値minPosを算出する。また、算出部150は、数式(2)を用いて評価値を算出する場合と同様に、特定見出部に対応する解説部CCの開始位置を算出する。その後、算出部150は、検索キーワード間距離及び下限値minPosと解説部CCの開始位置とを、以下の数式(5)に用いて特定テキストの評価値を算出する。
数式(5)で算出される評価値は、検索キーワード間距離(入力順を考慮しない場合)が同じ解説テキストであれば、検索キーワードを包含する最小包含範囲の下限値minPosが解説部CCの開始位置に近い程小さい値となる。また、数式(5)で算出される評価値は、下限値minPosと解説部CCの開始位置との距離が同じ解説テキストであれば、検索キーワード間距離(入力順を考慮しない場合)が短い程小さい値となる。
次に、特定テキストの特定カテゴリが用例部CXである場合には、図10に示す決定方法テーブルから、検索部140は、検索キーワードが「複数」であることを表す情報と、特定カテゴリ「用例部」を表す情報と、に対応付けられた順位決定方法「数式6」を表す情報を検索する。
次に、算出部150は、数式(4)を用いて評価値を算出する場合と同様に、検索キーワード間距離及び下限値minPosを算出し、数式(3)を用いて評価値を算出する場合と同様に、用例テキストの開始位置を算出する。その後、算出部150は、検索キーワード間距離及び下限値minPosと用例テキストの開始位置とを、以下の数式(6)に用いて特定テキストの評価値を算出する。
数式(6)で算出される評価値は、同じ並び順の複数の検索キーワードの検索キーワード間距離(入力順を考慮しない場合)が同じであれば、下限値minPosが用例テキストの開始位置に近い程小さい値となり、下限値minPosと用例テキストの開始位置との距離が同じ解説テキストであれば、検索キーワード間距離(入力順を考慮しない場合)が短い程小さい値となる。
図13に示したステップS70を実行した後に、検索部140は、基準文字列「while」から生成された最小出現頻度「il」の検索パタンの全出現位置について注目した訳ではないと判別し(ステップS71;No)、図12に示すステップS51に戻った後に、他の出現位置に注目して上記処理を繰り返す。
その後、図12に示すステップS56、若しくは、図13に示すステップS71において、検索部140は、全出現位置について注目したと判別すると(ステップS56;Yes若しくはステップS71;Yes)、図9に示すステップS43及びステップS44と同様の処理を順に実行した後に(ステップS72及びステップS73)、複数文字列検索処理の実行を終了する。
次に、検索指示が入力されるまでに、2つの検索キーワード「while」及び「*ing」が入力された場合を例に挙げて、図8に示したテキスト検索処理について再度説明を行う。尚、「*ing」は、文字列「ing」の直前に何かの文字が存在する文字列を表し、「*」は特殊文字の1つであり、ワイルドカード記号と称される。
テキスト検索処理の実行が開始されると、ステップS11の処理が実行される。次に、検索部140は、取得された検索キーワード「*ing」に特殊文字「*」が含まれると判別し、検索キーワード「*ing」から特殊文字「*」を削除する。その後、検索部140は、「while」及び「ing」から検索パタン「wh」、「hi」、「il」、及び「le」、並びに「in」及び「ng」を生成する(ステップS12)。次に、ステップS12からステップS18の処理が実行されることで、「while」が基準文字列とされ、「*ing」が検証文字列とされる。その後、図12に示す複数文字列検索処理が実行されてから(ステップS19)、テキスト検索処理の実行が終了される。
図12に示す複数文字列検索処理が開始されると、ステップS51からステップS66の処理が実行される。ステップS66で、図15に示すような第2注目検証文字列出現位置特定処理が開始されると、ステップS91からステップS93の処理が実行される。これにより、注目検証文字列「*ing」の検索パタン「in」及び「ng」の内で、「ng」が注目検索パタンとされる。
その後、検索部140は、特殊文字「*」の直後に位置する検索パタンが「in」であることを特定した後に、検索パタン「in」の特定出現位置の直前に何らかの文字が存在するか否か判別する。このとき、検索部140は、検索パタン「in」の特定出現位置の直前に何ら文字が存在しないと判別すると、連続性なしと評価する。
これに対して、検索部140は、連続性ありと評価すると、注目検証文字列「*ing」の注目検索パタン「ng」の注目出現位置と、他の検索パタン「in」の特定出現位置と、の連続性を、図9のステップS34と同様の方法で再評価する(ステップS94)。その後、ステップS95からステップS97の処理が実行された後に、第2注目検証文字列出現位置特定処理の実行が終了される。
図13に示したステップS66の後に、ステップS67からステップS73の処理が実行された後に、複数文字列検索処理の実行が終了される。尚、図4に示した表示部180は、ステップS73において、検索キーワード「while」及び「*ing」に基づいてAND検索された複数の用例テキストであって、ステップS70で算出された評価値に基づいて決定された表示順位が1位から10位まで用例テキストを、図18に示すように表示順位に従って表示する。
ここで、例えば、電子辞書若しくは電子辞典の解説部CCでは、テキストが表す意味内容に従って解説テキストが並べられている。例えば、見出語の一般的な意味を解説するテキストの後に特別な意味を解説するテキストや特定の分野で用いられる意味を解説するテキストが並べられている。また、見出語の用例部CXに分類される用例テキストは、例えば、あるキーワードの一般的な使用例若しくは使用頻度の高い使用例を表す用例テキスト程、先の位置で当該キーワードを使用することが多い。また、ユーザは、一般的な使用例若しくは使用頻度の高い使用例を表すテキストの表示を所望することが多いため、先の位置にキーワードが格納された用例テキスト程、当該キーワードを入力したユーザが所望するテキストである可能性が高いと考えられる。
よって、これらの構成によれば、検索キーワードを構成する文字若しくは文字列に対応付けられた出現位置とテキストとカテゴリと決定方法とを検索し、検索された決定方法で決定された出力順位に従って検索されたテキストを出力する。このため、複数のカテゴリにそれぞれ記載されたテキストを検索キーワードに基づいて検索した結果をそれぞれのカテゴリに応じた方法で並び替えて出力できる。また、出力順位は、検索された出現位置を用いて決定されるので、検索されたテキストは当該テキストに応じて決定される順番に従って出力される。このため、検索されたテキストの数が増加しても、ユーザが所望する内容のテキストが見つけ難くなり難い。
また例えば、複数の検索キーワードがイディオムを構成している場合、同じテキストを構成する複数の検索キーワード間距離が短いほど、当該テキストは、ユーザが所望するテキストであると考えられる。通常、イディオムを構成するワードは連続して使用され、複数の検索キーワードを入力したユーザは、イディオムとして使用された複数の検索キーワードが含まれるテキストの表示を所望するためである。よって、これらの構成によれば、検索キーワード間の距離を用いて決定された順番に従ってテキストを出力するので、検索されたテキストの数が増加しても、ユーザが所望する内容のテキストが見つけ難くなり難い。
<変形例1>
変形例1では、検索キーワードの入力順に応じたテキストの検索結果を表示するテキスト検索装置100について説明を行う。
変形例1のテキスト検索装置100は、図8に示したテキスト検索処理の代わりに、図19に示すようなテキスト検索処理を実行する。以下、検索指示が入力されるまでに、2つの検索キーワード「while」及び「*ing」が入力された場合を例に挙げて説明を行う。
図19に示すテキスト検索処理が開始されると、図4に示す取得部130は、2つの検索キーワード「while」及び「*ing」を取得した後に、検索指示を取得する(ステップS11a)。
次に、取得部130は、取得したキーワードが1つでないと判別する(ステップS11b;No)。次に、図4に示す決定部160は、検索キーワードが英語若しくは日本語の文字列であるか否かを判別する(ステップS11c)。具体例としては、決定部160は、検索キーワードを表す文字コードの所定ビットの値に基づいて検索キーワードが何語の文字列であるかを判別しても良い。また、検索部140は、検索キーワードが主にアルファベットで構成されている場合に検索キーワードが英語の文字列であると判別し、検索キーワードが主にひらがな、カタカナ、若しくは漢字で構成されている場合に検索キーワードが日本語の文字列であると判別しても良い。
ステップS11cにおいて、決定部160は、検索キーワードが英語若しくは日本語の文字列であると判別すると(ステップS11c;Yes)、検索キーワードが英語であるか日本語であるかを判別する。次に、取得部130は、検索キーワードが英語の文字列であると判別し、複数の検索キーワードの入力順を考慮して検索結果の表示を行う(以下、入力順考慮有り)と決定する。英語は、複数の単語の語順が異なると、これらの単語で表される意味内容が異なることが多いためである。
次に、既に説明したステップS12からステップS15の処理が実行される。その後、検索部140は、検索キーワードが、「while」及び「*ing」の2つであると判別する(ステップS15;No)。次に、検索部140は、ステップS11dで入力順序考慮有りと決定されたと判別し(ステップS18a;Yes)、最初に入力されたキーワード「while」を基準文字列とし、基準文字列以外のキーワード「*ing」を検証文字列とする(ステップS18b)。最初に入力された基準文字列を基準とし、基準文字列よりも後の位置に入力順に従って検証文字列が出現するか否かを検証するためである。その後、図12に示した複数文字列検索処理が実行された後に(ステップS19)、テキスト検索処理の実行が終了される。
図12に示した複数文字列検索処理が開始されると、既に説明したステップS51からステップS69の処理が実行される。次に、検索部140は、ステップS69で検索結果とされた特定テキストの評価値を算出する(ステップS70)。
具体例としては、特定テキストの特定カテゴリが見出部CEである場合には、上記の数式(4)に用いて特定テキストの評価値を算出する。また、特定テキストの特定カテゴリが解説部CCである場合には、上記の数式(5)に用いて特定テキストの評価値を算出する。
さらに、特定テキストの特定カテゴリが用例部CXである場合には、検索部140は、図10に示す決定方法テーブルの代わりに、図20に示す決定方法テーブルから、検索キーワードが「複数」であることを表す情報と、特定カテゴリ「用例部」を表す情報と、図19に示したステップS11dで決定された入力順考慮が「有り」であることを表す情報と、に対応付けられた順位決定方法「数式7」を表す情報を検索する。
次に、算出部150は、数式(4)を用いて評価値を算出する場合と同様に、検索キーワード間距離(入力順を考慮しない場合)及び下限値minPosを算出し、数式(3)を用いて評価値を算出する場合と同様に、用例テキストの開始位置を算出する。その後、算出部150は、検索キーワード間距離(入力順を考慮しない場合)及び下限値minPosと用例テキストの開始位置とを、以下の数式(7)に用いて特定テキストの評価値を算出する。
数式(7)で用いられるvalPENALTYは、最初に入力された検索キーワードである基準文字列の後に、入力順に検証文字列が並んでいない場合(つまり、上記条件以外の場合)に、検索キーワード間距離(入力順を考慮しない場合)に加算される定数である。尚、valPENALTYは正数であって、当該数を表す情報は、情報記憶部110に予め記憶されている。
また、数式(7)で算出される評価値は、数式(6)で算出される評価値と同様に、同じ並び順の複数の検索キーワードの検索キーワード間距離(入力順を考慮する場合)が同じであれば、下限値minPosが用例テキストの開始位置に近い程小さい値となり、下限値minPosと用例テキストの開始位置との距離が同じ解説テキストであれば、検索キーワード間距離(入力順を考慮する場合)が短い程小さい値となる。
図13に示したステップS70の後に、ステップS71からステップS73の処理が実行されてから、複数文字列検索処理の実行が終了される。尚、図4に示した表示部180は、ステップS73において、ステップS70で算出された評価値に基づいて決定された表示順位が1位から10位まで用例テキストを、図21に示すように表示順位に従って表示する。
図21に示す用例テキストは、図18に示した用例テキストと同様に、検索キーワード「while」及び「*ing」に相当する文字列を含んでいる。しかし、図18に示された用例テキストと異なり、図21に示す用例テキストは、検索キーワードの入力順に使用されている。また、図21に示す用例テキストに占める、「while *ing」で表されるイディオムを構成するテキストの割合は、図18に示された用例テキストの割合よりも高い。このため、図18に示した用例テキストよりも図20に示す用例テキストの方が、検索キーワード「while」及び「*ing」を順に入力したユーザが所望するテキストである確率が高いと考えられる。通常、複数の検索キーワードを入力するユーザは、入力した順で使用されるイディオムの使用例を検索することが多いためである。
通常、ユーザは、検索キーワードが入力された順に並んだテキストの表示を所望する。このため、これらの構成によれば、検索された文字若しくは文字列の出現位置の並順が、検索キーワードの入力順に従っている場合に、検索されたテキストの出力順位を先の順位に決定するので、検索されたテキストの数が増加しても、ユーザが所望する内容のテキストが見つけ難くなり難い。
次に、検索指示が入力されるまでに、2つの日本語の検索キーワードが入力された場合を例に挙げて、図19に示したテキスト検索処理について再度説明を行う。
テキスト検索処理の実行が開始されると、ステップS11a及びステップS11bの処理が実行される。次に、決定部160は、検索キーワードの言語が日本語であると判別し(ステップS11c;Yes)、複数の検索キーワードの入力順を考慮せずに検索結果の表示を行う(以下、入力順考慮無し)と決定する。日本語は、英語と異なり、複数の単語の語順が異なっても、これらの単語で表される意味内容が異なることが少ないためである。
その後、ステップS12からステップS15の処理が実行される。次に、検索部140は、ステップS11dで「入力順序考慮無し」と決定されたと判別し(ステップS18a;No)、入力順序に拘わらず、最少の出現頻度の検索パタンで構成される検索キーワードを基準文字列とし、基準文字列以外のキーワードを検証文字列とする(ステップS18c)。検索に要する計算量を削減するためである。
次に、検索部140は、図12に示した複数文字列検索処理を実行した後に(ステップS19)、検索処理の実行を終了する。
図12に示した複数文字列検索処理の実行が開始されると、ステップS51からステップS69が実行される。その後、算出部150は、検索結果とされた特定テキストの評価値を算出する(ステップS70)。
具体例としては、特定テキストの特定カテゴリが見出部CEである場合には、上記の数式(4)に用いて特定テキストの評価値を算出する。また、特定テキストの特定カテゴリが解説部CCである場合には、上記の数式(5)に用いて特定テキストの評価値を算出する。
さらに、特定テキストの特定カテゴリが用例部CXである場合には、検索部140は、図20に示す決定方法テーブルから、検索キーワードが「複数」であることを表す情報と、特定カテゴリ「用例部」を表す情報と、図19に示したステップS11dで決定された入力順の考慮が「無し」を表す情報と、に対応付けられた順位決定方法「数式6」を表す情報を検索する。次に、算出部150は、上記の数式(6)を用いて特定テキストの評価値を算出する。
その後、ステップS71からステップS73の処理が実行された後に、複数文字列検索処理の実行が終了される。
次に、検索指示が入力されるまでに、2つの韓国語の検索キーワードが入力された場合を例に挙げて、図19に示したテキスト検索処理について再度説明を行う。
テキスト検索処理の実行が開始されると、ステップS11a及びステップS11bの処理が実行される。次に、決定部160は、検索キーワードの言語が英語でも日本語でもないと判別する(ステップS11c;No)。その後、図4に示す出力部170は、検索キーワードの入力順を考慮した表示か、検索キーワードの入力順を考慮しない表示かのいずれかを指定する表示指定の入力を促すメッセージを表示部180へ出力し、表示部180は当該メッセージを表示する。
次に、当該メッセージを視認したユーザが表示指定を入力するためにキーボード100iを操作すると、取得部130は、キーボード100iから表示指定を取得する。その後、決定部160が、表示指定に基づいて入力順考慮を有り若しくは無しに決定する(ステップS11e)。
その後、ステップS12からステップS19の処理が実行された後に、テキスト検索処理の実行が終了する。
<変形例2>
本実施形態において、図4に示した算出部150は、検索キーワード「while」及び「*ing」に基づいて検索された用例テキストの評価値を、上記数式(6)を用いて算出するとして説明した。しかし、これに限定される訳ではなく、算出部150は、下記の数式(8)を用いて評価値を算出しても良い。
つまり、算出部150は、数式(4)を用いて評価値を算出する場合と同様に、下限値minPosと上限値maxPosとを算出し、算出された下限値minPosのアドレスで指し示される位置から上限値maxPosのアドレスで指し示される位置までの範囲に存在する単語の数EstCountを計数する。その後、算出部150は、計数した単語の数EstCountを、以下の数式(8)に用いて特定テキストの評価値を算出する。
この場合、図4に示した表示部180は、ステップS73において、ステップS70で算出された評価値に基づいて決定された表示順位が1位から10位まで用例テキストを、図22に示すように表示順位に従って表示する。
図22に示す用例テキストは、図18及び図21にそれぞれ示した用例テキストと同様に、検索キーワード「while」及び「*ing」に相当する文字列を含んでいる。ここで、図21に示す表示順位1位から10位までの用例テキストには、「while being」という使用例を表すテキストが5件含まれている。これは、図21に示す表示順位1位から10位までの用例テキストが検索キーワード間距離に基づいて表示順位が決定されたテキストであるためである。
これに対して、図22に示す表示順位1位から10位までの用例テキストは、「while」文字列と「ing」との間の単語数EstCountに基づいて表示順位が決定されたテキストである。このため、表示順位1位から10位までの用例テキストは、「while maintaining」、「while dining」、「while enjoying」、「while smoking」、「while watching」、「while trying」、「while reading」、及び「while driving」といったそれぞれ異なる使用例を表す。このため、図21に示した表示順位が1位から10位の用例テキストよりも図22に示した表示順位が1位から10位の用例テキストの方がより異なる使用例を表すため、1位から10位の用例テキストにユーザが所望するテキストが含まれている確率が高いと考えられる。
尚、本実施形態、本実施形態の変形例1、及び本実施形態の変形例2において、電子辞書は、電子辞典をも含む。つまり、電子辞書は、国語辞典、英和辞典、和英辞典、及び百科事典であっても良い。また、本実施形態において、本実施形態、本実施形態の変形例1、及び本実施形態の変形例2において、テキスト検索装置100は、検索キーワードに基づいて辞書を検索するとして説明したが、検索の対象とされる文書は、辞書に限定される訳ではなく、複数のカテゴリに分類されたテキストで構成される文書であれば、どのような文書でも良い。
検索の対象とされる文書は、例えば、「発明の名称」及び「特許請求の範囲」などのカテゴリにそれぞれ分類されたテキストで構成される特許明細書であっても良い。この場合、テキスト検索装置100は、「発明の名称」に分類されるテキストの評価値を、検索キーワードが1つの場合に上記の数式(1)を使用して算出し、検索キーワードが2つ以上の場合に上記の数式(4)を使用して算出するとしても良い。またさらに、この場合、テキスト検索装置100は、「特許請求の範囲」に分類されるテキストの評価値を、検索キーワードが1つの場合に上記の数式(2)を使用して算出し、検索キーワードが2つ以上の場合に上記の数式(5)を使用して算出するとしても良い。通常、先の位置に記載される上位の請求項程メインクレームであることが多く、かつ特許明細書に記載された発明の特別な技術的特徴と発明者が考える事項が記載されていることが多いためである。また、ユーザは、発明の特別な技術的特徴と発明者が考えたメインクレームの表示を所望することが多いためでもある。
検索の対象とされる文書は、例えば、ある製品が有する機能の名称を表すテキストが分類されるカテゴリ(以下、機能名カテゴリという)と、当該機能を利用するための操作方法を表すテキストが分類されるカテゴリ(以下、操作方法カテゴリという)とを有する説明書であっても良い。この場合、テキスト検索装置100は、機能名カテゴリに分類されるテキストの評価値を、検索キーワードが1つの場合に上記の数式(1)を使用して算出し、検索キーワードが2つ以上の場合に上記の数式(4)を使用して算出するとしても良い。またさらに、この場合、テキスト検索装置100は、操作方法カテゴリに分類されるテキストの評価値を、検索キーワードが1つの場合に上記の数式(2)を使用して算出し、検索キーワードが2つ以上の場合に上記の数式(5)を使用して算出するとしても良い。通常、ある機能の操作方法は、当該機能の利用に不可欠な操作方法や最も単純な操作方法を、当該機能の利用に付随的な操作方法を含むものや複雑な操作方法よりも先に記載されていることが多く、かつユーザは、機能の利用に不可欠な操作方法や最も単純な操作方法の表示を所望することが多いためである。
尚、本実施形態において、検索キーワードの検索方法は、Nグラム検索を用いるとして説明したが、検索キーワードの検索方法は、これに限定される訳でない。
本発明の実施形態、本実施形態の変形例1、及び本実施形態の変形例2とは、それぞれ互いに組み合わせることができる。
尚、本実施形態、本実施形態の変形例1、若しくは本実施形態の変形例2に係る機能を実現するための構成を予め備えたテキスト検索装置100として提供できることはもとより、プログラムの適用により、既存のテキスト検索装置を本実施形態、本実施形態の変形例1、若しくは本実施形態の変形例2に係るテキスト検索装置100として機能させることもできる。すなわち、上記実施形態、上記実施形態の変形例1、若しくは上記実施形態の変形例2で例示したテキスト検索装置100による各機能構成を実現させるためのテキスト検索プログラムを、既存のテキスト検索装置を制御するコンピュータ(CPUなど)が実行できるように適用することで、本実施形態、本実施形態の変形例1、若しくは本実施形態の変形例2に係るテキスト検索装置100として機能させることができる。
このようなプログラムの配布方法は任意であり、例えば、メモリカード、CD−ROM、又はDVD−ROMなどの記録媒体に格納して配布できる他、インタネットなどの通信媒体を介して配布することもできる。
また、本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。つまり、本発明のいくつかの実施形態を説明したが、上述した実施形態は本発明を説明するためのものであり、本発明の範囲を限定するものではない。本発明の範囲は、実施形態ではなく、特許請求の範囲に記載された発明とその均等の範囲を含む。
以下に本願出願の当初の特許請求の範囲に記載された発明を付記する。
(付記1)
検索対象となる文書に記載された文字若しくは文字列と、前記文字若しくは前記文字列が前記文書において出現する出現位置と、前記文字若しくは前記文字列で構成されるテキストと、当該テキストが表す内容に応じて分類されたカテゴリと、前記カテゴリに分類されたテキストの出力順位を決定する決定方法と、を対応付けて複数記憶する記憶手段と、
検索キーワードを取得する取得手段と、
前記取得された検索キーワードを構成する文字若しくは文字列に対応付けられた前記出現位置と前記テキストと前記カテゴリと前記決定方法とを検索する検索手段と、
前記検索された出現位置を前記検索された決定方法に用いることで、前記検索されたテキストの出力順位を決定する決定手段と、
前記決定された出力順位に従って、前記検索されたテキストを前記検索されたカテゴリ毎に出力する出力手段と、を備える、
ことを特徴とするテキスト検索装置。
(付記2)
前記取得手段は、複数の検索キーワードを取得し、
前記検索手段は、前記取得された複数の検索キーワード毎に、前記検索キーワードを構成する文字若しくは文字列に対応付けられた前記出現位置と前記テキストと前記カテゴリと前記決定方法とを検索し、
前記検索された複数の出現位置に基づいて、同じ前記テキストを構成する前記複数の検索キーワード間の距離を算出する算出手段、をさらに備え、
前記決定手段は、前記算出された距離を前記検索された決定方法に用いることで、前記検索されたテキストの出力順位を決定する、
ことを特徴とする付記1に記載のテキスト検索装置。
(付記3)
前記取得手段は、前記複数の検索キーワードと、前記複数の検索キーワードの入力順と、を取得し、
前記算出手段は、前記複数の検索キーワードに基づいてそれぞれ検索された出現位置の並順が、前記取得された複数の検索キーワードの入力順に従っている場合には、前記出現位置の並順が前記入力順に従っていない場合よりも、前記複数の検索キーワード間の距離を小さく算出し、
前記決定手段は、前記算出された距離が小さい程、前記検索されたテキストの出力順位を先の順位に決定する、
ことを特徴とする付記2に記載のテキスト検索装置。
(付記4)
コンピュータを、
検索対象となる文書に記載された文字若しくは文字列と、前記文字若しくは前記文字列が前記文書において出現する出現位置と、前記文字若しくは前記文字列で構成されるテキストと、当該テキストが表す内容に応じて分類されたカテゴリと、前記カテゴリに分類されたテキストの出力順位を決定する決定方法と、を対応付けて複数記憶する記憶手段、
検索キーワードを取得する取得手段、
前記取得された検索キーワードを構成する文字若しくは文字列に対応付けられた出現位置とテキストとカテゴリと決定方法とを検索する検索手段、
前記検索された出現位置を前記検索された決定方法に用いることで、前記検索されたテキストの出力順位を決定する決定手段、
前記決定された出力順位に従って、前記検索されたテキストを前記検索されたカテゴリ毎に出力する出力手段、として機能させる、
ことを特徴とするテキスト検索プログラム。
(付記5)
検索キーワードを取得する取得ステップと、
検索対象となる文書に記載された文字若しくは文字列と、前記文字若しくは前記文字列が前記文書において出現する出現位置と、前記文字若しくは前記文字列で構成されるテキストと、当該テキストが表す内容に応じて分類されたカテゴリと、前記カテゴリに分類されたテキストの出力順位を決定する決定方法と、を対応付けて複数記憶する記憶手段から、前記取得された検索キーワードを構成する文字若しくは文字列に対応付けられた出現位置とテキストとカテゴリと決定方法とを検索する検索ステップと、
前記検索された出現位置を前記検索された決定方法に用いることで、前記検索されたテキストの出力順位を決定する決定ステップと、
前記決定された出力順位に従って、前記検索されたテキストを前記検索されたカテゴリ毎に出力する出力ステップと、を有する、
ことを特徴とするテキスト検索方法。