(57)【要約】【課題】高い精度で曖昧検索を実行する。【解決手段】テキスト検索装置１００は、検索対象となる文書に記載された文字等と、当該文字等の出現位置と、を対応付けた転置インデックスを複数記憶する情報記憶部１１０を備える。転置インデックスは、文書中の前方一致検索の対象となるテキストの先頭に先頭マークを挿入した文書について生成されたものである。テキスト検索装置１００の付加部１４１０は、検索に先立って検索キーワードの前後に区切文字を付加する。特定部１４３０は、区切文字を付加した文字列から抽出されたＮグラムの対象文字列における位置を検出する。決定部１６０が、Ｎグラムが検索文字列に現れる位置関係で対象文字列にも表れる頻度を決定する。算出部１５０が、決定結果と、検索文字列と対象文字列の文字長の違いと、に応じて評価値を算出し、評価値に基づいて検索結果を出力する。【選択図】図４
2014146301.tif 000002
【特許請求の範囲】
【請求項１】
検索対象文字列の両端部に区切文字が付加されている文書データを記憶している記憶手段と、
キーワードを取得する取得手段と、
前記取得手段が取得したキーワードの両端部に文字列の区切りであることを示す区切文字を付加して検索文字列を生成する生成手段と、
前記生成手段が生成した検索文字列から複数の部分列を抽出し、この抽出された部分列が、前記文書データの検索対象文字列に現れる出現位置を特定する特定手段と、
前記検索対象文字列において、前記検索文字列の部分列と共通する部分列が前記検索文字列と類似した位置関係で現れる頻度を、前記特定手段の特定結果に基づいて決定する決定手段と、
前記決定手段の決定結果と、前記検索対象文字列と前記検索文字列との文字長の違いと、に基づいて当該検索対象文字列と当該検索文字列との類似度を評価する評価手段と、
前記評価手段の評価結果に基づいて前記検索対象文字列を出力する出力手段と、
を備えることを特徴とする検索装置。
【請求項２】
前記特定手段は、前記検索文字列が含む文字列の全てが、何れかの部分列に含まれるように複数の部分列を抽出する抽出手段を含み、
前記特定手段は、前記抽出手段が抽出した部分列について前記特定する処理を実行する、
ことを特徴とする請求項１に記載の検索装置。
【請求項３】
前記抽出手段が抽出する部分列のうち、前記区切文字を含む部分列は何れも２以上の文字を含む、
ことを特徴とする請求項２に記載の検索装置。
【請求項４】
複数の前記検索対象文字列に含まれる、所定数の文字を含む部分列のそれぞれが前記検索対象文字列に現れる位置を示すインデックスを記憶する記憶手段を更に備え、
前記特定手段は、前記インデックスを用いて前記部分列が現れる位置を特定する、
ことを特徴とする請求項１〜３の何れか１項に記載の検索装置。
【請求項５】
前記インデックスは、前記複数の検索対象文字列を文字長に基づいてグループ分けした上で、当該グループ毎に検索対象文字列への参照をまとめた情報を含み、
前記特定手段は、前記グループの文字長と前記検索文字列の文字長との誤差が所定の閾値よりも小さいグループに含まれる検索対象文字列について、前記特定する処理を実行する一方、前記所定の閾値より大きいグループに含まれる検索対象文字列については前記特定する処理を省略する、
ことを特徴とする請求項４に記載の検索装置。
【請求項６】
前記抽出手段が抽出する部分列のうち、前記区切文字を含まない部分列は何れも１文字からなる、
ことを特徴とする請求項３に記載の検索装置。
【請求項７】
検索対象文字列の両端部に区切文字が付加されている文書データから所望の検索対象文字列を検索する方法であって、
キーワードを取得し、
前記取得したキーワードの両端部に文字列の区切りであることを示す区切文字を付加して検索文字列を生成し、
前記生成した検索文字列から複数の部分列を抽出し、この抽出された部分列が、前記文書データの検索対象文字列に現れる出現位置を特定し、
前記検索対象文字列において、前記検索文字列の部分列と共通する部分列が前記検索文字列と類似した位置関係で現れる頻度を、前記特定した結果に基づいて決定し、
前記決定した結果と、前記検索対象文字列と前記検索文字列との文字長の違いと、に基づいて当該検索対象文字列と当該検索文字列の類似度を評価し、
前記評価結果に基づいて前記検索対象文字列を出力する、
ことを特徴とする検索方法。
【請求項８】
コンピュータを、
検索対象文字列の両端部に区切文字が付加されている文書データを記憶している記憶手段と、
キーワードを取得する取得手段と、
前記取得手段が取得したキーワードの両端部に文字列の区切りであることを示す区切文字を付加して検索文字列を生成する生成手段と、
前記生成手段が生成した検索文字列から複数の部分列を抽出し、この抽出された部分列が、前記文書データの検索対象文字列に現れる出現位置を特定する特定手段と、
前記検索対象文字列において、前記検索文字列の部分列と共通する部分列が前記検索文字列と類似した位置関係で現れる頻度を、前記特定手段の特定結果に基づいて決定する決定手段と、
前記決定手段の決定結果と、前記検索対象文字列と前記検索文字列との文字長の違いと、に基づいて当該検索対象文字列と当該検索文字列の類似度を評価する評価手段と、
前記評価手段の評価結果に基づいて前記検索対象文字列を出力する出力手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索装置、検索方法及びプログラムに関する。
【背景技術】
【０００２】
文書を検索するに当たって、検索キーワードと完全に一致しない部分をヒット部位とする曖昧検索機能をもつ検索システムが知られている。例えば、特許文献１は、検索対象のテキストに現れる文字の位置を記録した検索インデックスを用いて曖昧検索を実行する技術を開示している。特許文献１の技術では、まず検索キーワードに現れる文字が検索対象のテキストに現れる位置を取得する。そしてその文字が、キーワードに現れる位置から所定範囲内の誤差で検索対象文字列にも現れる場合に類似度を加算する。このように算出した類似度に基づいて曖昧検索を実施する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平８−２３５２１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の技術では、キーワードに現れる位置から所定範囲内の誤差で検索対象にも現れる文字の数が等しい検索対象文字列に対しては、同じ類似度が算出される。そのため、非常に検索キーワードに近い検索対象の文字列と、とびとびに検索キーワードに含まれる文字が現れるに過ぎない文字列とが、同一の類似度となってしまう。そのため、検索結果がユーザが所望する文書である精度が低いという問題があった。
【０００５】
本発明はこのような事情に鑑みて成されたものであり、高い精度で曖昧検索を実行できる検索装置、検索方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明に係る検索装置は、
検索対象文字列の両端部に区切文字が付加されている文書データを記憶している記憶手段と、
キーワードを取得する取得手段と、
前記取得手段が取得したキーワードの両端部に文字列の区切りであることを示す区切文字を付加して検索文字列を生成する生成手段と、
前記生成手段が生成した検索文字列から複数の部分列を抽出し、この抽出された部分列が、前記文書データの検索対象文字列に現れる出現位置を特定する特定手段と、
前記検索対象文字列において、前記検索文字列の部分列と共通する部分列が前記検索文字列と類似した位置関係で現れる頻度を、前記特定手段の特定結果に基づいて決定する決定手段と、
前記決定手段の決定結果と、前記検索対象文字列と前記検索文字列との文字長の違いと、に基づいて当該検索対象文字列と当該検索文字列の類似度を評価する評価手段と、
前記評価手段の評価結果に基づいて前記検索対象文字列を出力する出力手段と、
を備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、高い精度で曖昧検索を実行できる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態１に係るテキスト検索装置の一例を示す斜視図である。
【図２】実施形態１に係るテキスト検索装置の一構成例を表す図である。
【図３】実施形態１に係るテキスト検索装置が実行するデータ等生成処理の一例を表すフローチャートである。
【図４】実施形態１に係るテキスト検索装置の機能構成の一例を表すブロック図である。
【図５】（ａ）は、テキスト検索装置が記憶する辞書データの一例を表す図である。（ｂ）は、テキスト検索装置が記憶する再配置コンテンツテキストデータの一例を表す図である。
【図６】実施形態１に係るテキスト検索装置が表示するテキスト検索の結果表示画面の一例を表す図である。
【図７】実施形態１に係るテキスト検索装置が記憶する辞書テーブルの一例を表す図である。
【図８】実施形態１に係るテキスト検索装置が記憶する転置インデックスを含む電子ファイルの一例を表す図である。
【図９】実施形態１に係るテキスト検索装置が実行するテキスト検索処理の一例を表すフローチャートである。
【図１０】実施形態１に係るテキスト検索装置が実行するｎグラム抽出処理の概要を示す図である。
【図１１】実施形態１に係るテキスト検索装置が実行する曖昧検索処理の一例を表すフローチャートである。
【図１２】実施形態１に係る位置検索結果の一例を表す図である。
【図１３】（ａ）実施形態１に係る検索パタンのｎグラムが注目文字列において現れる位置情報の例を示す図である。（ｂ）位置情報の組合せの例を表す図である。
【図１４】実施形態１に係るテキスト検索装置が実行する一致度を求める処理の概要を説明するための図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態に係るテキスト検索装置１００について、添付図面を参照しつつ説明する。
【００１０】
本発明の実施形態に係るテキスト検索装置１００は、図１に示すような電子辞書で構成され、ユーザの操作に応じて検索キーワードを入力するキーボード１００ｉと、検索キーワードに基づいて辞書を検索した検索結果を表示するＬＣＤ（Liquid Crystal Display）１００ｈと、を備える。
【００１１】
テキスト検索装置１００の内部には、図２に示すようなＣＰＵ（Central Processing Unit）１００ａ、ＲＯＭ（Read Only Memory）１００ｂ、ＲＡＭ（Random Access Memory）１００ｃ、ハードディスク１００ｄ、メディアコントローラ１００ｅ、ビデオカード１００ｇ、及びスピーカ１００ｊが内蔵され、図１に示したＬＣＤ１００ｈ及びキーボード１００ｉとバスを介して接続されている。
【００１２】
ＣＰＵ１００ａは、ＲＯＭ１００ｂ若しくはハードディスク１００ｄに保存されたプログラムにより、下記する検索処理のためにテキスト検索装置１００の各部を制御し、また内部処理を実行する。ＲＡＭ１００ｃは、ＣＰＵ１００ａによるプログラムの実行時において、処理対象とするデータを一時的に記憶する等、作業領域として用いられる。
【００１３】
ハードディスク１００ｄは、各種のデータを保存したテーブルと、英和辞書等の辞書データと、を記憶する。尚、テキスト検索装置１００は、ハードディスク１００ｄの代わりに、フラッシュメモリを備えても良い。
【００１４】
メディアコントローラ１００ｅは、フラッシュメモリ、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、及びブルーレイディスク（Blu-ray Disc）（登録商標）を含む記録媒体から各種のデータ及びプログラムを読み出す。
【００１５】
ビデオカード１００ｇは、ＣＰＵ１００ａから出力されたデジタル信号に基づいて画像を描画（つまり、レンダリング）すると共に、描画された画像を表す画像信号を出力する。ＬＣＤ１００ｈは、ビデオカード１００ｇから出力された画像信号に従って画像を表示する。尚、テキスト検索装置１００は、ＬＣＤ１００ｈの代わりに、ＰＤＰ（Plasma Display Panel）若しくはＥＬ（Electroluminescence）ディスプレイを備えても良い。スピーカ１００ｊは、ＣＰＵ１００ａから出力された信号に基づいて音声を出力する。
【００１６】
ユーザが、辞書データを記録した記録媒体を図２に示したメディアコントローラ１００ｅへ当該記録媒体を挿入すると、ＣＰＵ１００ａは、メディアコントローラ１００ｅから辞書データの信号を受信する。ＣＰＵ１００ａは、メディアコントローラ１００ｅから辞書データを取得すると、辞書データをハードディスク１００ｄに保存する。その後、ＣＰＵ１００ａは、辞書データで表される辞書を検索キーワードに基づいて検索するために用いられるデータ及び電子ファイルを生成する、図３に示すようなデータ等生成処理を実行する。これにより、ＣＰＵ１００ａはテキスト検索装置１００のその他の構成要素と協働して、図４に示すような生成部１２０として機能する。図４は、ＣＰＵ１００ａが実行する機能を示す機能ブロック図である。そして、ＣＰＵ１００ａは、テキスト検索装置１００のその他の構成要素、特にハードディスク１００ｄと協働することで、情報記憶部１１０として機能する。
【００１７】
情報記憶部１１０は、本実施形態で検索対象となる辞書データを記憶する。この辞書データは、図５（ａ）に示すように、見出語を表すテキスト（以下、見出語テキストという）と、見出語の解説を表すテキスト（以下、解説テキストという）と、例えば、成句や複合語など（以下、イディオムという）といった見出語の用例を表すテキスト（以下、用例テキストという）と、で構成される。解説テキストと用例テキストとを合わせて本文テキストと言う。言い換えれば、辞書データに含まれるテキストは、見出語を示すテキスト（見出語テキスト）と、見出語を説明するための本文（本文テキスト）と、の２つのカテゴリ（見出語カテゴリ、本文カテゴリ）に分類できる。本文カテゴリに属するテキストは、さらに見出語の解説と、その用例と、の二つ（解説カテゴリ、用例カテゴリ）に分類できる。
また、辞書データのうち、見出語テキストが占める部分を見出部ＣＥ、本文テキストがしめる部分を本文部ＣＢという。
解説テキストは、当該テキストで表される内容が解説であることを表す解説タグに囲まれており、用例テキストは、当該テキストで表される内容が用例であることを表す用例タグに囲まれている。
【００１８】
辞書データは見出部ＣＥと本文部ＣＢとの組を一つの構成単位として、この構成単位が連なって構成されている。各構成単位は、例えば、辞書データが英和辞典であれば、見出部ＣＥに配置された見出語テキストのアルファベット順に並べられている。各構成単位において、見出語テキストを含む見出部ＣＥの直後に、その見出語を説明するための本文テキストを含む本文部ＣＢが配置されている。
また、各見出部ＣＥには、見出部ＣＥを識別する見出語番号が予め割り当てられている。辞書データには、この見出語番号を表す情報と、当該見出語番号で識別される見出部ＣＥが格納された情報記憶部１１０における記憶領域の先頭アドレスを表す情報と、当該見出部ＣＥの直後に格納された本文部ＣＢの先頭アドレスを表す情報と、が対応付けられた情報が、見出語の数だけ含まれる。この構成単位は、一単位の「検索対象となる文書（文字列）」とも言う。この場合、辞書データは検索対象となる文書を複数束ねたデータと表現できる。
【００１９】
本文部ＣＢには、複数の解説テキストが、電子辞書の編集者が定めた並び順に従って配置されている。具体例としては、見出語のより一般的な意味内容を解説する解説テキストの方が、見出語のより特殊な意味内容を解説する解説テキストよりも先の位置に格納されている。あるいは、より使用頻度の高い意味内容を解説する解説テキストの方が、より使用頻度の低い意味内容を解説する解説テキストよりも先の位置に格納されているとしても良い。
【００２０】
本実施形態のテキスト検索装置１００は、ユーザがキーボード１００ｉを用いて検索キーワードを入力して確定操作を実行すると、上述した見出語のうち、検索キーワードとの類似度に基づいて算出される評価値が所定の閾値より大きい見出語を、評価値が高い順に表示する（図６）。評価値の算出方法については後述する。
この実施形態では、テキスト検索装置１００に記憶されている辞書（図７参照）のうちユーザの指定した検索対象辞書（図６の例では英和辞書１、及び百科事典）に含まれる見出語が曖昧検索の対象文書となる。
【００２１】
ここで、本実施形態の検索処理に用いる検索用インデックス（転置インデックス）を生成するデータ等生成処理について、図３を参照して説明する。生成部１２０は、辞書データを取得すると図３に示すデータ等生成処理を開始する。
【００２２】
データ等生成処理では、まず生成部１２０が情報記憶部１１０に記憶された辞書コンテンツを表す辞書データを読み出す（ステップＳ１）。
【００２３】
そして、読み出した辞書データから、見出語テキストと本文テキスト（解説テキストと用例テキスト）とを抽出する（ステップＳ２）。具体的に説明する。本文部ＣＢには、解説テキストと用例テキストとが混在しているので、まず生成部１２０は、これらのテキストを内容に応じて分類分けをする。そのために、生成部１２０は、辞書データに含まれる見出語番号を表す情報と、見出部ＣＥの先頭アドレスを表す情報と、本文部ＣＢの先頭アドレスを表す情報と、を用いて、辞書データから見出語テキストと本文テキストとを複数抽出する。
さらに、生成部１２０はステップＳ２で、抽出された見出語テキスト毎に、見出語テキストで表される見出語を解説する解説テキストを本文テキストから解説タグに基づいて複数抽出し、かつ見出語の用例を表す用例テキストを用例タグに基づいて本文テキストから複数抽出する。
【００２４】
そして、曖昧の対象となるカテゴリのテキスト（ここでは見出語）の先頭と末尾に、端部であることを示すマーク（区切文字、ここでは半角スペース）を挿入する（ステップＳ３）。なお、見出語が英語である場合には、単語と単語が半角スペースで区切られている箇所には半角スペースを挿入せず、先頭の半角スペースが無い部分や、単語の末尾がピリオド「．」、カンマ「，」、エクスクラメーションマーク「！」、クエッションマーク「？」等、単語の前後が半角スペースでない部分にのみ半角スペースを挿入する。この結果、検索対象となる複数のテキスト（ここでは複数の見出し語）に区切文字（半角スペース）を挿入した文字列が再生される。この区切文字を含む文字列は、後述する処理で曖昧検索処理の対象となるため、対象文字列とも言う。
【００２５】
その後、生成部１２０は、図５（ｂ）に示すような再配置コンテンツテキストデータ（ＣＴＤ）を生成して保存する（ステップＳ４）。具体的には、見出語テキストに区切文字（ここでは「・」で代用して図示）を抽出した上で、構成単位ごとに抽出された解説テキストの並び順を変更せずにまとめて配置することで、抽出された複数の解説テキストが配置される部位（以下、解説部ＣＣという）を生成する。
同様に、生成部１２０は、構成単位毎に、抽出された複数の用例テキストの並び順を変更せずにまとめて配置することで、抽出された複数の用例テキストが配置された部位（以下、用例部ＣＸという）を生成する。
【００２６】
なお、ここでは見出部ＣＥの両端部（たとえば見出語「salad」について、sの前とdの後ろ）に区切文字を挿入する例について説明した。区切文字の挿入箇所はこれに限らず、任意に設定可能である。例えば、解説テキスト及び用例テキストが曖昧検索の対象なる場合には、解説部ＣＣ及び用例部ＣＸに現れる各単語の両端部に区切文字を挿入しても良い。あるいは、解説部ＣＣ及び用例部ＣＸに現れるフレーズのうち重要なフレーズの前後にのみ区切文字を挿入するとしても良い。
【００２７】
生成部１２０は、このようにして見出部ＣＥと、解説部ＣＣと、用例部ＣＸと、を対応付けた複数のデータ（再配置コンテンツテキストデータ、若しくは再配置ＣＴＤ）を生成する。そして、生成部１２０は、生成した再配置コンテンツテキストデータを情報記憶部１１０へ保存する（ステップＳ４）。
【００２８】
その後、生成部１２０は、再配置コンテンツテキストデータで表される辞書を識別する辞書番号を生成する。次に、生成部１２０は、図７に示す辞書テーブルへ、生成された辞書番号を表す情報と、辞書の名称を表す情報と、再配置コンテンツテキストデータが格納された情報記憶部１１０の記憶領域の先頭アドレスを表す情報と、を対応付けた情報を情報記憶部１１０に保存する（ステップＳ５）。
【００２９】
その後、生成部１２０は、再配置コンテンツテキストデータで表されるテキスト（つまり、見出部ＣＥ、解説部ＣＣ、及び用例部ＣＸに配置されたテキスト）のそれぞれについて、先頭から１文字ずつずらしながら１文字を切り出すことで、モノグラム文字列パタンを抽出する。また、同様に、生成部１２０は、再配置コンテンツテキストデータで表されるテキストの先頭から１文字ずつずらしながら２文字を切り出すことで、バイグラム文字列パタンを抽出する。以下、モノグラム文字列パタン、バイグラム文字列パタンを、Ｎグラム文字列パタンと総称する。尚、本実施形態では、文字は文字列に含まれるとし、特別に区別する記載がある場合を除き、文字と文字列とを区別しない。
【００３０】
次に、生成部１２０は、各Ｎグラム文字列パタンについて、Ｎグラム文字列パタンが再配置コンテンツテキストデータで表されるテキスト（以下、再配置テキストという）に出現する位置（以下、出現位置という）を１又は複数特定する。その後、生成部１２０は、Ｎグラム文字列パタン毎に、再配置テキストにおけるＮグラム文字列パタンの出現頻度を算出する。ここで、出現頻度は、例えば、再配置テキストにＮグラム文字列パタンが現われる総回数であるとして説明するが、これに限定される訳ではない。
【００３１】
次に、生成部１２０は、Ｎグラム文字列パタン毎に、Ｎグラム文字列パタンが出現する出現位置を示すアドレス（以下、出現位置アドレスという）を表す１又は複数の情報と、当該Ｎグラム文字列パタンの出現頻度を表す情報と、を対応付けた出現位置情報を生成する。
【００３２】
次に、生成部１２０は、出現位置情報を１又は複数含む電子ファイル（以下、出現位置情報ファイル若しくはＡＰファイルという）を生成し、情報記憶部１１０へ保存する（図３のステップＳ６）。
図８では、出現位置情報ファイル（ＡＰファイル）は「position.idx」という名称（ファイル名）で示されている。また、出現位置情報ファイルに保存された出現位置情報は、先頭アドレスから出現頻度用の所定バイト数までの領域に出現頻度を表す情報が格納され、当該領域の直後から出現位置用の所定バイト数毎に出現位置アドレスを表す情報が格納される。出現位置アドレスを表す情報は、例えば辞書データを記録しているハードディスク１００ｄにおける、対象のＮグラムが辞書データ上に現れる位置に対応するアドレスの情報であればよい。
【００３３】
次に、生成部１２０は、Ｎグラムを表す情報（以下、Ｎグラム文字列パタン情報という）と、当該Ｎグラム文字列パタンの出現位置情報が格納された情報記憶部１１０の記憶領域の先頭アドレス（以下、出現位置情報格納アドレスという）を表す情報と、を対応付けた情報を複数含む電子ファイル（以下、Ｎグラム文字列パタンファイル若しくはＳファイルという）を生成する。その後、生成部１２０は、Ｓファイルを情報記憶部１１０へ保存する（ステップＳ７）。
図８では、Ｓファイルは「pattern.idx」という名称（ファイル名）で示されている。
【００３４】
次に、生成部１２０は、見出語テキストを含む見出部ＣＥを識別する見出番号と、当該見出部ＣＥが格納された情報記憶部１１０の記憶領域の先頭アドレス（以下、見出部ＣＥの開始位置を表すアドレスという）を表す情報と、当該見出語テキストで表される見出語を解説する解説テキストが配置された解説部ＣＣの先頭アドレス（以下、解説部ＣＣの開始位置を表すアドレスという）を表す情報と、当該見出語の用例を表す用例テキストが配置された用例部ＣＸの先頭アドレス（以下、用例部ＣＸの開始位置を表すアドレスという）を表す情報と、当該用例部ＣＸの用例個数を表す情報と、当該用例部ＣＸの用例部開始位置情報が情報記憶部１１０に格納された領域の先頭位置を表すアドレス（以下、用例部開始位置情報格納アドレスという）を表す情報と、当該見出語を掲載した辞書の辞書番号を表す情報と、を対応付けた情報を複数含む電子ファイル（以下、見出等ファイル若しくはＴファイルという）を生成する（ステップＳ８）。ここで、見出部の開始位置から、解説部の開始位置の直前までが見出し番号に対応する見出語が格納されている範囲である。また、解説部の開始位置から、用例部の開始位置の直前までが見出し番号に対応する解説部が格納されている範囲である。また、用例部の開始位置から、次の見出部の開始位置の直前までが見出し番号に対応する用例部が格納されている範囲である。用例部に複数の用例が含まれる場合、各用例の範囲は用例開始情報格納アドレスに格納された用例開始アドレスによって定まる。図８の見出語の開始位置から見出し番号までの、一つの見出し番号に対応する情報（見出し語等情報）は固定長（例えば１Ｋバイト）とする。図８では、Ｔファイルは「number.idx」という名称（ファイル名）で示されている。
【００３５】
次に、生成部１２０は再配置ＣＴＤに含まれる見出語のうち、同じ文字長の見出語をまとめたグループの情報を示す見出しグループ情報（Ｇファイル）を生成する（ステップＳ９）。Ｇファイルは、そのグループの文字数（ｎ文字）と、ｎ文字（ｎ＝１〜ＭＡＸ）の見出語の位置に対応する情報（ここでは見出し番号）を対応づけて記録する。生成部１２０はＧファイルを作るにあたって、まず１〜ＭＡＸの文字数に対応するグループをＭＡＸ個生成する。ＭＡＸの値は、再配置ＣＴＤに含まれる見出語の最大長であり、予め測定され記憶部１１０に記憶されている。そして、Ｔファイルが定義する見出部の情報を一づつ参照して、見出部の開始位置から解説部の開始位置の直前までの領域に対応する見出語の文字数と、その見出しの語の見出し番号を抽出する。そして、抽出した見出し番号を、抽出した文字数のグループに登録する。生成部１２０はＴファイルが定義する全ての見出部についてこの処理を実行して、Ｇファイルを生成する。生成部１２０は、生成したＧファイルを情報記憶部１１０へ保存した後に（図３に示すステップＳ９）、データ等生成処理の実行を終了する。図８では、Ｔファイルは「ngroup.idx」という名称（ファイル名）で示されている。見出し語等情報は固定長の情報なので、既知の値であるＴファイルの先頭を参照すれば、見出し語番号から対応する見出し語等情報の先頭アドレスが得られる。なお、見出語の位置に対応する情報として、対応する見出し語等情報の先頭アドレスをＧファイルに記録しても良い。
【００３６】
図８（特に「pattern.idx」と「position.idx」）に示すような、文字列（ここではＮグラム）と、文字列の検索対象となる文書における出現位置とを、対応付けて記録した索引構造を転置インデックスと呼ぶ。本実施形態では、データ等生成処理により、所定のカテゴリ（ここでは見出語）のテキストについて、文書の区切り（見出しの前後）に区切りを示す区切文字（半角スペース）を付した再配置ＣＴＤの転置インデックスを生成する。
【００３７】
転置インデックスを情報記憶部１１０に記憶すると、この転置インデックスを用いて検索処理を実行する準備が整う。この状態で、ユーザが辞書の検索に用いる検索キーワードを入力する操作をキーボード１００ｉを用いて実行すると、ＣＰＵ１００ａがその情報を受け取り、図９に示すテキスト検索処理を実行する。
このテキスト検索処理を実行することにより、ＣＰＵ１００ａは図４に示すような取得部１３０、付加部１４１０と抽出部１４２０と特定部１４３０とを含む検索部１４０、算出部１５０、決定部１６０、及び出力部１７０として機能する。また、ＣＰＵ１００ａは、図２に示したビデオカード１００ｇ及びＬＣＤ１００ｈと協働して表示部１８０として機能する。
【００３８】
ユーザがキーボード１００ｉを用いて対象辞書を指定した上で検索キーワードを入力すると、ＣＰＵ１００ａが図９に示すテキスト検索処理を開始する。テキスト検索処理では、まず取得部１３０が現在までに入力されたキーワード（検索キーワード）及び検索対象となる辞書を指定する情報を取得する（ステップＳ１１）。ここでは、確定した検索キーワードが区切文字（スペース等）を含む場合、その区切文字で入力された文字を区切って、複数の検索キーワードを取得したとする。
【００３９】
そして、付加部１４１０が、検索キーワードの前後に区切文字（半角スペース）を挿入して、検索文字列とする（ステップＳ１２）。検索キーワードが複数ある場合には、それぞれの検索キーワードに区切文字を挿入する。
【００４０】
さらに、抽出部１４２０が区切文字を挿入した検索文字列からＮグラムの列（検索パタン）を抽出する（ステップＳ１３）。ステップＳ１３で実行する抽出処理の例を、図１０に示す。以下、ユーザが英単語「salad」を間違えて「salaed」と入力した場合を例にとって説明する。この場合、Ｎグラムとして区切文字を含むバイグラム「・ｓ」及び「ｄ・」（・は半角スペースを示す）と、モノグラム「ｓ」、「ａ」、「ｌ」、「ａ」、「ｅ」、「ｄ」と、を抽出する。この８つのＮグラムが、Ｎグラム文字列パタン（検索パタン）となる。このうち、モノグラム「ｅ」が打ち間違いにより発生した不正なモノグラムである（不正率１／８）。このように先頭と末尾のＮグラムをバイグラム以上の文字数を持つＮグラムとすることで、検索文字列のうち検索キーワードの部分（ここではｓ及びｄ）と区切との位置関係が失われることを防ぐことが出来る。また、検索文字列に含まれる全ての文字は、Ｎグラムの何れかに含まれるため、検索文字列と対象文字列の類似度を求めるに当って、検索文字列全体の特長を反映させることが出来る。
【００４１】
また、区切文字を含まない部分（キーワードの部分）についてはモノグラムを抽出することにより、一文字間違えた場合に前後のＮグラムに間違えが及び、後述する類似度が下がりすぎてしまうことを防止する。例えば全てバイグラムで抽出した場合に、上記の例ではキーワードの部分からバイグラム「・ｓ」、「ｓａ」、「ａｌ」、「ｌｅ」、「ｅａ」、「ａｄ」、「ｄ・」が抽出される。この場合、一字の打ち間違えで２つの不適切なバイグラム（「ｌｅ」及び「ｅａ」）が発生するため（不正率２／７）、類似度が大きく下がってしまう。本実施形態では、ステップＳ１２で生成した検索文字列のうち区切文字を含まない部分（検索キーワードの部分）からはモノグラムを抽出することにより、打ち間違いの影響が過度に大きくならないようにしている。
【００４２】
次に、検索部１４０が検索対象となる辞書データに含まれる複数の文書（本実施形態では再配置ＣＴＤに含まれる見出語テキスト）を、区切文字を付加した検索キーワードで曖昧に検索する処理（曖昧検索処理）を実行する（ステップＳ１４）。
【００４３】
ステップＳ１４で実行される曖昧検索処理を、図１１を参照して説明する。
【００４４】
曖昧検索処理では、検索部１４０が検索文字列の文字数を取得する（ステップＳ１０１）。例えば検索文字列が「・salaed・」の場合は、文字数（文字列の長さ）８を取得する。
【００４５】
次に、検索部１４０がＧファイルを参照して、検索対象となる文字列（対象文字列）を抽出する（ステップＳ１０２）。具体的には、検索部１４０はまずステップＳ１０１で取得した文字数から予め定められた誤差値の範囲内の数値を算出する。例えば、ステップＳ１０１で文字数８であり、かつ誤差値が４に設定されている場合、４〜１２が誤差値の範囲内の数値となる。誤差値は工場出荷時に設定された数値あるいはユーザの設定操作によって設定された数値であってよい。本実施形態では、この範囲内の見出し語が、対象文字列となる。次に、検索部１４０がＧファイルのグループから、文字長が誤差値の範囲内であるグループを抽出する。さらに、検索部１４０が抽出したグループに記録されている見出し番号を抽出する。検索部１４０は、抽出した見出し番号が示す見出等情報を用いて、対象文字列が格納されているメモリ領域を抽出する。具体的には、抽出した見出し番号の見出等情報の“見出部の開始位置”から“解説部の開始位置”の直前までの領域を対象文字列が存在する出現領域として抽出する。なお、検索対象とする辞書が指定されている場合には、指定された辞書番号以外の見出部については上記処理対象としない。
【００４６】
次に、特定部１４３０が図９のステップＳ１３で生成した検索文字列に含まれるＮグラムの位置を特定する（ステップＳ１０３）。例えば、特定部１４３０は図８のＳファイルから、テキスト検索処理のステップＳ１３で生成したＮグラム列（検索パタン）のＮグラムと合致するＮグラム文字列パタン情報を取得する。そして、Ｓファイルから取得したＮグラム文字列パタン情報に対応付けられた出現位置情報格納アドレスを取得する。そして、情報記憶部１１０上の取得したアドレスに記録されたＡＰファイルを読み出して、検索文字列に含まれるＮグラムが現れる位置情報を取得する。その結果、例えば図１２に示したように、ステップＳ１３で生成した各Ｎグラムと、そのＮグラムに対してしてＡＰファイルに記録されているＮグラムの出現位置（辞書データ上に現れる位置のアドレス）と、を対応づけた情報が得られる。
【００４７】
特定部１４３０はステップＳ１０３にて、図１２の表に記録されたアドレスから、検索対象の範囲（ステップＳ１０２で抽出した領域）に含まれるアドレスをさらに抽出する。この結果得られたアドレス（位置情報）が、検索文字列に含まれるＮグラムが対象文書（見出語）に現れる出現位置となる。各出現位置に現れるＮグラムは、検索文字列にも対象文字列にも現れる部分列であるので、共通文字列とも言う。なお、処理量を減らすため、ステップＳ１０２で抽出した検索対象のうち、検索文字列に含まれるＮグラムを一つも含まないものをこの段階で検索対象から排除しても良い。
【００４８】
次に、検索部１４０はステップＳ１０２で抽出した対象文字列から、現在処理対象となる文字列（注目文字列）を選択する（ステップＳ１０４）。具体的には、ステップＳ１０２で抽出した対象文字列のうち、未だ下記処理を実行していない最も見出し番号が少ないものを、注目文字列として選択する。
【００４９】
そして、算出部１５０が決定部１６０を用いて、注目文字列と検索文字列の類似度の評価として、ランク付け評価値を算出する（ステップＳ１０５〜ステップＳ１１２）。具体的には、まず算出部１５０は比較対象となる出現位置の組合せを決定する（ステップＳ１０５）。出現位置の組合せについて、図１３を参照して説明する。例えば、検索文字列「・salaed・」の検索パタン（「・ｓ」、「ｓ」、「ａ」、「ｌ」、「ａ」、「ｅ」、「ｄ」及び「ｄ・」）と、注目文字列「・ｓａｌａｄ・」とを比較する場合、検索パタンのＮグラムは注目文字列において、図１３（ａ）に示したような位置に現れる。「・ｓ」、「ｓ」、「ｌ」、「ｄ」及び「ｄ・」はそれぞれ１箇所に現れている。一方、「ａ」は注目文字列の先頭から２文字目と４文字目の２カ所に現れ、「ｅ」は注目文字列に含まれていないため、一カ所も出現位置がない。なお、図１３のテーブルを求めるためには、例えばステップＳ１０３で検出した検索パタンの対象文字列における出現位置のテーブルから、注目文字列の範囲に含まれる位置情報のみを抽出する。そして、抽出した位置情報から注目文字列の先頭位置を減算すればよい。
【００５０】
図１３（ａ）の「ａ」のように、検索パタンに複数の出現位置が存在するＮグラムが含まれる場合、図１３（ｂ）のように各ｎグラムについて出現位置を一つずつ選択した組合せが複数抽出される。ステップＳ１０５で算出部１５０は、この組合せを順次そのループに置ける検索文字列と注目文字列の比較処理の対象として選択する。
【００５１】
次に、決定部１６０が注目文字列のステップＳ１０５で決定した組合せにおいて、検索文字列に含まれるＮグラムが検索文字列と類似した位置関係で現れる頻度を決定する。（ステップＳ１０６〜ステップＳ１０９）。
まず、決定部１６０は注目文字列に現れるＮグラムから、処理対象となる注目Ｎグラムを選択する（ステップＳ１０６）。ここでは、注目文字列の出現位置のうち、未だ注目位置として選択されていない最も先頭のアドレスに現れるＮグラムを選択するものとする。
【００５２】
次に、決定部１６０が注目Ｎグラムが現れる位置を基準にして、検索文字列から得られるＮグラム列（検索パタン）と注目文字列から得られるＮグラム列（注目パタン）において、相対位置が一致（又は類似）するＮグラムをカウントする（ステップＳ１０７）。なお、注目位置を基準としたＮグラムの相対位置とは、注目位置のアドレスから対象のＮグラムの先頭アドレスを減算した値である。カウントした結果は、注目位置に現れるＮグラム（注目Ｎグラム）を基準とした、注目パタンと検索パタンの一致度と考えることが出来る。
【００５３】
ステップＳ１０７の処理を、検索文字列が「・salaed・」、注目文字列が「・salad・」であり、ステップＳ１０５で決定した組合せが「組合せ２」である場合を例にとって、図１４（ａ）〜（ｃ）を参照して説明する。ここでは理解を簡単にするため、検出パタンと注目パタン（注目文字列から、抽出部１４２０と同じルールでＮグラムを抽出した場合のＮグラム列）を並べて比較する場合について説明する。
【００５４】
検索文字列が「・salaed・」、注目文字列（比較対象となる見出語）が「・salad・」であった場合、検索パタンはバイグラム「・ｓ」、モノグラム「ｓ」、「ａ」、「ｌ」、「ａ」、「ｅ」及び「ｄ」、バイグラム「ｄ・」が並んだＮグラム列である。一方、注目パタンはバイグラム「・ｓ」、モノグラム「ｓ」、「ａ」、「ｌ」、「ａ」及び「ｄ」、バイグラム「ｄ・」が並んだＮグラム列である。図１４（ａ）〜（ｃ）のアスタリスクは、出現位置（検索パタンに含まれるＮグラムが現れる部位）に現れるＮグラムである。
【００５５】
曖昧検索処理において最初の注目位置として、先頭の出現位置（「・ｓ」の先頭アドレス）が選択される。この場合、注目出現位置に現れる注目Ｎグラムは「・ｓ」である。注目Ｎグラムが現れる位置で注目パタンと検索パタンを並べると、図１４（ａ）の左のようになる。
【００５６】
その結果、注目パタンと検索パタンにおいて、Ｎグラム「・ｓ」、「ｓ」、「ａ」、「ｌ」及び「ａ」の５つが重なる（位置関係が一致している）ことが解る。図１４（ａ）〜（ｃ）においては、相対位置が一致している場合Ｎグラムの組み合わせを○で、一致していない組み合わせを×で表している。そこで、一致度のヒストグラムの一致数ｇ＝５の部分に１を加える（図１４（ａ））。このカウント結果「５」は、注目パタンと検索パタンに共に現れるＮグラム「・ｓ」を基準として、基準となるＮグラムと位置関係が一致する共通のＮグラムの数を示す。
【００５７】
ステップＳ１０７にて相対位置が一致する共通のＮグラムの数をカウントすると、次に全出現位置についてカウント処理済であるか否か判別する（ステップＳ１０８）。未処理の出現位置がある場合（ステップＳ１０８；Ｎｏ）、ステップＳ１０６に戻って、次の出現位置を注目位置として注目Ｎグラムを選択する。
【００５８】
そして、各出現位置を注目位置として、注目位置に現れるＮグラム（共通部分列）を基準として、位置関係が一致する共通のＮグラムの数をカウントする。検索パタンに注目Ｎグラムが２回以上現れる場合は、複数の出現位置のうち現在選択された組合せ（この例では「組合せ２」）の出現位置についてカウントする（図１４（ｂ））。
【００５９】
末尾のＮグラムまでカウントし、一致した数をヒストグラムに登録すると（図１４（ｃ））、ステップＳ１０８にて全出現位置が処理済と判別され（ステップＳ１０８；Ｙｅｓ）、次に決定部１６０がカウント結果を集計して、検索文字列と注目文字列の類似係数（ＦｕｚｚｙＥｓｔｉｄｘｉｄ，ｈｄｌｉｄ）を求める（ステップＳ１０９）。本実施形態では、次の式（１）を用いて算出する。
【００６０】
【数１】
2014146301.tif 000003
【００６１】
ただし、ｉｄｘｉｄは見出し番号、ｈｄｌｉｄは検索対象が見出語であることを示す。ｇは、ヒストグラムの横軸（一致数）を、Ｆｒｅｑｇはヒストグラムの縦軸（一致数ｇのカウント結果が得られた頻度）を、Ｍは検索文字列を構成するＮグラムの数である。 図１４（ｃ）のヒストグラムでは、式（１）の分子（Σの値）は２＊２＋５＊５＝２９となる。この値は、注目パタンと検索パタンにおいて、すべての共通するＮグラム（共通文字列）の相対位置が一致する頻度（累計一致頻度）である。全Ｎグラムが一致した場合、この累計一致頻度はＭの二乗となる。式（１）では、累計一致頻度をＭの二乗で除算することにより、一致頻度を正規化している。ＦＣｏｎｓｔは所定の定数であり、この例では１００とする。なお、類似係数は式（１）に限らず、例えば予め実験によって求めた好適なＦｒｅｑｇとＦｕｚｚｙＥｓｔｉｄｘｉｄ，ｈｄｌｉｄの対応関係を記録したテーブルを参照して求めても良い。このとき、検索パタンのＮグラムが注目文字列に検索パタンのＮグラムがｇだけ連続合致する頻度が、所定範囲のｇの値について大きくなれば大きくなることが望ましい。
【００６２】
ステップＳ１０９で検索文字列と注目文字列の類似度（ＦｕｚｚｙＥｓｔｉｄｘｉｄ，ｈｄｌｉｄ）を求めると、次に算出部１５０が類似係数に基づいて注目文字列を検索結果として表示する際の評価値（ランク評価値）を、ステップＳ１０５で決定された組合せについて算出する（ステップＳ１１０）。本実施形態では、ランク評価値が高いほど検索結果としての評価が高く、優先的に表示される。
【００６３】
ランク評価値（Ｅｓｔｉｄｘｉｄ，ｈａｄｌｉｄ）は、ステップＳ１０９で求めた類似係数と、検索文字列と対象文字列（注目文字列）の長さ（文字長）の差とによって定まる。本実施形態では、以下の式（２）を用いて算出する。
【００６４】
【数２】
2014146301.tif 000004
【００６５】
ここで、ＥｓｔＤｉｆｆＬｅｎｇｔｈｉｄｘｉｄ，ｈｄｌｉｄは、検索文字列と対象文字列（注目文字列）の長さ（文字長）の差の評価値である。ここで、ＥｓｔＤｉｆｆＬｅｎｇｔｈｉｄｘｉｄ，ｈｄｌｉｄは、文字長の差が０である場合に最も大きくなり、差が大きくなればなるほど小さくなる任意の方法でもとめてよいが、ここでは以下の式（３）によって求める。
ＥｓｔＤｉｆｆＬｅｎｇｔｈｉｄｘｉｄ，ｈｄｌｉｄ＝Δｌ×Ｄｃｏｎｓｔ…（３）
【００６６】
なお、Δｌは検索文字列と対象文字列（注目文字列）の長さ（文字長）の差を示す変数である。Ｄｃｏｎｓｔは、所定の定数（ここでは−１）である。
【００６７】
また、ＥｓｔＳｐＢｉｇｒａｍｉｄｘｉｄ，ｈｄｌｉｄは検索文字列のＮグラムのうち、区切文字を含むＮグラムが対象文字列（注目文字列）に現れるか否かによって定まる評価値である。ＥｓｔＳｐＢｉｇｒａｍｉｄｘｉｄ，ｈｄｌｉｄは、区切文字を含むＮグラムが対象文字列（注目文字列）に現れる場合に大きくする設定と、逆に小さくする（マイナスの値にする）設定との何れもが可能である。ここでは、以下の式（４）を用いて算出する。
【００６８】
ＥｓｔＳｐＢｉｇｒａｍｉｄｘｉｄ，ｈｄｌｉｄ
＝ＥｓｔＴｏｐ×ＴｏｐＣｏｎｓｔ＋ＥｓｔＬａｓｔ×ＬａｓｔＣｏｎｓｔ…（４）
ただし、ＥｓｔＴｏｐは検索文字列の先頭のＮグラム（図１４の例では「・ｓ」）が対象文字列に現れる場合に１となり、現れない場合に０となる変数である。ＥｓｔＬａｓｔは検索文字列の末尾のＮグラム（図１４の例では「ｄ・」）が対象文字列に現れる場合に１となり、現れない場合に０となる変数である。ＴｏｐＣｏｎｓｔ及びＬａｓｔＣｏｎｓｔは、予め設定された重み付けの定数である。
【００６９】
本実施例では、区切文字を含むＮグラムが対象文字列（注目文字列）に現れる場合にマイナスの数値を取るように、ＴｏｐＣｏｎｓｔ及びＬａｓｔＣｏｎｓｔをマイナスの数値（例えば、共に−５）に設定する。これは、本実施形態において検索キーワードの最初と最後の文字（図１４の例では「ｓ」及び「ｄ」）が、モノグラムとバイグラムの両方で現れるため、評価値に与える影響が強く成り過ぎて検索ノイズの原因となる場合があるためである。具体的には、例えば図１４で「ｓ」が検索キーワードと見出語の先頭に存在する場合に、それぞれ二つのＮグラム（「ｓ」及び「・ｓ」）が合致するため、評価値が大きく上昇する一方、その他の文字（例えば「ｅ」）が合致しないことについて評価値に与える影響が小さくなりすぎる場合がある。この場合に、先頭がｓであり、かつ末尾がｄであるが、その他の文字が大きく異なる見出語（例えばｓｓｄなど）の評価値が不適切なほどに大きくなってしまう怖れがある。そこで、ＴｏｐＣｏｎｓｔ及びＬａｓｔＣｏｎｓｔをマイナスの数値に設定することで、端部の文字が与える影響が大きくなりすぎないように調整することが出来る。
【００７０】
一方で、Ｎグラムが対象文字列（注目文字列）に現れる場合にＥｓｔＳｐＢｉｇｒａｍｉｄｘｉｄ，ｈｄｌｉｄを大きくする設定が有効である場合もある。例えば、端部（先頭と末尾）の文字が検索キーワードと見出語で一致することを検索結果の条件として強く求める場合（例えば、前方一致しないキーワードの表示順位を大きく下げたい場合）などである。ＴｏｐＣｏｎｓｔ及びＬａｓｔＣｏｎｓｔの値は、ユーザの設定操作によって自由に変更可能である。
【００７１】
ランク評価値は、検索文字列と対象文字列（見出語）との類似度を総合的に評価した数値であるので、検索文字列と対象文字列との類似度と表現することも出来る。本実施形態では、Ｆｃｏｎｓｔを１００とし、Ｄｃｏｎｓｔを−１に設定した。その結果、正規化した累計一致頻度が大きい対象文字列はそうでない対象文字列よりも（長さの差にかかわらず）ランク評価値が高くなる。また、正規化した累計一致頻度が同じ対象文字列については、長さの差が小さい対象文字列ほどランク評価値が高くなる。
【００７２】
ステップＳ１１０でランク評価値を算出すると、次に算出部１５０は図１３に示した複数の組合せの中に、未処理の組合せがあるか否か判別する（ステップＳ１１１）。判別の結果、未処理の組合せが有る場合には（ステップＳ１１１；ＹＥＳ）、次の未処理の組合せについて、ステップＳ１０５から処理を繰り返す。一方、全ての組合せについて処理済である場合は（ステップＳ１１１；ＮＯ）、ステップＳ１０５で決定した全組み合わせについてステップＳ１１０で算出したランク付け評価値のうち、最大のランク付け評価値を、注目文字列検索文字列の類似度を評価するランク付け評価値として決定する（ステップＳ１１２）。
【００７３】
ステップＳ１１２の処理が終わると、検索部１４０はステップＳ１０２で抽出した見出語番号の全ての見出語について処理を終了したか判別する（ステップＳ１１３）。未処理の見出語が有る場合（ステップＳ１１３；Ｎｏ）には、次の見出語を注目文字列としてステップＳ１０４から処理を繰り返す。
【００７４】
一方、全見出語について上記処理済みであると判別すると（ステップＳ１１３；Ｙｅｓ）、曖昧検索処理を終了する。
【００７５】
図９に戻って、ステップＳ１４で曖昧検索処理が終了すると、出力部１７０が検索結果を出力して、表示部１８０に検索結果を表示させる（ステップＳ１５）。
具体的には、曖昧検索処理（図１１）のステップＳ１１０で算出したランク評価値が高い順に、所定数の見出語を当該見出語を含む辞書の種別と共に表示部１８０に表示させる（図６）。あるいは、ランク評価値が所定の閾値以上の見出語を全て表示するとしても良い。
【００７６】
以上説明したとおり、本実施形態のテキスト検索装置は、端部（最初の一文字、最後の一文字）が一致するか否か、及び検索キーワードと検索対象の文書（見出語等）の文字長の違いを考慮した曖昧検索を実行する。そのため、高い精度で曖昧検索を実行することが出来る。
【００７７】
また、検索文字列に現れる全ての文字が、抽出部が抽出するＮグラムの何れかに含まれるため、検索文字列全体を反映した、精度が高い曖昧検索の結果を得ることが出来る。
【００７８】
また、検索文字列と対象文字列とに共通するＮグラムのそれぞれが現れる位置を基準として、相対位置が一致する共通のＮグラムの数を求め、その結果を用いて類似度を算出しているので、検索文字列と対象文字列に違いがあったとしても、文字列全体がどの程度似ているかを反映した態様で曖昧検索の結果を出力できる。
【００７９】
また、本実施形態のテキスト検索装置は検索文字列と対象文字列の文字長の差が小さいほどランク評価値（検索文字列と対象文字列の類似度に対応）が高くなるように設定されている。このため、検索文字列と対象文字列の長さが近いものを優先的に表示することとなる。逆に言えば、ユーザが入力した文字長と大きく異なる見出語は表示優先度が下がる（あるいは表示されない）ため、検索ノイズを減少させることができる。
【００８０】
さらに、図８に示したような転置インデックスを用いて曖昧検索を実行するため、曖昧検索を高速に実行することが出来る。この転置インデックスは、曖昧検索以外の検索処理にも利用可能である。このため、曖昧検索を含む複数の検索機能を実現するに当って、使用する記憶容量が少なくてすむ。
【００８１】
図８に示したような転置インデックスには、検索対象となる文字列（見出語）を文字長毎にグループ分けした上で各グループに属する文書を特定する情報（Ｇファイル）が含まれる。本実施形態のテキスト検索装置は、曖昧検索に当って、Ｇファイルを参照して検索キーワードと大きく異なる文字長の文書については曖昧検索の対象としない（検索処理を省略する）構成により、曖昧検索を高速に実行することができる。
【００８２】
また、処理対象となる検索パタンとして、区切文字を含む端部のＮグラムについてはバイグラムを、含まないＮグラム（検索キーワードの文字列に対応）についてはモノグラムを、それぞれ抽出する。この構成により、区切文字と検索キーワードの位置関係を保持しつつ、一つの不一致が複数のＮグラムに影響を与えることによって、類似度が下がりすぎることを防止することができる。
【００８３】
また、検索パタンに含まれるＮグラムの何れかが注目文字列の複数箇所に現れる場合に、図１３に示したような複数箇所の出現位置の組合せのそれぞれについてランク付け評価値を算出し、最大のランク付け評価値を注目文字列の評価値とする。注目文字列の複数箇所に現れるＮグラムについて、そのＮグラムを注目Ｎグラムとして求められる一致頻度を比較するだけでは、何れの位置がより精度が高いランク付け評価値が得られる望ましい位置であるか推定することが出来ない場合がある。このような構成により、Ｎグラムの何れかが注目文字列の複数箇所に現れる場合でも、精度が高い曖昧検索を実行する事が出来る。
【００８４】
（変形例）
以上、本発明の実施形態１について説明したが、本発明の実施形態はこれに限られない。
例えば、上記実施形態１では、区切文字は半角スペースであるとしたが、区切文字はこれに限られず自由に選択可能である。例えば、区切文字はシステムに予約されたユニークなマーク（その他で曖昧検索の対象となるテキストに現れないマーク）であってよい。
【００８５】
さらに、実施形態１およびその変形例において、ステップＳ１０７にて注目文字列において、共通のＮグラムが検索文字列と同じ位置関係で現れる頻度をカウントした。しかし、同じ位置関係に限られず、類似した位置関係に表れる頻度をカウントしてもよい。この場合、例えば類似範囲として検索文字列の位置と相対位置の絶対値が所定の文字数（例えば１文字）の範囲でズレていた場合にも、共通の位置に現れた場合と同様に一致度ヒストグラムに加算する。あるいは、一致度ヒストグラムに加算するに当たって、出現位置が検索文字列と一致していた場合には重み１を、一文字ズレていた場合には重み０．５を用いて重付け加算するなど、より類似した位置に現れるほど一致頻度が高くなるように算出方法を設定してもよい。
この場合、検索文字列と注目文字列において、Ｎグラムが現れる位置が完全に一致していなくても所定の類似範囲に含まれたことに基づいてランク付け評価値が上がるので、入力エラーが多い場合でもユーザが所望の検索結果となる割合が増すという効果が得られる。
【００８６】
また、実施形態１では再配置ＣＴＤ及び転置インデックスを生成する処理（データ等生成処理）をテキスト検索装置１００が実行するとしたが、これに限らず、予め外部装置が生成した再配置ＣＴＤ及び転置インデックスを記憶部に記憶していることで足りる。例えば、工場出荷時において、各辞書データに対応する再配置ＣＴＤと転置インデックスとを記憶するとしても良い。
【００８７】
検索対象となる対象文字列は、見出し語に限らず、解説テキスト・用例テキスト出会っても良い。
【００８８】
尚、実施形態１およびその変形例において、テキスト検索装置１００は、検索キーワードに基づいて辞書を検索するとして説明したが、検索の対象とされる文書は、辞書に限定される訳ではなく、どのような文書でも良い。
【００８９】
検索の対象とされる文書は、例えば、「発明の名称」及び「特許請求の範囲」などのカテゴリにそれぞれ分類されたテキストで構成される特許明細書であっても良い。また、検索の対象とされる文書は、例えば、ある製品が有する機能の名称を表すテキストが分類されるカテゴリ（以下、機能名カテゴリという）と、当該機能を利用するための操作方法を表すテキストが分類されるカテゴリ（以下、操作方法カテゴリという）とを有する説明書であっても良い。
【００９０】
尚、本発明は、実施形態１、若しくはその変形例に係るテキスト検索装置１００として提供できることはもとより、プログラムの適用により、既存のテキスト検索装置をテキスト検索装置１００として機能させることもできる。すなわち、テキスト検索装置１００による各機能構成を実現させるためのテキスト検索プログラムを、既存のテキスト検索装置を制御するコンピュータ（ＣＰＵなど）が実行できるように適用することで、実施形態１、若しくは変形例に係るテキスト検索装置１００として機能させることができる。
【００９１】
このようなプログラムの配布方法は任意であり、例えば、メモリカード、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）又はＤＶＤ−ＲＯＭ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などの記録媒体に格納して配布できる他、インタネットなどの通信媒体を介して配布することもできる。また、再配置ＣＴＤ及び転置インデックス等の上記処理に必要なデータの一部又は全部は、外部サーバに記憶されており、通信機能によりこれらのデータを取得して上記処理を実行する構成も可能である。
【００９２】
また、本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。つまり、本発明のいくつかの実施形態を説明したが、上述した実施形態は本発明を説明するためのものであり、本発明の範囲を限定するものではない。本発明の範囲は、実施形態ではなく、特許請求の範囲に記載された発明とその均等の範囲を含む。
以下に本願出願の当初の特許請求の範囲に記載された発明を付記する。
【００９３】
（付記１）
検索対象文字列の両端部に区切文字が付加されている文書データを記憶している記憶手段と、
キーワードを取得する取得手段と、
前記取得手段が取得したキーワードの両端部に文字列の区切りであることを示す区切文字を付加して検索文字列を生成する生成手段と、
前記生成手段が生成した検索文字列から複数の部分列を抽出し、この抽出された部分列が、前記文書データの検索対象文字列に現れる出現位置を特定する特定手段と、
前記検索対象文字列において、前記検索文字列の部分列と共通する部分列が前記検索文字列と類似した位置関係で現れる頻度を、前記特定手段の特定結果に基づいて決定する決定手段と、
前記決定手段の決定結果と、前記検索対象文字列と前記検索文字列との文字長の違いと、に基づいて当該検索対象文字列と当該検索文字列の類似度を評価する評価手段と、
前記評価手段の評価結果に基づいて前記検索対象文字列を出力する出力手段と、
を備えることを特徴とする検索装置。
【００９４】
（付記２）
前記特定手段は、前記検索文字列が含む文字列の全てが、何れかの部分列に含まれるように複数の部分列を抽出する抽出手段を含み、
前記特定手段は、前記抽出手段が抽出した部分列について前記特定する処理を実行する、
ことを特徴とする付記１に記載の検索装置。
【００９５】
（付記３）
前記抽出手段が抽出する部分列のうち、前記区切文字を含む部分列は何れも２以上の文字を含む、
ことを特徴とする付記２に記載の検索装置。
【００９６】
（付記４）
複数の前記検索対象文字列に含まれる、所定数の文字を含む部分列のそれぞれが前記検索対象文字列に現れる位置を示すインデックスを記憶する記憶手段を更に備え、
前記特定手段は、前記インデックスを用いて前記部分列が現れる位置を特定する、
ことを特徴とする付記１〜３の何れか１つに記載の検索装置。
【００９７】
（付記５）
前記インデックスは、前記複数の検索対象文字列を文字長に基づいてグループ分けした上で、当該グループ毎に検索対象文字列への参照をまとめた情報を含み、
前記特定手段は、前記グループの文字長と前記検索文字列の文字長との誤差が所定の閾値よりも小さいグループに含まれる検索対象文字列について、前記特定する処理を実行する一方、前記所定の閾値より大きいグループに含まれる検索対象文字列については前記特定する処理を省略する、
ことを特徴とする付記４に記載の検索装置。
【００９８】
（付記６）
前記抽出手段が抽出する部分列のうち、前記区切文字を含まない部分列は何れも１文字からなる、
ことを特徴とする付記３に記載の検索装置。
【００９９】
（付記７）
検索対象文字列の両端部に区切文字が付加されている文書データから所望の検索対象文字列を検索する方法であって、
キーワードを取得し、
前記取得したキーワードの両端部に文字列の区切りであることを示す区切文字を付加して検索文字列を生成し、
前記生成した検索文字列から複数の部分列を抽出し、この抽出された部分列が、前記文書データの検索対象文字列に現れる出現位置を特定し、
前記検索対象文字列において、前記検索文字列の部分列と共通する部分列が前記検索文字列と類似した位置関係で現れる頻度を、前記特定した結果に基づいて決定し、
前記決定した結果と、前記検索対象文字列と前記検索文字列との文字長の違いと、に基づいて当該検索対象文字列と当該検索文字列の類似度を評価し、
前記評価結果に基づいて前記検索対象文字列を出力する、
ことを特徴とする検索方法。
【０１００】
（付記８）
コンピュータを、
検索対象文字列の両端部に区切文字が付加されている文書データを記憶している記憶手段と、
キーワードを取得する取得手段と、
前記取得手段が取得したキーワードの両端部に文字列の区切りであることを示す区切文字を付加して検索文字列を生成する生成手段と、
前記生成手段が生成した検索文字列から複数の部分列を抽出し、この抽出された部分列が、前記文書データの検索対象文字列に現れる出現位置を特定する特定手段と、
前記検索対象文字列において、前記検索文字列の部分列と共通する部分列が前記検索文字列と類似した位置関係で現れる頻度を、前記特定手段の特定結果に基づいて決定する決定手段と、
前記決定手段の決定結果と、前記検索対象文字列と前記検索文字列との文字長の違いと、に基づいて当該検索対象文字列と当該検索文字列の類似度を評価する評価手段と、
前記評価手段の評価結果に基づいて前記検索対象文字列を出力する出力手段
として機能させるためのプログラム。
【符号の説明】
【０１０１】
１００・・・テキスト検索装置、１００ａ・・・ＣＰＵ、１００ｂ・・・ＲＯＭ、１００ｃ・・・ＲＡＭ、１００ｄ・・・ハードディスク、１００ｅ・・・メディアコントローラ、１００ｇ・・・ビデオカード、１００ｈ・・・ＬＣＤ、１００ｉ・・・キーボード、１００ｊ・・・スピーカ、１１０・・・情報記憶部、１２０・・・生成部、１３０・・・取得部、１４０・・・検索部、１４１０・・・付加部、１４２０・・・抽出部、１４３０・・・特定部、１５０・・・算出部、１６０・・・決定部、１７０・・・出力部、１８０・・・表示部
【図１】
2014146301.tif 000005
【図２】
2014146301.tif 000006
【図３】
2014146301.tif 000007
【図４】
2014146301.tif 000008
【図５】
2014146301.tif 000009
【図６】
2014146301.tif 000010
【図７】
2014146301.tif 000011
【図８】
2014146301.tif 000012
【図９】
2014146301.tif 000013
【図１０】
2014146301.tif 000014
【図１１】
2014146301.tif 000015
【図１２】
2014146301.tif 000016
【図１３】
2014146301.tif 000017
【図１４】
2014146301.tif 000018