(57)【要約】【課題】検索条件に数詞や数詞範囲が含まれる場合に十分な検索結果を得ること。【解決手段】文書の形態素解析により特定された数値、単位及び数値付属範囲を文書ＩＤ及びオフセットと対応付けてそれぞれ数値インデックス、単位インデックス及び範囲インデックスとして記憶部１３に記憶する。そして、検索処理部１４が、検索語の形態素解析結果に基づいて、検索語で指定された数値、単位及び数値付属範囲を特定し、特定した数値、単位及び数値付属範囲と記憶部１３とに基づいて、検索条件を満たす文書を検索する。【選択図】図３
2020187533.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータそれぞれに含まれる文字列に対する形態素解析に基づいて特定された数値、単位及び数値付属範囲のそれぞれを、前記データを識別する識別情報及び前記データにおける位置を示す位置情報と対応付けて記憶する記憶部と、
検索条件を受け付けた場合に、該検索条件に含まれる検索語に対して形態素解析を行って該検索語で指定された数値、単位及び数値付属範囲を特定し、特定した数値、単位及び数値付属範囲の情報と前記記憶部に記憶された情報とに基づいて、前記検索条件を満たすデータを前記複数のデータから検索する検索部と
を有することを特徴とする検索装置。
【請求項２】
前記文字列に対して形態素解析を行って数値、単位及び数値付属範囲を特定し、特定した数値、単位及び数値付属範囲のそれぞれを前記識別情報及び位置情報と対応付けて前記記憶部に格納する登録部をさらに有することを特徴とする請求項１に記載の検索装置。
【請求項３】
前記記憶部は、
前記文字列に対する形態素解析に基づいて特定された数値を前記識別情報及び前記位置情報と対応付けて記憶する数値記憶部と、
前記文字列に対する形態素解析に基づいて特定された数値付属範囲を前記識別情報及び前記位置情報と対応付けて記憶する範囲記憶部と、
前記文字列に対する形態素解析に基づいて特定された単位を前記識別情報及び前記位置情報と対応付けて記憶する単位記憶部と、
を有することを特徴とする請求項１又は２に記載の検索装置。
【請求項４】
前記検索部は、前記検索語に範囲を持たない数値が指定された場合に、
前記検索語で指定された数値に対応付けられた前記識別情報及び前記位置情報を第１識別情報及び第１位置情報として前記数値記憶部から抽出し、
前記検索語で指定された数値の数値付属範囲として以上、等しい及び以下を特定し、特定した数値付属範囲それぞれに対応付けられた前記識別情報及び前記位置情報を第２識別情報及び第２位置情報として前記範囲記憶部から抽出し、
前記検索語で指定された単位に対応付けられた前記識別情報及び前記位置情報を第３識別情報及び第３位置情報として前記単位記憶部から抽出し、
前記第１識別情報及び前記第１位置情報と前記第２識別情報及び前記第２位置情報と前記第３識別情報及び前記第３位置情報とに基づいて、前記検索語で指定された数値を含むデータを前記複数のデータから検索することを特徴とする請求項３に記載の検索装置。
【請求項５】
前記検索部は、前記検索語に範囲を持たない数値が指定された場合に、
前記検索語で指定された数値に対応付けられる下限値として前記数値より小さい数値を特定し、特定した数値それぞれに対応付けられた前記識別情報及び前記位置情報を第１識別情報及び第１位置情報として前記数値記憶部から抽出し、
前記下限値の数値付属範囲として以上及びより大きいを特定し、特定した数値付属範囲それぞれに対応付けられた前記識別情報及び前記位置情報を第２識別情報及び第２位置情報として前記範囲記憶部から抽出し、
前記検索語で指定された単位に対応付けられた前記識別情報及び前記位置情報を第３識別情報及び第３位置情報として前記単位記憶部から抽出し、
前記第１識別情報及び前記第１位置情報と前記第２識別情報及び前記第２位置情報と前記第３識別情報及び前記第３位置情報とに基づいて、前記下限値に基づく第１データ候補を前記複数のデータから特定し、
前記検索語で指定された数値に対応付けられる上限値として前記数値より大きい数値を特定し、特定した数値それぞれに対応付けられた前記識別情報及び前記位置情報を第４識別情報及び第４位置情報として前記数値記憶部から抽出し、
前記上限値の数値付属範囲として以下及びより小さいを特定し、特定した数値付属範囲それぞれに対応付けられた前記識別情報及び前記位置情報を第５識別情報及び第５位置情報として前記範囲記憶部から抽出し、
前記第４識別情報及び前記第４位置情報と前記第５識別情報及び前記第５位置情報と前記第３識別情報及び前記第３位置情報とに基づいて、前記上限値に基づく第２データ候補を前記複数のデータから特定し、
前記第１データ候補及び前記第２データ候補に基づいて、前記検索語で指定された数値を含む数値範囲を含むデータを検索することを特徴とする請求項３に記載の検索装置。
【請求項６】
前記検索部は、前記検索語に範囲のある数値が指定された場合に、
数値範囲に含まれる数値それぞれに対応付けられた前記識別情報及び前記位置情報を第１識別情報及び第１位置情報として前記数値記憶部から抽出し、
前記数値範囲に含まれる数値の数値付属範囲として等しいを特定し、特定した数値付属範囲に対応付けられた前記識別情報及び前記位置情報を第２識別情報及び第２位置情報として前記範囲記憶部から抽出し、
前記検索語で指定された単位に対応付けられた前記識別情報及び前記位置情報を第３識別情報及び第３位置情報として前記単位記憶部から抽出し、
前記第１識別情報及び前記第１位置情報と前記第２識別情報及び前記第２位置情報と前記第３識別情報及び前記第３位置情報とに基づいて、前記範囲に含まれる数値を含むデータを前記複数のデータから検索することを特徴とする請求項３に記載の検索装置。
【請求項７】
前記検索部は、前記検索語に範囲のある数値が指定された場合に、
前記範囲の下限値として指定された数値に対応付けられた前記識別情報及び前記位置情報を第１識別情報及び第１位置情報として前記数値記憶部から抽出し、
前記範囲の指定に基づいて前記下限値の数値付属範囲として以上とより大きいのいずれかを特定し、特定した数値付属範囲に対応付けられた前記識別情報及び前記位置情報を第２識別情報及び第２位置情報として前記範囲記憶部から抽出し、
前記検索語で指定された単位に対応付けられた前記識別情報及び前記位置情報を第３識別情報及び第３位置情報として前記単位記憶部から抽出し、
前記第１識別情報及び前記第１位置情報と前記第２識別情報及び前記第２位置情報と前記第３識別情報及び前記第３位置情報とに基づいて、前記下限値に基づく第１データ候補を前記複数のデータから特定し、
前記範囲の上限値として指定された数値に対応付けられた前記識別情報及び前記位置情報を第４識別情報及び第４位置情報として前記数値記憶部から抽出し、
前記範囲の指定に基づいて前記上限値の数値付属範囲として以下とより小さいのいずれかを特定し、特定した数値付属範囲に対応付けられた前記識別情報及び前記位置情報を第５識別情報及び第５位置情報として前記範囲記憶部から抽出し、
前記第４識別情報及び前記第４位置情報と前記第５識別情報及び前記第５位置情報と前記第３識別情報及び前記第３位置情報とに基づいて、前記上限値に基づく第２データ候補を前記複数のデータから特定し、
前記第１データ候補及び前記第２データ候補に基づいて、前記範囲を含むデータを検索することを特徴とする請求項３に記載の検索装置。
【請求項８】
前記検索部は、前記検索語に範囲のある数値が指定された場合に、
前記範囲の下限値として指定された数値より小さい数値に対応付けられた前記識別情報及び前記位置情報を第１識別情報及び第１位置情報として前記数値記憶部から抽出し、
前記小さい数値の数値付属範囲として以上及びより大きいを特定し、特定した数値付属範囲に対応付けられた前記識別情報及び前記位置情報を第２識別情報及び第２位置情報として前記範囲記憶部から抽出し、
前記検索語で指定された単位に対応付けられた前記識別情報及び前記位置情報を第３識別情報及び第３位置情報として前記単位記憶部から抽出し、
前記第１識別情報及び前記第１位置情報と前記第２識別情報及び前記第２位置情報と前記第３識別情報及び前記第３位置情報とに基づいて、前記下限値に基づく第１データ候補を前記複数のデータから特定し、
前記範囲の上限値として指定された数値より大きい数値それぞれに対応付けられた前記識別情報及び前記位置情報を第４識別情報及び第４位置情報として前記数値記憶部から抽出し、
前記上限値の数値付属範囲として以下及びより小さいを特定し、特定した数値付属範囲に対応付けられた前記識別情報及び前記位置情報を第５識別情報及び第５位置情報として前記範囲記憶部から抽出し、
前記第４識別情報及び前記第４位置情報と前記第５識別情報及び前記第５位置情報と前記第３識別情報及び前記第３位置情報とに基づいて、前記下限値に基づく第２データ候補を前記複数のデータから特定し、
前記第１データ候補及び前記第２データ候補に基づいて、前記範囲を包含する範囲を含むデータを検索することを特徴とする請求項３に記載の検索装置。
【請求項９】
前記検索部は、前記検索語に範囲のある数値が指定された場合に、
前記範囲に含まれる数値に対応付けられた前記識別情報及び前記位置情報を第１識別情報及び第１位置情報として前記数値記憶部から抽出し、
下限側の数値付属範囲として以下及びより小さいを特定し、特定した数値付属範囲それぞれに対応付けられた前記識別情報及び前記位置情報を第２識別情報及び第２位置情報として前記範囲記憶部から抽出し、
前記検索語で指定された単位に対応付けられた前記識別情報及び前記位置情報を第３識別情報及び第３位置情報として前記単位記憶部から抽出し、
前記第１識別情報及び前記第１位置情報と前記第２識別情報及び前記第２位置情報と前記第３識別情報及び前記第３位置情報とに基づいて、下限側が部分一致する第１データ候補を前記複数のデータから特定し、
上限側の数値付属範囲として以上及びより大きいを特定し、特定した数値付属範囲それぞれに対応付けられた前記識別情報及び前記位置情報を第４識別情報及び第４位置情報として前記範囲記憶部から抽出し、
前記第１識別情報及び前記第１位置情報と前記第４識別情報及び前記第４位置情報と前記第３識別情報及び前記第３位置情報とに基づいて、上限側が部分一致する第２データ候補を前記複数のデータから特定し、
前記第１データ候補及び前記第２データ候補に基づいて、前記範囲と部分一致するデータ及び前記範囲に内包される範囲を含むデータを検索することを特徴とする請求項３に記載の検索装置。
【請求項１０】
コンピュータが、
複数のデータそれぞれに含まれる文字列に対する形態素解析に基づいて特定された数値、単位及び数値付属範囲のそれぞれを、前記データを識別する識別情報及び前記データにおける位置を示す位置情報と対応付けて記憶部に記憶し、
検索条件を受け付けた場合に、該検索条件に含まれる検索語に対して形態素解析を行って該検索語で指定された数値、単位及び数値付属範囲を特定し、特定した数値、単位及び数値付属範囲の情報と前記記憶部に記憶された情報とに基づいて、前記検索条件を満たすデータを前記複数のデータから検索する
処理を実行することを特徴とする検索方法。
【請求項１１】
コンピュータに、
複数のデータそれぞれに含まれる文字列に対する形態素解析に基づいて特定された数値、単位及び数値付属範囲のそれぞれを、前記データを識別する識別情報及び前記データにおける位置を示す位置情報と対応付けて記憶部に記憶し、
検索条件を受け付けた場合に、該検索条件に含まれる検索語に対して形態素解析を行って該検索語で指定された数値、単位及び数値付属範囲を特定し、特定した数値、単位及び数値付属範囲の情報と前記記憶部に記憶された情報とに基づいて、前記検索条件を満たすデータを前記複数のデータから検索する
処理を実行させることを特徴とする検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索装置、検索方法及び検索プログラムに関する。
【背景技術】
【０００２】
文書など文字列を含むデータの検索では、数詞を検索条件に含まれる検索語とする場合がある。なお、ここでは、数詞は、数値と単位から構成されるとする。例えば、数詞「１９９０年」は、数値「１９９０」と単位「年」から構成され、数詞「２００ｇ」は、数値「２００」と単位「ｇ」から構成される。
【０００３】
例えば、文書の検索では、「年号＝１９９０年」などの検索条件に含まれる検索語「１９９０年」のように特定の年（とし）を検索語とする場合がある。また、文書の検索では、数詞の範囲を検索語とする場合もある。例えば、「１９７０年〜２０００年」などの年の範囲を検索語とする場合がある。
【０００４】
なお、従来技術として、電子文書に含まれている、数値とその種別を含む１以上の数値情報から、それら数値情報に係る範囲情報を抽出する技術がある。この技術は、範囲情報の抽出に利用可能な数値情報を抽出し、抽出した数値情報に基づいて、電子文書における、範囲情報を抽出させるための数値表現を探索する抽出領域を決定する。そして、この技術は、決定した電子文書における抽出領域内に存在する１又は複数の数値表現から、上限及び下限で規定される範囲情報を抽出する。
【０００５】
また、従来技術として、検索条件に少なくとも数値情報が含まれる場合の文書検索処理を向上させる文書検索システムがある。この文書検索システムは、数値情報分類手段と、特徴量算出手段と、特徴量記憶手段と、数値重要度算出手段と、文書検索手段とを備える。数値情報分類手段は、入力文書から抽出された１又は複数の数値情報のそれぞれを、数値情報の単位種類毎に分類する。特徴量算出手段は、数値情報を含む文書を推定させる特徴量を、単位種類毎の所定の数値範囲を伴って算出する。特徴量記憶手段は、特徴量算出手段が算出した特徴量を単位種類毎に記憶する。数値重要度算出手段は、検索条件として入力された入力数値情報の単位種類に基づいて、対応する単位種類の特徴量を特徴量記憶手段から取得し、少なくとも取得した特徴量に基づいて検索条件として入力された入力数値情報の重みを算出する。文書検索手段は、数値重要度算出手段が算出した入力数値情報の重みに基づいて登録文書から文書を検索する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−３５０９８９号公報
【特許文献２】特開２００６−３２３５７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
検索条件に数詞や数詞範囲が含まれる場合に、検索結果が不十分であるという問題がある。例えば、「１９７０年〜２０００年」を検索語とした場合、「１９５０年〜２０１０年」を文字列として含むデータは検索されない。
【０００８】
本発明は、１つの側面では、検索条件に数詞や数詞範囲が含まれる場合に精度の良い検索結果を得ることを目的とする。
【課題を解決するための手段】
【０００９】
１つの態様では、検索装置は、記憶部と検索部を有する。前記記憶部は、複数のデータそれぞれに含まれる文字列に対する形態素解析に基づいて特定された数値、単位及び数値付属範囲のそれぞれを、前記データを識別する識別情報及び前記データにおける位置を示す位置情報と対応付けて記憶する。前記検索部は、検索条件を受け付けた場合に、該検索条件に含まれる検索語に対して形態素解析を行って該検索語で指定された数値、単位及び数値付属範囲を特定する。そして、前記検索部は、特定した数値、単位及び数値付属範囲の情報と前記記憶部に記憶された情報とに基づいて、前記検索条件を満たすデータを前記複数のデータから検索する。
【発明の効果】
【００１０】
１つの側面では、本発明は、検索条件に数詞や数詞範囲が含まれる場合に精度の良い検索結果を得ることができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例に係る検索装置による検索例を説明するための図である。
【図２】図２は、数詞範囲を含む文書の検索結果の７つのパターンを示す図である。
【図３】図３は、実施例に係る検索装置の機能構成を示す図である。
【図４】図４は、文書の登録とインデックスの作成を説明するための図である。
【図５】図５は、インデックスのデータ構造の一例を示す図である。
【図６】図６は、検索語に範囲を持たない数詞が指定された場合の文書の検索の説明に用いられる文書群と検索条件を示す図である。
【図７Ａ】図７Ａは、検索語の数詞と同じ数詞が存在する文書を検索する処理を説明するための第１の図である。
【図７Ｂ】図７Ｂは、検索語の数詞と同じ数詞が存在する文書を検索する処理を説明するための第２の図である。
【図８Ａ】図８Ａは、検索語の数詞を含む数詞範囲が存在する文書を検索する処理を説明するための第１の図である。
【図８Ｂ】図８Ｂは、検索語の数詞を含む数詞範囲が存在する文書を検索する処理を説明するための第２の図である。
【図８Ｃ】図８Ｃは、検索語の数詞を含む数詞範囲が存在する文書を検索する処理を説明するための第３の図である。
【図９】図９は、検索語に範囲のある数詞が指定された場合の文書の検索の説明に用いられる文書群と検索条件を示す図である。
【図１０Ａ】図１０Ａは、検索語の数詞範囲に含まれる数詞が存在する文書を検索する処理を説明するための第１の図である。
【図１０Ｂ】図１０Ｂは、検索語の数詞範囲に含まれる数詞が存在する文書を検索する処理を説明するための第２の図である。
【図１１Ａ】図１１Ａは、検索語の数詞範囲と等しい数詞範囲が存在する文書を検索する処理を説明するための第１の図である。
【図１１Ｂ】図１１Ｂは、検索語の数詞範囲と等しい数詞範囲が存在する文書を検索する処理を説明するための第２の図である。
【図１２Ａ】図１２Ａは、検索語の数詞範囲を包含する数詞範囲が存在する文書を検索する処理を説明するための第１の図である。
【図１２Ｂ】図１２Ｂは、検索語の数詞範囲を包含する数詞範囲が存在する文書を検索する処理を説明するための第２の図である。
【図１３Ａ】図１３Ａは、検索語の数詞範囲と部分的に一致する数詞範囲が存在する文書、及び、検索語の数詞範囲に含まれる数詞範囲が存在する文書を検索する処理を説明するための第１の図である。
【図１３Ｂ】図１３Ｂは、検索語の数詞範囲と部分的に一致する数詞範囲が存在する文書、及び、検索語の数詞範囲に含まれる数詞範囲が存在する文書を検索する処理を説明するための第２の図である。
【図１４】図１４は、登録処理部による登録処理のフローを示すフローチャートである。
【図１５】図１５は、検索処理部による検索処理のフローを示すフローチャートである。
【図１６】図１６は、数詞第１処理のフローを示すフローチャートである。
【図１７】図１７は、数詞第２処理のフローを示すフローチャートである。
【図１８】図１８は、範囲第１処理のフローを示すフローチャートである。
【図１９】図１９は、範囲第２処理のフローを示すフローチャートである。
【図２０】図２０は、範囲第３処理のフローを示すフローチャートである。
【図２１】図２１は、範囲第４処理のフローを示すフローチャートである。
【図２２】図２２は、実施例に係る検索プログラムを実行するコンピュータのハードウェア構成を示す図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示する検索装置、検索方法及び検索プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【実施例】
【００１３】
まず、実施例に係る検索装置による検索例について説明する。図１は、実施例に係る検索装置による検索例を説明するための図である。図１は、検索語が「２０００年」である場合（１）と「２０００年〜２０２０年」である場合（２）を示す。また、文書＃１には「１９９０年〜２０１０年」が含まれ、文書＃２には「２０１０年まで」が含まれ、文書＃３には「２０１０年以降」が含まれ、文書＃４には「２０００年から」が含まれ、文書＃５には「２０００年〜２０１０年」が含まれる。また、文書＃６には「２０００年から２０２０年まで」が含まれ、文書＃７には「１９００年〜２０１０年」が含まれる。なお、ここでは、「ｓ年〜ｅ年」には、ｓ年、ｅ年が含まれるとする。
【００１４】
図１に示すように、検索語が「２０００年」である場合、実施例に係る検索装置は、文書＃１、文書＃２、文書＃４、文書＃５、文書＃６及び文書＃７をヒットした文書として出力する。すなわち、「２０００年」は「１９９０年〜２０１０年」に含まれるので文書＃１が検索され、「２０００年」は「２０１０年まで」に含まれるので文書＃２が検索され、「２０００年」は「２０００年から」に含まれるので、文書＃４が検索される。また、「２０００年」は「２０００年〜２０１０年」に含まれるので文書＃５が検索され、「２０００年」は「２０００年から２０２０年まで」に含まれるので文書＃６が検索される。また、「２０００年」は「１９００年〜２０１０年」に含まれるので、文書＃７が検索される。
【００１５】
検索語が「２０００年〜２０２０年」である場合、実施例に係る検索装置は、文書＃１〜文書＃７をヒットした文書として出力する。すなわち、文書＃６は、検索語の数詞範囲と文書中の数詞範囲が完全に一致するので検索される。また、文書＃４は、検索語の数詞範囲が文書中の数詞範囲に含まれるので検索される。また、文書＃５は、検索語の数詞範囲が文書中の数詞範囲を含むので検索される。なお、ここでは、文書＃４のように検索語の数詞範囲が文書中の数詞範囲に含まれることを、検索語の数詞範囲は文書中の数詞範囲に内包されるといい、文書＃５のように検索語の数詞範囲が文書中の数詞範囲を含むことを、検索語の数詞範囲は文書中の数詞範囲を包含するという。また、文書＃１、文書＃２、文書＃３、文書＃７は、検索語の数詞範囲と文書中の数詞範囲が部分的に一致するので、検索される。
【００１６】
このように、実施例に係る検索装置は、検索語が範囲を持たない数値で指定された場合には、数値を含む範囲を含む文書を検索結果として出力する。また、実施例に係る検索装置は、検索語が数詞範囲で指定された場合には、検索語の数詞範囲と完全一致する数詞範囲を含む文書、内包一致する数詞範囲を含む文書、包含一致する数詞範囲を含む文書及び部分一致する数詞範囲を含む文書を検索結果として出力する。したがって、実施例に係る検索装置は、検索条件に数詞や数詞範囲が含まれる場合に、十分な検索結果を得ることができる。
【００１７】
また、実施例に係る検索装置は、数詞範囲を含む文書の検索結果を７つのパターンに分けて表示する。図２は、数詞範囲を含む文書の検索結果の７つのパターンを示す図である。図２では、検索語は「１９７０年〜２０００年」である。図２に示すように、７つのパターンには、完全一致と、内包一致と、内包後方一致と、内包前方一致と、包含一致と、包含後方一致と、包含前方一致とがある。
【００１８】
内包後方一致は、内包一致のうち検索語の数詞範囲の上限と検索結果に含まれる数詞範囲の上限が同じものである。内包前方一致は、内包一致のうち検索語の数詞範囲の下限と検索結果に含まれる数詞範囲の下限が同じものである。包含後方一致は、包含一致のうち検索語の数詞範囲の上限と検索結果に含まれる数詞範囲の上限が同じものである。包含前方一致は、包含一致のうち検索語の数詞範囲の下限と検索結果に含まれる数詞範囲の下限が同じものである。
【００１９】
図２に示すように、文書ＩＤが「１」である文書（文書＃１）には「１９７０年〜２０００年」が含まれ、検索語の数詞範囲と完全一致するので、実施例に係る検索装置は、完全一致を表すために数詞範囲を「［」と「］」で囲んで表示する。また、文書ＩＤが「２」である文書には「１９５０年〜２０１０年」が含まれ、検索語の数詞範囲と内包一致するので、実施例に係る検索装置は、内包一致を表すために数詞範囲を「＜」と「＞」で囲んで表示する。また、文書ＩＤが「３」である文書には「１９５０年〜２０００年」が含まれ、検索語の数詞範囲と内包後方一致するので、実施例に係る検索装置は、内包後方一致を表すために数詞範囲を「＜」と「］」で囲んで表示する。
【００２０】
また、文書ＩＤが「４」である文書には「１９７０年〜２０２０年」が含まれ、検索語の数詞範囲と内包前方一致するので、実施例に係る検索装置は、内包前方一致を表すために数詞範囲を「［」と「＞」で囲んで表示する。また、文書ＩＤが「５」である文書には「１９８０年〜１９９０年」が含まれ、検索語の数詞範囲と包含一致するので、実施例に係る検索装置は、包含一致を表すために数詞範囲を「＞」と「＜」で囲んで表示する。また、文書ＩＤが「６」である文書には「１９８０年〜２０００年」が含まれ、検索語の数詞範囲と包含後方一致するので、実施例に係る検索装置は、包含後方一致を表すために数詞範囲を「＞」と「］」で囲んで表示する。また、文書ＩＤが「７」である文書には「１９７０年〜１９９０年」が含まれ、検索語の数詞範囲と包含前方一致するので、実施例に係る検索装置は、包含前方一致を表すために数詞範囲を「［」と「＜」で囲んで表示する。
【００２１】
このように、実施例に係る検索装置は、検索結果の数詞範囲を７つのパターンに分けて表示するので、検索語との一致の種類を数詞範囲の表示を用いて表すことができる。
【００２２】
次に、実施例に係る検索装置の機能構成について説明する。図３は、実施例に係る検索装置の機能構成を示す図である。図３に示すように、実施例に係る検索装置１は、登録処理部１１と、形態素解析処理部１２と、記憶部１３と、検索処理部１４とを有する。
【００２３】
登録処理部１１は、文書を受け付けて登録する処理を行う。登録処理部１１は、例えば、ファイルから文書を読み込んで登録する。あるいは、登録処理部１１は、ユーザがキーボード、マウス、タッチパネルなどを用いて入力した文書を登録してもよい。
【００２４】
形態素解析処理部１２は、文書を形態素解析し、単語に分割する。形態素解析処理部１２は、単語ごとにオフセットを特定する。オフセットは、文書の先頭からの単語の位置を表し、１単語を１として計算される。
【００２５】
登録処理部１１は、受け付けた文書を形態素解析処理部１２に渡して単語への分割とオフセットの特定を指示する。そして、登録処理部１１は、単語とオフセットに基づいてインデックスを作成し、記憶部１３に格納する。
【００２６】
図４は、文書の登録とインデックスの作成を説明するための図である。図４では、文書＃１「その地震は、１９１０年〜２０００年に・・・、余震回数は２００回以上で・・・」が例として処理されるが、文書＃２、文書＃３、・・・も同様に処理される。
【００２７】
図４に示すように、文書＃１は、形態素解析により、「その」、「地震」、「は」、「１９１０」、「年」、「〜」、「２０００」、「年」、「に」、・・・、「余震」、「回数」、「は」、「２００」、「回」、「以上」、「で」、・・・に分割される。
【００２８】
「その」は「代名詞」であり、「その」のオフセットは「１」である。「地震」は「名詞」であり、「地震」のオフセットは「２」である。「は」は「助詞」であり、「は」のオフセットは「３」である。「１９１０」は「数値」であり、「１９１０」のオフセットは「４」である。「年」は「単位」であり、「年」のオフセットは「５」である。
【００２９】
「〜」は「範囲」であり、「〜」のオフセットはない。「範囲」は数値に付属する。ここでは、「〜」は、下限値「１９１０」に付属する数値付属範囲「以上」と上限値「２０００」に付属する数値付属範囲「以下」に分けられる。
【００３０】
「２０００」は「数値」であり、「２０００」のオフセットは「６」である。「年」は「単位」であり、「年」のオフセットは「７」である。「に」は「助詞」であり、「に」のオフセットは「８」である。
【００３１】
「余震」は「名詞」であり、「余震」のオフセットは「２１」である。「回数」は「名詞」であり、「回数」のオフセットは「２２」である。「は」は「助詞」であり、「は」のオフセットは「２３」である。「２００」は「数値」であり、「２００」のオフセットは「２４」である。「回」は「単位」であり、「回」のオフセットは「２５」である。
【００３２】
「以上」は「範囲」であり、「以上」のオフセットはない。ここでは、「以上」は「２００」に付属する数値付属範囲である。「で」は「助詞」であり、「で」のオフセットは「２６」である。
【００３３】
そして、数詞範囲以外の単語である「その」、「地震」、「は」、「に」、・・・、「余震」、「回数」、「は」、「で」、・・・は、日本語インデックスに登録される。また、数値である「１９１０」、「２０００」、・・・、「２００」、・・・は、数値インデックスに例えば小さい順に登録される。また、数値付属範囲である「以上」、「以下」、・・・、「以上」、・・・は、範囲インデックスに登録される。また、単位である「年」、「年」、・・・、「回」、・・・は、単位インデックスに登録される。
【００３４】
図５は、インデックスのデータ構造の一例を示す図である。図５（ａ）は日本語インデックスのデータ構造を示し、図５（ｂ）は数値インデックスのデータ構造を示し、図５（ｃ）は単位インデックスを示し、図５（ｄ）は範囲インデックスのデータ構造を示す。
【００３５】
図５に示すように、各インデックスは、２種類のテーブルで構成される。１つは見出しと文書数と文書ＩＤを対応付けるテーブルであり、他の１つは見出しごとに文書ＩＤとオフセットを対応付けるテーブルである。ここで、見出しは、日本語インデックス、数値インデックス及び単位インデックスでは単語であり、範囲インデックスでは、「＜（より小）」、「≦（以下）」、「＝（等しい）」、「≧（以上）」、「＞（より大）」の５つの数値付属範囲のいずれかである。
【００３６】
文書数は、見出しを含む文書の数である。文書ＩＤは、文書を識別する識別番号である。オフセットは、文書ＩＤで識別される文書において、対応付けられた見出しが現れる位置を示す。
【００３７】
例えば、日本語インデックスにおいて、「回数」は、「１」、「７」、「１０」、・・・で識別される「４０」個の文書に含まれ、「１」で識別される文書では、「１０」、「２１」、「３５」、・・・の位置に現れる。また、数値インデックスにおいて、「２０００」は、「１」、「５」、「８」、・・・で識別される「３３」個の文書に含まれ、「１」で識別される文書では、「８」、「１９」、「３３」、・・・の位置に現れる。
【００３８】
また、単位インデックスにおいて、「ページ」は、「１」、「３」、「７」、・・・で識別される「４３」個の文書に含まれ、「１」で識別される文書では、「９」、「２０」、「３４」、・・・の位置に現れる。また、範囲インデックスにおいて、「＝（等しい）」は、「１」、「５」、「１１」、・・・で識別される「３３」個の文書に含まれ、「１」で識別される文書では、「８」、「１９」、「３３」、・・・の位置に現れる数値に付属する。
【００３９】
図３に戻って、登録処理部１１は、日本語登録処理部２１と、数値登録処理部２２と、範囲登録処理部２３と、単位登録処理部２４とを有する。日本語登録処理部２１は、数詞又は数詞範囲以外の単語を日本語インデックスに登録する。数値登録処理部２２は、数値を数値インデックスに登録する。範囲登録処理部２３は、数値付属範囲を範囲インデックスに登録する。単位登録処理部２４は、単位を単位インデックスに登録する。
【００４０】
記憶部１３は、日本語インデックス記憶部３１と、数値インデックス記憶部３２と、範囲インデックス記憶部３３と、単位インデックス記憶部３４とを有する。日本語インデックス記憶部３１は、日本語インデックスを記憶する。数値インデックス記憶部３２は、数値インデックスを記憶する。範囲インデックス記憶部３３は、範囲インデックスを記憶する。単位インデックス記憶部３４は、単位インデックスを記憶する。
【００４１】
検索処理部１４は、検索条件を受け付けて文書を検索する処理を行う。検索処理部１４は、例えば、ユーザがキーボード、マウス、タッチパネルなどを用いて入力した検索条件を受け付ける。検索処理部１４は、受け付けた検索条件に含まれる検索語を形態素解析処理部１２に渡して単語への分割を指示する。そして、検索処理部１４は、検索語の形態素解析結果に基づいて、検索語で指定された数値、単位及び数値付属範囲を特定し、特定した数値、単位及び数値付属範囲に基づいて、記憶部１３を検索することで、検索条件を満たす文書を特定する。そして、検索処理部１４は、特定した文書を、図２に示した表示形態で表示装置に表示する。
【００４２】
検索処理部１４は、日本語検索処理部４１と、数値検索処理部４２と、範囲検索処理部４３と、単位検索処理部４４とを有する。日本語検索処理部４１は、検索処理部１４が特定した文書に含まれる単語を、数詞と数詞範囲を除いて、日本語インデックス記憶部３１から検索する。数値検索処理部４２は、検索処理部１４により検索語から特定された数値を含む文書と当該文書における当該数値のオフセットとを数値インデックス記憶部３２から検索する。
【００４３】
範囲検索処理部４３は、検索処理部１４により検索語から特定された数値付属範囲を含む文書と当該文書における当該数値のオフセットとを範囲インデックス記憶部３３から検索する。単位検索処理部４４は、検索処理部１４により検索語から特定された単位を含む文書と当該文書における当該単位のオフセットとを単位インデックス記憶部３４から検索する。
【００４４】
次に、インデックスを用いた文書の検索について説明する。まず、検索語に範囲を持たない数詞が指定された場合について図６〜図８Ｃを用いて説明する。図６は、検索語に範囲を持たない数詞が指定された場合の文書の検索の説明に用いられる文書群と検索条件を示す図である。
【００４５】
図６に示すように、検索語は「１９９０年」である。文書＃１には検索語と一致する数詞「１９９０年」が含まれる。文書＃２には下限が検索語と一致する数詞範囲「１９９０年〜２０２０年」が含まれる。文書＃３には検索語が含まれる数詞範囲「１９７０年〜２０００年」が含まれる。文書＃４には上限が検索語と一致する数詞範囲「１９６０年〜１９９０年」が含まれる。
【００４６】
図７Ａ及び図７Ｂは、検索語の数詞と同じ数詞が存在する文書を検索する処理を説明するための図である。検索処理部１４は、検索語の形態素解析結果に基づいて、数値「１９９０」と、数値付属範囲「≦」、「＝」、「≧」と、単位「年」とを特定する。
【００４７】
そして、検索処理部１４は、図７Ａに示すように、数値インデックスから見出しが「１９９０」のエントリを取り出す（１）。ここで、各エントリは、文書ＩＤと１つ以上のオフセットの組である。取り出されたエントリは、「１｜１０，・・・」、「２｜１５，・・・」、「４｜３３，・・・」である。ここで、「｜」の前は文書ＩＤを示し、「｜」の後はオフセットを示す。
【００４８】
そして、検索処理部１４は、範囲インデックスから見出しが「≦」、「＝」、「≧」のエントリを取り出す（２）。取り出されたエントリは、「３｜２４，・・・」、「４｜３３，・・・」、「１｜１０，・・・」、「２｜１５，・・・」、「４｜３０，・・・」である。
【００４９】
そして、検索処理部１４は、図７Ｂに示すように、単位インデックスから見出しが「年」のエントリを取り出す（３）。取り出されたエントリは、「１｜１１，・・・」、「２｜１６，１９，・・・」、「３｜２２，２５，・・・」、「４｜３１，３４，・・・」である。
【００５０】
そして、検索処理部１４は、数値インデックス、範囲インデックス、単位インデックスから取り出されたエントリから文書ＩＤが同じエントリを取り出す（４）。同じ文書ＩＤは、「１」、「２」、「４」であるので、数値インデックスからは、「１｜１０，・・・」、「２｜１５，・・・」、「４｜３３，・・・」が取り出される。また、単位インデックスからは、「１｜１１，・・・」、「２｜１６，１９，・・・」、「４｜３１，３４，・・・」が取り出される。また、範囲インデックスからは、「４｜３３，・・・」、「１｜１０，・・・」、「２｜１５，・・・」、「４｜３０，・・・」が取り出される。
【００５１】
そして、検索処理部１４は、文書ＩＤが同じエントリについて、文書中のオフセットに基づいて、数値と単位が連続するエントリを取り出す（５）。数値インデックスのエントリ［１｜１０］と単位インデックスのエントリ［１｜１１］が連続するので、１（１０−１１）が取り出される。ここで、（）の前は文書ＩＤを示し、（）内の連続する２つの数は数値と単位のオフセットをそれぞれ示す。また、数値インデックスのエントリ［２｜１５］と単位インデックスのエントリ［２｜１６］が連続するので、２（１５−１６）が取り出される。また、数値インデックスのエントリ［４｜３３］と単位インデックスのエントリ［４｜３４］が連続するので、４（３３−３４）が取り出される。
【００５２】
そして、検索処理部１４は、（５）で取り出したエントリについて、文書中のオフセットに基づいて、数値のオフセットと数値付属範囲のオフセットが等しいエントリを取り出す（６）。そして、検索処理部１４は、（６）で取り出したエントリに基づいて、文書を特定する。数値インデックスのエントリ［１｜１０］と範囲インデックスのエントリ［１｜１０］が等しいので、１（１０−１１）が取り出され、文書＃１が特定される。また、数値インデックスのエントリ［２｜１５］と範囲インデックスのエントリ［２｜１５］が等しいので、２（１５−１６）が取り出され、文書＃２が特定される。また、数値インデックスのエントリ［４｜３３］と範囲インデックスのエントリ［４｜３３］が等しいので、４（３３−３４）が取り出され、文書＃４が特定される。
【００５３】
そして、検索処理部１４は、特定した文書の内容を表示装置に表示する。検索処理部１４は、特定した文書の内容として、例えば、検索語を含む文を表示する。
【００５４】
図８Ａ〜図８Ｃは、検索語の数詞を含む数詞範囲が存在する文書を検索する処理を説明するための図である。検索処理部１４は、検索語の形態素解析結果に基づいて、下限の候補を取り出すために、数値「１９９０より小さい数値」と、数値付属範囲「≧」、「＞」と、単位「年」とを特定する。また、検索処理部１４は、上限の候補を取り出すために、数値「１９９０より大きい数値」と、数値付属範囲「≦」、「＜」と、単位「年」とを特定する。
【００５５】
そして、検索処理部１４は、下限の候補を取り出す処理として、図８Ａに示すように、数値インデックスから見出しが「１９９０より小さい」エントリを取り出す（１）。取り出されたエントリは、「４｜３０，・・・」、「３｜２１，・・・」である。
【００５６】
そして、検索処理部１４は、範囲インデックスから見出しが「≧」、「＞」のエントリを取り出す（２）。取り出されたエントリは、「２｜１５，・・・」、「４｜３０，・・・」、「３｜２１，・・・」である。
【００５７】
そして、検索処理部１４は、単位インデックスから見出しが「年」のエントリを取り出す（３）。取り出されたエントリは、「１｜１１，・・・」、「２｜１６，１９，・・・」、「３｜２２，２５，・・・」、「４｜３１，３４，・・・」である。
【００５８】
そして、検索処理部１４は、数値インデックス、範囲インデックス、単位インデックスから取り出されたエントリから文書ＩＤが同じエントリを取り出す（４）。図８Ｂに示すように、同じ文書ＩＤは、「３」、「４」であるので、数値インデックスからは、「４｜３０，・・・」、「３｜２１，・・・」が取り出される。また、単位インデックスからは、「３｜２２，２５，・・・」、「４｜３１，３４，・・・」が取り出される。また、範囲インデックスからは、「４｜３０，・・・」、「３｜２１，・・・」が取り出される。
【００５９】
そして、検索処理部１４は、文書ＩＤが同じエントリについて、文書中のオフセットに基づいて、数値と単位が連続するエントリを取り出す（５）。数値インデックスのエントリ［３｜２１］と単位インデックスのエントリ［３｜２２］が連続するので、３（２１−２２）が取り出される。また、数値インデックスのエントリ［４｜３０］と単位インデックスのエントリ［４｜３１］が連続するので、４（３０−３１）が取り出される。
【００６０】
そして、検索処理部１４は、（５）で取り出したエントリについて、文書中のオフセットに基づいて、数値のオフセットと数値付属範囲のオフセットが等しいエントリを取り出す（６）。数値インデックスのエントリ［３｜２１］のオフセットと範囲インデックスのエントリ［３｜２１］のオフセットが等しいので、３（２１−２２）が取り出される。また、数値インデックスのエントリ［４｜３０］のオフセットと範囲インデックスのエントリ［４｜３０］のオフセットが等しいので、４（３０−３１）が取り出される。
【００６１】
そして、検索処理部１４は、下限の候補を取り出す（７）。下限の候補として、３（２１−２２）、４（３０−３１）が取り出される。
【００６２】
そして、検索処理部１４は、上限の候補を取り出す処理として、数値インデックスから見出しが「１９９０より大きい」エントリを取り出す（８）。取り出されたエントリは、「３｜２４，・・・」、「２｜１８，・・・」である。
【００６３】
そして、検索処理部１４は、範囲インデックスから見出しが「≦」、「＜」のエントリを取り出す（９）。取り出されたエントリは、「２｜１８，・・・」、「３｜２４，・・・」、「４｜３３，・・・」である。
【００６４】
そして、検索処理部１４は、図８Ｃに示すように、単位インデックスから見出しが「年」のエントリを取り出す（１０）。取り出されたエントリは、「１｜１１，・・・」、「２｜１６，１９，・・・」、「３｜２２，２５，・・・」、「４｜３１，３４，・・・」である。
【００６５】
そして、検索処理部１４は、数値インデックス、範囲インデックス、単位インデックスから取り出されたエントリから文書ＩＤが同じエントリを取り出す（１１）。同じ文書ＩＤは、「３」、「２」であるので、数値インデックスからは、「３｜２４，・・・」、「２｜１８，・・・」が取り出される。また、単位インデックスからは、「２｜１６，１９，・・・」、「３｜２２，２５，・・・」が取り出される。また、範囲インデックスからは、「２｜１８，・・・」、「３｜２４，・・・」が取り出される。
【００６６】
そして、検索処理部１４は、文書ＩＤが同じエントリについて、文書中のオフセットに基づいて、数値と単位が連続するエントリを取り出す（１２）。数値インデックスのエントリ［３｜２４］と単位インデックスのエントリ［３｜２５］が連続するので、３（２４−２５）が取り出される。また、数値インデックスのエントリ［２｜１８］と単位インデックスのエントリ［２｜１９］が連続するので、２（１８−１９）が取り出される。
【００６７】
そして、検索処理部１４は、（１２）で取り出したエントリについて、文書中のオフセットに基づいて、数値のオフセットと数値付属範囲のオフセットが等しいエントリを取り出す（１３）。数値インデックスのエントリ［３｜２４］のオフセットと範囲インデックスのエントリ［３｜２４］のオフセットが等しいので、３（２４−２５）が取り出される。また、数値インデックスのエントリ［２｜１８］のオフセットと範囲インデックスのエントリ［２｜１８］のオフセットが等しいので、２（１８−１９）が取り出される。
【００６８】
そして、検索処理部１４は、上限の候補を取り出す（１４）。上限の候補として、２（１８−１９）、３（２４−２５）が取り出される。そして、検索処理部１４は、下限の候補と上限の候補から文書を特定し（１５）、特定した文書の内容を表示装置に表示する。
【００６９】
次に、検索語に範囲のある数詞が指定された場合について図９〜図１３Ｂを用いて説明する。図９は、検索語に範囲のある数詞が指定された場合の文書の検索の説明に用いられる文書群と検索条件を示す図である。
【００７０】
図９に示すように、検索語は「１９７０年〜２０００年」である。文書＃１には検索語の数詞範囲に含まれる数詞「１９８０年」が含まれる。文書＃２には検索語の数詞範囲と完全に一致する数詞範囲「１９７０年〜２０００年」が含まれる。文書＃３には検索語の数詞範囲を含む数詞範囲「１９５０年〜２０１０年」が含まれる。文書＃４には検索語の数詞範囲と後方が一致する数詞範囲「１９５０年〜１９８０年」が含まれる。文書＃５には検索語の数詞範囲と前方が一致する数詞範囲「１９９０年〜２０２０年」が含まれる。
【００７１】
図１０Ａ及び図１０Ｂは、検索語の数詞範囲に含まれる数詞が存在する文書を検索する処理を説明するための図である。検索処理部１４は、検索語の形態素解析結果に基づいて、数値群「１９７０以上で、かつ、２０００以下の数値」と、数値付属範囲「＝」と、単位「年」とを特定する。
【００７２】
そして、検索処理部１４は、図１０Ａに示すように、数値インデックスから見出しが「１９７０以上で、かつ、２０００以下」のエントリを取り出す（１）。取り出されたエントリは、「２｜１５，・・・」、「１｜１０，・・・」、「４｜２３，・・・」、「５｜８，・・・」、「２｜１８，・・・」である。
【００７３】
そして、検索処理部１４は、範囲インデックスから見出しが「＝」のエントリを取り出す（２）。取り出されたエントリは、「１｜１０，・・・」である。
【００７４】
そして、検索処理部１４は、図１０Ｂに示すように、単位インデックスから見出しが「年」のエントリを取り出す（３）。取り出されたエントリは、「１｜１１，・・・」、「２｜１６，１９，・・・」、「３｜１４，１７，・・・」、「４｜２１，２４，・・・」、「５｜９，１２，・・・」である。
【００７５】
そして、検索処理部１４は、数値インデックス、範囲インデックス、単位インデックスから取り出されたエントリから文書ＩＤが同じエントリを取り出す（４）。同じ文書ＩＤは、「１」であるので、数値インデックスからは、「１｜１０，・・・」が取り出される。また、単位インデックスからは、「１｜１１，・・・」が取り出される。また、範囲インデックスからは、「１｜１０，・・・」が取り出される。
【００７６】
そして、検索処理部１４は、文書ＩＤが同じエントリについて、文書中のオフセットに基づいて、数値のオフセットと数値付属範囲のオフセットが等しいエントリを取り出す（５）。数値インデックスのエントリ［１｜１０］と範囲インデックスのエントリ［１｜１０］が等しいので、１（１０−１１）が取り出される。
【００７７】
そして、検索処理部１４は、（５）で取り出したエントリについて、文書中のオフセットに基づいて、数値と単位が連続するエントリを取り出し（６）、文書を特定する。数値インデックスのエントリ［１｜１０］と単位インデックスのエントリ［１｜１１］が連続するので、１（１０−１１）が取り出され、文書＃１が特定される。そして、検索処理部１４は、特定した文書の内容を表示装置に表示する。
【００７８】
図１１Ａ及び図１１Ｂは、検索語の数詞範囲と等しい数詞範囲が存在する文書を検索する処理を説明するための図である。検索処理部１４は、検索語の形態素解析結果に基づいて、数値「１９７０」と、数値「１９７０」に付属する数値付属範囲「≧」と、数値「２０００」と、数値「２０００」に付属する数値付属範囲「≦」と、単位「年」とを特定する。なお、「１９７０年〜２０００年」が「１９７０年」と「２０００年」を含まないとする場合には、数値付属範囲「≧」の代わりに数値付属範囲「＞」が用いられ、数値付属範囲「≦」の代わりに数値付属範囲「＜」が用いられる。
【００７９】
そして、検索処理部１４は、図１１Ａに示すように、数値インデックスから見出しが「１９７０」のエントリと見出しが「２０００」のエントリを取り出す（１）。取り出されたエントリは、「２｜１５，・・・」、「２｜１８，・・・」である。
【００８０】
そして、検索処理部１４は、範囲インデックスから見出しが「≦」のエントリと見出しが「≧」のエントリを取り出す（２）。取り出されたエントリは、「２｜１８，・・・」、「２｜１５，・・・」である。
【００８１】
そして、検索処理部１４は、単位インデックスから見出しが「年」のエントリを取り出す（３）。取り出されたエントリは、「１｜１１，・・・」、「２｜１６，１９，・・・」、「３｜１４，１７，・・・」、「４｜２１，２４，・・・」、「５｜９，１２，・・・」である。
【００８２】
そして、検索処理部１４は、数値インデックス、範囲インデックス、単位インデックスから取り出されたエントリから文書ＩＤが同じエントリを取り出す（４）。同じ文書ＩＤは「２」であるので、数値インデックスからは、「２｜１５，・・・」が取り出され、単位インデックスからは、「２｜１６，１９，・・・」が取り出され、範囲インデックスからは、「２｜１５，・・・」が取り出される。
【００８３】
そして、検索処理部１４は、下限が一致するエントリの処理として、文書ＩＤが同じエントリについて、文書中のオフセットに基づいて、数値「１９７０」のオフセットと数値付属範囲「≧」のオフセットが等しいエントリを取り出す（５）。数値インデックスのエントリ［２｜１５］と範囲インデックスのエントリ［２｜１５］が等しいので、２（１５−１６）が取り出される。
【００８４】
そして、検索処理部１４は、（５）で取り出したエントリについて、文書中のオフセットに基づいて、数値と単位が連続するエントリを取り出す（６）。数値インデックスのエントリ［２｜１５］と単位インデックスのエントリ［２｜１６］が連続するので、図１１Ｂに示すように、下限が一致する候補として２（１５−１６）が取り出される。
【００８５】
そして、検索処理部１４は、上限が一致するエントリの処理として、文書ＩＤが同じエントリについて、文書中のオフセットに基づいて、数値「２０００」のオフセットと数値付属範囲「≦」のオフセットが等しいエントリを取り出す（７）。数値インデックスのエントリ［２｜１８］と範囲インデックスのエントリ［２｜１８］が等しいので、２（１８−１９）が取り出される。
【００８６】
そして、検索処理部１４は、（７）で取り出したエントリについて、文書中のオフセットに基づいて、数値と単位が連続するエントリを取り出す（８）。数値インデックスのエントリ［２｜１８］と単位インデックスのエントリ［２｜１９］が連続するので、上限が一致する候補として２（１８−１９）が取り出される。
【００８７】
そして、検索処理部１４は、下限が一致する候補と上限が一致する候補の文書ＩＤとオフセットに基づいて、下限と上限が一定の距離以下であるエントリを抽出し（９）、文書を特定する。ここで、下限と上限が一定の距離以下とは、例えば、下限のオフセットと上限のオフセットの差が一定の値以下であることを表す。下限のオフセット「１５」と上限のオフセット「１８」の差は「３」であるので、一定の距離を例えば「５」とすると、２（１５−１６）＋２（１８−１９）が取り出され、文書＃２が特定される。そして、検索処理部１４は、特定した文書の内容を表示装置に表示する。
【００８８】
図１２Ａ及び図１２Ｂは、検索語の数詞範囲を包含する数詞範囲が存在する文書を検索する処理を説明するための図である。検索処理部１４は、検索語の形態素解析結果に基づいて、数値群「１９７０より小さい数値」と、数値付属範囲「≧」、「＞」と、数値群「２０００より大きい数値」と、数値付属範囲「≦」、「＜」と、単位「年」とを特定する。
【００８９】
そして、検索処理部１４は、図１２Ａに示すように、数値インデックスから見出しが「１９７０より小さい」エントリと見出しが「２０００より大きい」エントリを取り出す（１）。取り出されたエントリは、「３｜１３，・・・」、「４｜２０，・・・」、・・・と、「３｜１６，・・・」、「５｜１１，・・・」、・・・である。
【００９０】
そして、検索処理部１４は、範囲インデックスから見出しが「＜」、「≦」のエントリと見出しが「＞」、「≧」のエントリを取り出す（２）。取り出されたエントリは、「３｜１６，・・・」、「４｜２３，・・・」、「２｜１８，・・・」、「１１｜１１，・・・」と、「２｜１５，・・・」、「４｜２５，・・・」、「３｜１３，・・・」、「５｜８，・・・」である。
【００９１】
そして、検索処理部１４は、単位インデックスから見出しが「年」のエントリを取り出す（３）。取り出されたエントリは、「１｜１１，・・・」、「２｜１６，１９，・・・」、「３｜１４，１７，・・・」、「４｜２１，２４，・・・」、「５｜９，１２，・・・」である。
【００９２】
そして、検索処理部１４は、数値インデックス、範囲インデックス、単位インデックスから取り出されたエントリから文書ＩＤが同じエントリを取り出す（４）。同じ文書ＩＤは「３」、「４」であるので、数値インデックスからは、「３｜１３，・・・」、「４｜２０，・・・」、「３｜１６，・・・」が取り出される。また、単位インデックスからは、「３｜１４，１７，・・・」が取り出され、範囲インデックスからは、「３｜１６，・・・」、「４｜２３，・・・」、「４｜２５，・・・」、「３｜１３，・・・」が取り出される。
【００９３】
そして、検索処理部１４は、下限値（下限の数値部分）より値が小さいエントリの処理として、文書ＩＤが同じエントリについて、文書中のオフセットに基づいて、数値のオフセットと数値付属範囲のオフセットが等しいエントリを取り出す（５）。数値インデックスのエントリ［３｜１３］と範囲インデックスのエントリ［３｜１３］が等しいので、３（１３−１４）が取り出される。
【００９４】
そして、検索処理部１４は、（５）で取り出したエントリについて、文書中のオフセットに基づいて、数値と単位が連続するエントリを取り出す（６）。数値インデックスのエントリ［３｜１３］と単位インデックスのエントリ［３｜１４］が連続するので、図１２Ｂに示すように、下限が条件を満たす候補として３（１３−１４）が取り出される。
【００９５】
そして、検索処理部１４は、上限値（上限の数値部分）より値が大きいエントリの処理として、文書ＩＤが同じエントリについて、文書中のオフセットに基づいて、数値のオフセットと数値付属範囲オフセットが等しいエントリを取り出す（７）。数値インデックスのエントリ［３｜１６］と範囲インデックスのエントリ［３｜１６］が等しいので、３（１６−１７）が取り出される。
【００９６】
そして、検索処理部１４は、（７）で取り出したエントリについて、文書中のオフセットに基づいて、数値と単位が連続するエントリを取り出す（８）。数値インデックスのエントリ［３｜１６］と単位インデックスのエントリ［３｜１７］が連続するので、上限が条件を満たす候補として３（１６−１７）が取り出される。
【００９７】
そして、検索処理部１４は、下限が条件を満たす候補と上限が条件を満たす候補の文書ＩＤとオフセットに基づいて、下限と上限が一定の距離以下であるエントリを抽出する（９）。下限のオフセット「１３」と上限のオフセット「１６」の差は「３」であるので、一定の距離を例えば「５」とすると、３（１３−１４）＋３（１６−１７）が抽出され、文書＃３が特定される。そして、検索処理部１４は、特定した文書の内容を表示装置に表示する。
【００９８】
図１３Ａ及び図１３Ｂは、検索語の数詞範囲と部分的に一致する数詞範囲が存在する文書、及び、検索語の数詞範囲に含まれる（内包される）数詞範囲が存在する文書を検索する処理を説明するための図である。検索処理部１４は、検索語の形態素解析結果に基づいて、数値群「１９７０以上の数値」と、数値付属範囲「≦」、「＜」と、数値群「２０００以下の数値」と、数値付属範囲「≧」、「＞」と、単位「年」とを特定する。
【００９９】
そして、検索処理部１４は、図１３Ａに示すように、数値インデックスから見出しが「１９７０以上の数値」のエントリと見出しが「２０００以下の数値」のエントリを取り出す（１）。取り出されたエントリは、「２｜１５，・・・」、「１｜１０，・・・」、「４｜２３，・・・」、「５｜８，・・・」、「２｜１８，・・・」、・・・である。
【０１００】
そして、検索処理部１４は、範囲インデックスから見出しが「≦」、「＜」のエントリと見出しが「≧」、「＞」のエントリを取り出す（２）。取り出されたエントリは、「３｜１６，・・・」、「４｜２３，・・・」、「２｜１８，・・・」、「１１｜１１，・・・」と、「２｜１５，・・・」、「４｜２５，・・・」、「３｜１３，・・・」、「５｜８，・・・」である。
【０１０１】
そして、検索処理部１４は、単位インデックスから見出しが「年」のエントリを取り出す（３）。取り出されたエントリは、「１｜１１，・・・」、「２｜１６，１９，・・・」、「３｜１４，１７，・・・」、「４｜２１，２４，・・・」、「５｜９，１２，・・・」である。
【０１０２】
そして、検索処理部１４は、数値インデックス、範囲インデックス、単位インデックスから取り出されたエントリから文書ＩＤが同じエントリを取り出す（４）。同じ文書ＩＤは「２」、「４」、「５」であるので、数値インデックスからは、「２｜１５，・・・」、「４｜２３，・・・」、「５｜８，・・・」、「２｜１８，・・・」が取り出される。また、単位インデックスからは、「２｜１６，１９，・・・」、「４｜２１，２４，・・・」、「５｜９，１２，・・・」が取り出される。また、範囲インデックスからは、「４｜２３，・・・」、「２｜１８，・・・」、「２｜１５，・・・」、「４｜２５，・・・」、「５｜８，・・・」が取り出される。
【０１０３】
そして、検索処理部１４は、図１３Ｂに示すように、下限方向で包含するエントリの処理として、文書ＩＤが同じエントリについて、文書中のオフセットに基づいて、数値のオフセットと数値付属範囲のオフセットが等しいエントリを取り出す（５）。数値インデックスのエントリ［４｜２３］と範囲インデックスのエントリ［４｜２３］が等しいので、４（２３−２４）が取り出される。また、数値インデックスのエントリ［２｜１８］と範囲インデックスのエントリ［２｜１８］が等しいので、２（１８−１９）が取り出される。
【０１０４】
そして、検索処理部１４は、（５）で取り出したエントリについて、文書中のオフセットに基づいて、数値と単位が連続するエントリを取り出す（６）。数値インデックスのエントリ［４｜２３］と単位インデックスのエントリ［４｜２４］が連続し、数値インデックスのエントリ［２｜１８］と単位インデックスのエントリ［２｜１９］が連続する。したがって、下限側の部分一致候補として４（２３−２４）、２（１８−１９）が取り出される。
【０１０５】
そして、検索処理部１４は、上限方向で包含するエントリの処理として、文書ＩＤが同じエントリについて、文書中のオフセットに基づいて、数値のオフセットと数値付属範囲のオフセットが等しいエントリを取り出す（７）。数値インデックスのエントリ［２｜１５］と範囲インデックスのエントリ［２｜１５］が等しいので、２（１５−１６）が取り出され、数値インデックスのエントリ［５｜８］と範囲インデックスのエントリ［５｜８］が等しいので、５（８−９）が取り出される。
【０１０６】
そして、検索処理部１４は、（７）で取り出したエントリについて、文書中のオフセットに基づいて、数値と単位が連続するエントリを取り出す（８）。数値インデックスのエントリ［２｜１５］と単位インデックスのエントリ［２｜１６］が連続し、数値インデックスのエントリ［５｜８］と単位インデックスのエントリ［５｜９］が連続する。したがって、上限側の部分一致候補として２（１５−１６）、５（８−９）が取り出される。
【０１０７】
そして、検索処理部１４は、下限側の部分一致候補と上限側の部分一致候補の文書ＩＤとオフセットに基づいて、下限と上限が一定の距離以下である文書を内包一致文書として特定する（９）。文書＃２について、下限のオフセット「１５」と上限のオフセット「１８」の差は「３」であるので、一定の距離を例えば「５」とすると、文書＃２が内包一致文書として特定される。
【０１０８】
そして、検索処理部１４は、内包一致文書以外の下限側の部分一致候補を下限側部分一致文書として特定し、内包一致文書以外の上限側の部分一致候補を上限側部分一致文書として特定する。文書＃２以外の下限側の部分一致候補である文書＃４が下限側部分一致文書として特定され、文書＃２以外の上限側の部分一致候補である文書＃５が上限側部分一致文書として特定される。そして、検索処理部１４は、特定した文書の内容を表示装置に表示する。
【０１０９】
次に、検索装置１による処理のフローについて図１４〜図２１を用いて説明する。図１４は、登録処理部１１による登録処理のフローを示すフローチャートである。なお、登録処理部１１は、図１４に示す処理を文書ごとに行う。図１４に示すように、登録処理部１１は、検索対象の文書を入力し（ステップＳ１）、形態素解析処理部１２を用いて、文書を形態素解析する（ステップＳ２）。
【０１１０】
そして、登録処理部１１は、形態素解析結果に基づいて、数値と単位と範囲を含めた数詞範囲を抽出し（ステップＳ３）、単位の省略は単位を補填し、範囲は数値付属範囲に置換する（ステップＳ４）。例えば、「１９００〜２０００年」は単位「年」が補填されて「１９００年〜２０００年」に置換される。また、「１９００年〜２０００年」は、「１９００」と「≧」と「年」と「２０００」と「≦」と「年」に置換される。そして、登録処理部１１は、形態素解析結果のオフセットを、単位の補填と範囲の数値付属範囲への変換の後のオフセットに修正して、単語のオフセットを決定する（ステップＳ５）。
【０１１１】
そして、登録処理部１１は、文書の先頭から順に単語とオフセットを取り出して、以下のステップＳ６〜ステップＳ１３を繰り返す。すなわち、登録処理部１１は、単語が数値か否かを判定し（ステップＳ６）、単語が数値である場合には、見出しと文書ＩＤ、オフセットを数値インデックスに登録する（ステップＳ７）。
【０１１２】
また、登録処理部１１は、単語が単位か否かを判定し（ステップＳ８）、単語が単位である場合には、見出しと文書ＩＤ、オフセットを単位インデックスに登録する（ステップＳ９）。また、登録処理部１１は、単語が数値付属範囲か否かを判定し（ステップＳ１０）、単語が数値付属範囲である場合には、見出しと文書ＩＤ、オフセットを範囲インデックスに登録する（ステップＳ１１）。なお、登録処理部１１は、数値付属範囲のオフセットを付属先の数値と同じにする。
【０１１３】
また、登録処理部１１は、単語が（数値、単位、数値付属範囲）以外であるか否かを判定し（ステップＳ１２）、単語が（数値、単位、数値付属範囲）以外である場合には、見出しと文書ＩＤ、オフセットを日本語インデックスに登録する（ステップＳ１３）。
【０１１４】
このように、登録処理部１１が数値インデックス、単位インデックス、範囲インデックス、日本語インデックスに見出し、文書ＩＤ、オフセットを登録することで、検索処理部１４は検索条件を満たす文書を検索することができる。
【０１１５】
図１５は、検索処理部１４による検索処理のフローを示すフローチャートである。図１５に示すように、検索処理部１４は、検索条件を受け付け（ステップＳ２１）、形態素解析結果に基づいて、検索条件から数詞と範囲を抽出する（ステップＳ２２）。そして、検索処理部１４は、数詞を数値と単位に分け（ステップＳ２３）、検索語が範囲を持たない数詞か否かを判定する（ステップＳ２４）。
【０１１６】
そして、検索語が範囲を持たない数詞である場合には、検索処理部１４は、検索語の数詞と同じ数詞を含む文書を検索する数詞第１処理を実行し（ステップＳ２５）、検索語の数詞が含まれる数詞範囲を含む文書を検索する数詞第２処理を実行する（ステップＳ２６）。そして、検索処理部１４は、数詞第１処理と数詞第２処理により検索された文書ＩＤと文書の内容を表示する（ステップＳ３１）。
【０１１７】
一方、検索語が範囲のある数詞範囲である場合には、検索処理部１４は、検索語の数詞範囲に含まれる数詞を含む文書を検索する範囲第１処理を実行する（ステップＳ２７）。そして、検索処理部１４は、検索語の数詞範囲と等しい数詞範囲を含む文書を検索する範囲第２処理を実行し（ステップＳ２８）、検索語の数詞範囲を包含する数値範囲を含む文書を検索する範囲第３処理を実行する（ステップＳ２９）。
【０１１８】
そして、検索処理部１４は、検索語の数詞範囲と部分的に一致する数詞範囲を含む文書、及び、検索語の数詞範囲に内包される数詞範囲を含む文書を検索する範囲第４処理を実行する（ステップＳ３０）。そして、検索処理部１４は、範囲第１処理〜範囲第４処理により検索された文書ＩＤと文書の内容を表示する（ステップＳ３１）。
【０１１９】
このように、検索処理部１４は、検索語が範囲を持たない数詞である場合には、数詞第１処理と数詞第２処理を実行し、検索語が範囲のある数詞範囲である場合には、範囲第１処理〜範囲第４処理を実行することで、十分な検索を行うことができる。
【０１２０】
図１６は、数詞第１処理のフローを示すフローチャートである。図１６に示すように、検索処理部１４は、検索語を数値と単位に分割し（ステップＳ４１）、数値インデックスから検索語の数値のエントリを抽出する（ステップＳ４２）。そして、検索処理部１４は、範囲インデックスから「≧、＝、≦」のエントリを抽出し（ステップＳ４３）、単位インデックスから検索語の単位のエントリを抽出する（ステップＳ４４）。
【０１２１】
そして、検索処理部１４は、ステップＳ４２〜ステップＳ４４で抽出したエントリから同じ文書ＩＤのエントリを抽出し（ステップＳ４５）、エントリは抽出されたか否かを判定する（ステップＳ４６）。そして、エントリが抽出された場合には、検索処理部１４は、ステップＳ４５で数値インデックスと単位インデックスからそれぞれ抽出されたエントリのオフセットで連続をチェックし（ステップＳ４７）、連続するか否かを判定する（ステップＳ４８）。
【０１２２】
そして、連続しない場合には、検索処理部１４は、ステップＳ４５に戻る。一方、連続する場合には、検索処理部１４は、ステップＳ４５で数値インデックスと範囲インデックスからそれぞれ抽出したエントリのオフセットが等しいかをチェックし（ステップＳ４９）、等しいか否かを判定する（ステップＳ５０）。そして、等しくない場合には、検索処理部１４は、ステップＳ４５に戻り、等しい場合には、文書ＩＤとオフセットを保存し（ステップＳ５１）、ステップＳ４５に戻る。
【０１２３】
また、ステップＳ４６において、エントリが抽出されなかった場合には、検索処理部１４は、保存した文書ＩＤとオフセットを返却する（ステップＳ５２）。
【０１２４】
このように、検索処理部１４は、範囲インデックスから「≧、＝、≦」のエントリを抽出することで、検索語の数詞と同じ数詞を含む文書を検索することができる。
【０１２５】
図１７は、数詞第２処理のフローを示すフローチャートである。図１７に示すように、検索処理部１４は、検索語を数値と単位に分割し（ステップＳ６１）、数値インデックスから検索語の数値より小さい値のエントリを抽出する（ステップＳ６２）。そして、検索処理部１４は、範囲インデックスから「≧、＞」のエントリを抽出し（ステップＳ６３）、単位インデックスから検索語の単位のエントリを抽出する（ステップＳ６４）。
【０１２６】
そして、検索処理部１４は、ステップＳ６２〜ステップＳ６４で抽出したエントリから同じ文書ＩＤのエントリを抽出し（ステップＳ６５）、エントリは抽出されたか否かを判定する（ステップＳ６６）。そして、エントリが抽出された場合には、検索処理部１４は、ステップＳ６５で数値インデックスと単位インデックスからそれぞれ抽出したエントリのオフセットで連続をチェックし（ステップＳ６７）、連続するか否かを判定する（ステップＳ６８）。
【０１２７】
そして、連続しない場合には、検索処理部１４は、ステップＳ６５に戻る。一方、連続する場合には、検索処理部１４は、ステップＳ６５で数値インデックスと範囲インデックスからそれぞれ抽出したエントリのオフセットが等しいかをチェックし（ステップＳ６９）、等しいか否かを判定する（ステップＳ７０）。そして、等しくない場合には、検索処理部１４は、ステップＳ６５に戻り、等しい場合には、下限の候補として文書ＩＤとオフセットを保存し（ステップＳ７１）、ステップＳ６５に戻る。
【０１２８】
また、ステップＳ６６において、エントリが抽出されなかった場合には、検索処理部１４は、数値インデックスから検索語の数値より大きい値のエントリを抽出する（ステップＳ７２）。そして、検索処理部１４は、範囲インデックスから「＜、≦」のエントリを抽出し（ステップＳ７３）、単位インデックスから検索語の単位のエントリを抽出する（ステップＳ７４）。
【０１２９】
そして、検索処理部１４は、ステップＳ７２〜ステップＳ７４で抽出したエントリから同じ文書ＩＤのエントリを抽出し（ステップＳ７５）、エントリは抽出されたか否かを判定する（ステップＳ７６）。そして、エントリが抽出された場合には、検索処理部１４は、ステップＳ７５で数値インデックスと単位インデックスからそれぞれ抽出したエントリのオフセットで連続をチェックし（ステップＳ７７）、連続するか否かを判定する（ステップＳ７８）。
【０１３０】
そして、連続しない場合には、検索処理部１４は、ステップＳ７５に戻る。一方、連続する場合には、検索処理部１４は、ステップＳ７５で数値インデックスと範囲インデックスからそれぞれ抽出したエントリのオフセットが等しいかをチェックし（ステップＳ７９）、等しいか否かを判定する（ステップＳ８０）。そして、等しくない場合には、検索処理部１４は、ステップＳ７５に戻り、等しい場合には、上限の候補として文書ＩＤとオフセットを保存し（ステップＳ８１）、ステップＳ７５に戻る。
【０１３１】
また、ステップＳ７６において、エントリが抽出されなかった場合には、検索処理部１４は、下限の候補と上限の候補の文書ＩＤとオフセットから、下限と上限が一定の距離以下かをチェックする（ステップＳ８２）。そして、検索処理部１４は、下限と上限が一定の距離以下であるものについて、文書ＩＤとオフセットを返却する（ステップＳ８３）。
【０１３２】
このように、検索処理部１４は、検索語に含まれる数値から下限と上限を一定の距離以下で含む文書を特定することで、検索語の数詞を含む数詞範囲を含む文書を検索することができる。
【０１３３】
図１８は、範囲第１処理のフローを示すフローチャートである。図１８に示すように、検索処理部１４は、検索語から、下限値と下限値の数値付属範囲、単位、上限値と上限値の数値付属範囲を特定する（ステップＳ９１）。そして、検索処理部１４は、数値インデックスから、下限値と下限値の数値付属範囲に基づく値から上限値と上限値の数値付属範囲に基づく値の範囲にあるエントリを抽出する（ステップＳ９２）。そして、検索処理部１４は、範囲インデックスから「＝」のエントリを抽出し（ステップＳ９３）、単位インデックスから検索語の単位のエントリを抽出する（ステップＳ９４）。
【０１３４】
そして、検索処理部１４は、ステップＳ９２〜ステップＳ９４で抽出したエントリから同じ文書ＩＤのエントリを抽出し（ステップＳ９５）、エントリは抽出されたか否かを判定する（ステップＳ９６）。そして、エントリが抽出された場合には、検索処理部１４は、ステップＳ９５で数値インデックスと単位インデックスからそれぞれ抽出したエントリのオフセットで連続をチェックし（ステップＳ９７）、連続するか否かを判定する（ステップＳ９８）。
【０１３５】
そして、連続しない場合には、検索処理部１４は、ステップＳ９５に戻る。一方、連続する場合には、検索処理部１４は、ステップＳ９５で数値インデックスと範囲インデックスからそれぞれ抽出したエントリのオフセットが等しいかをチェックし（ステップＳ９９）、等しいか否かを判定する（ステップＳ１００）。そして、等しくない場合には、検索処理部１４は、ステップＳ９５に戻り、等しい場合には、文書ＩＤとオフセットを保存し（ステップＳ１０１）、ステップＳ９５に戻る。
【０１３６】
また、ステップＳ９６において、エントリが抽出されなかった場合には、検索処理部１４は、保存した文書ＩＤとオフセットを返却する（ステップＳ１０２）。
【０１３７】
このように、検索処理部１４は、検索語の下限値と下限値の数値付属範囲に基づく値から上限値と上限値の数値付属範囲に基づく値の範囲にあるエントリを数値インデックスから抽出し、単位インデックス及び範囲インデックスの情報を用いてチェックする。したがって、検索処理部１４は、検索語の数詞範囲に含まれる数詞が含まれる文書を検索することができる。
【０１３８】
図１９は、範囲第２処理のフローを示すフローチャートである。図１９に示すように、検索処理部１４は、検索語から、下限値と下限値の数値付属範囲、単位、上限値と上限値の数値付属範囲を特定する（ステップＳ１１１）。そして、検索処理部１４は、数値インデックスから下限値と一致するエントリを抽出する（ステップＳ１１２）。そして、検索処理部１４は、範囲インデックスから下限値の数値付属範囲と一致するエントリを抽出し（ステップＳ１１３）、単位インデックスから検索語の単位のエントリを抽出する（ステップＳ１１４）。
【０１３９】
そして、検索処理部１４は、ステップＳ１１２〜ステップＳ１１４で抽出したエントリから同じ文書ＩＤのエントリを抽出し（ステップＳ１１５）、エントリは抽出されたか否かを判定する（ステップＳ１１６）。そして、エントリが抽出された場合には、検索処理部１４は、ステップＳ１１５で数値インデックスと単位インデックスからそれぞれ抽出したエントリのオフセットで連続をチェックし（ステップＳ１１７）、連続するか否かを判定する（ステップＳ１１８）。
【０１４０】
そして、連続しない場合には、検索処理部１４は、ステップＳ１１５に戻る。一方、連続する場合には、検索処理部１４は、ステップＳ１１５で数値インデックスと範囲インデックスからそれぞれ抽出したエントリのオフセットが等しいかをチェックし（ステップＳ１１９）、等しいか否かを判定する（ステップＳ１２０）。そして、等しくない場合には、検索処理部１４は、ステップＳ１１５に戻り、等しい場合には、下限の候補として文書ＩＤとオフセットを保存し（ステップＳ１２１）、ステップＳ１１５に戻る。
【０１４１】
ステップＳ１１６において、エントリが抽出されなかった場合には、検索処理部１４は、数値インデックスから上限値と一致するエントリを抽出する（ステップＳ１２２）。そして、検索処理部１４は、範囲インデックスから上限値の数値付属範囲のエントリを抽出し（ステップＳ１２３）、単位インデックスから検索語の単位のエントリを抽出する（ステップＳ１２４）。
【０１４２】
そして、検索処理部１４は、ステップＳ１２２〜ステップＳ１２４で抽出したエントリから同じ文書ＩＤのエントリを抽出し（ステップＳ１２５）、エントリは抽出されたか否かを判定する（ステップＳ１２６）。そして、エントリが抽出された場合には、検索処理部１４は、ステップＳ１２５で数値インデックスと単位インデックスからそれぞれ抽出したエントリのオフセットで連続をチェックし（ステップＳ１２７）、連続するか否かを判定する（ステップＳ１２８）。
【０１４３】
そして、連続しない場合には、検索処理部１４は、ステップＳ１２５に戻る。一方、連続する場合には、検索処理部１４は、ステップＳ１２５で数値インデックスと範囲インデックスからそれぞれ抽出したエントリのオフセットが等しいかをチェックし（ステップＳ１２９）、等しいか否かを判定する（ステップＳ１３０）。そして、等しくない場合には、検索処理部１４は、ステップＳ１２５に戻り、等しい場合には、上限の候補として文書ＩＤとオフセットを保存し（ステップＳ１３１）、ステップＳ１２５に戻る。
【０１４４】
また、ステップＳ１２６において、エントリが抽出されなかった場合には、検索処理部１４は、下限の候補と上限の候補の文書ＩＤとオフセットから、下限と上限が一定の距離以下かをチェックして、一定の距離以下であるものについて、文書ＩＤとオフセットを返却する（ステップＳ１３２）。
【０１４５】
このように、検索処理部１４は、検索語に含まれる数詞範囲の下限と上限を一定の距離以下で含む文書を特定することで、検索語の数詞範囲を含む文書を検索することができる。
【０１４６】
図２０は、範囲第３処理のフローを示すフローチャートである。図２０に示すように、検索処理部１４は、検索語から、下限値と下限値の数値付属範囲、単位、上限値と上限値の数値付属範囲を特定する（ステップＳ１４１）。そして、検索処理部１４は、数値インデックスから下限値より小さいエントリを抽出する（ステップＳ１４２）。そして、検索処理部１４は、範囲インデックスから見出しが「＞」、「≧」のエントリを抽出し（ステップＳ１４３）、単位インデックスから検索語の単位のエントリを抽出する（ステップＳ１４４）。
【０１４７】
そして、検索処理部１４は、ステップＳ１４２〜ステップＳ１４４で抽出したエントリから同じ文書ＩＤのエントリを抽出し（ステップＳ１４５）、エントリは抽出されたか否かを判定する（ステップＳ１４６）。そして、エントリが抽出された場合には、検索処理部１４は、ステップＳ１４５で数値インデックスと単位インデックスからそれぞれ抽出したエントリのオフセットで連続をチェックし（ステップＳ１４７）、連続するか否かを判定する（ステップＳ１４８）。
【０１４８】
そして、連続しない場合には、検索処理部１４は、ステップＳ１４５に戻る。一方、連続する場合には、検索処理部１４は、ステップＳ１４５で数値インデックスと範囲インデックスからそれぞれ抽出したエントリのオフセットが等しいかをチェックし（ステップＳ１４９）、等しいか否かを判定する（ステップＳ１５０）。そして、等しくない場合には、検索処理部１４は、ステップＳ１４５に戻り、等しい場合には、下限の候補として文書ＩＤとオフセットを保存し（ステップＳ１５１）、ステップＳ１４５に戻る。
【０１４９】
また、ステップＳ１４６において、エントリが抽出されなかった場合には、検索処理部１４は、数値インデックスから上限値より大きいエントリを抽出する（ステップＳ１５２）。そして、検索処理部１４は、範囲インデックスから「＜」、「≦」のエントリを抽出し（ステップＳ１５３）、単位インデックスから検索語の単位のエントリを抽出する（ステップＳ１５４）。
【０１５０】
そして、検索処理部１４は、ステップＳ１５２〜ステップＳ１５４で抽出したエントリから同じ文書ＩＤのエントリを抽出し（ステップＳ１５５）、エントリは抽出されたか否かを判定する（ステップＳ１５６）。そして、エントリが抽出された場合には、検索処理部１４は、ステップＳ１５５で数値インデックスと単位インデックスからそれぞれ抽出したエントリのオフセットで連続をチェックし（ステップＳ１５７）、連続するか否かを判定する（ステップＳ１５８）。
【０１５１】
そして、連続しない場合には、検索処理部１４は、ステップＳ１５５に戻る。一方、連続する場合には、検索処理部１４は、ステップＳ１５５で数値インデックスと範囲インデックスからそれぞれ抽出したエントリのオフセットが等しいかをチェックし（ステップＳ１５９）、等しいか否かを判定する（ステップＳ１６０）。そして、等しくない場合には、検索処理部１４は、ステップＳ１５５に戻り、等しい場合には、上限の候補として文書ＩＤとオフセットを保存し（ステップＳ１６１）、ステップＳ１５５に戻る。
【０１５２】
また、ステップＳ１５６において、エントリが抽出されなかった場合には、検索処理部１４は、下限の候補と上限の候補の文書ＩＤとオフセットから、下限と上限が一定の距離以下かをチェックして、一定の距離以下であるものについて、文書ＩＤとオフセットを返却する（ステップＳ１６２）。
【０１５３】
このように、検索処理部１４は、検索語に含まれる下限値より小さい数値と上限値より大きい数値を一定の距離以下で含む文書を特定することで、検索語の数詞範囲を含む数詞範囲を含む文書を検索することができる。
【０１５４】
図２１は、範囲第４処理のフローを示すフローチャートである。図２１に示すように、検索処理部１４は、検索語から、下限値と下限値の数値付属範囲、単位、上限値と上限値の数値付属範囲を特定する（ステップＳ１７１）。そして、検索処理部１４は、数値インデックスから下限値以上、上限値以下のエントリを抽出する（ステップＳ１７２）。そして、検索処理部１４は、範囲インデックスから見出しが「＞」、「≧」と「＜」、「≦」のエントリを抽出し（ステップＳ１７３）、単位インデックスから検索語の単位のエントリを抽出する（ステップＳ１７４）。
【０１５５】
そして、検索処理部１４は、ステップＳ１７２、ステップＳ１７３の「＜」、「≦」、ステップＳ１７４で抽出したエントリから同じ文書ＩＤのエントリを抽出し（ステップＳ１７５）、エントリは抽出されたか否かを判定する（ステップＳ１７６）。そして、エントリが抽出された場合には、検索処理部１４は、ステップＳ１７５で数値インデックスと単位インデックスからそれぞれ抽出したエントリのオフセットで連続をチェックする（ステップＳ１７７）。
【０１５６】
そして、検索処理部１４は、ステップＳ１７５で数値インデックスと範囲インデックスからそれぞれ抽出したエントリのオフセットが等しいかをチェックし（ステップＳ１７８）、連続で等しいか否かを判定する（ステップＳ１７９）。そして、連続でない又は等しくない場合には、検索処理部１４は、ステップＳ１７５に戻り、連続で等しい場合には、下限側の部分一致候補として文書ＩＤとオフセットを保存し（ステップＳ１８０）、ステップＳ１７５に戻る。
【０１５７】
また、ステップＳ１７６において、エントリが抽出されなかった場合には、検索処理部１４は、ステップＳ１７２、ステップＳ１７３の「＞」、「≧」、ステップＳ１７４で抽出したエントリから同じ文書ＩＤのエントリを抽出する（ステップＳ１８１）。そして、検索処理部１４は、エントリは抽出されたか否かを判定する（ステップＳ１８２）。そして、検索処理部１４は、エントリが抽出された場合には、ステップＳ１８１で数値インデックスと単位インデックスからそれぞれ抽出したエントリのオフセットで連続をチェックする（ステップＳ１８３）。
【０１５８】
そして、検索処理部１４は、ステップＳ１８１で数値インデックスと範囲インデックスからそれぞれ抽出したエントリのオフセットが等しいかをチェックし（ステップＳ１８４）、連続で等しいか否かを判定する（ステップＳ１８５）。そして、連続でない又は等しくない場合には、検索処理部１４は、ステップＳ１８１に戻り、連続で等しい場合には、上限側の部分一致候補として文書ＩＤとオフセットを保存し（ステップＳ１８６）、ステップＳ１８１に戻る。
【０１５９】
ステップＳ１８２において、エントリが抽出されなかった場合には、検索処理部１４は、下限側の部分一致候補と上限側の部分一致候補で同じ文書ＩＤのオフセットの差をチェックする（ステップＳ１８７）。そして、検索処理部１４は、部分一致候補が下限側のみの文書を下限値を含む部分一致として特定し、部分一致候補が上限側のみの文書を上限値を含む部分一致として特定する。また、検索処理部１４は、部分一致候補が下限側と上限側の両方に含まれ、下限側と上限側のオフセットの差が一定の値以下である文書を内包一致として特定する。そして、検索処理部１４は、下限値を含む部分一致の文書、上限値を含む部分一致の文書、内包一致の文書の文書ＩＤとオフセットを返却する（ステップＳ１８８）。
【０１６０】
このように、検索処理部１４は、下限値を含む部分一致候補と上限値を含む部分一致候補の両方に含まれる文書について、下限側と上限側のオフセットの差が一定の値以下であるかをチェックすることで、内包一致の文書を特定することができる。
【０１６１】
上述してきたように、実施例では、記憶部１３が、文書の形態素解析により特定された数値、単位及び数値付属範囲を文書ＩＤ及びオフセットと対応付けてそれぞれ数値インデックス、単位インデックス及び範囲インデックスとして記憶する。そして、検索処理部１４が、検索語の形態素解析結果に基づいて、検索語で指定された数値、単位及び数値付属範囲を特定し、特定した数値、単位及び数値付属範囲と記憶部１３とに基づいて、検索条件を満たす文書を検索する。したがって、検索装置１は、検索条件に数詞や数詞範囲が含まれる場合に十分な検索結果を得ることができる。
【０１６２】
また、実施例では、登録処理部１１が、文書の形態素解析結果に基づいて、数値、単位及び数値付属範囲を特定し、特定した数値、単位及び数値付属範囲を文書ＩＤ及びオフセットと対応付けて記憶部１３に格納する。したがって、検索処理部１４は、記憶部１３を用いて検索を行うことができる。
【０１６３】
また、実施例では、検索処理部１４は、検索語に範囲を持たない数詞が指定された場合に、検索語で指定された数値を含む文書の文書ＩＤとオフセットを数値インデックスから抽出する。そして、検索処理部１４は、検索語で指定された数値の数値付属範囲として「≧」、「＝」、「≦」を特定し、特定した数値付属範囲それぞれを含む文書の文書ＩＤ及びオフセットを範囲インデックスから抽出する。そして、検索処理部１４は、検索語で指定された単位を含む文書の文書ＩＤとオフセットを単位インデックスから抽出する。そして、検索処理部１４は、数値インデックスと範囲インデックスと単位インデックスから抽出した文書ＩＤ及びオフセットに基づいて、検索条件を満たす文書を特定する。したがって、検索装置１は、検索語で指定された数詞を含む文書を全て検索することができる。
【０１６４】
また、実施例では、検索処理部１４は、検索語に範囲を持たない数詞が指定された場合に、下限値として該数値より小さい数値を特定し、上限値として該数値より大きい数値を特定し、特定した数値を含む文書の文書ＩＤとオフセットを数値インデックスから抽出する。そして、検索処理部１４は、下限値の数値付属範囲として「≧」、「＞」を特定し、上限値の数値付属範囲として「≦」、「＜」を特定し、特定した数値付属範囲を含む文書の文書ＩＤとオフセットを範囲インデックスから抽出する。そして、検索処理部１４は、検索語で指定された単位を含む文書の文書ＩＤとオフセットを単位インデックスから抽出する。そして、検索処理部１４は、数値インデックスと範囲インデックスと単位インデックスから抽出した文書ＩＤとオフセットに基づいて、検索条件を満たす文書を特定する。したがって、検索装置１は、検索語で指定された数詞を含む数詞範囲を含む文書を全て検索することができる。
【０１６５】
また、実施例では、検索処理部１４は、検索語に範囲のある数詞が指定された場合に、数値範囲に含まれる数値を特定し、特定した数値を含む文書の文書ＩＤとオフセットを数値インデックスから抽出する。そして、検索処理部１４は、数値範囲に含まれる数値の数値付属範囲として「＝」を特定し、特定した数値付属範囲を含む文書の文書ＩＤとオフセットを範囲インデックスから抽出する。そして、検索処理部１４は、検索語で指定された単位を含む文書の文書ＩＤとオフセットを単位インデックスから抽出する。そして、検索処理部１４は、数値インデックスと範囲インデックスと単位インデックスから抽出した文書ＩＤとオフセットに基づいて、検索条件を満たす文書を特定する。したがって、検索装置１は、検索語で指定された数詞範囲に含まれる数詞を含む文書を全て検索することができる。
【０１６６】
また、実施例では、検索処理部１４は、検索語に範囲のある数詞が指定された場合に、範囲の下限値を含む文書の文書ＩＤとオフセットを数値インデックスから抽出する。そして、検索処理部１４は、範囲の指定に基づいて下限値の数値付属範囲として「＞」又は「≧」を特定し、特定した数値付属範囲を含む文書の文書ＩＤとオフセットを範囲インデックスから抽出する。そして、検索処理部１４は、検索語で指定された単位を含む文書の文書ＩＤとオフセットを単位インデックスから抽出する。そして、検索処理部１４は、数値インデックスと範囲インデックスと単位インデックスから抽出した文書ＩＤとオフセットに基づいて、下限を満たす候補文書を特定する。そして、検索処理部１４は、範囲の上限値を含む文書の文書ＩＤとオフセットを数値インデックスから抽出する。そして、検索処理部１４は、範囲の指定に基づいて上限値の数値付属範囲として「＜」又は「≦」を特定し、特定した数値付属範囲を含む文書の文書ＩＤとオフセットを範囲インデックスから抽出する。そして、検索処理部１４は、数値インデックスと範囲インデックスと単位インデックスから抽出した文書ＩＤとオフセットに基づいて、上限を満たす候補文書を特定する。そして、検索処理部１４は、下限を満たす候補文書と上限を満たす候補文書に基づいて、検索条件を満たす文書を特定する。したがって、検索装置１は、検索語で指定された数詞範囲と同じ数詞範囲を含む文書を全て検索することができる。
【０１６７】
また、実施例では、検索処理部１４は、検索語に範囲のある数詞が指定された場合に、範囲の下限値より小さい数値を含む文書の文書ＩＤとオフセットを数値インデックスから抽出する。そして、検索処理部１４は、下限の数値付属範囲として「＞」及び「≧」を特定し、特定した数値付属範囲を含む文書の文書ＩＤとオフセットを範囲インデックスから抽出する。そして、検索処理部１４は、検索語で指定された単位を含む文書の文書ＩＤとオフセットを単位インデックスから抽出する。そして、検索処理部１４は、数値インデックスと範囲インデックスと単位インデックスから抽出した文書ＩＤとオフセットに基づいて、下限を満たす候補文書を特定する。そして、検索処理部１４は、範囲の上限値より大きい数値を含む文書の文書ＩＤとオフセットを数値インデックスから抽出する。そして、検索処理部１４は、上限の数値付属範囲として「＜」及び「≦」を特定し、特定した数値付属範囲を含む文書の文書ＩＤとオフセットを範囲インデックスから抽出する。そして、検索処理部１４は、数値インデックスと範囲インデックスと単位インデックスから抽出した文書ＩＤとオフセットに基づいて、上限を満たす候補文書を特定する。そして、検索処理部１４は、下限を満たす候補文書と上限を満たす候補文書に基づいて、下限と上限を満たす文書を特定する。したがって、検索装置１は、検索語で指定された数詞範囲を包含する数詞範囲を含む文書を全て検索することができる。
【０１６８】
また、実施例では、検索処理部１４は、検索語に範囲のある数詞が指定された場合に、指定された範囲に含まれる数値を含む文書の文書ＩＤとオフセットを数値インデックスから抽出する。そして、検索処理部１４は、下限側の数値付属範囲として「＜」及び「≦」を特定し、特定した数値付属範囲を含む文書の文書ＩＤとオフセットを範囲インデックスから抽出する。そして、検索処理部１４は、検索語で指定された単位を含む文書の文書ＩＤとオフセットを単位インデックスから抽出する。そして、検索処理部１４は、数値インデックスと範囲インデックスと単位インデックスから抽出した文書ＩＤとオフセットに基づいて、下限側が部分一致する候補文書を特定する。そして、検索処理部１４は、上限側の数値付属範囲として「＞」及び「≧」を特定し、特定した数値付属範囲を含む文書の文書ＩＤとオフセットを範囲インデックスから抽出する。そして、検索処理部１４は、数値インデックスと範囲インデックスと単位インデックスから抽出した文書ＩＤとオフセットに基づいて、上限側が部分一致する候補文書を特定する。そして、検索処理部１４は、下限側が部分一致する候補文書と上限側が部分一致する候補文書に基づいて、下限だけを満たす文書、上限だけを満たす文書、下限と上限の両方を満たす文書を特定する。したがって、検索装置１は、検索語で指定された数詞範囲と下限側が部分一致する範囲を含む文書、検索語で指定された数詞範囲と上限側が部分一致する範囲を含む文書、検索語で指定された数詞範囲に内包される数詞範囲を含む文書を全て検索することができる。
【０１６９】
なお、実施例では、検索装置１について説明したが、検索装置１が有する構成をソフトウェアによって実現することで、同様の機能を有する検索プログラムを得ることができる。そこで、検索プログラムを実行するコンピュータについて説明する。
【０１７０】
図２２は、実施例に係る検索プログラムを実行するコンピュータのハードウェア構成を示す図である。図２２に示すように、コンピュータ５０は、メインメモリ５１と、ＣＰＵ（Central  Processing  Unit）５２と、ＬＡＮ（Local  Area  Network）インタフェース５３と、ＨＤＤ（Hard  Disk  Drive）５４とを有する。また、コンピュータ５０は、スーパーＩＯ（Input  Output）５５と、ＤＶＩ（Digital  Visual  Interface）５６と、ＯＤＤ（Optical  Disk  Drive）５７とを有する。
【０１７１】
メインメモリ５１は、プログラムやプログラムの実行途中結果等を記憶するメモリである。ＣＰＵ５２は、メインメモリ５１からプログラムを読み出して実行する中央処理装置である。ＣＰＵ５２は、メモリコントローラを有するチップセットを含む。
【０１７２】
ＬＡＮインタフェース５３は、コンピュータ５０をＬＡＮ経由で他のコンピュータに接続するためのインタフェースである。ＨＤＤ５４は、プログラムやデータを格納するディスク装置であり、スーパーＩＯ５５は、マウスやキーボード等の入力装置を接続するためのインタフェースである。ＤＶＩ５６は、液晶表示装置を接続するインタフェースであり、ＯＤＤ５７は、ＤＶＤの読み書きを行う装置である。
【０１７３】
ＬＡＮインタフェース５３は、ＰＣＩエクスプレス（ＰＣＩｅ）によりＣＰＵ５２に接続され、ＨＤＤ５４及びＯＤＤ５７は、ＳＡＴＡ（Serial  Advanced  Technology  Attachment）によりＣＰＵ５２に接続される。スーパーＩＯ５５は、ＬＰＣ（Low  Pin  Count）によりＣＰＵ５２に接続される。
【０１７４】
そして、コンピュータ５０において実行される検索プログラムは、コンピュータ５０により読み出し可能な記録媒体の一例であるＤＶＤに記憶され、ＯＤＤ５７によってＤＶＤから読み出されてコンピュータ５０にインストールされる。あるいは、検索プログラムは、ＬＡＮインタフェース５３を介して接続された他のコンピュータシステムのデータベース等に記憶され、これらのデータベースから読み出されてコンピュータ５０にインストールされる。そして、インストールされた検索プログラムは、ＨＤＤ５４に記憶され、メインメモリ５１に読み出されてＣＰＵ５２によって実行される。
【０１７５】
また、実施例では、単位が「年」である場合について説明したが、単位は、例えば「ｇ（グラム）」、「ｋｇ（キログラム）」、「本」、「個」など他のものであってもよい。
【符号の説明】
【０１７６】
１    検索装置
１１    登録処理部
１２    形態素解析処理部
１３    記憶部
１４    検索処理部
２１    日本語登録処理部
２２    数値登録処理部
２３    範囲登録処理部
２４    単位登録処理部
３１    日本語インデックス記憶部
３２    数値インデックス記憶部
３３    範囲インデックス記憶部
３４    単位インデックス記憶部
４１    日本語検索処理部
４２    数値検索処理部
４３    範囲検索処理部
４４    単位検索処理部
５０    コンピュータ
５１    メインメモリ
５２    ＣＰＵ
５３    ＬＡＮインタフェース
５４    ＨＤＤ
５５    スーパーＩＯ
５６    ＤＶＩ
５７    ＯＤＤ
【図１】
2020187533.tif 000003
【図２】
2020187533.tif 000004
【図３】
2020187533.tif 000005
【図４】
2020187533.tif 000006
【図５】
2020187533.tif 000007
【図６】
2020187533.tif 000008
【図７Ａ】
2020187533.tif 000009
【図７Ｂ】
2020187533.tif 000010
【図８Ａ】
2020187533.tif 000011
【図８Ｂ】
2020187533.tif 000012
【図８Ｃ】
2020187533.tif 000013
【図９】
2020187533.tif 000014
【図１０Ａ】
2020187533.tif 000015
【図１０Ｂ】
2020187533.tif 000016
【図１１Ａ】
2020187533.tif 000017
【図１１Ｂ】
2020187533.tif 000018
【図１２Ａ】
2020187533.tif 000019
【図１２Ｂ】
2020187533.tif 000020
【図１３Ａ】
2020187533.tif 000021
【図１３Ｂ】
2020187533.tif 000022
【図１４】
2020187533.tif 000023
【図１５】
2020187533.tif 000024
【図１６】
2020187533.tif 000025
【図１７】
2020187533.tif 000026
【図１８】
2020187533.tif 000027
【図１９】
2020187533.tif 000028
【図２０】
2020187533.tif 000029
【図２１】
2020187533.tif 000030
【図２２】
2020187533.tif 000031