(57)【特許請求の範囲】
【請求項１】
最小値と最大値とのうちの少なくとも一方を用いて定義される数値の範囲を数値範囲とし、入力された数値または数値範囲に対して所定の適合条件を満たす数値範囲が含まれるデータを検索する数値範囲検索装置であって、
検索対象となる数値範囲と、全ての当該数値範囲が含まれる値域を所定の境界値で分割した部分区間との対応関係を表すデータである区間フィルタと、前記検索対象となる数値範囲を参照するための参照情報とを少なくとも含むレコードを単位とし、前記レコードを前記区間フィルタの少なくとも一部が共通するレコード単位にまとめた区間インデックスを格納する区間インデックス格納手段と、
前記入力された数値または数値範囲と前記部分区間との対応関係を表すデータである区間クエリを生成する区間クエリ生成手段と、
前記レコードのうち、前記区間フィルタと前記区間クエリとの論理積が当該区間クエリに等しくなる区間フィルタを含むレコードを選択する候補選択手段とを
備えることを特徴とする数値範囲検索装置。
【請求項２】
検索対象となる数値範囲が入力された数値または数値範囲を包含していることを所定の適合条件とする
請求項１に記載の数値範囲検索装置。
【請求項３】
検索対象となる数値範囲の全てを包含する区間の中で、互いに範囲が重ならない数値範囲を最も多く分離する値を境界値に選んで部分区間を作り、作られた前記部分区間それぞれの中において、互いに範囲が重ならない数値範囲を最も多く分離する値を境界値に選んでさらに部分区間を作ることを、所定の終了条件を満たすまで繰り返すことにより所定の境界値を決定する
請求項１または請求項２に記載の数値範囲検索装置。
【請求項４】
区間インデックス格納手段は、区間フィルタが同じ値となる参照情報を１つのレコードに含み、１つのレコードに含まれる２つ以上の前記参照情報のうち、参照する数値範囲の間に包含関係が成り立つ参照情報同士を前記包含関係を表す形式で含む区間インデックスを格納する
請求項１乃至請求項３に記載の数値範囲検索装置。
【請求項５】
入力された数値または数値範囲と、選択されたレコードに記録されている参照情報によって特定される文書に含まれる数値範囲とを比較し、所定の適合条件を満たす文書を検索結果として出力する適合性判定手段を備えた
請求項１乃至請求項４に記載の数値範囲検索装置。
【請求項６】
最小値と最大値とのうちの少なくとも一方を用いて定義される数値の範囲を数値範囲とし、入力された数値または数値範囲に対して所定の適合条件を満たす数値範囲が含まれるデータを検索する数値範囲検索方法であって、
検索対象となる数値範囲と、全ての当該数値範囲が含まれる値域を所定の境界値で分割した部分区間との対応関係を表すデータである区間フィルタと、前記検索対象となる数値範囲を参照するための参照情報とを少なくとも含むレコードを単位とし、前記レコードを前記区間フィルタの少なくとも一部が共通するレコード単位にまとめた区間インデックスを記憶し、
前記入力された数値または数値範囲と前記部分区間との対応関係を表すデータである区間クエリを生成し、
前記レコードのうち、前記区間フィルタと前記区間クエリとの論理積が当該区間クエリに等しくなる区間フィルタを含むレコードを選択する
ことを特徴とする数値範囲検索方法。
【請求項７】
最小値と最大値とのうちの少なくとも一方を用いて定義される数値の範囲を数値範囲とし、入力された数値または数値範囲に対して所定の適合条件を満たす数値範囲が含まれるデータを検索するための数値範囲検索プログラムであって、
検索対象となる数値範囲と、全ての当該数値範囲が含まれる値域を所定の境界値で分割した部分区間との対応関係を表すデータである区間フィルタと、前記検索対象となる数値範囲を参照するための参照情報とを少なくとも含むレコードを単位とし、前記レコードを前記区間フィルタの少なくとも一部が共通するレコード単位にまとめた区間インデックスを区間インデックス格納部に格納するコンピュータに、
前記入力された数値または数値範囲と前記部分区間との対応関係を表すデータである区間クエリを生成する区間クエリ生成処理と、
前記レコードのうち、前記区間フィルタと前記区間クエリとの論理積が当該区間クエリに等しくなる区間フィルタを含むレコードを選択する候補選択処理とを
実行させるための数値範囲検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値範囲検索装置、数値範囲検索方法、および数値範囲検索プログラムに関する。
【背景技術】
【０００２】
工業製品の設計や化学物質の合成、医療における薬の処方など、定量的な制約がある作業を行なう際、その作業に関して許容できる数値範囲を含む規則やガイドラインを素早く網羅的に参照するために、それらが記述された文書の検索手段が重要となる。そのような文書内では、数値範囲が必ずしも最小値と最大値との一覧表のように定型的には記載されておらず、自然言語によって文書中の複数個所に様々な表現で記載されている。【０００３】
ある１つ以上の数値や範囲を条件として文書を検索する場合、一般的なキーワード検索や全文検索の方式では条件に適合する文書を網羅的に得ることができない。例えば、「１０ｇ」を条件とした場合には、「１０ｇ以上１５ｇ以下」と書かれた文書については検索することができる。しかしながら、「５ｇ以上２０ｇ以下」と書かれた文書については数値範囲としての条件に適合するものの「１０ｇ」という文字列が含まれていないため検索することができない。【０００４】
特許文献１では、全文検索用の索引に数値範囲検索のための情報を付加する索引作成方式を開示している。同方式では、文書内の数値の指数部を算定し、索引を構成する要素の一部に指数部を付加した索引を作成することで、数値範囲検索のための特別な情報（別の独立した索引）を用意せずに、数値範囲検索と全文検索を同じ仕組みで可能にしている。【０００５】
例えば、「３８０ｍ〜７６０ｍ」という数値範囲を含む文書では、「３８０」および「７６０」を、２ｇｒａｍ文字列（連続する２文字ごとの文字列）と出現位置と指数部（各数値の最初の２ｇｒａｍについてのみ）との組で（“３８”，［１８（＋２）］），（“８０”，［１９］）および（“７６”，［２２（＋２）］），（“６０”，［２３］）と表し、単語索引に格納する。【０００６】
これに対して「３８７．６ｍ以上」を検索条件とした全文検索を行なう場合には、検索条件の「３８７．６」を「３８」と「７．６」とに分割する。それぞれの指数は＋２と−１とであり、これらを単語索引の指数部と照合して指数部が（条件に「以上」が含まれるため）同じかより大きいものを候補として抽出する。上記例の検索条件には「以上」が付くため、（指数が同じ場合には）検索条件の数字より大きい値の数字がマッチする。検索条件のうち先頭の（“３８”，［０（＋２）］）「以上」の上記文書中の数値としては、数値文字列と指数部それぞれの大小関係の照合から（“３８”，［１８（＋２）］と（“７６”，［２２（＋２）］）とである。同様に、先頭以外の値（“７．６”）「以上」の値は、（“８０”，［１９］）と（“６０”，［２３］）とが該当する。連接判定手段により、（“７６”，［２２（＋２）］）と（“６０”，［２３］）とが連接して「７６０」という値を構成することなどを判定し、「７６０（ｍ）」が「３８７．６ｍ以上」を満たす値であることを確認する。【０００７】
特許文献２に記載された方法では、ある特定種類のデータの数値集合Ｄについて、Ｄの全ての要素を含む数値区間の集合Ｅを生成し、Ｄの要素ｘを区間内に含むような区間に対しては１、含まないような区間に対しては０を対応づけることで、文書中の数値を索引付けする。このような索引をデータの種類ごとに生成し、文書中の数値データを精度よく、効率的に検索できるようにしている。【０００８】
例えば、ある患者Ａの状態に類似する他の患者のデータを検索したい場合、患者Ａの最高血圧が１４０であることを検索条件の１つとすると、最高血圧が１２５の患者Ｂ、最高血圧が１５５の患者Ｃは、共に患者Ａと同程度に血圧値が近い。しかし、患者Ｂは正常血圧の区間内であり、患者Ａと患者Ｃは高血圧の区間に入るため、これらは区別すべきである。【０００９】
特許文献２に記載された方法では、正常血圧の数値集合に対する数値区間と、異常血圧（高血圧）の数値集合に対する数値区間とを区別することで、この例のような検索の精度を改善することができる。また、数値区間を分けることで、該当する数値区間に含まれる数値が記載された文書のみを対象として検索条件との類似度を評価すればよいため、検索効率の向上も期待できるとしている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００６−１６３９９５号公報
【特許文献２】特開２００８−２７６５５０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
以上述べたような数値範囲を条件とする従来の検索方法では、検索文に含まれる数値や数値範囲と検索対象文書に含まれる数値範囲とを個別に照合するため、大量の文書や多数の数値データを含む文書の検索には時間が掛かる。【００１２】
特許文献２に記載された方法では、数値データのタイプ（血圧や年齢など）ごとに区間を分割することで照合範囲の限定により検索が効率化される可能性はある。しかしながら、区間の分割基準が正常区間と異常区間を分けるなどの分類意図に基づいており、検索対象の文書に記載された数値がどの区間にどの程度の数だけ含まれるかを考慮しないため、検索効率が必ずしも良くなるとは言えない。【００１３】
そこで、本発明は、文書中に記載された数値範囲を検索条件と効率よく照合する数値範囲検索装置、数値範囲検索方法、および数値範囲検索プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明による数値範囲検索装置は、最小値と最大値とのうちの少なくとも一方を用いて定義される数値の範囲を数値範囲とし、入力された数値または数値範囲に対して所定の適合条件を満たす数値範囲が含まれるデータを検索する数値範囲検索装置であって、検索対象となる数値範囲と、全ての数値範囲が含まれる値域を所定の境界値で分割した部分区間との対応関係を表すデータである区間フィルタと、検索対象となる数値範囲を参照するための参照情報とを少なくとも含むレコードを単位とし、レコードを区間フィルタの少なくとも一部が共通するレコード単位にまとめた区間インデックスを格納する区間インデックス格納手段と、入力された数値または数値範囲と部分区間との対応関係を表すデータである区間クエリを生成する区間クエリ生成手段と、レコードのうち、区間フィルタと区間クエリとの論理積が区間クエリに等しくなる区間フィルタを含むレコードを選択する候補選択手段とを備えることを特徴とする。
【００１５】
本発明による数値範囲検索方法は、最小値と最大値とのうちの少なくとも一方を用いて定義される数値の範囲を数値範囲とし、入力された数値または数値範囲に対して所定の適合条件を満たす数値範囲が含まれるデータを検索する数値範囲検索方法であって、検索対象となる数値範囲と、全ての数値範囲が含まれる値域を所定の値で分割した部分区間との対応関係を表すデータである区間フィルタと、検索対象となる数値範囲を参照するための参照情報とを少なくとも含むレコードを単位とし、レコードを区間フィルタの少なくとも一部が共通するレコード単位にまとめた区間インデックスを記憶し、入力された数値または数値範囲と部分区間との対応関係を表すデータである区間クエリを生成し、レコードのうち、区間フィルタと区間クエリとの論理積が区間クエリに等しくなる区間フィルタを含むレコードを選択することを特徴とする。
【００１６】
本発明による数値範囲検索プログラムは、最小値と最大値とのうちの少なくとも一方を用いて定義される数値の範囲を数値範囲とし、入力された数値または数値範囲に対して所定の適合条件を満たす数値範囲が含まれるデータを検索するための数値範囲検索プログラムであって、検索対象となる数値範囲と、全ての数値範囲が含まれる値域を所定の値で分割した部分区間との対応関係を表すデータである区間フィルタと、検索対象となる数値範囲を参照するための参照情報とを少なくとも含むレコードを単位とし、レコードを区間フィルタの少なくとも一部が共通するレコード単位にまとめた区間インデックスを区間インデックス格納部に格納するコンピュータに、入力された数値または数値範囲と部分区間との対応関係を表すデータである区間クエリを生成する区間クエリ生成処理と、レコードのうち、区間フィルタと区間クエリとの論理積が区間クエリに等しくなる区間フィルタを含むレコードを選択する候補選択処理とを実行させることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、文書中に記載された数値範囲を検索条件と効率よく照合することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１の実施形態の構成例を示すブロック図である。
【図２】本発明における部分区間および数値範囲テーブルの具体例を示す図である。
【図３】本発明における部分区間定義の具体例を示す図である。
【図４】本発明における区間インデックスの具体例を示す図である。
【図５】第１の実施形態の動作例を説明するフローチャートである。
【図６】第１の実施形態の動作の具体例を示す説明図である。
【図７】本発明における区間インデックスの別の具体例を示す図である。
【図８】本発明の第２の実施形態の構成例を示すプロック図である。
【図９】第２の実施形態の動作の具体例を示す説明図である。
【図１０】本発明における文書インデックスの具体例を示す図である。
【図１１】本発明における区間インデックスの別の具体例を示す図である。
【図１２】本発明の第１の実施形態および第２の実施形態のハードウェア構成例を説明する図である。
【図１３】数値範囲検索装置の最小の構成例を示すブロック図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施形態について図面を参照して説明する。
第１の実施の形態．
図１は、本発明による数値範囲検索装置の第１の実施の形態を示すブロック図である。図１に示すように、数値範囲検索装置は、区間クエリ生成手段１、区間インデックス格納手段２、候補選択手段３、数値範囲テーブル格納手段４および適合性判定手段５を含む。
【００２０】
区間クエリ生成手段１は、入力された数値または数値範囲と、１次元実数空間を所定の位置で分割した下限値および上限値で定義される部分区間それぞれとの対応関係を表すバイナリデータ（以下、区間クエリと呼ぶ）を生成する。
【００２１】
区間インデックス格納手段２は、数値範囲が記載された文書やその記載位置を特定するための数値範囲ＩＤと、文書中の数値範囲と部分区間それぞれとの対応関係を表すバイナリデータ（以下、区間フィルタと呼ぶ）と、文書中の数値範囲が対応する部分区間のうち下限値が最小の部分区間のＩＤとを含むレコードで表される区間インデックスを格納する。すなわち、区間インデックス格納手段２は、区間フィルタと検索対象となる数値範囲を参照するための参照情報（例えば、数値範囲ＩＤ）とを少なくとも含むレコードを単位とし、レコードを区間フィルタの少なくとも一部が共通するレコード単位にまとめた区間インデックスを格納する。
【００２２】
候補選択手段３は、区間インデックス中の各レコードに含まれている区間フィルタと区間クエリとの論理積が当該区間クエリに等しくなるレコードを全て選択し、選択したレコードに含まれる数値範囲ＩＤを後段の適合性判定手段５に出力する。
【００２３】
数値範囲テーブル格納手段４は、数値範囲ＩＤによって特定される数値範囲の最小値と最大値、および当該数値範囲が記載されている文書を特定する文書ＩＤを含むレコードで表される数値範囲テーブルを格納する。
【００２４】
適合性判定手段５は、数値範囲テーブル中のレコードのうち、候補選択手段３から受け取った数値範囲ＩＤを持つレコードに含まれている最小値と最大値とを、入力された数値または数値範囲と照合し、レコード中の文書ＩＤで指定される文書中の数値範囲が、入力された数値または数値範囲に適合するか否かを判定する。
【００２５】
適合性判定手段５は、例えば、文書中の数値範囲が入力された数値または数値範囲を包含する場合に、適合したと判定する。その結果、適合性判定手段５は、適合したと判定したレコードに含まれている文書ＩＤを出力する。文書ＩＤと文書名や文書ファイル名などとを対応付けたインデックス（図示せず）を別途用意しておくことで、適合性判定手段５から出力された文書ＩＤを元に、入力された数値または数値範囲に適合する数値範囲が記載された文書を参照することができる。
【００２６】
本発明による数値範囲検索装置の第１の実施の形態は、図１２に示すような一般的なコンピュータ装置と同様のハードウェア構成によって実現できる。図１２において、数値範囲検索装置Ａは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）Ａ１、主記憶部Ａ２、出力部Ａ３、入力部Ａ４、及び補助記憶部Ａ６を少なくとも含む。また、通信部Ａ５を備えていても良い。
【００２７】
主記憶部Ａ２は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメインメモリであって、データの作業領域やデータの一時退避領域に用いられる。出力部Ａ３は、液晶ディスプレイ装置等の表示装置、又はプリンタ等の印刷装置であり、データを出力する機能を備える。入力部Ａ４は、キーボードやマウス等の入力デバイスであり、データを入力する機能を備える。また、ファイル読み込みによってデータ入力を行なう場合には、入力部Ａ４は、外部記録媒体読取装置等であってもよい。補助記憶部Ａ６は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やハードディスク装置等である。また、図１２に示すように、以上の各構成要素Ａ１〜Ａ６は、システムバスＡ７を介して相互に接続されている。
【００２８】
図１２のハードウェア構成において、数値範囲検索装置Ａの補助記憶部Ａ６は、入力部Ａ４を用いて入力された数値または数値範囲に基づいて文書ＩＤを検索するための各種プログラムを記憶している。図１に示した区間クエリ生成手段１、候補選択手段３、適合性判定手段５のそれぞれを実現するプログラムは、いずれも補助記憶部Ａ６に記憶される。また、補助記憶部Ａ６は、区間インデックスおよび数値範囲テーブルを記憶することにより、図１に示した区間インデックス格納手段２と数値範囲テーブル格納手段４を実現することができる。
【００２９】
なお、数値範囲検索装置は、その内部に、図１に示したような機能を実現するプログラムを組み込んだＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等のハードウェア部品からなる回路を実装して、ハードウェア的に実現してもよい。また、図１２に示したように、上記した図１に示したような機能を提供するプログラムを、コンピュータのＣＰＵＡ１に実行させることにより、ソフトウェア的に実現してもよい。すなわち、ＣＰＵＡ１は、補助記憶部Ａ６に格納されているプログラムを、主記憶部Ａ２にロードして実行し、数値範囲検索装置Ａの動作を制御することにより、上述した各機能をソフトウェア的に実現することができる。
【００３０】
また、通信部Ａ５は、周辺機器と接続され、データの送受信を行なう機能を備える。周辺機器の１つとして、図１２に示す外部記憶装置Ｂが通信部Ａ５によりネットワークを介して数値範囲検索装置Ａと接続され、外部記憶装置Ｂに区間インデックスおよび数値範囲テーブルを格納しておき、また適合性判定手段５により出力される文書ＩＤを外部記憶装置Ｂに格納しても良い。
【００３１】
区間インデックス格納手段２に格納される区間インデックスついて、図２および図４を参照しながらより詳細に説明する。図２（ａ）では、−∞（負の無限大）から＋∞（正の無限大）までを値域とする１次元実数空間を４つの部分区間（部分区間１、部分区間２、部分区間３、部分区間４）に分割している。隣接する部分区間の間の境界値は、それぞれ０、１、１００である。各部分区間は境界値を下限値として含み、上限値としては境界値自体を含まない。例えば、部分区間２は下限値が０を含むが上限値が１を含まず、０以上１未満の区間として定義される。
【００３２】
部分区間の決定方法としては、部分区間の間の境界値を、検索対象となる全ての文書に記載された全ての数値範囲のうち、互いに範囲が重ならない数値範囲をなるべく多く分離する（共通の部分区間に含まれないようにする）ように選ぶ方法がある。この方法を採用することによって、本発明による数値範囲の検索をより高速に実行することができる。具体的な手順としては、最初に最も多くの数値範囲を分離できる境界値を選んで２つの部分区間を作り、次に、各部分区間の中で最も多くの数値範囲を分離できる境界値を選んで新たな部分区間を作る。この動作を、所定の条件を満たすまで（例えば１０個の部分区間ができるまで、または分離できる数値範囲が無くなるまで）繰り返すことにより、部分区間を決定することができる。
【００３３】
図２（ａ）において、各文書に記載された数値範囲を実数空間上の線分として表現している。独立した単一の数値は最小値と最大値とが同じ数値範囲であると捉え、長さ０の線分で表す。例えば、検索対象文書の１つである文書１（文書ＩＤ＝Ｄ００１）に「−１０以下」という数値範囲が記載されていた場合を想定する。この場合、その数値範囲は（−∞，−１０）であって、上記の４つの部分区間のうち（−∞，０）を値域とする部分区間１に含まれ、他の部分区間２から部分区間４には対応しない。ここで、ある数値や数値範囲の一部または全部が対応する部分区間を１、対応しない部分区間を０とし、−∞に近い部分区間の順に並べた２進数４桁のバイナリデータを区間フィルタと呼ぶことにする。文書１の数値範囲「−１０以下」は部分区間１にのみ対応するため、その区間フィルタは「１０００」となる。
【００３４】
図２（ｂ）に示した数値範囲テーブル１００は、各文書に記載された数値範囲について、そのＩＤ、最小値と最大値、および記載されている文書のＩＤをまとめた例である。このような数値範囲テーブル１００から、図４に示す区間インデックス１０２を作成し、区間インデックス格納手段２に予め格納する。
【００３５】
図３において、部分区間定義１０１は、図２（ａ）に示した４つの部分区間それぞれの下限値と上限値とを定義したテーブルである。各部分区間は、部分区間ＩＤ（Ｚ０１〜Ｚ０４）で識別される。
【００３６】
図４の区間インデックス１０２は、図２（ｂ）の数値範囲テーブル１００に記載された各数値範囲について、対応する部分区間の部分区間ＩＤと区間フィルタ、および実際の数値範囲を参照するための数値範囲ＩＤで構成し、部分区間ＩＤ毎にまとめた例である。１つの数値範囲が２つ以上の部分区間に対応する場合があるため、区間インデックス１０２には同じ数値範囲に対するレコードが複数含まれている場合がある。
【００３７】
次に、入力された数値または数値範囲に適合する文書（文書ＩＤ）を検索する手順を、図５を参照しながら説明する。図５は、第１の実施形態の動作例を説明するフローチャートである。
【００３８】
例えば、数値範囲検索装置に「０．０４」という１つの数値のみが入力された場合、まず、区間クエリ生成手段１が当該数値を図３に示した部分区間定義１０１と照合することにより、当該数値がどの部分区間に含まれるかを判断する。上記の数値「０．０４」は、０以上１未満の区間２に含まれ、その他の区間には含まれない。そのため、数値「０．０４」は部分区間定義１０１で定義された４つの部分区間を下限値の小さい順に並べた４桁の２進数で「０１００」というバイナリデータによって表すことができる。区間クエリ生成手段１は、上記の数値を「０１００」というバイナリデータに変換し、これを区間クエリとして、入力された数値および対応する部分区間ＩＤ（＝Ｚ０２）と共に候補選択手段３に出力する（ステップＳ１）。
【００３９】
次に、候補選択手段３は、区間インデックス格納手段２に格納されている図４に示した区間インデックス１０２を参照し、入力された数値に対応する部分区間ＩＤ（本例ではＺ０２）を持つレコードの区間フィルタ（Ｆｉ，ｉは数値範囲ＩＤ）と、上記の区間クエリ（＝Ｑ１）との論理積を求める。そして、候補選択手段３は、Ｑ１＾Ｆｉ＝Ｑ１（＾は論理積演算子）となる数値範囲ＩＤ＝ｉのレコードの最小値、最大値、文書ＩＤのリストを適合性判定手段４に出力する（ステップＳ２）。上記例の場合、区間クエリは「０１００」であり、区間インデックス１０２の部分区間ＩＤがＺ０２であるレコードの区間フィルタはそれぞれ「０１１０」「０１００」「０１１０」である。従って、論理積は全て「０１００」すなわち区間クエリの値に等しくなり、適合性判定手段４に出力される数値範囲ＩＤは「０００２」「０００４」「０００６」となる。
【００４０】
次に、適合性判定手段５は、数値範囲テーブル１００における上記の数値範囲ＩＤ＝ｉのレコード中の最小値および最大値と、入力された数値とを比較することで、その数値が所属する数値範囲が記載された文書ＩＤを出力する（ステップＳ３）。
【００４１】
別の動作例として、数値範囲検索装置に、検索条件として２つの数値からなる数値範囲が入力された場合の動作を、図６を参照しながら説明する。図６は、第１の実施形態の動作の具体例を示す説明図である。
【００４２】
入力された数値範囲が「０．０５〜２．２５」、すなわち最小値が０．０５、最大値が２．２５であった場合を想定する。この場合、０．０５は部分区間２（部分区間ＩＤ＝Ｚ０２）に含まれる。また、２．２５は部分区間３（部分区間ＩＤ＝Ｚ０３）に含まれる。そして、部分区間２と部分区間３との間には他に部分区間が無い。そのため、入力された数値範囲が対応する部分区間は部分区間２と部分区間３とになる。従って、本動作例において区間クエリ生成手段１は、区間クエリ「０１１０」を生成する。
【００４３】
次に、候補選択手段３は、図４に示した区間インデックス１０２から、上記の入力された数値範囲が対応する部分区間のうち下限値が最小である部分区間２（部分区間ＩＤ＝Ｚ０２）に対応するレコードの区間フィルタと上記の区間クエリとの論理積演算を行う。そして、候補選択手段３は、論理積演算の結果が区間クエリと等しいレコードのみを抽出する。抽出されたレコードの数値範囲ＩＤは「０００２」と「０００６」である（図６では抽出された数値範囲ＩＤに○、抽出されなかった数値範囲ＩＤに×を付記）。
【００４４】
次に、適合性判定手段５は、抽出された２つの数値範囲ＩＤで図２（ｂ）に示した数値範囲テーブル１００を参照し、各数値範囲ＩＤに対応する数値範囲の最小値および最大値を、入力された数値範囲の最小値および最大値と比較する。入力された数値範囲の最小値と最大値とはそれぞれ「０．０５」「２．２５」であり、これらに対して比較対象の最小値と最大値との組は、「０．０２」「１．８９」および「０」「９０」である。図６に示すように、上記の比較対象の最小値と最大値との組のうち前者は入力された数値範囲を包含せず、後者は包含する。そのため、適合性判定手段５は、結果として後者の数値範囲に対応する文書ＩＤ＝Ｄ００４のみを数値範囲検索装置の検索結果として出力する。
【００４５】
なお、区間インデックスは、図７に示す区間インデックス１０３のように区間フィルタが同一値の数値範囲ＩＤを１レコードにまとめても良い。区間インデックスを図７のように構成することで区間インデックスのレコード数を削減できるため、区間インデックスを記憶するための容量がより少なく済むと共に、候補選択手段３によるレコードの選択も高速化できる。
【００４６】
さらに、区間フィルタが同じ値の数値範囲の間で範囲の包含関係を予め判定しておき、包含される側の数値範囲ＩＤに包含する側の数値範囲ＩＤを結び付けておいても良い。例えば、図７の区間インデックス１０３における数値範囲ＩＤフィールドの値のうち、数値範囲ＩＤ「０００２」で表される数値範囲は、数値範囲ＩＤ「０００６」で表される数値範囲に包含されている。そこで、区間インデックス１０３の数値範囲ＩＤフィールドには「０００２（０００６）」のように記述しておくことにより、適合性判定手段４は、入力された数値範囲が数値範囲ＩＤ「０００２」に包含されるならば、数値範囲ＩＤ「０００６」にも包含されることが実際の数値範囲の比較なしに判定できる。すなわち、部分区間毎に数値範囲同士の比較順序を包含関係により定めておくことで、ある数値範囲が入力された数値範囲を包含するならば、上記のある数値範囲を包含する全ての数値範囲も入力された数値範囲を包含することが即時に分かる。
【００４７】
本発明の第１の実施の形態では、数値範囲検索装置は、入力された数値や数値範囲に対して、予め部分区間との対応関係によって粗い分類を行う。そして、数値範囲検索装置は、検索対象となる文書に記載された数値範囲のうち、最小値と最大値とが共に同じ部分区間に属する数値範囲を計算機で高速に処理できる短いバイナリデータ間の論理積演算によって絞り込み、絞り込まれた数値範囲のみの比較によって検索結果を得ることができる。そのため、数値範囲検索装置は、大量の文書や非常に多数の数値範囲から入力された数値や数値範囲が合致するものを高速に検索することができる。
【００４８】
第２の実施の形態．
次に、本発明の第２の実施の形態について図面を参照して説明する。図８は、本発明による数値範囲検索装置の第２の実施の形態を示すブロック図である。図８を参照すると、第２の実施の形態において、区間クエリ生成手段１と、区間インデックス格納手段２と、候補選択手段３と、数値範囲テーブル格納手段４と、適合性判定手段５とは、図１に示した第１の実施の形態と同様に機能するため説明を省略する。ただし、第２の実施の形態では、適合性判定手段５は文書ＩＤではなく数値範囲ＩＤを出力することとする。従って、第２の実施の形態において数値範囲テーブル格納手段４が格納する数値範囲テーブルには文書ＩＤが含まれていなくとも良い。
【００４９】
第２の実施の形態では、日本語などの自然言語で記述された検索文を入力とする。図８において、言語解析手段６は、入力された検索文を解析し、単語や単語同士の係り受け関係を識別する。
【００５０】
数量表現抽出手段７は、識別された単語の集合から、数量表現に関する数値や単位などを表す単語の組を抽出する。
【００５１】
数量タイプ判定手段８は、抽出された数量表現が長さや重さなどのうちいずれのタイプ（以下、数量タイプと呼ぶ）の数量であるかを判定する。
【００５２】
対象語抽出手段９は、抽出された数量表現が何についての数量を表しているかを特定する対象語を抽出する。
【００５３】
対象語標準化手段１０は、同じ対象を表す対象語が複数ある場合に抽出された対象語を標準的対象語に変換する。
【００５４】
文書インデックス格納手段１１は、数量タイプと対象語と、第１の実施の形態で用いた数値範囲ＩＤと文書ＩＤとを少なくとも含むレコードで構成された文書インデックスを格納する。
【００５５】
文書検索手段１２は、数値範囲ＩＤと数量タイプと標準化済みの対象語とを用いて文書インデックス格納手段１１に格納された文書インデックスを参照し、所定の条件を満たすレコードから少なくとも文書ＩＤを取り出す。
【００５６】
検索結果出力手段１３は、取り出された少なくとも文書ＩＤを含む検索結果を出力する。
【００５７】
言語解析手段６において、自然言語で記述された検索文を解析し、単語や単語同士の係り受け関係を識別するには、既存の言語解析手段を用いることができる。例えば、日本語の文から各種の単語を識別するにはＭｅＣａｂ（例えば、http://mecab.sourceforge.net/に記載されている）を用い、単語同士の係り受け関係を識別するにはＣａｂｏＣｈａ（例えば、http://chasen.org/~taku/software/cabocha/に記載されている）を用いることで実現できる。
【００５８】
数量表現抽出手段７において、単語の集合から検索対象の文書および検索文からそれぞれ数量表現を抽出するには、例えば特許文献３（特許第3360617号公報）や特許文献４（特開2006-350989公報）で開示されているような方法を用いることで実現できる。
【００５９】
数量タイプ判定手段８は、数量タイプを判定するために「ｇ」や「ｍｇ」「ポンド」「重量」などとタイプ名の「重さ」、「ｍ」「ｃｍ」「フィート」「距離」「幅」などとタイプ名の「長さ」、などをそれぞれ対応づける辞書（図示せず）を用意することによって実現できる。
【００６０】
対象語抽出手段９は、対象語の辞書（図示せず）を用意しておき、言語解析手段６で識別された単語から対象語と文字列が一致するものを探すことで実現できる。対象語の辞書については、例えば検索対象となる文書において、数値の周辺にある名詞を収集することによって作成しても良い。
【００６１】
対象語標準化手段１０は、対象語と標準的対象語の対応関係を表す辞書（図示せず）を用意しておき、対象語から標準的対象語に置き換えることで実現できる。上記の辞書については、名詞の同義語や類義語を、例えば下記の参考文献などを利用して収集し、それらのうちの１つを標準的対象語とすることで作成することができる。
【００６２】
参考文献（日本語大シソーラス  −類語検索大辞典−，ロゴヴィスタ株式会社（http://www.logovista.co.jp/LVERP/shop/ItemDetail.aspx?contents_code=LVDTS05010））
【００６３】
文書検索手段１２において、評価する所定の条件としては、入力された検索文から得た数値範囲ＩＤと数量タイプと対象語を全て含むものとしても良いし、入力された検索文から得た数量タイプと対象語を含むが数値範囲ＩＤが異なるものとしても良い。また、その他の条件を適用しても良い。
【００６４】
本発明の第２の実施の形態は、図１２に示した第１の実施の形態と同様のハードウェア構成によって実現することができる。すなわち、言語解析手段６、数量表現抽出手段７、数量タイプ判定手段８、対象語抽出手段９、対象語標準化手段１０、文書検索手段１２、検索結果出力手段１３は、いずれも図１２の補助記憶部Ａ６に記憶され、必要時に主記憶部Ａ２に読み込まれ、ＣＰＵＡ１で実行されることにより、それぞれの機能をソフトウェア的に実現することができる。また、第１の実施の形態における説明と同様に、ハードウェア的に実現しても良い。文書インデックス格納手段１１は、図１２の補助記憶部Ａ６に文書インデックスを記憶しておくか、または外部記憶装置Ｂに文書インデックスを記憶しておき、通信部Ａ５とネットワークを介して必要時に参照することで実現することができる。
【００６５】
本発明の第２の実施の形態による具体的な動作例を、図９および図１０を用いて説明する。
【００６６】
検索文として、「食塩を７００ｍｇ加えた」という日本語文が入力されたとする。言語解析手段６は、入力された日本語文を解析して単語「食塩」「を」「７００」「ｍｇ」「加えた」をそれぞれ識別する。さらに、言語解析手段６は、「食塩」および「７００」と「ｍｇ」との組がそれぞれ「加えた」を修飾しているという係り受け関係を認識する。
【００６７】
数量表現抽出手段７は、識別された単語のうち数量表現に関するものを抽出する。本例では、数量表現抽出手段７は、「７００」を数値、「ｍｇ」を単位として抽出する。さらに、数量表現抽出手段７は、単位「ｍｇ」を標準の単位「ｇ」に標準化すると共に、同標準化によって必要な数値の変換を施し、「７００」を千分の１の「０．７」に置き換える。
【００６８】
数量タイプ判定手段８は、抽出された単位から数量タイプを判定する。本例では、数量タイプ判定手段８は、標準化された単位「ｇ」から数量タイプを「重さ（ｇ）」と判定する。
【００６９】
対象語抽出手段９は、数量表現「７００」「ｍｇ」（標準化後は「０．７」「ｇ」）に対応する対象語を言語解析手段６の解析結果から抽出する。本例では、対象語抽出手段９は、数量表現「７００」「ｍｇ」と共に「加えた」を修飾している「食塩」を対象語として抽出する。
【００７０】
これに対して対象語標準化手段１０は、対象語「食塩」の標準的な表現（標準的対象語）があるかを辞書（図示せず）を参照して確認し、標準的な表現があればその表現に置き換える。例えば「食塩」に対して「塩」が標準的な表現として辞書に記載されていたとすると、対象語標準化手段１０は、対象語を「食塩」の替わりに「塩」とする。
【００７１】
数量表現抽出手段７によって抽出および標準化された数量表現のうち数値または数値範囲のみを、区間クエリ生成手段１の入力とする。本例では「０．７」を入力として区間クエリ生成手段１が図３に示した部分区間定義１０１を参照すると、下限値を０、上限値を１とする部分区間２（部分区間ＩＤ＝Ｚ０２）のみが対応するため、区間クエリ「０１００」を生成する。
【００７２】
続いて、候補選択手段３は、区間インデックス格納手段２を用いて図４に記載の区間インデックス１０２を参照し、部分区間ＩＤ＝Ｚ０２となるレコードの区間フィルタと区間クエリ「０１００」との論理積が同区間クエリに等しいものを選択する。本例では、数値範囲ＩＤ「０００２」「０００４」「０００６」のレコードがいずれも選択される。そして、適合性判定手段５は、これらの数値範囲ＩＤを用いて数値範囲テーブル格納手段４が格納する図２（ｂ）に示した数値範囲テーブル１００に記載された数値範囲を参照し、各数値範囲と入力された数値「０．７」とを比較して所定の条件を満たすか否かを判定する。本例では、上記の所定の条件を、入力された数値または数値範囲を指定された数値範囲ＩＤに対応する数値範囲が包含することとする。ただし、本例において適合性判定手段５は、指定された全ての数値範囲ＩＤを、所定の条件を満たすか否かの判断結果と共に出力する。本例では、入力された数値「０．７」と数値範囲テーブル１００における数値範囲ＩＤ「０００２」「０００４」「０００６」の各数値範囲とを比較した結果、図９のように数値範囲ＩＤ「０００２」「０００６」の数値範囲は「０．７」を包含するが、数値範囲ＩＤ「０００４」の数値範囲は「０．７」を包含しない。
【００７３】
文書検索手段１２は、適応性判定手段５による上記の判定結果と、数量タイプ「重さ（ｇ）」と対象語「塩」とを用いて、文書インデックス格納手段１１が格納する文書インデックスを参照する。
【００７４】
文書インデックス格納手段１１は、図１０に示すような文書インデックス１０４を格納しているものとする。文書インデックス１０４は、数値範囲ＩＤ、文書ＩＤ、対象語、数量タイプに加え、文書中の数値範囲が記載されている位置（ページ番号とページ先頭から数値範囲に該当する最初の文字までの文字数）を含むレコードを単位として構成されている。
【００７５】
文書インデックス１０４を参照すると、数値範囲ＩＤ「０００２」「０００４」「０００６」に該当するレコードのうち対象語が「塩」で数量タイプが「重さ（ｇ）」であるものは「０００４」のみとなる。しかしながら、図９より数値範囲ＩＤ「０００４」の数値範囲は入力された日本語文から得た数値「０．７」を包含しない。従って、検索結果出力手段１３は、入力された日本語文を検索条件とした検索結果を無しとして何も出力しないという動作をしても良いし、または対象語と数量タイプが合致するレコードの文書ＩＤおよび位置を、数値範囲が合致していないというメッセージと共に出力しても良い。さらには、対象語と数量タイプが合致するレコードの文書ＩＤおよび位置の値を用いて、別途用意された文書ＩＤと実際の文書とを対応付けるテーブル（図示せず）により実際の文書を参照し、位置の値で文書中の数値範囲が記載された部分を特定する。そして、特定した部分から所定の長さの文字列を抽出することにより、図９の下部のように対象語と数量タイプが合致する実際の文書内容を出力しても良い。本例の場合は、「・・・塩の添加は０．２ｇ以上０．６ｇ以下とし、・・・」が出力され、これにより入力された日本語文「食塩を７００ｍｇ加えた」が該当文書の数値範囲から逸脱していることを確認できる。
【００７６】
本発明の第２の実施の形態では、自然言語で記述された検索文から、当該検索文に含まれる数値や数値範囲とその数値タイプ、および対象語に適合する文書または文書中の特定位置の記述を高速に検索することができる。また、上記の検索文に含まれる対象語と数値タイプに合致する文書中の数値範囲が、上記の検索文に含まれる数値や数値範囲を包含するか否かを高速に判定することができる。
【００７７】
なお、第２の実施の形態では、自然言語で記述された検索文を入力データとしているが、本発明では、このほかに「食塩  ７００ｍｇ」のような相互に関連する単語の列を入力データとしても良い。このような単語の列を入力データとする本発明の別の実施の形態は、図８に示したブロック図のうち、言語解析手段６を省いた同様の構成により実現することができる。
【００７８】
また、第２の実施の形態では、区間インデックスを図１１に示す区間インデックス１０５のように、部分区間ＩＤ、区間フィルタ、数値範囲ＩＤ、最小値、最大値、文書ＩＤ、対象語、数量タイプ、位置の全てを含むレコードで構成することにより、候補選択手段３と適合性判定手段５と文書検索手段１２が共に区間インデックス格納手段２を参照し、数値範囲テーブル格納手段４と文書インデックス格納手段１１を備えずに数値範囲検索装置を構成しても良い。
【００７９】
次に、本発明による数値範囲検索装置の最小構成について説明する。図１３は、最小値と最大値とのうちの少なくとも一方を用いて定義される数値の範囲を数値範囲とし、入力された数値または数値範囲に対して所定の適合条件を満たす数値範囲が含まれるデータを検索する数値範囲検索装置の最小の構成例を示すブロック図である。図１３に示すように、数値範囲検索装置は、最小の構成要素として、区間インデックス格納手段２と、区間クエリ生成手段１と、候補選択手段３とを含む。
【００８０】
図１３に示す最小構成の数値範囲検索装置では、区間インデックス格納手段２は、検索対象となる数値範囲について、全ての数値範囲が含まれる値域を所定の境界値で分割した部分区間と入力された数値または数値範囲との対応関係を表すデータである区間フィルタと、検索対象となる数値範囲を参照するための参照情報とを少なくとも含むレコードを単位とし、レコードを区間フィルタの少なくとも一部が共通するレコード単位にまとめた区間インデックスを格納する。また、区間クエリ生成手段１は、入力された数値または数値範囲と部分区間との対応関係を表すデータである区間クエリを生成する。そして、候補選択手段３は、レコードのうち、区間フィルタと区間クエリとの論理積が当該区間クエリに等しくなる区間フィルタを含むレコードを選択する。
【００８１】
従って、最小構成の数値範囲検索装置によれば、数値範囲が記載された文書のうち、入力された数値や数値範囲に適合する文書を少ない数値参照回数で高速に検索することができる。
【００８２】
なお、本実施形態では、以下の（１）〜（５）に示すような数値範囲検索装置の特徴的構成が示されている。
【００８３】
（１）数値範囲検索装置は、最小値と最大値とのうちの少なくとも一方を用いて定義される数値の範囲を数値範囲とし、入力された数値または数値範囲に対して所定の適合条件を満たす数値範囲が含まれるデータを検索する数値範囲検索装置であって、検索対象となる数値範囲について、全ての当該数値範囲が含まれる値域を所定の境界値で分割した部分区間と入力された数値または数値範囲との対応関係を表すデータである区間フィルタと、検索対象となる数値範囲を参照するための参照情報とを少なくとも含むレコードを単位とし、レコードを区間フィルタの少なくとも一部が共通するレコード単位にまとめた区間インデックスを格納する区間インデックス格納手段（例えば、区間インデックス格納手段２によって実現される）と、入力された数値または数値範囲と部分区間との対応関係を表すデータである区間クエリを生成する区間クエリ生成手段（例えば、区間クエリ生成手段１によって実現される）と、レコードのうち、区間フィルタと区間クエリとの論理積が当該区間クエリに等しくなる区間フィルタを含むレコードを選択する候補選択手段（例えば、候補選択手段３によって実現される）とを備えることを特徴とする。
【００８４】
（２）数値範囲検索装置において、検索対象となる数値範囲が入力された数値または数値範囲を包含していることを所定の適合条件とするように構成されていてもよい。
【００８５】
（３）数値範囲検索装置において、検索対象となる数値範囲の全てを包含する区間の中で、互いに範囲が重ならない数値範囲を最も多く分離する値を境界値に選んで部分区間を作り、作られた部分区間それぞれの中において、互いに範囲が重ならない数値範囲を最も多く分離する値を境界値に選んでさらに部分区間を作ることを、所定の終了条件を満たすまで繰り返すことにより所定の境界値を決定するように構成されていてもよい。
【００８６】
（４）数値範囲検索装置において、区間インデックス格納手段は、区間フィルタが同じ値となる参照情報を１つのレコードに含み、１つのレコードに含まれる２つ以上の参照情報のうち、参照する数値範囲の間に包含関係が成り立つ参照情報同士を包含関係を表す形式で含む区間インデックスを格納するように構成されていてもよい。
【００８７】
（５）数値範囲検索装置において、入力された数値または数値範囲と、選択されたレコードに記録されている参照情報によって特定される文書に含まれる数値範囲とを比較し、所定の適合条件を満たす文書を検索結果として出力する適合性判定手段（例えば、適合性判定手段４によって実現される）を備えるように構成されていてもよい。
【００８８】
以上、実施形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【００８９】
この出願は、２０１１年６月２１日に出願された日本特許出願２０１１−１３７６６３を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【００９０】
本発明によれば、ハードウェアやソフトウェアの設計に含まれる各種の数値を、関連する規定またはガイドラインの文書に記載された定量的な制約や推奨範囲と比較できる機能をＰＬＭ（プロダクト・ライフサイクル管理）システムなどの上で実現できる。また、大量の電子カルテや医療関連論文などから、特定の検査値を示す患者や診療記録、薬の適用量などに関する情報を素早く検索できる医療情報検索システムにも適用可能である。
【符号の説明】
【００９１】
１  区間クエリ生成手段
２  区間インデックス格納手段
３  候補選択手段
４  数値範囲テーブル格納手段
５  適合性判定手段
６  言語解析手段
７  数量表現抽出手段
８  数量タイプ判定手段
９  対象語抽出手段
１０  対象語標準化手段
１１  文書インデックス格納手段
１２  文書検索手段
１３  検索結果出力手段
１００  数値範囲テーブル
１０１  部分区間定義
１０２  区間インデックス
１０３  区間インデックス
１０４  文書インデックス
１０５  区間インデックス
Ａ      数値範囲検索装置
Ａ１    ＣＰＵ
Ａ２    主記憶部
Ａ３    出力部
Ａ４    入力部
Ａ５    通信部
Ａ６    補助記憶部
Ａ７    システムバス
Ｂ      外部記憶装置
【図１】
0005924339.tif 000002
【図２】
0005924339.tif 000003
【図３】
0005924339.tif 000004
【図４】
0005924339.tif 000005
【図５】
0005924339.tif 000006
【図６】
0005924339.tif 000007
【図７】
0005924339.tif 000008
【図８】
0005924339.tif 000009
【図９】
0005924339.tif 000010
【図１０】
0005924339.tif 000011
【図１１】
0005924339.tif 000012
【図１２】
0005924339.tif 000013
【図１３】
0005924339.tif 000014