(57)【要約】【課題】ユーザにとって利便性が高い検索装置、検索方法及びプログラムを提供する。【解決手段】テキスト検索装置１００は、検索対象となる文書に記載された文字等と、当該文字等の出現位置と、を対応付けた転置インデックスを複数記憶する情報記憶部１１０を備える。転置インデックスは、文書中の前方一致検索の対象となるテキストの先頭に先頭マークを挿入した文書について生成されたものである。テキスト検索装置１００の付加部１４１０は、検索に先立って検索キーワードの前後に区切文字を付加する。キー検出部１４３０は、区切文字以外の部分を検索語として、転置インデックスを用いて検索対象となる文書を検索する。そして、決定部１６０が検索結果のヒット部位について、前後に区切文字を含むｎグラムが連続しているかに応じてヒット態様を決定する。算出部１５０が決定部１６０の決定結果に応じて、ヒット部位の表示優先度を算出する。【選択図】図４
2014063306.tif 000002
【特許請求の範囲】
【請求項１】
Ｎグラム文字列パタンとこのＮグラム文字列パタンが検索対象となる文書データに現れる位置情報とを対応付けて記憶しているインデックス記憶手段と、
検索文字列を取得する取得手段と、
前記取得した検索文字列の前後に区切り文字を追加して、この区切り文字が追加された検索文字列の先頭から所定の文字数ずつずらしながらＮグラム文字列パタンを抽出して検索Ｎグラム列を生成する検索Ｎグラム生成手段と、
前記生成された検索Ｎグラム列のうち前記区切り文字を含まないＮグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶手段から読み出して、前記読み出された位置情報に基づいて前記検索文字列が文書データに存在するか否かを判断する検索対象判断手段と、
前記生成された検索Ｎグラム列のうち前記区切り文字を含むＮグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶手段から読み出して、前記検索対象判断手段で文書データに存在すると判断された検索文字列との連続性を判断することで一致状態を判定する一致状態判定手段と、
前記検索文字列が含まれると判断された文書データを、前記判定された一致状態に基づいて決定される優先度にしたがって出力する出力手段と
を備えることを特徴とする検索装置。
【請求項２】
前記一致状態判定手段は、一致状態として完全一致であるか部分一致であるかを判定することを特徴とする請求項１に記載の検索装置。
【請求項３】
前記文書データは複数の項目を有し、前記出力手段は一致状態に基づく優先度を、項目に応じて定められた算出方法により決定することを特徴とする請求項１または２に記載の検索装置。
【請求項４】
前記文書データは、項目として見出語及び見出語の説明情報を含む辞書データであることを特徴とする請求項１〜３の何れか１項に記載の検索装置。
【請求項５】
Ｎグラム文字列パタンとこのＮグラム文字列パタンが検索対象となる文書データに現れる位置情報とを対応付けて記憶しているインデックス記憶装置を有するコンピュータを用いて実行される検索方法であって、
検索文字列を取得する取得ステップと、
前記取得した検索文字列の前後に区切り文字を追加して、この区切り文字が追加された検索文字列の先頭から所定の文字数ずつずらしながらＮグラム文字列パタンを抽出して検索Ｎグラム列を生成する検索Ｎグラム生成ステップと、
前記生成された検索Ｎグラム列のうち前記区切り文字を含まないＮグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶装置から読み出して、前記読み出された位置情報に基づいて前記検索文字列が文書データに存在するか否かを判断する検索対象判断ステップと、
前記生成された検索Ｎグラム列のうち前記区切り文字を含むＮグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶装置から読み出して、前記検索対象判断ステップで文書データに存在すると判断された検索文字列との連続性を判断することで一致状態を判定する一致状態判定ステップと、
前記検索文字列が含まれると判断された文書データを、前記判定された一致状態に基づいて決定される優先度にしたがって出力する出力ステップと
を含むことを特徴とする検索方法。
【請求項６】
コンピュータを、
Ｎグラム文字列パタンとこのＮグラム文字列パタンが検索対象となる文書データに現れる位置情報とを対応付けて記憶しているインデックス記憶手段、
検索文字列を取得する取得手段、
前記取得した検索文字列の前後に区切り文字を追加して、この区切り文字が追加された検索文字列の先頭から所定の文字数ずつずらしながらＮグラム文字列パタンを抽出して検索Ｎグラム列を生成する検索Ｎグラム生成手段、
前記生成された検索Ｎグラム列のうち前記区切り文字を含まないＮグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶手段から読み出して、前記読み出された位置情報に基づいて前記検索文字列が文書データに存在するか否かを判断する検索対象判断手段、
前記生成された検索Ｎグラム列のうち前記区切り文字を含むＮグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶手段から読み出して、前記検索対象判断手段で文書データに存在すると判断された検索文字列との連続性を判断することで一致状態を判定する一致状態判定手段、
前記検索文字列が含まれると判断された文書データを、前記判定された一致状態に基づいて決定される優先度にしたがって出力する出力手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索装置、検索方法及びプログラムに関する。
【背景技術】
【０００２】
大量の検索対象文書から効率よく検索キーワードを含む文書を検索するための機能を持つ検索システムが考案されている。例えば、特許文献１は、検索ヒット部位が複数単語に跨るか否かを検索結果の評価に含む処理（単語と単語の境界を意識した検索）と、含まない処理（任意語検索）とを必要に応じて使い分けることができる。特許文献１の検索システムでは、境界を意識した検索を実行するために、単語と単語の検索用インデックスとしてＮグラムの出現位置情報の他に単語と単語の境界の位置情報を記憶する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−２３１５６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
テキスト検索をするに当って、複数種類の検索結果をそれぞれ活用したい場合がある。例えば、あるキーワードを用いて検索対象の文書を完全一致検索で検索した結果を優先的に利用する一方、前方一致検索の結果も利用したい場合などである。
【０００５】
特許文献１の検索システムでは、複数の検索方法（境界を意識した検索と任意語検索）による検索結果を利用する場合には、ユーザはそれぞれの検索方法を別々に実行する指示操作を実行した上で、検索結果を別々に比較検討して必要な文書を探すこととなる。そのため、検索にあたってユーザの利便性が低いという問題があった。
【０００６】
本発明はこのような事情に鑑みて成されたものであり、ユーザにとって利便性が高い検索装置、検索方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明に係る検索装置は、
Ｎグラム文字列パタンとこのＮグラム文字列パタンが検索対象となる文書データに現れる位置情報とを対応付けて記憶しているインデックス記憶手段と、
検索文字列を取得する取得手段と、
前記取得した検索文字列の前後に区切り文字を追加して、この区切り文字が追加された検索文字列の先頭から所定の文字数ずつずらしながらＮグラム文字列パタンを抽出して検索Ｎグラム列を生成する検索Ｎグラム生成手段と、
前記生成された検索Ｎグラム列のうち前記区切り文字を含まないＮグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶手段から読み出して、前記読み出された位置情報に基づいて前記検索文字列が文書データに存在するか否かを判断する検索対象判断手段と、
前記生成された検索Ｎグラム列のうち前記区切り文字を含むＮグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶手段から読み出して、前記検索対象判断手段で文書データに存在すると判断された検索文字列との連続性を判断することで一致状態を判定する一致状態判定手段と、
前記検索文字列が含まれると判断された文書データを、前記判定された一致状態に基づいて決定される優先度にしたがって出力する出力手段と
を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、ユーザにとって利便性が高い検索装置、検索方法及びプログラムを提供できる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態１に係るテキスト検索装置の一例を示す斜視図である。
【図２】実施形態１に係るテキスト検索装置の一構成例を表すハードウェア構成図である。
【図３】実施形態１に係るテキスト検索装置が実行するデータ等生成処理の一例を表すフローチャートである。
【図４】実施形態１に係るテキスト検索装置が有する機能の一例を表す機能ブロック図である。
【図５】（ａ）は、テキスト検索装置が記憶する辞書データの一例を表す図である。（ｂ）は、テキスト検索装置が記憶する再配置コンテンツテキストデータの一例を表す図である。
【図６】実施形態１に係るテキスト検索装置が表示するテキスト検索の結果表示画面の一例を表す図である。
【図７】実施形態１に係るテキスト検索装置が記憶する辞書テーブルの一例を表す図である。
【図８】実施形態１に係るテキスト検索装置が記憶する転置インデックスを含む電子ファイルの一例を表す図である。
【図９】実施形態１に係るテキスト検索装置が実行するテキスト検索処理の一例を表すフローチャートである。
【図１０】（ａ）は、実施形態１に係るテキスト検索装置が実行するｎグラム抽出処理の概要を示す図である。（ｂ）は、実施形態１に係るテキスト検索装置が実行するｎグラム抽出処理の概要を示す図である。
【図１１】実施形態１に係るテキスト検索装置が実行するキーワード検索処理の一例を表すフローチャートである。
【図１２】実施形態１に係るテキスト検索装置が実行する単一文字列検索処理の一例を表すフローチャートである。
【図１３】実施形態１に係るテキスト検索装置が実行する出現位置取得処理の一例を表すフローチャートである。
【図１４】実施形態１に係るテキスト検索装置が実行するヒット態様決定処理の一例を表すフローチャートである。
【図１５】実施形態１に係るテキスト検索装置が実行する複数文字列検索処理の一例を表すフローチャートである。
【図１６】実施形態１に係るテキスト検索装置が記憶する決定方法テーブルの一例を表す図である。
【図１７】（ａ）は、検証文字列の特定出現位置が基準文字列の特定出現位置以降である場合における検証文字列と基準文字列との距離の一例を表す図である。（ｂ）は、検証文字列の特定出現位置が基準文字列の特定出現位置よりも先である場合における検証文字列と基準文字列との距離の一例を表す図である。
【図１８】検索キーワードの最小包含範囲の最小値と最大値との一例を表す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態に係るテキスト検索装置１００について、添付図面を参照しつつ説明する。
【００１１】
本発明の実施形態に係るテキスト検索装置１００は、図１に示すような電子辞書で構成され、ユーザの操作に応じて検索キーワードを入力するキーボード１００ｉと、検索キーワードに基づいて辞書を検索した検索結果を表示するＬＣＤ（Liquid Crystal Display）１００ｈと、を備える。
【００１２】
テキスト検索装置１００の内部には、図２に示すようなＣＰＵ（Central Processing Unit）１００ａ、ＲＯＭ（Read Only Memory）１００ｂ、ＲＡＭ（Random Access Memory）１００ｃ、ハードディスク１００ｄ、メディアコントローラ１００ｅ、ビデオカード１００ｇ、及びスピーカ１００ｊが内蔵され、図１に示したＬＣＤ１００ｈ及びキーボード１００ｉとバスを介して接続されている。
【００１３】
ＣＰＵ１００ａは、ＲＯＭ１００ｂ若しくはハードディスク１００ｄに保存されたプログラムにより、下記する検索処理のためにテキスト検索装置１００の各部を制御し、また内部処理を実行する。ＲＡＭ１００ｃは、ＣＰＵ１００ａによるプログラムの実行時において、処理対象とするデータを一時的に記憶する等、作業領域として用いられる。
【００１４】
ハードディスク１００ｄは、各種のデータを保存したテーブルと、英和辞書等の辞書データと、を記憶する。尚、テキスト検索装置１００は、ハードディスク１００ｄの代わりに、フラッシュメモリを備えても良い。
【００１５】
メディアコントローラ１００ｅは、フラッシュメモリ、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、及びブルーレイディスク（Blue-ray Disc）（登録商標）を含む記録媒体から各種のデータ及びプログラムを読み出す。
【００１６】
ビデオカード１００ｇは、ＣＰＵ１００ａから出力されたデジタル信号に基づいて画像を描画（つまり、レンダリング）すると共に、描画された画像を表す画像信号を出力する。ＬＣＤ１００ｈは、ビデオカード１００ｇから出力された画像信号に従って画像を表示する。尚、テキスト検索装置１００は、ＬＣＤ１００ｈの代わりに、ＰＤＰ（Plasma Display Panel）若しくはＥＬ（Electroluminescence）ディスプレイを備えても良い。スピーカ１００ｊは、ＣＰＵ１００ａから出力された信号に基づいて音声を出力する。
【００１７】
ユーザが、辞書データを記録した記録媒体を図２に示したメディアコントローラ１００ｅへ当該記録媒体を挿入すると、ＣＰＵ１００ａは、メディアコントローラ１００ｅから辞書データの信号を受信する。ＣＰＵ１００ａは、メディアコントローラ１００ｅから辞書データを取得すると、辞書データをハードディスク１００ｄに保存する。その後、ＣＰＵ１００ａは、辞書データで表される辞書を検索キーワードに基づいて検索するために用いられるデータ及び電子ファイルを生成する、図３に示すようなデータ等生成処理を実行する。これにより、ＣＰＵ１００ａはテキスト検索装置１００のその他の構成要素と協働して、図４に示すような生成部１２０として機能する。図４は、ＣＰＵ１００ａが実行する機能を示す機能ブロック図である。そして、ＣＰＵ１００ａは、テキスト検索装置１００のその他の構成要素、特にハードディスク１００ｄと協働することで、情報記憶部１１０として機能する。
【００１８】
情報記憶部１１０は、本実施形態で検索対象となる辞書データを記憶する。この辞書データは、図５（ａ）に示すように、見出語を表すテキスト（以下、見出語テキストという）と、見出語の解説を表すテキスト（以下、解説テキストという）と、例えば、成句や複合語など（以下、イディオムという）といった見出語の用例を表すテキスト（以下、用例テキストという）と、で構成される。解説テキストと用例テキストとを合わせて本文テキストと言う。言い換えれば、辞書データに含まれるテキストは、見出語を示すテキスト（見出語テキスト）と、見出語を説明するための本文（本文テキスト）と、の２つのカテゴリ（見出語カテゴリ、本文カテゴリ）に分類できる。本文カテゴリに属するテキストは、さらに見出語の解説と、その用例と、の二つ（解説カテゴリ、用例カテゴリ）に分類できる。
また、辞書データのうち、見出語テキストが占める部分を見出部ＣＥ、本文テキストがしめる部分を本文部ＣＢという。
解説テキストは、当該テキストで表される内容が解説であることを表す解説タグに囲まれており、用例テキストは、当該テキストで表される内容が用例であることを表す用例タグに囲まれている。
【００１９】
辞書データは見出部ＣＥと本文部ＣＢとの組を一つの構成単位として、この構成単位が連なって構成されている。各構成単位は、見出部ＣＥに配置された見出語テキストのアルファベット順に並べられている。各構成単位において、見出語テキストを含む見出部ＣＥの直後に、その見出語を説明するための本文テキストを含む本文部ＣＢが配置されている。
また、各見出部ＣＥには、見出部ＣＥを識別する見出語番号が予め割り当てられている。辞書データには、この見出語番号を表す情報と、当該見出語番号で識別される見出部ＣＥが格納された情報記憶部１１０における記憶領域の先頭アドレスを表す情報と、当該見出部ＣＥの直後に格納された本文部ＣＢの先頭アドレスを表す情報と、が対応付けられた情報が、見出語の数だけ含まれる。この構成単位は、一単位の「検索対象となる文書（文字列）」とも言う。この場合、辞書データは検索対象となる文書を複数束ねたデータと表現できる。
【００２０】
本文部ＣＢには、複数の解説テキストが、電子辞書の編集者が定めた並び順に従って配置されている。具体例としては、見出語のより一般的な意味内容を解説する解説テキストの方が、見出語のより特殊な意味内容を解説する解説テキストよりも先の位置に格納されている。あるいは、より使用頻度の高い意味内容を解説する解説テキストの方が、より使用頻度の低い意味内容を解説する解説テキストよりも先の位置に格納されているとしても良い。
【００２１】
本実施形態のテキスト検索装置１００は、ユーザがキーボード１００ｉを用いて検索キーワードを入力して確定操作を実行すると、検索キーワードを含む見出テキスト・解説テキスト・用例テキストを検索し、検索結果をテキスト区分毎に表示する（図６）。この検索処理では、検索キーワードを含む部位をヒット態様（部分一致・前方一致・後方一致又は完全一致）にかかわらず検出し、それぞれのヒット部位を優先度を付けて表示する。検索処理は、辞書データを検索キーワードによって検索するキー検索処理と、キー検索処理の検索ヒット部位が、どのような態様でヒットしたか、そのヒット態様（例えば、完全一致、前方一致、後方一致、部分一致の何れであるか）を決定するための区切検索処理と、が実行される。これにより、処理速度を向上させることが出来る。キー検索処理及び区切検索処理の内容については後述する。
【００２２】
ここで、本実施形態の検索処理に用いる検索用インデックス（転置インデックス）を生成するデータ等生成処理について、図３を参照して説明する。生成部１２０は、辞書データを取得すると図３に示すデータ等生成処理を開始する。
【００２３】
データ等生成処理では、まず生成部１２０が情報記憶部１１０に記憶された辞書コンテンツを表す辞書データを読み出す（ステップＳ１）。
【００２４】
そして、読み出した辞書データから、見出語テキストと本文テキスト（解説テキストと用例テキスト）とを抽出する（ステップＳ２）。具体的に説明する。本文部ＣＢには、解説テキストと用例テキストとが混在しているので、まず生成部１２０は、これらのテキストを内容に応じて分類分けをする。そのために、生成部１２０は、辞書データに含まれる見出語番号を表す情報と、見出部ＣＥの先頭アドレスを表す情報と、本文部ＣＢの先頭アドレスを表す情報と、を用いて、辞書データから見出語テキストと本文テキストとを複数抽出する。
さらに、生成部１２０はステップＳ２で、抽出された見出語テキスト毎に、見出語テキストで表される見出語を解説する解説テキストを本文テキストから解説タグに基づいて複数抽出し、かつ見出語の用例を表す用例テキストを用例タグに基づいて本文テキストから複数抽出する。
【００２５】
そして、インクリメント検索の対象となるカテゴリのテキスト（ここでは見出語）の先頭と末尾に、端部であることを示すマーク（区切文字、ここでは半角スペース）を挿入する（ステップＳ３）。なお、見出語が英語である場合には、単語と単語が半角スペースで区切られている箇所には半角スペースを挿入せず、先頭の半角スペースが無い部分や、単語の末尾がピリオド「．」、カンマ「，」、エクスクラメーションマーク「！」、クエッションマーク「？」等、単語の前後が半角スペースでない部分にのみ半角スペースを挿入する。
【００２６】
その後、生成部１２０は、図５（ｂ）に示すような再配置コンテンツテキストデータ（ＣＴＤ）を生成して保存する（ステップＳ４）。具体的には、見出語テキストに区切文字（ここでは「・」で代用して表示）を抽出した上で、構成単位ごとに抽出された解説テキストの並び順を変更せずにまとめて配置することで、抽出された複数の解説テキストが配置される部位（以下、解説部ＣＣという）を生成する。
同様に、生成部１２０は、構成単位毎に、抽出された複数の用例テキストの並び順を変更せずにまとめて配置することで、抽出された複数の用例テキストが配置された部位（以下、用例部ＣＸという）を生成する。
【００２７】
なお、ここでは見出部ＣＥの前後（たとえば見出語「move」について、mの前とeの後ろ）に区切文字を挿入する例について説明した。区切文字の挿入箇所はこれに限らず、任意に設定可能である。例えば、解説部ＣＣ及び用例部ＣＸに現れる各単語の前後に区切文字を挿入しても良い。あるいは、解説部ＣＣ及び用例部ＣＸに現れるフレーズのうち重要なフレーズの前後にのみ区切文字を挿入するとしても良い。
【００２８】
生成部１２０は、このようにして見出部ＣＥと、解説部ＣＣと、用例部ＣＸと、を対応付けた複数のデータ（再配置コンテンツテキストデータ、若しくは再配置ＣＴＤ）を生成する。そして、生成部１２０は、生成した再配置コンテンツテキストデータを情報記憶部１１０へ保存する（ステップＳ４）。
【００２９】
その後、生成部１２０は、再配置コンテンツテキストデータで表される辞書を識別する辞書番号を生成する。次に、生成部１２０は、図７に示す辞書テーブルへ、生成された辞書番号を表す情報と、辞書の名称を表す情報と、再配置コンテンツテキストデータが格納された情報記憶部１１０の記憶領域の先頭アドレスを表す情報と、を対応付けた情報を情報記憶部１１０に保存する（ステップＳ５）。
【００３０】
その後、生成部１２０は、再配置コンテンツテキストデータで表されるテキスト（つまり、見出部ＣＥ、解説部ＣＣ、及び用例部ＣＸに配置されたテキスト）のそれぞれについて、先頭から１文字ずつずらしながら１文字を切り出すことで、モノグラム文字列パタンを抽出する。また、同様に、生成部１２０は、再配置コンテンツテキストデータで表されるテキストの先頭から１文字ずつずらしながら２文字を切り出すことで、バイグラム文字列パタンを抽出する。以下、モノグラム文字列パタン、バイグラム文字列パタンを、Ｎグラム文字列パタンと総称する。尚、本実施形態では、文字は文字列に含まれるとし、特別に区別する記載がある場合を除き、文字と文字列とを区別しない。
【００３１】
次に、生成部１２０は、各Ｎグラム文字列パタンについて、Ｎグラム文字列パタンが再配置コンテンツテキストデータで表されるテキスト（以下、再配置テキストという）に出現する位置（以下、出現位置という）を１又は複数特定する。その後、生成部１２０は、Ｎグラム文字列パタン毎に、再配置テキストにおけるＮグラム文字列パタンの出現頻度を算出する。ここで、出現頻度は、例えば、再配置テキストにＮグラム文字列パタンが現われる総回数であるとして説明するが、これに限定される訳ではない。
【００３２】
次に、生成部１２０は、Ｎグラム文字列パタン毎に、Ｎグラム文字列パタンが出現する出現位置を示すアドレス（以下、出現位置アドレスという）を表す１又は複数の情報と、当該Ｎグラム文字列パタンの出現頻度を表す情報と、を対応付けた出現位置情報を生成する。
【００３３】
次に、生成部１２０は、出現位置情報を１又は複数含む電子ファイル（以下、出現位置情報ファイル若しくはＡＰファイルという）を生成し、情報記憶部１１０へ保存する（図３のステップＳ６）。
図８では、出現位置情報ファイル（ＡＰファイル）は「position.idx」という名称（ファイル名）で示されている。また、出現位置情報ファイルに保存された出現位置情報は、先頭アドレスから出現頻度用の所定バイト数までの領域に出現頻度を表す情報が格納され、当該領域の直後から出現位置用の所定バイト数毎に出現位置アドレスを表す情報が格納される。
【００３４】
次に、生成部１２０は、Ｎグラムを表す情報（以下、Ｎグラム文字列パタン情報という）と、当該Ｎグラム文字列パタンの出現位置情報が格納された情報記憶部１１０の記憶領域の先頭アドレス（以下、出現位置情報格納アドレスという）を表す情報と、を対応付けた情報を複数含む電子ファイル（以下、Ｎグラム文字列パタンファイル若しくはＳファイルという）を生成する。その後、生成部１２０は、Ｓファイルを情報記憶部１１０へ保存する（ステップＳ７）。
図８では、Ｓファイルは「pattern.idx」という名称（ファイル名）で示されている。
【００３５】
その後、生成部１２０は、見出語毎に、見出語の用例を表す用例テキストが分類された用例部ＣＸの先頭アドレスと、当該用例テキストの先頭アドレスと、の差分（以下、用例部開始位置からの差分という）を、用例部ＣＸに分類された用例テキストの個数（以下、用例個数という）だけ算出する。次に、生成部１２０は、見出語毎に、１又は複数の用例部開始位置からの差分を表す情報で構成される用例開始位置情報を生成し、生成された用例開始位置情報を複数含む電子ファイル（以下、用例開始位置情報ファイル若しくはＥＰファイルという）を生成する。
図８では、ＥＰファイルは「example.idx」という名称（ファイル名）で示されている。
その後、生成部１２０は、用例開始位置情報ファイルを情報記憶部１１０へ保存する（図３に示すステップＳ８）。尚、ＥＰファイルに保存された用例開始位置情報は、用例部開始位置からの差分を表す情報が、先頭アドレスから当該差分用の所定バイト数までの領域に格納され、当該領域の直後から所定バイト数毎に他の差分を表す情報が格納される。
【００３６】
次に、生成部１２０は、見出語テキストを含む見出部ＣＥを識別する見出番号と、当該見出部ＣＥが格納された情報記憶部１１０の記憶領域の先頭アドレス（以下、見出部ＣＥの開始位置を表すアドレスという）を表す情報と、当該見出語テキストで表される見出語を解説する解説テキストが配置された解説部ＣＣの先頭アドレス（以下、解説部ＣＣの開始位置を表すアドレスという）を表す情報と、当該見出語の用例を表す用例テキストが配置された用例部ＣＸの先頭アドレス（以下、用例部ＣＸの開始位置を表すアドレスという）を表す情報と、当該用例部ＣＸの用例個数を表す情報と、当該用例部ＣＸの用例部開始位置情報（ＥＰファイル、図８のexample.idx）が情報記憶部１１０に格納された領域の先頭位置を表すアドレス（以下、用例部開始位置情報格納アドレスという）を表す情報と、当該見出語を掲載した辞書の辞書番号を表す情報と、を対応付けた情報を複数含む電子ファイル（以下、見出等ファイル若しくはＴファイルという）を生成する。
図８では、Ｔファイルは「number.idx」という名称（ファイル名）で示されている。
生成部１２０は、Ｔファイルを情報記憶部１１０へ保存した後に（図３に示すステップＳ９）、データ等生成処理の実行を終了する。
【００３７】
図８（特に「pattern.idx」と「position.idx」）に示すような、文字列（ここではＮグラム）と、文字列の検索対象となる文書における出現位置とを、対応付けて記録した索引構造を転置インデックスと呼ぶ。本実施形態では、データ等生成処理により、所定のカテゴリ（ここでは見出語）のテキストについて、文書の区切り（見出しの前後）に区切りを示す区切り文字（半角スペース）を付した再配置ＣＴＤの転置インデックスを生成する。
【００３８】
転置インデックスを情報記憶部１１０に記憶すると、この転置インデックスを用いて検索処理を実行する準備が整う。この状態で、ユーザが辞書の検索に用いる検索キーワードを入力する操作をキーボード１００ｉを用いて実行すると、ＣＰＵ１００ａがその情報を受け取り、図９に示すテキスト検索処理を実行する。
このテキスト検索処理を実行することにより、ＣＰＵ１００ａは図４に示すような取得部１３０、付加部１４１０と抽出部１４２０とキー検出部１４３０と区切検出部１４４０とを含む検索部１４０、算出部１５０、決定部１６０、及び出力部１７０として機能する。また、ＣＰＵ１００ａは、図２に示したビデオカード１００ｇ及びＬＣＤ１００ｈと協働して表示部１８０として機能する。
【００３９】
ユーザがキーボード１００ｉを用いて検索キーワードを入力すると、ＣＰＵ１００ａが図９に示すテキスト検索処理を開始する。テキスト検索処理では、まず取得部１３０が現在までに入力されたキーワード（検索キーワード）を取得する（ステップＳ１１）。ここでは、確定した検索キーワードが区切り文字（スペース等）を含む場合、その区切り文字で入力された文字を区切って、複数の検索キーワードを取得したとする。
【００４０】
そして、付加部１４１０が、検索キーワードの前後に区切文字（半角スペース）を挿入して、検索文字列とする（ステップＳ１２）。検索キーワードが複数ある場合には、それぞれの検索キーワードに区切文字を挿入する。
【００４１】
さらに、抽出部１４２０が区切文字を挿入した検索文字列からＮグラム（検索パタン）を抽出する（ステップＳ１３）。ステップＳ１３で実行する抽出処理の例を、図１０に示す。例えば入力された検索キーワードが一文字（図１０（ａ）の例では「ｉ」）の場合、検索文字列は区切文字を入れて３文字となる。この場合、Ｎ−ｇｒａｍとしてバイグラム「・ｉ」（・は半角スペースを示す）と、モノグラム「ｉ」と、バイグラム「ｉ・」を抽出する。この３つのＮ−ｇｒａｍが、Ｎグラム文字列パタンとなる。このように先頭と末尾のｎ−ｇｒａｍをバイグラム以上の文字数を持つｎ−ｇｒａｍとすることで、検索文字列のうち検索キーワードの部分（ここではｉ）と区切との位置関係が失われることを防ぐことが出来る。なお、取得した検索キーワードが複数である場合は、各キーワードについてＮグラム文字列パタンを生成する。
【００４２】
一方入力された検索キーワードが２文字以上（図１０（ｂ）の例では「ｍｏｖｅ」の４文字）の場合、抽出されるｎ−ｇｒａｍは全てバイグラム（「・ｍ」、「ｍｏ」、「ｏｖ」、「ｖｅ」及び「ｅ・」）となる。このとき、先頭と末尾の区切文字を含むｎ−ｇｒａｍがバイグラム以上であるという条件で、各ｎ−ｇｒａｍのｎの値（含まれる文字の数）を自由に設定することが出来る。
【００４３】
次に、検索部１４０が検索対象となる辞書データに含まれる複数の文書（見出語と本文のセット）のうち、現在の処理ループで検索対象となる注目文書（一つの見出語とその解説文及び用例）を選択する（ステップＳ１４）。そして検索部１４０が、注目文書を検索キーワードで検索する処理（キーワード検索処理）を開始する（ステップＳ１５）。
【００４４】
ステップＳ１５で実行されるキーワード検索処理を、図１１を参照して説明する。
【００４５】
キーワード検索処理では、キー検出部１４３０が、ステップＳ１３で抽出したＮグラムのうちから、区切文字を含まないキーワード部分のＮグラム（例えば検索文字列が「・move・」の場合にｎグラム「mo」、「ov」及び「ve」）を選択する（ステップＳ１０１）。このとき、検索文字列が複数ある場合には、各検索文字列について同様にキーワード部分のＮグラムを選択する。
【００４６】
そして、各Ｎグラムについて、出現頻度を取得する（ステップＳ１０２）。具体的には、まずキー検出部１４３０がＡＰファイル（つまり、出現位置情報ファイル）及びＳファイル（つまり、Ｎグラム文字列パタンファイル）から、Ｎグラムの出現頻度を検索する。即ち、キー検出部１４３０は、Ｎグラム文字列パタンファイル（図８の「pattern.idx」）から、生成したＮグラムを表す情報に対応付けられた出現位置情報格納アドレスを表す情報を検索する。そして、キー検出部１４３０は、出現位置情報ファイル（図８の「position.idx」）から、検索された情報で表される出現位置情報格納アドレスが指し示す位置を開始位置として、情報記憶部１１０に格納された出現位置情報を取得する。次に、キー検出部１４３０は、取得した出現位置情報の先頭アドレスから上記出現頻度用の所定バイト数までの領域に格納された出現頻度を表す情報を抽出する。
【００４７】
そして、出現頻度が最も少ないＮグラムを特定する（ステップＳ１０３）。このようなＮグラムに基づいて辞書から検索キーワードを検索すれば、出現頻度がより多いＮグラムに基づいて辞書を検索するよりもテキスト検索処理が短時間で終了するためである。ここでは、「mo」の出現頻度が最も少ないとして説明を行う。
【００４８】
その後、キー検出部１４３０は、ステップＳ１２で区切文字を付加した検索文字列が一つであるか、複数であるか判別する（ステップＳ１０４）。検索文字列が一つである場合（ステップＳ１０４；Ｙｅｓ）、その検索文字列を基準文字列（優先度を定めるにあたって基準となる検索文字列）とする（ステップＳ１０５）。そして、単一文字列検索処理を実行する（ステップＳ１０６）。
一方、検索文字列が複数である場合（ステップＳ１０４；Ｎｏ）、ステップＳ１０１で選択したＮグラムのうち、最少の出現頻度のＮグラムを含む検索文字列を基準文字列とし、基準文字列以外の検索文字列を検証文字列とする（ステップＳ１０７）。検索に要する計算量を削減するためである。そして、複数の検索文字列を検索する処理（複数文字列検索処理）を実行する（ステップＳ１０８）。具体的な処理内容については後述する。ステップＳ１０６乃至ステップＳ１０８の検索処理を終えると、図１１のキーワード検索処理は終了する。
【００４９】
ステップＳ１０６で実行される単一文字列検索処理を、図１２を参照して説明する。単一文字列検索処理では、まずキー検出部１４３０が図１１のステップＳ１０１で選択した、基準文字列のＮグラム（区切文字を含まないＮグラム）を取得する（ステップＳ２１）。
【００５０】
そして、基準文字列の再配置ＣＴＤにおける出現位置を全て取得する処理（出現位置取得処理）を実行する（ステップＳ２２）。
【００５１】
ステップＳ２２で実行される出現位置取得処理を、図１３を参照して説明する。出現位置取得処理では、まずキー検出部１４３０が、ステップＳ２１で取得した区切文字を含まないＮグラムが一つであるか判別する（ステップＳ３１）。例えば、入力された検索キーワードが３文字以上である場合など、キーワード部分のＮグラムが一つでない場合は（Ｓ３１；Ｎｏ）、Ｎグラムのうち注目Ｎグラムを選択して、検索対象の文書に現れる位置を選択する（ステップＳ３２）。ここでは、図１２のステップＳ２１で取得したＮグラムのうち、図１１のステップＳ１０３で特定した出現頻度が最も少ないものを注目Ｎグラムとして特定する。ここでは、「ｍｏ」を注目Ｎグラムとする。出現頻度が最も少ないＮグラムに基づいて辞書から検索キーワードを検索することにより、以下に記載するループ処理（図１３のステップＳ３２からステップＳ４２までのループ）が少ない回数で終了するので、より高速に検索処理を実行出来るからである。
【００５２】
ステップＳ３２では、最初には、キー検出部１４３０が注目Ｎグラムの出現位置情報における出現頻度を表す情報が格納された領域の直後から上記出現位置用の所定バイト数を読み込み、注目Ｎグラムの最初の出現位置を注目出現位置として選択する。
【００５３】
そして、キー検出部１４３０は注目Ｎグラム以外のＮグラム（他のＮグラム）の出現位置（特定出現位置）を特定する（ステップＳ３３）。
具体的には、まず情報記憶部１１０が予め記憶する所定範囲を表す情報を取得する。さらに、キー検出部１４３０は、注目Ｎグラム以外のＮグラム（「ov」、「ve」）の出現位置の内で、注目出現位置から所定範囲までの出現位置を、それぞれ特定出現位置とする（ステップＳ３３）。
【００５４】
次に、キー検出部１４３０は、注目出現位置と、他のＮグラムの特定出現位置と、の連続性を評価して（ステップＳ３４）、連続性の有無を判別し（ステップＳ３５）、注目出現位置を含む位置に検索キーワードがあるか判別する。
具体的には、キー検出部１４３０はステップＳ３４で注目Ｎグラムと他のＮグラムについて、検索キーワード（あるいは検索文字列）における相対位置（距離及び前後関係）を取得する。例えば、注目Ｎグラム「mo」は、検索文字列（マーク挿入後）「・move・」において、他のＮグラム「ov」の一文字前にあり、「ve」の２文字前に位置する。相対位置とは、このような「ｎ文字後（前）に位置する」という位置情報である。
ステップＳ３３でＳファイルとＡＰファイルを参照して取得した注目出現位置と特定出現位置を比較して、再配置コンテンツテキストデータ上の注目Ｎグラムと他のＮグラムとの相対位置を取得する。そして、全ての他のＮグラムと注目Ｎグラムの相対位置が、検索キーワードと再配置コンテンツテキストデータとで一致した場合に、連続性があると評価される。一方、何れかの他のＮグラムと注目Ｎグラムの相対位置が、検索キーワードと再配置コンテンツテキストデータとで異なる場合、連続性は無いと評価される。このようにして、注目出現位置における連続性を評価する（ステップＳ３４）。
【００５５】
キー検出部１４３０は、ステップＳ３４における連続性の評価で、連続性ありと評価されたか否か判別する（ステップＳ３５）。連続性なしと評価された場合は（ステップＳ３５；ＮＯ）、その注目出現位置については検索ヒット部位とせず、処理を終了する。そして、注目Ｎグラムの出現位置の全てについて上記処理を実行したか否かを判別する（ステップＳ３６）。
【００５６】
注目Ｎグラムの出現位置の全てについて上記処理済みではないと判別すると（ステップＳ３６；Ｎｏ）、ステップＳ３２に戻り、次の出現位置を選択して上記の処理を繰り返す。
【００５７】
一方、全出現位置について上記処理済みであると判別すると（ステップＳ３６；Ｙｅｓ）、出現位置取得処理を終了する。
【００５８】
一方、連続性があると判別すると（ステップＳ３５；Ｙｅｓ）、ステップＳ２１で抽出した全Ｎグラムのうち先頭にあるＮグラムの特定出現位置を、対象文字列（検索キーワード）の再配置テキストにおける出現位置として特定する（ステップＳ３７）。
【００５９】
一方、ステップＳ３１でＮグラムが一つと判別された場合（ステップＳ３１；Ｙｅｓ）は、その一つのＮグラムを注目ＮグラムとしてステップＳ３２と同様に出現位置を求め、注目出現位置を選択する（ステップＳ３８）。そして、注目出現位置を検索キーワードの再配置テキストにおける出現位置として特定する（ステップＳ３９）。
【００６０】
ステップＳ３７又はステップＳ３９で検索キーワードの出現位置（ヒット部位）を特定すると、区切検出部１４４０及び決定部１６０がそのヒット部位において検索キーワードがどのようにヒットしたか、その態様を判定する処理（ヒット態様決定処理）を実行する（ステップＳ４０）。
【００６１】
ステップＳ４０で実行されるヒット態様決定処理について、図１４を参照して説明する。ヒット態様決定処理では、まず区切検出部１４４０が図９のステップＳ１３で生成したＮグラムのうち、区切文字を含むＮグラムを取得する（ステップＳ２０１）。例えば検索キーワードが「move」である場合には、先頭のｎグラム「・ｍ」と尾部のｎグラム「ｅ・」を取得する。
【００６２】
そして、区切検出部１４４０がＳファイルとＡＰファイルを参照して、ステップＳ２０１で取得したＮグラムの出現位置を取得する（ステップＳ２０２）。この処理は、注目文書１つにつき一度だけ実行されるとしてもよい。
【００６３】
さらに、決定部１６０が図１３のステップＳ３７で特定された検索キーワードの出現位置と、ステップＳ２０２で取得した区切文字を含むｎグラムの出現位置の隣接関係に応じてヒット態様を決定する（ステップＳ２０３）。具体的には、ステップＳ２０１で取得したＮグラムのうち、先頭のｎグラム（「・ｍ」）が検索キーワードの出現位置の直前に存在し、かつ末尾のｎグラム（「ｅ・」）が出現位置の直後に存在する場合には、ヒット態様は「完全一致」であると決定する。一方、先頭のｎグラム（「・ｍ」）が検索キーワードの出現位置の直前に存在するが、末尾のｎグラム（「ｅ・」）が出現位置の直後に存在しない場合は、「前方一致」であると決定する。さらに、先頭のｎグラムが検索キーワードの出現位置の直前に存在せず、末尾のｎグラム（「ｅ・」）が出現位置の直後に存在する場合、「後方一致」であると決定する。先頭のｎグラムも末尾のｎグラムも出現位置の前後に隣接していない場合は、「部分一致」であると決定する。そして、ヒット態様決定処理は終了する。
【００６４】
図１３に戻って、ステップＳ４０でヒット態様を決定すると、検索部１４０は、注目Ｎグラムの出現位置の全てを注目出現位置として上記処理を実行したかしたか否かを判別する（ステップＳ４１）。未処理の出現位置が残っている場合（ステップＳ４１；Ｎｏ）、次の出現位置について処理を繰り返す。このとき、まずステップＳ３１でＮグラムが一つであると判別したか否か判別する（ステップＳ４２）。Ｎグラムが一つであった場合（ステップＳ４２；Ｙｅｓ）、ステップＳ３８に戻る。一方、Ｎグラムが複数であった場合（ステップＳ４２；Ｎｏ）、ステップＳ３２に戻る。
【００６５】
一方、全ての出現位置について上記処理済みであった場合（ステップＳ４１；Ｙｅｓ）、対象文字列の全ての出現位置を特定したので、出現位置取得処理は終了する。
【００６６】
図１２に戻って、出現位置取得処理で基準文字列の注目文書における出現位置を全て取得すると、次に検索部１４０は、注目文書にヒット部位（出現位置）が検出されたか否か判別する（ステップＳ２３）。ヒット部位が検出されなかった場合は（ステップＳ２３；Ｎｏ）、その注目文書についての単一文字列検索処理を終了する。
【００６７】
一方、ヒット部位が検出された場合は（ステップＳ２３；Ｙｅｓ）、ヒット部位毎に図１３ステップＳ４０で決定されたヒット態様に応じてヒット部位の評価値を算出する（ステップＳ２４）。具体的には、まず各出現位置（ヒット部位）が、どの構成単位のどの部位（見出部ＣＥ、解説部ＣＣ、及び用例部ＣＸのいずれか）に含まれるか、特定する。
【００６８】
出現位置が何れの部位に含まれるか特定するために、まず検索部１４０は、検索キーワードについて特定した出現位置を表すアドレス以前のアドレスが指し示す位置から開始する見出部ＣＥであって、開始位置を指し示すアドレスが最大の見出部ＣＥを特定する。特定された見出部ＣＥを特定見出部と呼ぶ。即ち、特定見出部とは、出現位置が属する構成単位の見出部ＣＥである。
【００６９】
次に、検索部１４０は、Ｔファイル（見出等ファイル、図８の「number.idx」）を参照して、特定見出部の開始位置を指し示すアドレスを表す情報、当該特定見出部に分類された見出語テキストが表す見出語を解説する解説テキストが分類された解説部（以下、当該特定見出部に対応する解説部という）ＣＣの開始位置を指し示すアドレスを表す情報、当該特定見出部に対応する用例部ＣＸの開始位置を指し示すアドレスを表す情報、当該特定見出部に対応する用例開始位置情報格納アドレスを表す情報、当該見出語を掲載した辞書を識別する辞書番号を表す情報、及び当該特定見出部を識別する見出番号を表す情報を取得する。これらの情報から、特定見出部を示す識別子（見出番号）と、各部位の位置を特定できる情報を生成する。特定見出部を含む構成単位を特定構成単位と呼ぶ。また、各部位の位置から、特定した出現位置が特定構成単位のどの部位に位置するか定めることができる。この部位を特定部位とする。
【００７０】
ステップＳ２４ではさらに、算出部１５０が図１６に示す決定方法テーブルを参照して、現在の検索条件、各出現位置に対する評価値の決定方法（順位決定方法）を取得する。
例えば、検索キーワードが「単一」（つまり、１個）であり、見出部ＣＥが出現部位である場合については、数式（１）を用いて評価値を算出するという情報を取得する。このとき、その見出部ＣＥに含まれるテキストを特定テキストと呼ぶ。
さらに、算出部１５０は、評価値を算出する方法の情報を取得すると、その情報が示す方法で各出現部位の評価値を算出する（ステップＳ２４）。この評価値の値が小さい程、出力優先度は高い。
【００７１】
本実施形態では、検索キーワードが一つであり、特定部位が見出部ＣＥであった場合の出力優先度（Ｅｓｔｉｄｘｉｄ，０）は、以下の数式（１）を用いて算出する。
【００７２】
【数１】
2014063306.tif 000003
【００７３】
なお、ＮｕｍＳｔｒｈｅａｄｌｉｎ，ｈｄｌｉｄは特定部位（見出部）の文字列の長さであり、ＮｕｍＳｔｒｓｔｄｓｔｒは基準文字列の長さである。ＥｓｔＤｅｔｅｃｔｓｔｄｔｒは基準文字列のヒット態様に応じた評価値であり、以下の数式（２）を用いて算出する。
【００７４】
【数２】
2014063306.tif 000004
【００７５】
なお、ＶａｌＤｅｔｅｃｔはヒット態様に応じて定まる優先度に対するペナルティを示す値であり、より評価値の高い態様でヒットした場合に、より小さい数値になるように設定されている。ここでは、完全一致の場合に０、前方一致の場合に１、後方一致の場合に２、部分一致（中間一致）の場合に３となる。即ち、完全一致が最も評価が高く、前方一致、後方一致、部分一致の順に評価が低くなることを示す。この順序及び具体的な数値は、工場出荷時あるいはユーザの設定によって自由に設定することが出来る。
Ｖａｌ＿ＰＥＮＡＬＴＹ＿ＤＥＴＥＣＴは、ＶａｌＤｅｔｅｃｔの重みであり、工場出荷時の設定又はユーザ操作によって定まる数値である。この数値が大きいほど、評価の低いヒット態様であった場合のペナルティ（優先度の低下）が大きくなる。
【００７６】
数式（１）で算出される評価値は、基準文字列と特定部位（見出部）の文字列（つまり、見出テキスト）とが完全に一致する場合に最小の値となり、特定見出部の見出テキストに基準文字列以外の文字が多く含まれる程大きい値となる。これは、通常、ユーザは、検索キーワードである基準文字列と完全一致する見出テキストの表示を所望することが多いからである。また、通常、ユーザは、検索キーワード以外の文字を多く含む見出テキストよりも検索キーワード以外の文字を少なく含む見出テキストの表示を所望することが多いからである。さらに、数式（１）で算出される評価値は、評価の低いヒット態様であればあるほど大きくなる。これは、ユーザは文字数の比率が同じであっても、評価の低いヒット態様（例えば部分一致）よりも評価の高いヒット態様（例えば前方一致）でヒットした検索結果を優先的に利用することを所望することが多いからである。
【００７７】
また、検索キーワードが一つであり、特定部位が解説部ＣＣであった場合の出力優先度（Ｅｓｔidxid,1）は、以下の数式（３）を用いて算出する。
【００７８】
【数３】
2014063306.tif 000005
【００７９】
なお、Ｐｏｓｓｔｄｓｔｒは検索キーワードの特定した出現位置、ＰｏｓＳｔｉｄｘｉｄ，ｃｏｍｅｎｔａｒｙは、特定見出部に対応する解説部ＣＣの開始位置である。数式（２）で算出される評価値は、基準文字列の特定出現位置が、解説部ＣＣの開始位置に近い程小さい値となる。例えば、基準文字列をそれぞれ含む複数の解説テキストが同じ解説部ＣＣに分類されている場合には、解説部ＣＣにおいて先の位置に格納された解説テキストの評価値程小さい値となる。再配置コンテンツテキストデータの解説部ＣＣに分類された解説テキストは、例えば、見出語の一般的な意味内容若しくは見出語の使用頻度の高い意味内容を解説する解説テキスト程先の位置に格納されており、通常、ユーザは、一般的な解説を行う若しくは使用頻度の高いテキストの表示を所望することが多いためである。つまり、解説部ＣＣにおいて先の位置に格納された解説テキスト程ユーザが所望するテキストである可能性が高いと考えられるためである。このときには、その解説部ＣＣのうち、特定部位を含む解説テキストの特定部位を含む所定の文字数の文字列を特定テキストと呼ぶ。
【００８０】
また、数式（３）では、ＶａｌＤｅｔｅｃｔｓｔｄｔｒを加算している。解説部ＣＣについて区切文字が挿入されていない場合は、本数式（３）のＶａｌＤｅｔｅｃｔｓｔｄｔｒを０として、ヒット態様を考慮に入れない。一方、解説部ＣＣに現れる所定の重要単語に区切文字を挿入した場合などには、ＶａｌＤｅｔｅｃｔｓｔｄｔｒを数式（２）よりも大きく設定する、として、重要単語に対して評価の高い態様でヒット（例えば、重要単語と完全一致するなど）した部位の優先度がそうでない部位よりも高くなるように設定しても良い。
【００８１】
また、検索キーワードが一つであり、特定部位が用例部ＣＸであった場合の出力優先度（Ｅｓｔidxid,2）は、以下の数式（４）を用いて算出する。
【００８２】
【数４】
2014063306.tif 000006
【００８３】
なお、ＰｏｓＳｔｉｄｘｉｄ，ｅｘａｍｐｌｅ，ｅｘｐｉｄは、特定見出部ｉｄｘｉｄに対応する用例部ＣＸにおける、基準文字列を含む用例テキスト（用例番号expidとする）の開始位置である。
なお、検索部１４０は、ＰｏｓＳｔｉｄｘｉｄ，ｅｘａｍｐｌｅ，ｅｘｐｉｄは、次の手順で取得する。
まず、ステップＳ２４で取得した用例開始位置情報格納アドレスに基づいて、図９に示したファイル名が「example.idx」のＥＰファイル（つまり、用例開始位置情報ファイル）から用例開始位置情報を参照して求める。さらに、用例番号用例開始位置情報に含まれる用例部の開始位置からの差分を表す情報の内で、算出された用例部ＣＸの開始位置と、処理対象となる特定出現位置と、の差分以下であり、かつ最大の差分を求める。
次に、検索部１４０は、検索した差分を表す情報が用例開始位置情報において何番目の情報であるかを上記差分用の所定バイト数に基づいて特定し、特定した番号を用例番号とする。
その後、求めた差分を、特定見出部に対応した用例部ＣＸの開始位置に加算することで、特定した用例番号の用例テキストの開始位置（ＰｏｓＳｔｉｄｘｉｄ，ｅｘａｍｐｌｅ，ｅｘｐｉｄ）を算出する。
【００８４】
数式（４）で算出される評価値は、基準文字列の特定出現位置が、用例テキストの開始位置に近い程小さい値となる。例えば、基準文字列をそれぞれ含む複数の解説テキストが同じ用例部ＣＸに分類されている場合には、用例部ＣＸにおける格納位置が先であるか後であるかではなく、用例テキストにおいて基準文字列「while」が使用される位置が先である程評価値が小さい値となる。通常、例えば、検索キーワードである基準文字列「while」の一般的な使用例若しくは使用頻度の高い使用例を表す用例テキスト程先の位置で基準文字列「while」を使用することが多いからである。また、通常、ユーザは、一般的な使用例を表すテキスト若しくは使用頻度の高いテキストの表示を所望することが多いためである。つまり、先の位置に基準文字列「while」が格納された用例テキスト程ユーザが所望するテキストである可能性が高いと考えられるためである。このときには、この用例テキストのうち特定部位を含む所定の長さの文字列を特定テキストと呼ぶ。すなわち、特定テキストとは、検索ヒット部位を含む、検索結果として表示されるべきテキストである。特定テキストは、上記説明に限らず、自由に設定された設定情報に基づき検索結果をふくむテキストから抽出されるとしてもよい。
【００８５】
また、数式（４）では、ＶａｌＤｅｔｅｃｔｓｔｄｔｒを加算している。用例部ＣＸについて区切文字が挿入されていない場合は、本数式（４）のＶａｌＤｅｔｅｃｔｓｔｄｔｒを０として、ヒット態様を考慮に入れない。一方、用例部ＣＸに現れる所定の重要単語に区切文字を挿入した場合などには、ＶａｌＤｅｔｅｃｔｓｔｄｔｒを数式（２）よりも大きく設定する、として、重要単語に対して評価の高い態様でヒット（例えば、重要単語と完全一致するなど）した部位の優先度がそうでない部位よりも高くなるように設定しても良い。
【００８６】
そして、ステップＳ２４で全ての出現位置について評価値を算出すると、単一文字列検索処理は終了する。
【００８７】
次に、ステップＳ１０８で実行される複数文字列検索処理について、図１５を参照して説明する。
【００８８】
複数文字列検索処理では、まずキー検出部１４３０が図１１のステップＳ１０１で選択した、基準文字列のＮグラム（区切文字を含まないＮグラム）を取得する（ステップＳ５１）。
【００８９】
そして、基準文字列の再配置ＣＴＤにおける出現位置を全て取得する処理（出現位置取得処理、図１３）を実行する（ステップＳ５２）。
【００９０】
さらに、図１１のＳ１０７で定めた検証文字列の一つについて、Ｎグラムを取得する（ステップＳ５３）。
【００９１】
そして、検証文字列の再配置ＣＴＤにおける再配置ＣＴＤにおける出現位置を全て取得する処理（出現位置取得処理、図１３）を実行する（ステップＳ５４）。
【００９２】
そして、ある検証文字列の出現位置を全て取得すると、未処理の検証文字列があるか判別する（ステップＳ５５）。未処理の検証文字列が有る場合（ステップＳ５５；Ｎｏ）、次の未処理の検証文字列について、ステップＳ５３から処理を繰り返す。
【００９３】
一方、全ての検証文字列について出現位置を取得している場合（ステップＳ５５；Ｙｅｓ）、次にステップＳ５２で取得した基準文字列の出現位置の一つを、注目出現位置として選択する（ステップＳ５６）。
【００９４】
そして、注目出現位置から所定の範囲に、すべての検証文字列が存在するか、ステップＳ５４で取得した検証文字列の出現位置に基づいて判別する（ステップＳ５７）。ここで、所定の範囲とは、注目出現部位が、ある見出番号の見出部ＣＥに有る場合は、その見出部全体を言う。また、解説部ＣＣに有る場合は、その解説部ＣＣ全体の中で、所定の文字数の範囲を言う。また、用例部ＣＸに有る場合は、その注目出現部位が属する用例テキスト（図５（ｂ）の用例テキスト１１、用例テキスト１２、等のそれぞれ）が占める範囲を言う。
なお、この「所定の範囲」はこれに限らず、自由に設定可能である。また、ユーザ操作等により設定変更することが出来るとしても良い。
【００９５】
注目出現位置から所定の範囲に、すべての検証文字列が存在しない場合（ステップＳ５７；Ｎｏ）、その注目出現部位は複数の検索キーワードに対する検索（ＡＮＤ検索）のヒット部位では無いとの判断のもと、注目出現部位を検索結果から排除する（ステップＳ５８）。
【００９６】
一方、注目出現位置から所定の範囲に、すべての検証文字列が存在する場合（ステップＳ５７；Ｙｅｓ）、注目出現部位を検索ヒット部位とする（ステップＳ５９）。そして、その注目出現部位について評価値を算出する（ステップＳ６０）。
【００９７】
ここで、本処理における評価値の算出方法を説明する。まず、算出部１５０が図１６の決定方法テーブルを参照して、注目出現部位のカテゴリと、検索キーワードの単語数に合致する順位決定方法（算出方法）を取得する。
【００９８】
注目出現部位が見出部ＣＥに位置する場合には、算出部１５０は、図１６に示す決定方法テーブルから、検索キーワードが「複数」であることを表す情報と、特定カテゴリ「見出部」を表す情報と、に対応付けられた順位決定方法「数式５」を表す情報を取得する。
【００９９】
次に、算出部１５０は、基準文字列と、各検証文字列の文字数を取得する。次に、そして、各数値を以下の数式（５）に代入して、注目出現部位の特定テキストの評価値を算出する。
【０１００】
【数５】
2014063306.tif 000007
【０１０１】
ただし、ＥｓｔＤｉｓｔＷｔｉｈｏｕｔＯｒｄｅｒは、検索キーワードの入力順を考慮せずに検索した場合には、対象文字列におけるヒット部位の先頭から末尾までの距離（図１８参照）である。ＥｓｔＤｉｓｔＷｔｉｈｏｕｔＯｒｄｅｒは以下の数式（６）を用いて算出される。
【０１０２】
【数６】
2014063306.tif 000008
【０１０３】
ただし、ｍｉｎＰｏｓは、以下の数式（７）でもとめられるＤｉｓｔｓｔｄｓｔｒ、ｖｆｙｓｔｒｋがすべてのｋ（ｋは検証文字列の数）について最小と成るときの全ての検索文字列を含む範囲の先頭の位置である。
また、ｍａｘＰｏｓは、以下の数式（７）でもとめられるＤｉｓｔｓｔｄｓｔｒ、ｖｆｙｓｔｒｋがすべてのｋ（ｋは検証文字列の数）について最大と成るときの全ての検索文字列を含む範囲の末尾の位置である。
【０１０４】
【数７】
2014063306.tif 000009
【０１０５】
なお、ＮｕｍＳｔｒｓｔｄｓｒｔは基準文字列の文字数、ＮｕｍＳｔｒｖｆｙｓｔｒｋはｋ番目の検証文字列の文字数、Ｐｏｓｓｔｄｓｔｒは基準文字列の出現位置、Ｐｏｓｖｆｙｓｔｒｋはｋ番目の検証文字列の出現位置を示す。
【０１０６】
ここで、数式（７）で算出される基準文字列とｋ番目の検証文字列との距離について、基準文字列を「while」とし、１番目の検証文字列を「for」とした例を用いて説明する。図１７（ａ）に示すように、基準文字列「while」の特定出現位置が、１番目の検証文字列「for」の特定出現位置よりも先である場合には、基準文字列「while」と１番目の検証文字列「for」との距離は、基準文字列「while」の先頭から検証文字列の末尾までの距離を表す。これに対して、図１７（ｂ）に示すように、基準文字列「while」の特定出現位置が、１番目の検証文字列「for」の特定出現位置よりも後である場合には、基準文字列「while」と１番目の検証文字列「for」との距離は、検証文字列「for」の先頭から基準文字列「while」の末尾まで距離を表す。
【０１０７】
次に、数式（６）で算出される上限値ｍａｘＰｏｓ及び下限値ｍｉｎＰｏｓ並びにこれらを用いて算出される検索キーワード間距離（入力順を考慮しない場合）について、基準文字列「while」と１番目の検証文字列「for」と２番目の検証文字列「a」とを具体例として挙げて説明を行う。図１８に示すように、上限値ｍａｘＰｏｓ及び下限値ｍｉｎＰｏｓは、基準文字列と、基準文字列「while」との距離を最小とする１番目の検証文字列「for」と、基準文字列「while」との距離を最小とする２番目の検証文字列「a」と、基準文字列「while」、１番目の検証文字列「for」、及び２番目の検証文字列「a」の全てを含む最小の範囲（以下、最小包含範囲という）の下限値及び上限値である。また、検索キーワード間距離（入力順を考慮しない場合）は、当該下限値ｍｉｎＰｏｓと上限値ｍａｘＰｏｓとの差異である。
【０１０８】
さらに、数式（５）のＥｓｔＤｉｔｅｃｔは複数の検索キーワードのヒット態様の評価値の総合評価値であり、具体的には次の数式（８）で算出される。
【０１０９】
【数８】
2014063306.tif 000010
【０１１０】
なお、Ｍは検索文字列の個数である。ＥｓｔＤｅｔｅｃｔｖｆｙｓｔｒｋはＥｓｔＤｅｔｅｃｔｓｔｄｓｔｒと同様に定義される検証文字列のヒット態様の評価値であり、数式（９）で算出される。
【０１１１】
【数９】
2014063306.tif 000011
【０１１２】
なお、ＶａｌＤｅｔｅｃｔｖｆｙｓｔｒｋは、ｋ番目の検証文字列が前方一致の場合に１、後方一致の場合に２、部分一致（中間一致）の場合に３となる。このとき、数式（９）のＶａｌ＿Ｐｅｎａｌｔｙ＿ＤＥＴＥＣＴを、数式（２）のような基準文字列に対応する数値よりも小さくして、検証文字列のヒット態様の重要度が基準文字列よりも小さくなるようにしてもよい。
【０１１３】
以上のように、数式（５）で算出される評価値は、最小包含範囲に含まれる文字列が、入力された検索キーワードのみである場合に最小値となる。また、検索キーワードの全てがより狭い最小包含範囲に含まれている程（つまり、検索キーワードのいずれかの使用が開始される位置が、全ての検索キーワードの使用が終了される位置により近い程）算出される評価値が小さい値となる。例えば、入力された複数の検索キーワードが「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」というテキストの評価値よりも小さい値となる。つまり、通常、ユーザは、検索キーワードのみで構成されるイディオムの使用例を表す用例テキストの表示を所望することが多いからであり、かつ検索キーワード以外の文字列を多く含む用例テキストよりも検索キーワード以外の文字を少なく含む用例テキストの表示を所望するからである。また、入力された複数の検索キーワードの間に文字が多く使用されている用例テキスト程、入力された複数の検索キーワードで構成されるイディオムとは異なるイディオムの使用例を表すことが多いためである。
【０１１４】
さらに、数式（５）で算出される評価値は、検証文字列と基準文字列のヒット態様が評価の低いヒット態様であればあるほど大きくなる。例えば、検証文字列と基準文字列が何れも評価の低いヒット態様（例えば部分一致）であるよりも、いずれかが評価の高いヒット態様（例えば前方一致）でヒットした場合の方が、優先度は高くなる（評価値は小さくなる）。これにより、よりユーザが所望する内容を含む割合が高いと考えられるような、複数の検索キーワードが合算して評価の高いヒット態様でヒットしている部位を優先的に表示できる。
【０１１５】
また、特定テキストの特定カテゴリが解説部ＣＣである場合には、算出部１５０は、決定方法テーブルから、検索キーワードが「複数」であることを表す情報と、特定カテゴリ「解説部」を表す情報と、に対応付けられた順位決定方法「数式１０」を表す情報を取得する。
【０１１６】
次に、算出部１５０は、数式（５）を用いて評価値を算出する場合と同様に、検索キーワード間距離及び下限値ｍｉｎＰｏｓを算出する。また、算出部１５０は、数式（３）を用いて評価値を算出する場合と同様に、特定見出部に対応する解説部ＣＣの開始位置を算出する。その後、算出部１５０は、検索キーワード間距離及び下限値ｍｉｎＰｏｓと解説部ＣＣの開始位置Ｐｏｓｉｄｘｉｄ，ｃｏｍｅｎｔａｒｙとを、以下の数式（１０）に用いて特定テキストの評価値を算出する。
【０１１７】
【数１０】
2014063306.tif 000012
【０１１８】
数式（１０）で算出される評価値は、検索キーワード間距離（入力順を考慮しない場合）が同じ解説テキストであれば、検索キーワードを包含する最小包含範囲の下限値ｍｉｎＰｏｓが解説部ＣＣの開始位置に近い程小さい値となる。また、数式（６）で算出される評価値は、下限値ｍｉｎＰｏｓと解説部ＣＣの開始位置との距離が同じ解説テキストであれば、検索キーワード間距離（入力順を考慮しない場合）が短い程小さい値となる。ＥｓｔＤｅｔｅｃｔについては、解説部ＣＣに区切文字を挿入しない場合はＶａｌ＿ＰＥＮＡＬＴＹ＿ＤＥＴＥＣＴの値を０とする。解説部ＣＣに区切文字を挿入している場合には、数式（５）と同様の値とする。
【０１１９】
次に、特定テキストの特定カテゴリが用例部ＣＸである場合には、決定方法テーブルから、検索キーワードが「複数」であることを表す情報と、特定カテゴリ「用例部」を表す情報と、に対応付けられた順位決定方法「数式１１」を表す情報を取得する。
【０１２０】
この場合、数式（５）を用いて評価値を算出する場合と同様に、検索キーワード間距離及び下限値ｍｉｎＰｏｓを算出し、数式（１０）を用いて評価値を算出する場合と同様に、用例テキストの開始位置を算出する。その後、算出部１５０は、検索キーワード間距離及び下限値ｍｉｎＰｏｓと用例テキストの開始位置Ｐｏｓｉｄｘｉｄ、ｅｘａｍｐｌｅ，ｅｘｐｉｄとを、以下の数式（１１）に用いて特定テキストの評価値を算出する。
【０１２１】
【数１１】
2014063306.tif 000013
【０１２２】
数式（１１）で算出される評価値は、同じ並び順の複数の検索キーワードの検索キーワード間距離（入力順を考慮しない場合）が同じであれば、下限値ｍｉｎＰｏｓが用例テキストの開始位置に近い程小さい値となり、下限値ｍｉｎＰｏｓと用例テキストの開始位置との距離が同じ解説テキストであれば、検索キーワード間距離（入力順を考慮しない場合）が短い程小さい値となる。ＥｓｔＤｅｔｅｃｔについては数式（１０）の場合と同様である。
【０１２３】
以上のようにして注目出現部位の特定テキストについて評価値を算出すると、次に、Ｓ５２で求めた基準文字列の出現位置の全ての出現位置を注目出現位置として上記処理を実行したかしたか否かを判別する（ステップＳ６１）。未処理の出現位置が残っている場合（ステップＳ６１；Ｎｏ）、次の未処理の出現位置についてステップＳ５６から処理を繰り返す。
一方、全ての出現位置について上記処理済みであった場合（ステップＳ６１；Ｙｅｓ）、複数文字列検索処理は終了する。
【０１２４】
図９に戻って、注目文書についてステップＳ１５のキーワード検索処理が終わりと、次に検索部１４０が辞書データに含まれる全ての文書（見出語とその本文）について検索処理を終了したか判別する（ステップＳ１６）。未処理の文書が有る場合には（ステップＳ１６；Ｎｏ）、次の見出語（及びその本文）を注目文書としてステップＳ１４から処理を繰り返す。一方、全ての文書について検索処理済みである場合、（ステップＳ１６；Ｙｅｓ）、次に検索結果を表示する（ステップＳ１７）。
【０１２５】
ステップＳ１７では、まず決定部１６０が、カテゴリ毎に、図１２のステップＳ２４や図１５のステップＳ６０で算出された評価値に基づき、１又は複数の特定テキストの表示順位を決定する。本実施形態では、決定部１６０は、特定テキストの評価値が小さい特定テキストの表示順位程、先に表示される順位に決定する。そして、出力部１７０が、カテゴリ毎に、決定された表示順位で１又は複数の特定テキストを表示する、図６に示すような検索結果表示画面を表す信号を表示部１８０へ出力する。表示部１８０は、出力された信号に基づいて検索結果表示画面を表して、テキスト検索処理は終了する。
【０１２６】
以上説明したとおり、本実施形態のテキスト検索装置によれば、前方一致、後方一致、部分一致、完全一致という複数の検索方法による検索結果を、一度の処理で実行し、その結果をユーザに提示することが出来る。そのため、ユーザにとって利便性が高い。
【０１２７】
複数種類の検索方法を用いて検索をするユーザには、それぞれの検索方法による検索結果を比較して、所望の文書を検索したい場合がある。例えば、あるキーワードを用いて検索対象の文書を完全一致検索で検索した結果を優先的に利用する一方、前方一致検索の結果にも所望の文書が含まれていないか確認したい場合などである。本実施形態のテキスト検索装置によれば、このような場合でも一回の操作で完全一致検索と、前方一致検索以下の優先度が低い検索結果を得ることが出来る。
【０１２８】
また、数式（１）の評価値や、先頭マークを含めた検索により、部分一致検索用の索引情報を用いて、検索キーワードが前方一致検索の対象となるテキストの先頭にある文字列を特定する手段（特定手段）を実現している。このため、利便性の高いテキスト検索機能を実現するために必要な計算量の増加が少ない。例えば、先頭マークを含める検索により、先頭にある文字列を特定することにより、先頭マークを含めない場合よりも検索ヒット候補を抑えることが出来、計算量が少なくてすむ。
【０１２９】
また、各検索対処となる文書について、区切文字を含まないｎグラム（検索キーワードに含まれるｎグラム）によって先に検索し、ヒット部位が有った場合に限り区切文字を含むｎグラムについて評価してヒット態様を決定する。これにより、ヒット部位が無かった場合にヒット態様の決定のためにのみ必要な区切文字を含むｎグラムの位置を確認する処理を省略することができるため、処理を高速にすることが出来る。
【０１３０】
さらに、検索インデックス（転置インデックス）を用いて、抽出した区切文字を含まないｎグラムの位置を特定し、その連続性を評価する構成により、検索キーワードが検索対象の文書に現れる部位を高速に検出することが出来る。
【０１３１】
また、数式（２）、数式（９）等を用いて定義される、前方一致、後方一致、部分一致及び完全一致といったヒット態様に応じて定まる数値を用いて評価値（表示優先度に対応）を算出する構成により、ユーザのニーズにあったヒット態様に合致する検索結果を優先的に表示することが出来る。そのため、ユーザが所望する文書をより効率よく検索できる。
【０１３２】
また、見出語、説明部、用例部のそれぞれに応じた評価値の算定方法を用いて優先度を決定する構成により、ヒット部位の性質に合わせて優先度を算定することができる。よって、検索効率が高い。
【０１３３】
また、完全一致、前方一致、後方一致、部分一致の順で、ヒット部位の優先度が高くなるように評価値を算定する。このため、最も重要度が高い、見出語に完全一致した検索結果から、最も重要度が低い中間部分のみ一致した部分一致まで、ユーザのニーズに合わせた順で検索結果を表示できる。
【０１３４】
さらに、ｎグラムのｎの値を２以上にすることで、ｎグラムの出現部位を数を減らすことが出来るため、処理速度が向上する。
【０１３５】
（変形例）
以上、本発明の実施形態１について説明したが、本発明の実施形態はこれに限られない。
例えば、上記実施形態１では、区切文字は半角スペースであるとしたが、区切文字はこれに限られず自由に選択可能である。例えば、区切文字はシステムに予約されたユニークなマーク（その他で前方一致検索の対象となるテキストに現れないマーク）であってよい。
【０１３６】
また、実施形態１では再配置ＣＴＤ及び転置インデックスを生成する処理（データ等生成処理）をテキスト検索装置１００が実行するとしたが、これに限らず、予め外部装置が生成した再配置ＣＴＤ及び転置インデックスを記憶部に記憶していることで足りる。例えば、工場出荷時において、各辞書データに対応する再配置ＣＴＤと転置インデックスとを記憶するとしても良い。
【０１３７】
尚、実施形態１およびその変形例において、電子辞書は、電子辞典をも含む。つまり、電子辞書は、国語辞典、英和辞典、和英辞典、及び百科事典であっても良い。また、本発明では、テキスト検索装置１００は、検索キーワードに基づいて辞書を検索するとして説明したが、検索の対象とされる文書は、辞書に限定される訳ではなく、どのような文書でも良い。また、インクリメント検索（前方一致検索）と、全文検索（部分一致検索）における具体的な方法、特に順位付けの方法については、任意に設定可能である。
【０１３８】
また、上記各部を実現するための処理の具体的な内容は任意に変更可能である。例えば、上記実施形態では区切文字を含まないｎグラムを先に検出した。しかし、これに限らず、区切文字を含むｎグラムを先に処理しても良い。
【０１３９】
検索の対象とされる文書は、例えば、「発明の名称」及び「特許請求の範囲」などのカテゴリにそれぞれ分類されたテキストで構成される特許明細書であっても良い。また、検索の対象とされる文書は、例えば、ある製品が有する機能の名称を表すテキストが分類されるカテゴリ（以下、機能名カテゴリという）と、当該機能を利用するための操作方法を表すテキストが分類されるカテゴリ（以下、操作方法カテゴリという）とを有する説明書であっても良い。
【０１４０】
尚、本発明は、実施形態１、若しくはその変形例に係るテキスト検索装置１００として提供できることはもとより、プログラムの適用により、既存のテキスト検索装置をテキスト検索装置１００として機能させることもできる。すなわち、テキスト検索装置１００による各機能構成を実現させるためのテキスト検索プログラムを、既存のテキスト検索装置を制御するコンピュータ（ＣＰＵなど）が実行できるように適用することで、実施形態１、若しくは変形例に係るテキスト検索装置１００として機能させることができる。
【０１４１】
このようなプログラムの配布方法は任意であり、例えば、メモリカード、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）、又はＤＶＤ−ＲＯＭ（Digital Versatile Disc-Read Only Memory）などの記録媒体に格納して配布できる他、インタネットなどの通信媒体を介して配布することもできる。また、再配置ＣＴＤ及び転置インデックス等の上記処理に必要なデータの一部又は全部は、外部サーバに記憶されており、通信機能によりこれらのデータを取得して上記処理を実行する構成も可能である。
【０１４２】
また、本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。つまり、本発明のいくつかの実施形態を説明したが、上述した実施形態は本発明を説明するためのものであり、本発明の範囲を限定するものではない。本発明の範囲は、実施形態ではなく、特許請求の範囲に記載された発明とその均等の範囲を含む。
以下に本願出願の当初の特許請求の範囲に記載された発明を付記する。
【０１４３】
（付記１）
Ｎグラム文字列パタンとこのＮグラム文字列パタンが検索対象となる文書データに現れる位置情報とを対応付けて記憶しているインデックス記憶手段と、
検索文字列を取得する取得手段と、
前記取得した検索文字列の前後に区切り文字を追加して、この区切り文字が追加された検索文字列の先頭から所定の文字数ずつずらしながらＮグラム文字列パタンを抽出して検索Ｎグラム列を生成する検索Ｎグラム生成手段と、
前記生成された検索Ｎグラム列のうち前記区切り文字を含まないＮグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶手段から読み出して、前記読み出された位置情報に基づいて前記検索文字列が文書データに存在するか否かを判断する検索対象判断手段と、
前記生成された検索Ｎグラム列のうち前記区切り文字を含むＮグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶手段から読み出して、前記検索対象判断手段で文書データに存在すると判断された検索文字列との連続性を判断することで一致状態を判定する一致状態判定手段と、
前記検索文字列が含まれると判断された文書データを、前記判定された一致状態に基づいて決定される優先度にしたがって出力する出力手段と
を備えることを特徴とする検索装置
【０１４４】
（付記２）
前記一致状態判定手段は、一致状態として完全一致であるか部分一致であるかを判定することを特徴とする付記１に記載の検索装置。
【０１４５】
（付記３）
前記文書データは複数の項目を有し、前記出力手段は一致状態に基づく優先度を、項目に応じて定められた算出方法により決定することを特徴とする付記１または２に記載の検索装置。
【０１４６】
（付記４）
前記文書データは、項目として見出語及び見出語の説明情報を含む辞書データであることを特徴とする付記１〜３の何れか１つに記載の検索装置。
【０１４７】
（付記５）
Ｎグラム文字列パタンとこのＮグラム文字列パタンが検索対象となる文書データに現れる位置情報とを対応付けて記憶しているインデックス記憶装置を有するコンピュータを用いて実行される検索方法であって、
検索文字列を取得する取得ステップと、
前記取得した検索文字列の前後に区切り文字を追加して、この区切り文字が追加された検索文字列の先頭から所定の文字数ずつずらしながらＮグラム文字列パタンを抽出して検索Ｎグラム列を生成する検索Ｎグラム生成ステップと、
前記生成された検索Ｎグラム列のうち前記区切り文字を含まないＮグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶装置から読み出して、前記読み出された位置情報に基づいて前記検索文字列が文書データに存在するか否かを判断する検索対象判断ステップと、
前記生成された検索Ｎグラム列のうち前記区切り文字を含むＮグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶装置から読み出して、前記検索対象判断ステップで文書データに存在すると判断された検索文字列との連続性を判断することで一致状態を判定する一致状態判定ステップと、
前記検索文字列が含まれると判断された文書データを、前記判定された一致状態に基づいて決定される優先度にしたがって出力する出力ステップと
を含むことを特徴とする検索方法。
【０１４８】
（付記６）
コンピュータを、
Ｎグラム文字列パタンとこのＮグラム文字列パタンが検索対象となる文書データに現れる位置情報とを対応付けて記憶しているインデックス記憶手段、
検索文字列を取得する取得手段、
前記取得した検索文字列の前後に区切り文字を追加して、この区切り文字が追加された検索文字列の先頭から所定の文字数ずつずらしながらＮグラム文字列パタンを抽出して検索Ｎグラム列を生成する検索Ｎグラム生成手段、
前記生成された検索Ｎグラム列のうち前記区切り文字を含まないＮグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶手段から読み出して、前記読み出された位置情報に基づいて前記検索文字列が文書データに存在するか否かを判断する検索対象判断手段、
前記生成された検索Ｎグラム列のうち前記区切り文字を含むＮグラム文字列パタンに対応付けられた位置情報を前記インデックス記憶手段から読み出して、前記検索対象判断手段で文書データに存在すると判断された検索文字列との連続性を判断することで一致状態を判定する一致状態判定手段、
前記検索文字列が含まれると判断された文書データを、前記判定された一致状態に基づいて決定される優先度にしたがって出力する出力手段、
として機能させるためのプログラム。
【符号の説明】
【０１４９】
１００・・・テキスト検索装置、１００ａ・・・ＣＰＵ、１００ｂ・・・ＲＯＭ、１００ｃ・・・ＲＡＭ、１００ｄ・・・ハードディスク、１００ｅ・・・メディアコントローラ、１００ｇ・・・ビデオカード、１００ｈ・・・ＬＣＤ、１００ｉ・・・キーボード、１００ｊ・・・スピーカ、１１０・・・情報記憶部、１２０・・・生成部、１３０・・・取得部、１４０・・・検索部、１４１０・・・付加部、１４２０・・・抽出部、１４３０・・・キー検出部、１４４０・・・区切検出部、１５０・・・算出部、１６０・・・決定部、１７０・・・出力部、１８０・・・表示部
【図１】
2014063306.tif 000014
【図２】
2014063306.tif 000015
【図３】
2014063306.tif 000016
【図４】
2014063306.tif 000017
【図５】
2014063306.tif 000018
【図６】
2014063306.tif 000019
【図７】
2014063306.tif 000020
【図８】
2014063306.tif 000021
【図９】
2014063306.tif 000022
【図１０】
2014063306.tif 000023
【図１１】
2014063306.tif 000024
【図１２】
2014063306.tif 000025
【図１３】
2014063306.tif 000026
【図１４】
2014063306.tif 000027
【図１５】
2014063306.tif 000028
【図１６】
2014063306.tif 000029
【図１７】
2014063306.tif 000030
【図１８】
2014063306.tif 000031