(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）ディスプレイを備えても良い。スピーカ１００ｊは、ＣＰＵ１００ａから出力された信号に基づいて音声を出力する。
【００１６】
ここで、ユーザが、辞書データを記録した記録媒体を購入し、図２に示したメディアコントローラ１００ｅへ当該記録媒体を挿入すると、ＣＰＵ１００ａは、メディアコントローラ１００ｅから所定の信号を入力される。次に、ＣＰＵ１００ａは、メディアコントローラ１００ｅから辞書データを取得すると、辞書データをハードディスク１００ｄに保存する。その後、ＣＰＵ１００ａは、辞書データで表される辞書を検索キーワードに基づいて検索するために用いられるデータ及び電子ファイルを生成する、図３に示すようなデータ等生成処理を実行する。これにより、ＣＰＵ１００ａは、図４に示すような生成部１２０として機能する。また、ＣＰＵ１００ａは、図２に示したハードディスク１００ｄと協働することで、情報記憶部１１０として機能する。
【００１７】
図３に示したデータ等生成処理を開始すると、生成部１２０は、情報記憶部１１０に記憶された辞書コンテンツを表す辞書データを読み出す（ステップＳ０１）。ここで、辞書データは、図５（ａ）に示すように、見出語を表すテキスト（以下、見出語テキストという）が分類されたカテゴリ（以下、見出部という）ＣＥと、見出語の解説を表すテキスト（以下、解説テキストという）及び、例えば、成句や複合語など（以下、イディオムという）といった見出語の用例を表すテキスト（以下、用例テキストという）で構成される本文テキストが分類されたカテゴリ（以下、本文部という）ＣＢと、で構成される。解説テキストは、当該テキストで表される内容が解説であることを表す解説タグに囲まれており、用例テキストは、当該テキストで表される内容が用例であることを表す用例タグに囲まれている。
【００１８】
複数の見出部ＣＥは、それぞれの見出部ＣＥに分類されたテキストで表される見出語に基づいてアルファベット順に並べられており、それぞれの見出語が分類された見出部ＣＥの直後に、それぞれの見出語を説明する本文テキストが分類された本文部ＣＢが並べられている。また、見出部ＣＥは、見出部ＣＥを識別する見出語番号が予め割り当てられている。さらに、辞書データには、見出語番号を表す情報と、当該見出語番号で識別される見出部ＣＥが格納された情報記憶部１１０における記憶領域の先頭アドレスを表す情報と、当該見出部ＣＥの直後に格納された本文部ＣＢの先頭アドレスを表す情報と、が対応付けられた情報が複数含まれる。
【００１９】
本文部ＣＢにおける複数の解説テキストの並び順は、電子辞書の編集者が定めた並び順に従っている。具体例としては、見出語のより一般的な意味内容を解説する解説テキストの方が、見出語のより特殊な意味内容を解説する解説テキストよりも先の位置に格納されているとしても良いし、若しくは、より使用頻度の高い意味内容を解説する解説テキストの方が、より使用頻度の低い意味内容を解説する解説テキストよりも先の位置に格納されているとしても良い。
【００２０】
ここで、本文部ＣＢには、解説テキストと用例テキストとが混在しているので、生成部１２０は、これらのテキストを内容に応じて分類分けをする。このため、生成部１２０は、辞書データに含まれる見出語番号を表す情報と、見出部ＣＥの先頭アドレスを表す情報と、本文部ＣＢの先頭アドレスを表す情報と、を用いて、辞書データから見出語テキストと本文テキストとを複数抽出する。また、生成部１２０は、抽出された見出語テキスト毎に、見出語テキストで表される見出語を解説する解説テキストを本文テキストから解説タグに基づいて複数抽出し、かつ見出語の用例を表す用例テキストを用例タグに基づいて本文テキストから複数抽出する。
【００２１】
その後、生成部１２０は、図５（ｂ）に示すように、抽出された見出語テキスト毎に、抽出された複数の解説テキストの本来の並び順を変更せずに配置を変更することで、抽出された複数の解説テキストが分類されるカテゴリ（以下、解説部という）ＣＣを生成する。同様に、生成部１２０は、抽出された見出語テキスト毎に、抽出された複数の用例テキストの本来の並び順を変更せずに配置を変更することで、抽出された複数の用例テキストが分類されるカテゴリ（以下、用例部という）ＣＸと、を生成する。
【００２２】
このようにして生成された見出部ＣＥと、解説部ＣＣと、用例部ＣＸと、を対応付けた複数のデータで構成されるデータを、再配置コンテンツテキストデータ（若しくは再配置ＣＤＴ）と称する。次に、生成部１２０は、再配置コンテンツテキストデータを情報記憶部１１０へ保存する（図３に示すステップＳ０２）。
【００２３】
その後、生成部１２０は、再配置コンテンツテキストデータで表される辞書を識別する辞書番号を生成する。次に、生成部１２０は、図６に示す辞書テーブルへ、生成された辞書番号を表す情報と、辞書の名称を表す情報と、再配置コンテンツテキストデータが格納された情報記憶部１１０の記憶領域の先頭アドレスを表す情報と、を対応付けた情報を保存する。尚、辞書テーブルは、情報記憶部１１０が記憶している。
【００２４】
その後、生成部１２０は、再配置コンテンツテキストデータで表されるテキスト（つまり、見出部ＣＥ、解説部ＣＣ、及び用例部ＣＸのそれぞれに分類されたテキスト）の先頭から１文字ずつずらしながら１文字を切り出すことで、モノグラム文字列パタンを抽出する。また、同様に、生成部１２０は、再配置コンテンツテキストデータで表されるテキストの先頭から１文字ずつずらしながら２文字を切り出すことで、バイグラム文字列パタンを抽出する。以下、モノグラム文字列パタンとバイグラム文字列パタンとを、Ｎグラム文字列パタンと総称する。尚、本実施形態では、文字は文字列に含まれるとし、特別に区別する記載がある場合を除き、文字と文字列とを区別しない。
【００２５】
次に、生成部１２０は、各Ｎグラム文字列パタンについて、Ｎグラム文字列パタンが再配置コンテンツテキストデータで表されるテキスト（以下、再配置テキストという）に出現する位置（以下、出現位置という）を１又は複数特定する。その後、生成部１２０は、Ｎグラム文字列パタン毎に、再配置テキストにおけるＮグラム文字列パタンの出現頻度を算出する。ここで、出現頻度は、例えば、再配置テキストにＮグラム文字列パタンが現われる総回数であるとして説明するが、これに限定される訳ではない。
【００２６】
次に、生成部１２０は、Ｎグラム文字列パタン毎に、Ｎグラム文字列パタンが出現する出現位置を示すアドレス（以下、出現位置アドレスという）を表す１又は複数の情報と、当該Ｎグラム文字列パタンの出現頻度を表す情報と、を対応付けた出現位置情報を生成する。
【００２７】
次に、生成部１２０は、図７に示すような、出現位置情報を１又は複数含む電子ファイル（以下、出現位置情報ファイル若しくはＡＰファイルという）を生成し、当該出現位置情報ファイルに対して「position.idx」という名称を付けて情報記憶部１１０へ保存する（図３に示すステップＳ０３）。尚、出現位置情報ファイルに保存された出現位置情報は、先頭アドレスから出現頻度用の所定バイト数までの領域に出現頻度を表す情報が格納され、当該領域の直後から出現位置用の所定バイト数毎に出現位置アドレスを表す情報が格納される。
【００２８】
次に、生成部１２０は、Ｎグラム文字列パタンを表す情報（以下、Ｎグラム文字列パタン情報という）と、当該Ｎグラム文字列パタンの出現位置情報が格納された情報記憶部１１０の記憶領域の先頭アドレス（以下、出現位置情報格納アドレスという）を表す情報と、を対応付けた情報を複数含む電子ファイル（以下、Ｎグラム文字列パタンファイル若しくはＳファイルという）を生成する。その後、生成部１２０は、図７に示すような「pattern.idx」という名称をＮグラム文字列パタンファイルに付けて情報記憶部１１０へ保存する（ステップＳ０４）。
【００２９】
その後、生成部１２０は、見出語毎に、見出語の用例を表す用例テキストが分類された用例部ＣＸの先頭アドレスと、当該用例テキストの先頭アドレスと、の差分（以下、用例部開始位置からの差分という）を、用例部ＣＸに分類された用例テキストの個数（以下、用例個数という）だけ算出する。次に、生成部１２０は、見出語毎に、１又は複数の用例部開始位置からの差分を表す情報で構成される用例開始位置情報を生成し、生成された用例開始位置情報を複数含む電子ファイル（以下、用例開始位置情報ファイル若しくはＥＰファイルという）を生成する。その後、生成部１２０は、図７に示すような「example.idx」という名称を当該用例開始位置情報ファイルに付けて情報記憶部１１０へ保存する（図３に示すステップＳ０５）。尚、ＥＰファイルに保存された用例開始位置情報は、用例部開始位置からの差分を表す情報が、先頭アドレスから当該差分用の所定バイト数までの領域に格納され、当該領域の直後から所定バイト数毎に他の差分を表す情報が格納される。
【００３０】
次に、生成部１２０は、見出語テキストが分類された見出部ＣＥを識別する見出番号と、当該見出部ＣＥの格納された情報記憶部１１０の記憶領域の先頭アドレス（以下、見出部ＣＥの開始位置を表すアドレスという）を表す情報と、当該見出語テキストで表される見出語を解説する解説テキストが分類された解説部ＣＣの先頭アドレス（以下、解説部ＣＣの開始位置を表すアドレスという）を表す情報と、当該見出語の用例を表す用例テキストが分類された用例部ＣＸの先頭アドレス（以下、用例部ＣＸの開始位置を表すアドレスという）を表す情報と、当該用例部ＣＸの用例個数を表す情報と、当該用例部ＣＸの用例部開始位置情報が情報記憶部１１０に格納された領域の先頭位置を表すアドレス（以下、用例部開始位置情報格納アドレスという）を表す情報と、当該見出語を掲載した辞書の辞書番号を表す情報と、を対応付けた情報を複数含む電子ファイル（以下、見出等ファイル若しくはＴファイルという）を生成する。その後、生成部１２０は、図７に示すような「number.idx」という名称を見出等ファイルに付けて情報記憶部１１０へ保存した後に（図３に示すステップＳ０６）、データ等生成処理の実行を終了する。
【００３１】
次に、ユーザが、辞書の検索に用いる検索キーワードと、検索キーワードに基づいた検索を指示する検索指示と、を入力するためにキーボード１００ｉを操作すると、ＣＰＵ１００ａは、当該操作に応じた信号若しくは情報をキーボード１００ｉから入力される。次に、ＣＰＵ１００ａは、図８に示すテキスト検索処理を実行することで、図４に示すような取得部１３０、検索部１４０、算出部１５０、決定部１６０、及び出力部１７０として機能する。また、ＣＰＵ１００ａは、図２に示したビデオカード１００ｇ及びＬＣＤ１００ｈと協働して表示部１８０として機能する。
【００３２】
図８に示すテキスト検索処理の実行が開始されると、図４に示す取得部１３０は、１又は複数の検索キーワードを取得した後に（ステップＳ１１）、検索指示を取得する。
【００３３】
以降、検索指示が取得されるまでに、１つの検索キーワード「while」が取得された場合を例に挙げて説明を行う。
【００３４】
ステップＳ１１の後に、検索部１４０は、取得された検索キーワード「while」からＮグラム文字列パタンを生成し、生成したＮグラム文字列パタンを検索パタンとする（ステップＳ１２）。検索キーワードが１文字で構成される場合には、検索部１４０は、モノグラム文字列パタンを検索パタンとして生成するが、ここでは、検索キーワード「while」が１文字以上の文字で構成されるため、バイグラム文字列パタン「wh」、「hi」、「il」、及び「le」を検索パタンとして生成する。
【００３５】
次に、検索部１４０は、検索パタン毎に、図３に示したステップＳ０３及びステップＳ０４でそれぞれ生成されたＡＰファイル（つまり、出現位置情報ファイル）及びＳファイル（つまり、Ｎグラム文字列パタンファイル）から、検索パタンの出現頻度を検索する（図８に示すステップＳ１３）。具体的には、検索部１４０は、図７に示したファイル名が「pattern.idx」のＮグラム文字列パタンファイルから、ステップＳ１２で生成された検索パタンを表す情報に対応付けられた出現位置情報格納アドレスを表す情報を検索する。その後、検索部１４０は、図７に示したファイル名が「position.idx」の出現位置情報ファイルから、検索された情報で表される出現位置情報格納アドレスが指し示す位置を開始位置として、情報記憶部１１０に格納された出現位置情報を取得する。次に、検索部１４０は、取得した出現位置情報の先頭アドレスから上記出現頻度用の所定バイト数までの領域に格納された出現頻度を表す情報を抽出する。
【００３６】
その後、検索部１４０は、ステップＳ１２で生成された検索パタン「wh」、「hi」、「il」、及び「le」の内で、最少の出現頻度に対応付けられた検索パタンを特定する（図８に示すステップＳ１４）。出現頻度が最も少ない検索パタンに基づいて辞書から検索キーワードを検索すれば、出現頻度がより多い検索パタンに基づいて辞書を検索するよりもテキスト検索処理が短時間で終了するためである。ここでは、「il」の出現頻度が最も少ないとして説明を行う。
【００３７】
その後、検索部１４０は、ステップＳ１１で取得された検索キーワードが「while」１つであると判別し（ステップＳ１５；Ｙｅｓ）、当該検索キーワードを基準文字列とする（ステップＳ１６）。次に、検索部１４０は、単一の文字列「while」に基づいて電子辞書を検索する、図９に示すような単一文字列検索処理を実行した後に（図８に示すステップＳ１７）、テキスト検索処理の実行を終了する。
【００３８】
図９に示す単一文字列検索処理の実行が開始されると、検索部１４０は、検索に用いられる基準文字列「while」が１文字ではないと判別する（ステップＳ３１；Ｎｏ）。次に、検索部１４０は、検索パタン毎に、それぞれの出現位置情報における出現頻度を表す情報が格納された領域の直後から上記出現位置用の所定バイト数までの読み込みを繰り返すことで、検索パタンの出現位置を複数検索する。
【００３９】
その後、検索部１４０は、図８に示したステップＳ１４で特定された最少出現頻度の検索パタン「il」の１又は複数の出現位置の内で、未だ注目していない出現位置に注目する（ステップＳ３２）。テキスト検索処理に要する時間を短縮するためである。次に、検索部１４０は、注目した出現位置を注目出現位置とし、注目出現位置に出現する検索パタンを注目検索パタンとする。
【００４０】
その後、検索部１４０は、情報記憶部１１０が予め記憶する所定範囲を表す情報を取得する。次に、検索部１４０は、基準文字列を構成する注目検索パタン「il」以外の検索パタン「wh」、「hi」、及び「le」の１又は複数の出現位置の内で、注目出現位置から所定範囲までの出現位置をそれぞれ特定し、特定された出現位置をそれぞれ特定出現位置とする（ステップＳ３３）。
【００４１】
次に、検索部１４０は、検索パタン「wh」の特定出現位置と、検索パタン「hi」の特定出現位置と、注目検索パタン「il」の注目出現位置と、検索パタン「le」の特定出現位置と、の連続性を評価する（ステップＳ３４）。具体的には、検索部１４０は、各検索パタンについて、基準文字列（つまり、検索キーワード）における検索パタンから注目検索パタンまでの文字数と、当該検索パタンの特定出現位置から当該注目検索パタンの注目出現位置までの文字数と、がそれぞれ同一か否かを判別する。次に、検索部１４０は、全ての検索パタンについて、検索パタンから注目検索パタンまでの文字数と、特定出現位置から注目出現位置までの文字数と、が一致する場合に連続性ありと判別する。これに対して、検索部１４０は、検索パタンから注目検索パタンまでの文字数と、特定出現位置から注目出現位置までの文字数と、のいずれか１つ以上が相違する場合に連続性なしと判別する。
【００４２】
検索部１４０は、連続性の評価結果が連続性なしであると判別し（ステップＳ３５；Ｎｏ）、最少出現頻度の検索パタン「il」の出現位置の全てについて注目したか否かを判別する（ステップＳ３６）。このとき、検索部１４０は、最少出現頻度の検索パタン「il」の出現位置の全てについて注目した訳ではないと判別し（ステップＳ３６；Ｎｏ）、ステップＳ３２から上記処理を繰り返す。尚、検索部１４０は、最少出現頻度の検索パタン「il」の出現位置の全てについて注目したと判別すると（ステップＳ３６；Ｙｅｓ）、ステップＳ４３の処理を実行する。
【００４３】
その後、ステップＳ３２からステップＳ３４の処理が実行された後に、ステップＳ３５において、検索部１４０は、連続性の評価結果が連続性ありであると判別する（ステップＳ３５；Ｙｅｓ）。次に、検索部１４０は、基準文字列「while」を構成する検索パタンの内で、先頭の検索パタン「wh」の特定出現位置を、基準文字列「while」が再配置テキストにおいて出現する出現位置と特定し、特定された出現位置を基準文字列「while」の特定出現位置とする（ステップＳ３７）。
【００４４】
尚、ステップＳ３１において、検索部１４０は、検索に用いられる基準文字列が１文字であると判別すると（ステップＳ３１；Ｙｅｓ）、図８に示したステップＳ１２で生成された検索パタン（つまり、モノグラム文字列パタン）の１又は複数の出現位置の内で、未だ注目対象としていない出現位置に注目する（図９に示すステップＳ３８）。次に、検索部１４０は、注目された出現位置を基準文字列の特定出現位置とする（ステップＳ３９）。
【００４５】
ステップＳ３７（若しくはステップＳ３９）の後に、検索部１４０は、図７に示したファイル名が「number.idx」の見出等ファイル（つまり、Ｔファイル）及びファイル名が「example.idx」の用例開始位置情報ファイル（つまり、ＥＰファイル）と、基準文字列「while」の特定出現位置と、に基づいて、特定出現位置にあるテキスト（以下、特定テキストという）が分類されたカテゴリ（つまり、見出部ＣＥ、解説部ＣＣ、及び用例部ＣＸのいずれか）等を特定する（ステップＳ４０）。
【００４６】
具体的には、検索部１４０は、基準文字列「while」の特定出現位置を表すアドレス以前のアドレスが指し示す位置から開始する見出部ＣＥであって、開始位置を指し示すアドレスが最大の見出部ＣＥを特定する。その後、検索部１４０は、特定された見出部ＣＥを特定見出部とする。
【００４７】
次に、検索部１４０は、ファイル名が「number.idx」の見出等ファイルから、当該特定見出部の開始位置を指し示すアドレスを表す情報、当該特定見出部に分類された見出語テキストが表す見出語を解説する解説テキストが分類された解説部（以下、当該特定見出部に対応する解説部という）ＣＣの開始位置を指し示すアドレスを表す情報、当該特定見出部に対応する用例部ＣＸの開始位置を指し示すアドレスを表す情報、当該特定見出部に対応する用例開始位置情報格納アドレスを表す情報、当該見出語を掲載した辞書を識別する辞書番号を表す情報、及び当該特定見出部を識別する見出番号を表す情報を検索する。
【００４８】
次に、検索部１４０は、基準文字列「while」の特定出現位置を指し示すアドレスが、検索された情報で表される特定見出部の開始位置を指し示すアドレス以上、かつ特定見出部に対応する解説部ＣＣの開始位置を指し示すアドレス未満である場合に、特定テキストは、特定見出部というカテゴリに分類されていると特定する。同様に、検索部１４０は、基準文字列「while」の特定出現位置を指し示すアドレスが、解説部ＣＣの開始位置を指し示すアドレス以上、かつ特定見出部に対応する用例部ＣＸの開始位置を指し示すアドレス未満である場合に、特定テキストは、解説部ＣＣというカテゴリに分類されていると特定する。また同様に、検索部１４０は、基準文字列「while」の特定出現位置を表すアドレスが、用例部ＣＸの開始位置を指し示すアドレス以上である場合に、特定テキストは、用例部ＣＸというカテゴリに分類されていると特定する。
【００４９】
次に、検索部１４０は、図１０に示す決定方法テーブルから、検索キーワードが「単一」（つまり、１個）であることを表す情報と、特定テキストが分類されたカテゴリを表す情報と、に対応付けられた特定テキストの表示順位を決定する決定方法（以下、順位決定方法という）を表す情報を検索する。尚、決定方法テーブルは、情報記憶部１１０に予め記憶されている。次に、図４に示した算出部１５０は、検索された情報で表される順位決定方法を用いて、表示順序の決定に用いられる特定テキストの評価値を算出する（ステップＳ４１）。この評価値は、値が小さい程ユーザがより所望するテキストである可能性が高いことを表す。
【００５０】
具体例としては、特定テキストが分類されたカテゴリ（以下、特定カテゴリという）が見出部ＣＥである場合には、検索部１４０は、図１０に示す決定方法テーブルから、検索キーワードが「単一」であることを表す情報と、特定カテゴリ「見出部」を表す情報と、に対応付けられた順位決定方法「数式１」を表す情報を検索する。
【００５１】
次に、算出部１５０は、特定テキストの文字数を算出し、算出された文字数を特定見出部の文字数とする。また、算出部１５０は、基準文字列「while」の文字数を算出する。次に、特定見出部の文字数と基準文字列「while」の文字数とを、以下の数式（１）に用いて特定テキストの評価値を算出する。
【００５２】
【数１】
0005737079.tif 000002
【００５３】
数式（１）で算出される評価値は、基準文字列「while」と特定見出部の文字列（つまり、見出テキスト）とが完全に一致する場合に最小の値となり、特定見出部の見出テキストに基準文字列「while」以外の文字が多く含まれる程大きい値となる。これは、通常、ユーザは、検索キーワードである基準文字列「while」と完全一致する見出テキストの表示を所望することが多いからである。また、通常、ユーザは、検索キーワード以外の文字を多く含む見出テキストよりも検索キーワード以外の文字を少なく含む見出テキストの表示を所望することが多いからである。
【００５４】
また、例えば、特定カテゴリが解説部ＣＣである場合には、検索部１４０は、図１０に示す決定方法テーブルから、検索キーワードが「単一」であることを表す情報と、特定カテゴリ「解説部」を表す情報と、に対応付けられた順位決定方法「数式２」を表す情報を検索する。
【００５５】
次に、算出部１５０は、基準文字列「while」の特定出現位置と、図９に示したステップＳ４０で検索された情報で表される位置であって、特定見出部に対応する解説部ＣＣの開始位置と、を以下の数式（２）に用いることで、特定テキストの評価値を算出する。
【００５６】
【数２】
0005737079.tif 000003
【００５７】
数式（２）で算出される評価値は、基準文字列「while」の特定出現位置が、解説部ＣＣの開始位置に近い程小さい値となる。例えば、基準文字列「while」をそれぞれ含む複数の解説テキストが同じ解説部ＣＣに分類されている場合には、解説部ＣＣにおいて先の位置に格納された解説テキストの評価値程小さい値となる。図５（ｂ）に示した再配置コンテンツテキストデータの解説部ＣＣに分類された解説テキストは、例えば、見出語の一般的な意味内容若しくは見出語の使用頻度の高い意味内容を解説する解説テキスト程先の位置に格納されており、通常、ユーザは、一般的な解説を行う若しくは使用頻度の高いテキストの表示を所望することが多いためである。つまり、解説部ＣＣにおいて先の位置に格納された解説テキスト程ユーザが所望するテキストである可能性が高いと考えられるためである。
【００５８】
さらに、例えば、特定カテゴリが用例部ＣＸである場合には、検索部１４０は、図１０に示す決定方法テーブルから、検索キーワードが「単一」であることを表す情報と、特定カテゴリ「用例部」を表す情報と、に対応付けられた順位決定方法「数式３」を表す情報を検索する。
【００５９】
次に、検索部１４０は、用例部ＣＸの開始位置と、基準文字列「while」の特定出現位置と、の差分を算出する。その後、検索部１４０は、ステップＳ４０で検索された情報で表される用例開始位置情報格納アドレスに基づいて、図７に示したファイル名が「example.idx」のＥＰファイル（つまり、用例開始位置情報ファイル）から用例開始位置情報を検索する。その後、検索部１４０は、用例開始位置情報に含まれる用例部開始位置からの差分を表す情報の内で、算出された用例部ＣＸの開始位置と基準文字列「while」の特定出現位置との差分以下であり、かつ最大の差分を検索する。次に、検索部１４０は、検索した差分を表す情報が用例開始位置情報において何番目の情報であるかを上記差分用の所定バイト数に基づいて特定し、特定した番号を用例番号とする。
【００６０】
その後、算出部１５０は、検索された情報で表される差分を、特定見出部に対応した用例部ＣＸの開始位置に加算することで、特定した用例番号の用例テキストの開始位置を算出する。次に、算出部１５０は、算出された用例テキストの開始位置と、基準文字列「while」の特定出現位置と、を以下の数式（３）に用いて特定テキストの評価値を算出する。
【００６１】
【数３】
0005737079.tif 000004
【００６２】
数式（３）で算出される評価値は、基準文字列「while」の特定出現位置が、用例テキストの開始位置に近い程小さい値となる。例えば、基準文字列「while」をそれぞれ含む複数の解説テキストが同じ用例部ＣＸに分類されている場合には、用例部ＣＸにおける格納位置が先であるか後であるかではなく、用例テキストにおいて基準文字列「while」が使用される位置が先である程評価値が小さい値となる。通常、例えば、検索キーワードである基準文字列「while」の一般的な使用例若しくは使用頻度の高い使用例を表す用例テキスト程先の位置で基準文字列「while」を使用することが多いからである。また、通常、ユーザは、一般的な使用例を表すテキスト若しくは使用頻度の高いテキストの表示を所望することが多いためである。つまり、先の位置に基準文字列「while」が格納された用例テキスト程ユーザが所望するテキストである可能性が高いと考えられるためである。
【００６３】
図９に示したステップＳ４１の後に、検索部１４０は、出現位置の全てについて注目したか否かを判別する（ステップＳ４２）。このとき、検索部１４０は、出現位置の全てについて注目した訳ではないと判別し（ステップＳ４２；Ｎｏ）、ステップＳ３１から上記処理を繰り返す。
【００６４】
その後、検索部１４０は、ステップＳ３１から上記処理を繰り返した後に、ステップＳ４２（若しくはステップＳ３６）において、出現位置の全てについて注目したと判別する（ステップＳ３６；Ｙｅｓ若しくはステップＳ４２；Ｙｅｓ）。その後、図４に示す決定部１６０は、特定テキストが分類されたカテゴリ毎に、ステップＳ４１で算出された特定テキストの評価値に基づき、１又は複数の特定テキストの表示順位を決定する（ステップＳ４３）。本実施形態では、決定部１６０は、特定テキストの評価値が小さい特定テキストの表示順位程、先に表示される順位に決定する。
【００６５】
その後、図４に示す出力部１７０は、カテゴリ毎に、決定された表示順位で１又は複数の特定テキストを表示する、図１１に示すような検索結果表示画面を表す信号を表示部１８０へ出力した後に（図９に示すステップＳ４４）、単一文字列検索処理の実行を終了する。尚、表示部１８０は、出力された信号に基づいて検索結果表示画面を表する。
【００６６】
次に、検索指示が入力されるまでに、３つの検索キーワード「for」、「a」、及び「while」が順に入力された場合を例に挙げて、図８に示したテキスト検索処理について説明を行う。
【００６７】
テキスト検索処理の実行が開始されると、取得部１３０は、検索指示を取得するまでに、３つの検索キーワード「for」、「a」、及び「while」を順に取得する（ステップＳ１１）。次に、検索部１４０は、取得された検索キーワード「for」及び「while」が１文字以上の文字で構成されるため、バイグラム文字列パタンである検索パタン「fo」及び「or」、並びに検索パタン「wh」、「hi」、「il」、及び「le」を生成する。また、検索キーワード「a」が１文字で構成されるため、検索キーワード「a」からモノグラム文字列パタンである検索パタン「a」を生成する（ステップＳ１２）。
【００６８】
次に、検索部１４０は、検索パタン毎に検索パタンの出現頻度を検索する（ステップＳ１３）。その後、検索部１４０は、検索パタン「fo」及び「or」、「wh」、「hi」、「il」、及び「le」、並びに「a」の内で、最少の出現頻度に対応付けられた検索パタンを特定する（ステップＳ１４）。以下、検索パタン「il」の出現頻度が最少であるとして説明を行う。
【００６９】
その後、検索部１４０は、取得されたキーワードが３つであって１つでないと判別すると（ステップＳ１５；Ｎｏ）、最少の出現頻度の検索パタン「il」で構成される検索キーワード「while」を基準文字列とし、基準文字列「while」以外のキーワード「for」及び「a」を検証文字列とする（ステップＳ１８）。検索に要する計算量を削減するためである。
【００７０】
次に、検索部１４０は、複数の文字列「for」、「a」、及び「while」に基づいて電子辞書を検索する、図１２に示すような複数文字列検索処理を実行した後に（ステップＳ１９）、テキスト検索処理の実行を終了する。
【００７１】
図１２に示す複数文字列検索処理の実行が開始されると、基準文字列「while」について、図９に示したステップＳ３１からステップＳ３５と同様の処理が実行される（ステップＳ５１からステップＳ５５）。
【００７２】
ステップＳ５５において、検索部１４０は、連続性の評価結果が連続性なしであると判別し（ステップＳ５５；Ｎｏ）、ステップＳ３６と同様に、最少出現頻度の検索パタンの出現位置の全てについて注目したか否かを判別する（ステップＳ５６）。このとき、検索部１４０は、最少出現頻度の検索パタンの出現位置の全てについて注目した訳ではないと判別し（ステップＳ５６；Ｎｏ）、ステップＳ５２から上記処理を繰り返す。尚、検索部１４０は、最少出現頻度の検索パタンの出現位置の全てについて注目したと判別すると（ステップＳ５６；Ｙｅｓ）、図１３に示すステップＳ７２の処理を実行する。
【００７３】
ステップＳ５２から上記処理が繰り返された後に、ステップＳ５５において、検索部１４０は、連続性の評価結果が連続性ありであると判別し（ステップＳ５５；Ｙｅｓ）、ステップＳ３７と同様の処理を実行する（ステップＳ５７）。
【００７４】
尚、ステップＳ５１において、検索部１４０は、基準文字列が１文字であると判別すると（ステップＳ５１；Ｙｅｓ）、図９に示したステップＳ３８及びステップＳ３９の処理と同様の処理を実行する（ステップＳ５８及びステップＳ５９）。
【００７５】
ステップＳ５７（若しくはステップＳ５９）の後に、検索部１４０は、図９に示したステップＳ４０と同様の処理を実行することで、注目出現位置において基準文字列「while」が出現するテキスト（つまり、特定テキスト）と、当該テキストが分類されたカテゴリ（つまり、特定カテゴリ）などと、を特定する（ステップＳ６０）。その後、検索部１４０は、特定テキストを、複数の検索キーワードでＡＮＤ検索（つまり、複数の検索キーワードの双方を含むテキストを検索）した結果の候補（以下、検索結果候補）とする（ステップＳ６１）。
【００７６】
次に、検索部１４０は、情報記憶部１１０から予め記憶された検索範囲を表す情報を読み出し、基準文字列「while」の特定出現位置から当該情報で表される範囲までを検索範囲とする（ステップＳ６２）。この検索範囲内において全ての検証文字列（つまり、「for」及び「a」の双方）が出現する場合に検索結果候補が検索結果とされる。
【００７７】
その後、検索部１４０は、図８に示したステップＳ１８で決定された検証文字列「for」及び「a」の内で、未だ注目されていない検証文字列「a」に注目する（ステップＳ６３）。次に、検索部１４０は、注目した検証文字列「a」を注目検証文字列とする。
【００７８】
その後、検索部１４０は、注目検証文字列「a」が１文字で構成されると判別し（ステップＳ６４；Ｙｅｓ）、注目検証文字列が１文字で構成される場合に、基準文字列「while」の特定出現位置において同じイディオムを構成する注目検証文字列「a」の出現位置を特定する、図１４に示すような第１注目検証文字列出現位置特定処理を実行する（ステップＳ６５）。
【００７９】
検索部１４０は、第１注目検証文字列出現位置特定処理の実行を開始すると、注目検証文字列「a」におけるモノグラム文字列パタンの出現位置の内で、未注目の出現位置であり、かつ最も先の出現位置に注目し、注目した出現位置を注目出現位置とする（ステップＳ８１）。次に、検索部１４０は、図１２に示したステップＳ６２で画定された検索範囲に注目出現位置が含まれるか否かを判別する（図１４に示すステップＳ８２ａ及びステップＳ８２ｂ）。このとき、検索部１４０は、注目出現位置を指し示すアドレスの値が検索範囲の最小位置を指し示すアドレスの値以上でないと判別する（ステップＳ８２ａ；Ｎｏ）。次に、検索部１４０は、注目検証文字列のモノグラム文字列パタン「a」の出現位置の全てについて注目した訳ではないと判別し（ステップＳ８４；Ｎｏ）、ステップＳ８１から上記処理を繰り返す。
【００８０】
その後、検索部１４０は、ステップＳ８１、ステップＳ８２ａ、及びステップＳ８４を繰り返した後に、全ての出現位置について注目したと判別し（ステップＳ８４；Ｙｅｓ）、注目検証文字列の特定出現位置を特定せずに、第１注目検証文字列出現位置特定処理の実行を終了する。
【００８１】
尚、検索部１４０は、注目出現位置を表すアドレスの値が検索範囲の最小位置を指し示すアドレスの値以上であると判別すると（ステップＳ８２ｂ；Ｙｅｓ）、注目出現位置を指し示すアドレスの値が検索範囲の最大位置を指し示すアドレスの値以下であるか否かを判別する（ステップＳ８２ｂ）。このとき、検索部１４０は、注目出現位置を指し示すアドレスの値が検索範囲の最大位置を表すアドレスの値より大きいと判別すると（ステップＳ８２ｂ；Ｎｏ）、検索範囲に含まれる出現位置が無いと判別し、注目検証文字列「a」の特定出現位置を特定せずに、第１注目検証文字列出現位置特定処理の実行を終了する。ステップＳ８１において、先の出現位置から順に注目するためである。
【００８２】
図１３に示したステップＳ６５の後に、検索部１４０は、第１注目検証文字列出現位置特定処理の実行によって、注目検証文字列「a」の特定出現位置が特定されなかった（つまり、基本文字列「while」が検索されたが、基本文字列「while」の特定出現位置を基準とした検索範囲に「a」が発見されなかった）と判別する（ステップＳ６７；Ｎｏ）。その後、検索部１４０は、基準文字列「while」の最小出現頻度の検索パタン「il」の全出現位置について注目した訳ではないと判別し（ステップＳ７１；Ｎｏ）、図１２に示すステップＳ５１から上記処理を繰り返す。
【００８３】
その後、検索部１４０は、最少出現頻度の検索パタン「il」の他の出現位置に注目して上記処理を繰り返した後に、図１４に示した第１注目検証文字列出現位置特定処理を再度実行する（図１３に示すステップＳ６５）。
【００８４】
第１注目検証文字列出現位置特定処理を開始すると、検索部１４０は、注目検証文字列「a」から生成された検索パタン「a」の未注目の出現位置であって、かつ最も先の出現位置に注目し、注目した出現位置を注目出現位置とする（ステップＳ８１）。次に、検索部１４０は、検索範囲に注目出現位置が含まれると判別する（ステップＳ８２ａ；Ｙｅｓ及びステップＳ８２ｂ；Ｙｅｓ）。その後、検索部１４０は、注目出現位置を、基準文字列「while」の特定出現位置において同じイディオムを構成する注目検証文字列「a」の出現位置と特定する。また、検索部１４０は、当該特定された出現位置を注目検証文字列「a」の特定出現位置とした後に（ステップＳ８３）、第１注目検証文字列出現位置特定処理の実行を終了する。
【００８５】
図１３に示すステップＳ６７において、検索部１４０は、第１注目検証文字列出現位置特定処理の実行によって、注目検証文字列「a」の特定出現位置が特定された（つまり、基本文字列「while」の特定出現位置を基準とした検索範囲に「a」が発見された）と判別する（ステップＳ６７；Ｙｅｓ）。
【００８６】
次に、検索部１４０は、全ての検証文字列に注目した訳ではないと判別し（ステップＳ６８；Ｎｏ）、ステップＳ６３から上記処理を繰り返す。
【００８７】
その後、検索部１４０は、検証文字列「for」及び「a」の内で、未だ注目されていない検証文字列「for」に注目し、当該検証文字列「for」を注目検証文字列とする（ステップＳ６３）。
【００８８】
その後、検索部１４０は、注目検証文字列「for」が１文字で構成されるのでないと判別し（ステップＳ６４；Ｎｏ）、注目検証文字列が複数の文字で構成される場合に、基準文字列「while」の特定出現位置において同じイディオムを構成する注目検証文字列「for」の出現位置を特定する、図１５に示すような第２注目検証文字列出現位置特定処理を実行する（ステップＳ６６）。
【００８９】
検索部１４０は、第２注目検証文字列出現位置特定処理の実行を開始すると、図８に示したステップＳ１４において取得された各検索パタンの出現頻度に基づいて、注目検証文字列「for」から生成された検索パタンの内で、最も出現頻度が低い検索パタンを特定する。本実施形態においては、検索パタン「fo」の出現頻度が最も低いとして説明する。次に、検索部１４０は、最少出現頻度の検索パタン「fo」の１又は複数の出現位置の内で、未だ注目対象としていない出現位置であって、かつ最も先の出現位置に注目する。次に、検索部１４０は、注目した出現位置を注目出現位置とし、注目出現位置に出現する検索パタンを注目検索パタンとする（ステップＳ９１）。
【００９０】
その後、検索部１４０は、図１４に示したステップＳ８２ａ及びステップＳ８２ｂと同様に、注目出現位置を指し示すアドレスの値が、検索範囲の最小位置を指し示すアドレスの値以上であり、かつ検索範囲の最大位置を指し示すアドレスの値以下であるか（つまり、検索範囲に注目出現位置が含まれるか）否かを判別する（ステップＳ９２ａ及びステップＳ９２ｂ）。このとき、検索部１４０は、注目出現位置を指し示すアドレスの値が検索範囲の最小位置を指し示すアドレスの値以上でないと判別した後に（ステップＳ９２ａ；Ｎｏ）、注目検証文字列「for」のバイグラム文字列パタン「fo」の出現位置の全てについて注目した訳ではないと判別し（ステップＳ９７；Ｎｏ）、ステップＳ９１から上記処理を繰り返す。
【００９１】
尚、検索部１４０は、注目出現位置を表すアドレスの値が検索範囲の最小位置を指し示すアドレスの値以上であると判別すると（ステップＳ９２ｂ；Ｙｅｓ）、注目出現位置を指し示すアドレスの値が検索範囲の最大位置を指し示すアドレスの値以下であるか否かを判別する（ステップＳ９２ｂ）。ここで、検索部１４０は、注目出現位置を指し示すアドレスの値が検索範囲の最大位置を表すアドレスの値より大きいと判別すると（ステップＳ９２ｂ；Ｎｏ）、検索範囲に含まれる出現位置が無いと判別し、注目検証文字列「for」の特定出現位置を特定せずに、第２注目検証文字列出現位置特定処理の実行を終了する。ステップＳ９１において、先の出現位置から順に注目するためである。
【００９２】
検索部１４０は、ステップＳ９１、ステップＳ９２ａ、及びステップＳ９２ｂを繰り返した後に、検索範囲に注目出現位置が含まれると判別し（ステップＳ９２ａ；ＹｅｓかつステップＳ９２ｂ；Ｙｅｓ）、検索部１４０は、注目検証文字列「for」を構成する他の検索パタン「or」の１又は複数の出現位置の内で、注目出現位置から所定範囲までの出現位置を特定し、特定された出現位置を特定出現位置とする（ステップＳ９３）。
【００９３】
次に、検索部１４０は、検索パタン「fo」の特定出現位置と、注目検索パタン「or」の注目出現位置と、の連続性を、図９に示したステップＳ３４と同様の方法で評価する（ステップＳ９４）。このとき、検索部１４０は、連続性の評価結果が連続性なしであると判別した後に（ステップＳ９５；Ｎｏ）、最少出現頻度の検索パタン「fo」の出現位置の全てについて注目したと判別する（ステップＳ９７）。その後、検索部１４０は、注目検証文字列「for」の特定出現位置を特定せずに、第２注目検証文字列出現位置特定処理の実行を終了する。
【００９４】
図１３に示したステップＳ６５の後に、検索部１４０は、第２注目検証文字列出現位置特定処理の実行によって、注目検証文字列「for」の特定出現位置が特定されなかったと判別する（ステップＳ６７；Ｎｏ）。その後、検索部１４０は、基準文字列「while」の最小出現頻度の検索パタン「il」の全出現位置について注目した訳ではないと判別し（ステップＳ７１；Ｎｏ）、図１２に示すステップＳ５１から上記処理を繰り返す。
【００９５】
その後、検索部１４０は、最少出現頻度の検索パタン「il」の他の出現位置に注目して上記処理を繰り返すことで、基準文字列「while」の特定出現位置、及び検証文字列「a」の特定出現位置を特定し直した後に（ステップＳ６５）、検証文字列「for」を注目検証文字列とし、図１５に示した第２注目検証文字列出現位置特定処理を再度実行する（図１３に示すステップＳ６６）。
【００９６】
第２注目検証文字列出現位置特定処理を開始すると、検索部１４０は、ステップＳ９１からステップＳ９４の処理を実行した後に、連続性の評価結果が連続性ありであると判別する（ステップＳ９５；Ｙｅｓ）。次に、検索部１４０は、注目検証文字列「for」を構成する検索パタンの内で、先頭の検索パタン「fo」の特定出現位置を、注目検証文字列「for」の特定出現位置とした後に（ステップＳ９６）、第２注目検証文字列出現位置特定処理の実行を終了する。
【００９７】
図１３に示したステップＳ６６の後に、検索部１４０は、第２注目検証文字列出現位置特定処理の実行によって、注目検証文字列の特定出現位置が特定されたと判別すると（ステップＳ６７；Ｙｅｓ）、全ての検証文字列に注目したと判別する（ステップＳ６８；Ｙｅｓ）。
【００９８】
その後、検索部１４０は、図１２に示したステップＳ６１で特定された検索結果候補を、基準文字列「while」と、検証文字列「for」及び「a」とを用いたＡＮＤ検索の検索結果とする（ステップＳ６９）。その後、図９に示したステップＳ４１と同様の処理により、検索結果とされた特定テキストの評価値を算出する（ステップＳ７０）。
【００９９】
具体例としては、特定テキストの特定カテゴリが見出部ＣＥである場合には、検索部１４０は、図１０に示す決定方法テーブルから、検索キーワードが「複数」であることを表す情報と、特定カテゴリ「見出部」を表す情報と、に対応付けられた順位決定方法「数式４」を表す情報を検索する。
【０１００】
次に、算出部１５０は、基準文字列「while」、１番目の検証文字列「for」、及び２番目の検証文字列「a」の文字数「5」、「3」、及び「1」を算出する。次に、算出部１５０は、基準文字列「while」、１番目の基準文字列「for」、及び２番目の基準文字列「a」文字数及び特定出現位置を、以下の数式（４）に用いることで、特定テキストの評価値を算出する。
【０１０１】
【数４】
0005737079.tif 000005
【０１０２】
ここで、数式（４）で算出される基準文字列とｋ番目の検証文字列との距離について、基準文字列「while」と１番目の検証文字列「for」との距離を具体例として挙げて説明を行う。図１６（ａ）に示すように、基準文字列「while」の特定出現位置が、１番目の検証文字列「for」の特定出現位置よりも先である場合には、基準文字列「while」と１番目の検証文字列「for」との距離は、基準文字列「while」の先頭から検証文字列の末尾までの距離を表す。これに対して、図１６（ｂ）に示すように、基準文字列「while」の特定出現位置が、１番目の検証文字列「for」の特定出現位置よりも後である場合には、基準文字列「while」と１番目の検証文字列「for」との距離は、検証文字列「for」の先頭から基準文字列「while」の末尾まで距離を表す。
【０１０３】
次に、数式（４）で算出される上限値ｍａｘＰｏｓ及び下限値ｍｉｎＰｏｓ並びにこれらを用いて算出される検索キーワード間距離（入力順を考慮しない場合）について、基準文字列「while」と１番目の検証文字列「for」と２番目の検証文字列「a」とを具体例として挙げて説明を行う。図１７に示すように、上限値ｍａｘＰｏｓ及び下限値ｍｉｎＰｏｓは、基準文字列と、基準文字列「while」との距離を最小とする１番目の検証文字列「for」と、基準文字列「while」との距離を最小とする２番目の検証文字列「a」と、基準文字列「while」、１番目の検証文字列「for」、及び２番目の検証文字列「a」の全てを含む最小の範囲（以下、最小包含範囲という）の下限値及び上限値である。また、検索キーワード間距離（入力順を考慮しない場合）は、当該下限値ｍｉｎＰｏｓと上限値ｍａｘＰｏｓとの差異である。
【０１０４】
このため、数式（４）で算出される評価値は、最小包含範囲に含まれる文字列が、入力された検索キーワードのみである場合に最小値となる。また、検索キーワードの全てがより狭い最小包含範囲に含まれている程（つまり、検索キーワードのいずれかの使用が開始される位置が、全ての検索キーワードの使用が終了される位置により近い程）算出される評価値が小さい値となる。例えば、入力された複数の検索キーワードが「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」というテキストの評価値よりも小さい値となる。つまり、通常、ユーザは、検索キーワードのみで構成されるイディオムの使用例を表す用例テキストの表示を所望することが多いからであり、かつ検索キーワード以外の文字列を多く含む用例テキストよりも検索キーワード以外の文字を少なく含む用例テキストの表示を所望するからである。また、入力された複数の検索キーワードの間に文字が多く使用されている用例テキスト程、入力された複数の検索キーワードで構成されるイディオムとは異なるイディオムの使用例を表すことが多いためである。
【０１０５】
また、特定テキストの特定カテゴリが解説部ＣＣである場合には、検索部１４０は、図１０に示す決定方法テーブルから、検索キーワードが「複数」であることを表す情報と、特定カテゴリ「解説部」を表す情報と、に対応付けられた順位決定方法「数式５」を表す情報を検索する。
【０１０６】
次に、算出部１５０は、数式（４）を用いて評価値を算出する場合と同様に、検索キーワード間距離及び下限値ｍｉｎＰｏｓを算出する。また、算出部１５０は、数式（２）を用いて評価値を算出する場合と同様に、特定見出部に対応する解説部ＣＣの開始位置を算出する。その後、算出部１５０は、検索キーワード間距離及び下限値ｍｉｎＰｏｓと解説部ＣＣの開始位置とを、以下の数式（５）に用いて特定テキストの評価値を算出する。
【０１０７】
【数５】
0005737079.tif 000006
【０１０８】
数式（５）で算出される評価値は、検索キーワード間距離（入力順を考慮しない場合）が同じ解説テキストであれば、検索キーワードを包含する最小包含範囲の下限値ｍｉｎＰｏｓが解説部ＣＣの開始位置に近い程小さい値となる。また、数式（５）で算出される評価値は、下限値ｍｉｎＰｏｓと解説部ＣＣの開始位置との距離が同じ解説テキストであれば、検索キーワード間距離（入力順を考慮しない場合）が短い程小さい値となる。
【０１０９】
次に、特定テキストの特定カテゴリが用例部ＣＸである場合には、図１０に示す決定方法テーブルから、検索部１４０は、検索キーワードが「複数」であることを表す情報と、特定カテゴリ「用例部」を表す情報と、に対応付けられた順位決定方法「数式６」を表す情報を検索する。
【０１１０】
次に、算出部１５０は、数式（４）を用いて評価値を算出する場合と同様に、検索キーワード間距離及び下限値ｍｉｎＰｏｓを算出し、数式（３）を用いて評価値を算出する場合と同様に、用例テキストの開始位置を算出する。その後、算出部１５０は、検索キーワード間距離及び下限値ｍｉｎＰｏｓと用例テキストの開始位置とを、以下の数式（６）に用いて特定テキストの評価値を算出する。
【０１１１】
【数６】
0005737079.tif 000007
【０１１２】
数式（６）で算出される評価値は、同じ並び順の複数の検索キーワードの検索キーワード間距離（入力順を考慮しない場合）が同じであれば、下限値ｍｉｎＰｏｓが用例テキストの開始位置に近い程小さい値となり、下限値ｍｉｎＰｏｓと用例テキストの開始位置との距離が同じ解説テキストであれば、検索キーワード間距離（入力順を考慮しない場合）が短い程小さい値となる。
【０１１３】
図１３に示したステップＳ７０を実行した後に、検索部１４０は、基準文字列「while」から生成された最小出現頻度「il」の検索パタンの全出現位置について注目した訳ではないと判別し（ステップＳ７１；Ｎｏ）、図１２に示すステップＳ５１に戻った後に、他の出現位置に注目して上記処理を繰り返す。
【０１１４】
その後、図１２に示すステップＳ５６、若しくは、図１３に示すステップＳ７１において、検索部１４０は、全出現位置について注目したと判別すると（ステップＳ５６；Ｙｅｓ若しくはステップＳ７１；Ｙｅｓ）、図９に示すステップＳ４３及びステップＳ４４と同様の処理を順に実行した後に（ステップＳ７２及びステップＳ７３）、複数文字列検索処理の実行を終了する。
【０１１５】
次に、検索指示が入力されるまでに、２つの検索キーワード「while」及び「*ing」が入力された場合を例に挙げて、図８に示したテキスト検索処理について再度説明を行う。尚、「*ing」は、文字列「ing」の直前に何かの文字が存在する文字列を表し、「*」は特殊文字の１つであり、ワイルドカード記号と称される。
【０１１６】
テキスト検索処理の実行が開始されると、ステップＳ１１の処理が実行される。次に、検索部１４０は、取得された検索キーワード「*ing」に特殊文字「*」が含まれると判別し、検索キーワード「*ing」から特殊文字「*」を削除する。その後、検索部１４０は、「while」及び「ing」から検索パタン「wh」、「hi」、「il」、及び「le」、並びに「in」及び「ng」を生成する（ステップＳ１２）。次に、ステップＳ１２からステップＳ１８の処理が実行されることで、「while」が基準文字列とされ、「*ing」が検証文字列とされる。その後、図１２に示す複数文字列検索処理が実行されてから（ステップＳ１９）、テキスト検索処理の実行が終了される。
【０１１７】
図１２に示す複数文字列検索処理が開始されると、ステップＳ５１からステップＳ６６の処理が実行される。ステップＳ６６で、図１５に示すような第２注目検証文字列出現位置特定処理が開始されると、ステップＳ９１からステップＳ９３の処理が実行される。これにより、注目検証文字列「*ing」の検索パタン「in」及び「ng」の内で、「ng」が注目検索パタンとされる。
【０１１８】
その後、検索部１４０は、特殊文字「*」の直後に位置する検索パタンが「in」であることを特定した後に、検索パタン「in」の特定出現位置の直前に何らかの文字が存在するか否か判別する。このとき、検索部１４０は、検索パタン「in」の特定出現位置の直前に何ら文字が存在しないと判別すると、連続性なしと評価する。
【０１１９】
これに対して、検索部１４０は、連続性ありと評価すると、注目検証文字列「*ing」の注目検索パタン「ng」の注目出現位置と、他の検索パタン「in」の特定出現位置と、の連続性を、図９のステップＳ３４と同様の方法で再評価する（ステップＳ９４）。その後、ステップＳ９５からステップＳ９７の処理が実行された後に、第２注目検証文字列出現位置特定処理の実行が終了される。
【０１２０】
図１３に示したステップＳ６６の後に、ステップＳ６７からステップＳ７３の処理が実行された後に、複数文字列検索処理の実行が終了される。尚、図４に示した表示部１８０は、ステップＳ７３において、検索キーワード「while」及び「*ing」に基づいてＡＮＤ検索された複数の用例テキストであって、ステップＳ７０で算出された評価値に基づいて決定された表示順位が１位から１０位まで用例テキストを、図１８に示すように表示順位に従って表示する。
【０１２１】
ここで、例えば、電子辞書若しくは電子辞典の解説部ＣＣでは、テキストが表す意味内容に従って解説テキストが並べられている。例えば、見出語の一般的な意味を解説するテキストの後に特別な意味を解説するテキストや特定の分野で用いられる意味を解説するテキストが並べられている。また、見出語の用例部ＣＸに分類される用例テキストは、例えば、あるキーワードの一般的な使用例若しくは使用頻度の高い使用例を表す用例テキスト程、先の位置で当該キーワードを使用することが多い。また、ユーザは、一般的な使用例若しくは使用頻度の高い使用例を表すテキストの表示を所望することが多いため、先の位置にキーワードが格納された用例テキスト程、当該キーワードを入力したユーザが所望するテキストである可能性が高いと考えられる。
【０１２２】
よって、これらの構成によれば、検索キーワードを構成する文字若しくは文字列に対応付けられた出現位置とテキストとカテゴリと決定方法とを検索し、検索された決定方法で決定された出力順位に従って検索されたテキストを出力する。このため、複数のカテゴリにそれぞれ記載されたテキストを検索キーワードに基づいて検索した結果をそれぞれのカテゴリに応じた方法で並び替えて出力できる。また、出力順位は、検索された出現位置を用いて決定されるので、検索されたテキストは当該テキストに応じて決定される順番に従って出力される。このため、検索されたテキストの数が増加しても、ユーザが所望する内容のテキストが見つけ難くなり難い。
【０１２３】
また例えば、複数の検索キーワードがイディオムを構成している場合、同じテキストを構成する複数の検索キーワード間距離が短いほど、当該テキストは、ユーザが所望するテキストであると考えられる。通常、イディオムを構成するワードは連続して使用され、複数の検索キーワードを入力したユーザは、イディオムとして使用された複数の検索キーワードが含まれるテキストの表示を所望するためである。よって、これらの構成によれば、検索キーワード間の距離を用いて決定された順番に従ってテキストを出力するので、検索されたテキストの数が増加しても、ユーザが所望する内容のテキストが見つけ難くなり難い。
【０１２４】
＜変形例１＞
変形例１では、検索キーワードの入力順に応じたテキストの検索結果を表示するテキスト検索装置１００について説明を行う。
【０１２５】
変形例１のテキスト検索装置１００は、図８に示したテキスト検索処理の代わりに、図１９に示すようなテキスト検索処理を実行する。以下、検索指示が入力されるまでに、２つの検索キーワード「while」及び「*ing」が入力された場合を例に挙げて説明を行う。
【０１２６】
図１９に示すテキスト検索処理が開始されると、図４に示す取得部１３０は、２つの検索キーワード「while」及び「*ing」を取得した後に、検索指示を取得する（ステップＳ１１ａ）。
【０１２７】
次に、取得部１３０は、取得したキーワードが１つでないと判別する（ステップＳ１１ｂ；Ｎｏ）。次に、図４に示す決定部１６０は、検索キーワードが英語若しくは日本語の文字列であるか否かを判別する（ステップＳ１１ｃ）。具体例としては、決定部１６０は、検索キーワードを表す文字コードの所定ビットの値に基づいて検索キーワードが何語の文字列であるかを判別しても良い。また、検索部１４０は、検索キーワードが主にアルファベットで構成されている場合に検索キーワードが英語の文字列であると判別し、検索キーワードが主にひらがな、カタカナ、若しくは漢字で構成されている場合に検索キーワードが日本語の文字列であると判別しても良い。
【０１２８】
ステップＳ１１ｃにおいて、決定部１６０は、検索キーワードが英語若しくは日本語の文字列であると判別すると（ステップＳ１１ｃ；Ｙｅｓ）、検索キーワードが英語であるか日本語であるかを判別する。次に、取得部１３０は、検索キーワードが英語の文字列であると判別し、複数の検索キーワードの入力順を考慮して検索結果の表示を行う（以下、入力順考慮有り）と決定する。英語は、複数の単語の語順が異なると、これらの単語で表される意味内容が異なることが多いためである。
【０１２９】
次に、既に説明したステップＳ１２からステップＳ１５の処理が実行される。その後、検索部１４０は、検索キーワードが、「while」及び「*ing」の２つであると判別する（ステップＳ１５；Ｎｏ）。次に、検索部１４０は、ステップＳ１１ｄで入力順序考慮有りと決定されたと判別し（ステップＳ１８ａ；Ｙｅｓ）、最初に入力されたキーワード「while」を基準文字列とし、基準文字列以外のキーワード「*ing」を検証文字列とする（ステップＳ１８ｂ）。最初に入力された基準文字列を基準とし、基準文字列よりも後の位置に入力順に従って検証文字列が出現するか否かを検証するためである。その後、図１２に示した複数文字列検索処理が実行された後に（ステップＳ１９）、テキスト検索処理の実行が終了される。
【０１３０】
図１２に示した複数文字列検索処理が開始されると、既に説明したステップＳ５１からステップＳ６９の処理が実行される。次に、検索部１４０は、ステップＳ６９で検索結果とされた特定テキストの評価値を算出する（ステップＳ７０）。
【０１３１】
具体例としては、特定テキストの特定カテゴリが見出部ＣＥである場合には、上記の数式（４）に用いて特定テキストの評価値を算出する。また、特定テキストの特定カテゴリが解説部ＣＣである場合には、上記の数式（５）に用いて特定テキストの評価値を算出する。
【０１３２】
さらに、特定テキストの特定カテゴリが用例部ＣＸである場合には、検索部１４０は、図１０に示す決定方法テーブルの代わりに、図２０に示す決定方法テーブルから、検索キーワードが「複数」であることを表す情報と、特定カテゴリ「用例部」を表す情報と、図１９に示したステップＳ１１ｄで決定された入力順考慮が「有り」であることを表す情報と、に対応付けられた順位決定方法「数式７」を表す情報を検索する。
【０１３３】
次に、算出部１５０は、数式（４）を用いて評価値を算出する場合と同様に、検索キーワード間距離（入力順を考慮しない場合）及び下限値ｍｉｎＰｏｓを算出し、数式（３）を用いて評価値を算出する場合と同様に、用例テキストの開始位置を算出する。その後、算出部１５０は、検索キーワード間距離（入力順を考慮しない場合）及び下限値ｍｉｎＰｏｓと用例テキストの開始位置とを、以下の数式（７）に用いて特定テキストの評価値を算出する。
【０１３４】
【数７】
0005737079.tif 000008
【０１３５】
数式（７）で用いられるｖａｌＰＥＮＡＬＴＹは、最初に入力された検索キーワードである基準文字列の後に、入力順に検証文字列が並んでいない場合（つまり、上記条件以外の場合）に、検索キーワード間距離（入力順を考慮しない場合）に加算される定数である。尚、ｖａｌＰＥＮＡＬＴＹは正数であって、当該数を表す情報は、情報記憶部１１０に予め記憶されている。
【０１３６】
また、数式（７）で算出される評価値は、数式（６）で算出される評価値と同様に、同じ並び順の複数の検索キーワードの検索キーワード間距離（入力順を考慮する場合）が同じであれば、下限値ｍｉｎＰｏｓが用例テキストの開始位置に近い程小さい値となり、下限値ｍｉｎＰｏｓと用例テキストの開始位置との距離が同じ解説テキストであれば、検索キーワード間距離（入力順を考慮する場合）が短い程小さい値となる。
【０１３７】
図１３に示したステップＳ７０の後に、ステップＳ７１からステップＳ７３の処理が実行されてから、複数文字列検索処理の実行が終了される。尚、図４に示した表示部１８０は、ステップＳ７３において、ステップＳ７０で算出された評価値に基づいて決定された表示順位が１位から１０位まで用例テキストを、図２１に示すように表示順位に従って表示する。
【０１３８】
図２１に示す用例テキストは、図１８に示した用例テキストと同様に、検索キーワード「while」及び「*ing」に相当する文字列を含んでいる。しかし、図１８に示された用例テキストと異なり、図２１に示す用例テキストは、検索キーワードの入力順に使用されている。また、図２１に示す用例テキストに占める、「while *ing」で表されるイディオムを構成するテキストの割合は、図１８に示された用例テキストの割合よりも高い。このため、図１８に示した用例テキストよりも図２０に示す用例テキストの方が、検索キーワード「while」及び「*ing」を順に入力したユーザが所望するテキストである確率が高いと考えられる。通常、複数の検索キーワードを入力するユーザは、入力した順で使用されるイディオムの使用例を検索することが多いためである。
【０１３９】
通常、ユーザは、検索キーワードが入力された順に並んだテキストの表示を所望する。このため、これらの構成によれば、検索された文字若しくは文字列の出現位置の並順が、検索キーワードの入力順に従っている場合に、検索されたテキストの出力順位を先の順位に決定するので、検索されたテキストの数が増加しても、ユーザが所望する内容のテキストが見つけ難くなり難い。
【０１４０】
次に、検索指示が入力されるまでに、２つの日本語の検索キーワードが入力された場合を例に挙げて、図１９に示したテキスト検索処理について再度説明を行う。
【０１４１】
テキスト検索処理の実行が開始されると、ステップＳ１１ａ及びステップＳ１１ｂの処理が実行される。次に、決定部１６０は、検索キーワードの言語が日本語であると判別し（ステップＳ１１ｃ；Ｙｅｓ）、複数の検索キーワードの入力順を考慮せずに検索結果の表示を行う（以下、入力順考慮無し）と決定する。日本語は、英語と異なり、複数の単語の語順が異なっても、これらの単語で表される意味内容が異なることが少ないためである。
【０１４２】
その後、ステップＳ１２からステップＳ１５の処理が実行される。次に、検索部１４０は、ステップＳ１１ｄで「入力順序考慮無し」と決定されたと判別し（ステップＳ１８ａ；Ｎｏ）、入力順序に拘わらず、最少の出現頻度の検索パタンで構成される検索キーワードを基準文字列とし、基準文字列以外のキーワードを検証文字列とする（ステップＳ１８ｃ）。検索に要する計算量を削減するためである。
【０１４３】
次に、検索部１４０は、図１２に示した複数文字列検索処理を実行した後に（ステップＳ１９）、検索処理の実行を終了する。
【０１４４】
図１２に示した複数文字列検索処理の実行が開始されると、ステップＳ５１からステップＳ６９が実行される。その後、算出部１５０は、検索結果とされた特定テキストの評価値を算出する（ステップＳ７０）。
【０１４５】
具体例としては、特定テキストの特定カテゴリが見出部ＣＥである場合には、上記の数式（４）に用いて特定テキストの評価値を算出する。また、特定テキストの特定カテゴリが解説部ＣＣである場合には、上記の数式（５）に用いて特定テキストの評価値を算出する。
【０１４６】
さらに、特定テキストの特定カテゴリが用例部ＣＸである場合には、検索部１４０は、図２０に示す決定方法テーブルから、検索キーワードが「複数」であることを表す情報と、特定カテゴリ「用例部」を表す情報と、図１９に示したステップＳ１１ｄで決定された入力順の考慮が「無し」を表す情報と、に対応付けられた順位決定方法「数式６」を表す情報を検索する。次に、算出部１５０は、上記の数式（６）を用いて特定テキストの評価値を算出する。
【０１４７】
その後、ステップＳ７１からステップＳ７３の処理が実行された後に、複数文字列検索処理の実行が終了される。
【０１４８】
次に、検索指示が入力されるまでに、２つの韓国語の検索キーワードが入力された場合を例に挙げて、図１９に示したテキスト検索処理について再度説明を行う。
【０１４９】
テキスト検索処理の実行が開始されると、ステップＳ１１ａ及びステップＳ１１ｂの処理が実行される。次に、決定部１６０は、検索キーワードの言語が英語でも日本語でもないと判別する（ステップＳ１１ｃ；Ｎｏ）。その後、図４に示す出力部１７０は、検索キーワードの入力順を考慮した表示か、検索キーワードの入力順を考慮しない表示かのいずれかを指定する表示指定の入力を促すメッセージを表示部１８０へ出力し、表示部１８０は当該メッセージを表示する。
【０１５０】
次に、当該メッセージを視認したユーザが表示指定を入力するためにキーボード１００ｉを操作すると、取得部１３０は、キーボード１００ｉから表示指定を取得する。その後、決定部１６０が、表示指定に基づいて入力順考慮を有り若しくは無しに決定する（ステップＳ１１ｅ）。
【０１５１】
その後、ステップＳ１２からステップＳ１９の処理が実行された後に、テキスト検索処理の実行が終了する。
【０１５２】
＜変形例２＞
本実施形態において、図４に示した算出部１５０は、検索キーワード「while」及び「*ing」に基づいて検索された用例テキストの評価値を、上記数式（６）を用いて算出するとして説明した。しかし、これに限定される訳ではなく、算出部１５０は、下記の数式（８）を用いて評価値を算出しても良い。
【０１５３】
つまり、算出部１５０は、数式（４）を用いて評価値を算出する場合と同様に、下限値ｍｉｎＰｏｓと上限値ｍａｘＰｏｓとを算出し、算出された下限値ｍｉｎＰｏｓのアドレスで指し示される位置から上限値ｍａｘＰｏｓのアドレスで指し示される位置までの範囲に存在する単語の数ＥｓｔＣｏｕｎｔを計数する。その後、算出部１５０は、計数した単語の数ＥｓｔＣｏｕｎｔを、以下の数式（８）に用いて特定テキストの評価値を算出する。
【０１５４】
【数８】
0005737079.tif 000009
【０１５５】
この場合、図４に示した表示部１８０は、ステップＳ７３において、ステップＳ７０で算出された評価値に基づいて決定された表示順位が１位から１０位まで用例テキストを、図２２に示すように表示順位に従って表示する。
【０１５６】
図２２に示す用例テキストは、図１８及び図２１にそれぞれ示した用例テキストと同様に、検索キーワード「while」及び「*ing」に相当する文字列を含んでいる。ここで、図２１に示す表示順位１位から１０位までの用例テキストには、「while being」という使用例を表すテキストが５件含まれている。これは、図２１に示す表示順位１位から１０位までの用例テキストが検索キーワード間距離に基づいて表示順位が決定されたテキストであるためである。
【０１５７】
これに対して、図２２に示す表示順位１位から１０位までの用例テキストは、「while」文字列と「ing」との間の単語数ＥｓｔＣｏｕｎｔに基づいて表示順位が決定されたテキストである。このため、表示順位１位から１０位までの用例テキストは、「while maintaining」、「while dining」、「while enjoying」、「while smoking」、「while watching」、「while trying」、「while reading」、及び「while driving」といったそれぞれ異なる使用例を表す。このため、図２１に示した表示順位が１位から１０位の用例テキストよりも図２２に示した表示順位が１位から１０位の用例テキストの方がより異なる使用例を表すため、１位から１０位の用例テキストにユーザが所望するテキストが含まれている確率が高いと考えられる。
【０１５８】
尚、本実施形態、本実施形態の変形例１、及び本実施形態の変形例２において、電子辞書は、電子辞典をも含む。つまり、電子辞書は、国語辞典、英和辞典、和英辞典、及び百科事典であっても良い。また、本実施形態において、本実施形態、本実施形態の変形例１、及び本実施形態の変形例２において、テキスト検索装置１００は、検索キーワードに基づいて辞書を検索するとして説明したが、検索の対象とされる文書は、辞書に限定される訳ではなく、複数のカテゴリに分類されたテキストで構成される文書であれば、どのような文書でも良い。
【０１５９】
検索の対象とされる文書は、例えば、「発明の名称」及び「特許請求の範囲」などのカテゴリにそれぞれ分類されたテキストで構成される特許明細書であっても良い。この場合、テキスト検索装置１００は、「発明の名称」に分類されるテキストの評価値を、検索キーワードが１つの場合に上記の数式（１）を使用して算出し、検索キーワードが２つ以上の場合に上記の数式（４）を使用して算出するとしても良い。またさらに、この場合、テキスト検索装置１００は、「特許請求の範囲」に分類されるテキストの評価値を、検索キーワードが１つの場合に上記の数式（２）を使用して算出し、検索キーワードが２つ以上の場合に上記の数式（５）を使用して算出するとしても良い。通常、先の位置に記載される上位の請求項程メインクレームであることが多く、かつ特許明細書に記載された発明の特別な技術的特徴と発明者が考える事項が記載されていることが多いためである。また、ユーザは、発明の特別な技術的特徴と発明者が考えたメインクレームの表示を所望することが多いためでもある。
【０１６０】
検索の対象とされる文書は、例えば、ある製品が有する機能の名称を表すテキストが分類されるカテゴリ（以下、機能名カテゴリという）と、当該機能を利用するための操作方法を表すテキストが分類されるカテゴリ（以下、操作方法カテゴリという）とを有する説明書であっても良い。この場合、テキスト検索装置１００は、機能名カテゴリに分類されるテキストの評価値を、検索キーワードが１つの場合に上記の数式（１）を使用して算出し、検索キーワードが２つ以上の場合に上記の数式（４）を使用して算出するとしても良い。またさらに、この場合、テキスト検索装置１００は、操作方法カテゴリに分類されるテキストの評価値を、検索キーワードが１つの場合に上記の数式（２）を使用して算出し、検索キーワードが２つ以上の場合に上記の数式（５）を使用して算出するとしても良い。通常、ある機能の操作方法は、当該機能の利用に不可欠な操作方法や最も単純な操作方法を、当該機能の利用に付随的な操作方法を含むものや複雑な操作方法よりも先に記載されていることが多く、かつユーザは、機能の利用に不可欠な操作方法や最も単純な操作方法の表示を所望することが多いためである。
【０１６１】
尚、本実施形態において、検索キーワードの検索方法は、Ｎグラム検索を用いるとして説明したが、検索キーワードの検索方法は、これに限定される訳でない。
【０１６２】
本発明の実施形態、本実施形態の変形例１、及び本実施形態の変形例２とは、それぞれ互いに組み合わせることができる。
【０１６３】
尚、本実施形態、本実施形態の変形例１、若しくは本実施形態の変形例２に係る機能を実現するための構成を予め備えたテキスト検索装置１００として提供できることはもとより、プログラムの適用により、既存のテキスト検索装置を本実施形態、本実施形態の変形例１、若しくは本実施形態の変形例２に係るテキスト検索装置１００として機能させることもできる。すなわち、上記実施形態、上記実施形態の変形例１、若しくは上記実施形態の変形例２で例示したテキスト検索装置１００による各機能構成を実現させるためのテキスト検索プログラムを、既存のテキスト検索装置を制御するコンピュータ（ＣＰＵなど）が実行できるように適用することで、本実施形態、本実施形態の変形例１、若しくは本実施形態の変形例２に係るテキスト検索装置１００として機能させることができる。
【０１６４】
このようなプログラムの配布方法は任意であり、例えば、メモリカード、ＣＤ−ＲＯＭ、又はＤＶＤ−ＲＯＭなどの記録媒体に格納して配布できる他、インタネットなどの通信媒体を介して配布することもできる。
【０１６５】
また、本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。つまり、本発明のいくつかの実施形態を説明したが、上述した実施形態は本発明を説明するためのものであり、本発明の範囲を限定するものではない。本発明の範囲は、実施形態ではなく、特許請求の範囲に記載された発明とその均等の範囲を含む。
以下に本願出願の当初の特許請求の範囲に記載された発明を付記する。
【０１６６】
（付記１）
検索対象となる文書に記載された文字若しくは文字列と、前記文字若しくは前記文字列が前記文書において出現する出現位置と、前記文字若しくは前記文字列で構成されるテキストと、当該テキストが表す内容に応じて分類されたカテゴリと、前記カテゴリに分類されたテキストの出力順位を決定する決定方法と、を対応付けて複数記憶する記憶手段と、
検索キーワードを取得する取得手段と、
前記取得された検索キーワードを構成する文字若しくは文字列に対応付けられた前記出現位置と前記テキストと前記カテゴリと前記決定方法とを検索する検索手段と、
前記検索された出現位置を前記検索された決定方法に用いることで、前記検索されたテキストの出力順位を決定する決定手段と、
前記決定された出力順位に従って、前記検索されたテキストを前記検索されたカテゴリ毎に出力する出力手段と、を備える、
ことを特徴とするテキスト検索装置。
【０１６７】
（付記２）
前記取得手段は、複数の検索キーワードを取得し、
前記検索手段は、前記取得された複数の検索キーワード毎に、前記検索キーワードを構成する文字若しくは文字列に対応付けられた前記出現位置と前記テキストと前記カテゴリと前記決定方法とを検索し、
前記検索された複数の出現位置に基づいて、同じ前記テキストを構成する前記複数の検索キーワード間の距離を算出する算出手段、をさらに備え、
前記決定手段は、前記算出された距離を前記検索された決定方法に用いることで、前記検索されたテキストの出力順位を決定する、
ことを特徴とする付記１に記載のテキスト検索装置。
【０１６８】
（付記３）
前記取得手段は、前記複数の検索キーワードと、前記複数の検索キーワードの入力順と、を取得し、
前記算出手段は、前記複数の検索キーワードに基づいてそれぞれ検索された出現位置の並順が、前記取得された複数の検索キーワードの入力順に従っている場合には、前記出現位置の並順が前記入力順に従っていない場合よりも、前記複数の検索キーワード間の距離を小さく算出し、
前記決定手段は、前記算出された距離が小さい程、前記検索されたテキストの出力順位を先の順位に決定する、
ことを特徴とする付記２に記載のテキスト検索装置。
【０１６９】
（付記４）
コンピュータを、
検索対象となる文書に記載された文字若しくは文字列と、前記文字若しくは前記文字列が前記文書において出現する出現位置と、前記文字若しくは前記文字列で構成されるテキストと、当該テキストが表す内容に応じて分類されたカテゴリと、前記カテゴリに分類されたテキストの出力順位を決定する決定方法と、を対応付けて複数記憶する記憶手段、
検索キーワードを取得する取得手段、
前記取得された検索キーワードを構成する文字若しくは文字列に対応付けられた出現位置とテキストとカテゴリと決定方法とを検索する検索手段、
前記検索された出現位置を前記検索された決定方法に用いることで、前記検索されたテキストの出力順位を決定する決定手段、
前記決定された出力順位に従って、前記検索されたテキストを前記検索されたカテゴリ毎に出力する出力手段、として機能させる、
ことを特徴とするテキスト検索プログラム。
【０１７０】
（付記５）
検索キーワードを取得する取得ステップと、
検索対象となる文書に記載された文字若しくは文字列と、前記文字若しくは前記文字列が前記文書において出現する出現位置と、前記文字若しくは前記文字列で構成されるテキストと、当該テキストが表す内容に応じて分類されたカテゴリと、前記カテゴリに分類されたテキストの出力順位を決定する決定方法と、を対応付けて複数記憶する記憶手段から、前記取得された検索キーワードを構成する文字若しくは文字列に対応付けられた出現位置とテキストとカテゴリと決定方法とを検索する検索ステップと、
前記検索された出現位置を前記検索された決定方法に用いることで、前記検索されたテキストの出力順位を決定する決定ステップと、
前記決定された出力順位に従って、前記検索されたテキストを前記検索されたカテゴリ毎に出力する出力ステップと、を有する、
ことを特徴とするテキスト検索方法。
【符号の説明】
【０１７１】
１００・・・テキスト検索装置、１００ａ・・・ＣＰＵ、１００ｂ・・・ＲＯＭ、１００ｃ・・・ＲＡＭ、１００ｄ・・・ハードディスク、１００ｅ・・・メディアコントローラ、１００ｇ・・・ビデオカード、１００ｈ・・・ＬＣＤ、１００ｉ・・・キーボード、１００ｊ・・・スピーカ、１１０・・・情報記憶部、１２０・・・生成部、１３０・・・取得部、１４０・・・検索部、１５０・・・算出部、１６０・・・決定部、１７０・・・出力部、１８０・・・表示部
【図１】
0005737079.tif 000010
【図２】
0005737079.tif 000011
【図３】
0005737079.tif 000012
【図４】
0005737079.tif 000013
【図５】
0005737079.tif 000014
【図６】
0005737079.tif 000015
【図７】
0005737079.tif 000016
【図８】
0005737079.tif 000017
【図９】
0005737079.tif 000018
【図１０】
0005737079.tif 000019
【図１１】
0005737079.tif 000020
【図１２】
0005737079.tif 000021
【図１３】
0005737079.tif 000022
【図１４】
0005737079.tif 000023
【図１５】
0005737079.tif 000024
【図１６】
0005737079.tif 000025
【図１７】
0005737079.tif 000026
【図１８】
0005737079.tif 000027
【図１９】
0005737079.tif 000028
【図２０】
0005737079.tif 000029
【図２１】
0005737079.tif 000030
【図２２】
0005737079.tif 000031