(57)【要約】      （修正有）【課題】類似するデータの検索に要する時間を短縮する。【解決手段】情報処理システムの検索装置は、複数の変数の値を含むレコードを複数格納する記憶部に基づき、複数の変数の各々について、当該変数の値の平均を算出する算出部と、第２情報処理装置から受信したクエリに含まれる複数の変数の値の各々について、当該変数の値と当該変数について算出部により算出された平均との差を表す値を算出し、算出した当該値に基づき、クエリに含まれる複数の変数の値から第１の変数の値を特定する特定部と、特定部により特定された第１の変数の値と、記憶部に格納されている各レコードに含まれる第１の変数の値との差に基づき、記憶部から１又は複数のレコードを抽出する抽出部とを有する。【選択図】図２
2018084881.tif 000002
【特許請求の範囲】
【請求項１】
第１情報処理装置と、
第２情報処理装置と、
を有し、
前記第１情報処理装置は、
複数の変数の値を含むレコードを複数格納する記憶部に基づき、前記複数の変数の各々について、当該変数の値の平均を算出する算出部と、
前記第２情報処理装置から受信したクエリに含まれる複数の変数の値の各々について、当該変数の値と当該変数について前記算出部により算出された平均との差を表す値を算出し、算出した当該値に基づき、前記クエリに含まれる複数の変数の値から第１の変数の値を特定する特定部と、
前記特定部により特定された前記第１の変数の値と、前記記憶部に格納されている各レコードに含まれる前記第１の変数の値との差に基づき、前記記憶部から１又は複数のレコードを抽出する抽出部と、
を有する情報処理システム。
【請求項２】
前記抽出部は、
抽出された前記１又は複数のレコードの各々と、前記クエリとの類似の度合いを表す値を算出し、算出された当該類似の度合いを表す値と閾値との比較に基づき、抽出された前記１又は複数のレコードから１又は複数のレコードを抽出する、
請求項１記載の情報処理システム。
【請求項３】
前記算出部は、
前記記憶部に基づき、前記複数の変数の各々について、当該変数の値の分散をさらに算出し、
前記特定部は、
前記クエリに含まれる複数の変数の値の各々について、当該変数の値と当該変数について前記算出部により算出された平均との差を、当該変数について前記算出部により算出された分散で除した値を算出する、
請求項１又は２記載の情報処理システム。
【請求項４】
前記特定部は、
前記算出部により算出された平均との差を表す値が所定順位以上である前記第１の変数の値を特定する、
請求項１乃至３のいずれか１つ記載の情報処理システム。
【請求項５】
前記第１情報処理装置は、
前記記憶部に格納されている前記複数のレコードについての前記複数の変数の各々について、当該変数の値に基づき索引を生成する生成部
をさらに有し、
前記抽出部は、
前記生成部により生成された前記索引を用いて、前記特定部により特定された前記第１の変数の値との差が所定値未満である前記第１の変数の値を含む１又は複数のレコードを抽出する、
請求項１乃至４のいずれか１つ記載の情報処理システム。
【請求項６】
複数の変数の値を含むレコードを複数格納する記憶部に基づき、前記複数の変数の各々について、当該変数の値の平均を算出する算出部と、
他の情報処理装置から受信したクエリに含まれる複数の変数の値の各々について、当該変数の値と当該変数について前記算出部により算出された平均との差を表す値を算出し、算出した当該値に基づき、前記クエリに含まれる複数の変数の値から第１の変数の値を特定する特定部と、
前記特定部により特定された前記第１の変数の値と、前記記憶部に格納されている各レコードに含まれる前記第１の変数の値との差に基づき、前記記憶部から１又は複数のレコードを抽出する抽出部と、
を有する情報処理装置。
【請求項７】
コンピュータが、
複数の変数の値を含むレコードを複数格納する記憶部に基づき、前記複数の変数の各々について、当該変数の値の平均を算出し、
他の情報処理装置から受信したクエリに含まれる複数の変数の値の各々について、当該変数の値と当該変数について算出された平均との差を表す値を算出し、算出した当該値に基づき、前記クエリに含まれる複数の変数の値から第１の変数の値を特定し、
特定された前記第１の変数の値と、前記記憶部に格納されている各レコードに含まれる前記第１の変数の値との差に基づき、前記記憶部から１又は複数のレコードを抽出する、
処理を実行する検索方法。
【請求項８】
コンピュータに、
複数の変数の値を含むレコードを複数格納する記憶部に基づき、前記複数の変数の各々について、当該変数の値の平均を算出し、
他の情報処理装置から受信したクエリに含まれる複数の変数の値の各々について、当該変数の値と当該変数について算出された平均との差を表す値を算出し、算出した当該値に基づき、前記クエリに含まれる複数の変数の値から第１の変数の値を特定し、
特定された前記第１の変数の値と、前記記憶部に格納されている各レコードに含まれる前記第１の変数の値との差に基づき、前記記憶部から１又は複数のレコードを抽出する、
処理を実行させる検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、類似データの検索技術に関する。
【背景技術】
【０００２】
医療機関における医師等が或る患者の検査項目の値を含むクエリを入力すると、似た症状を有する患者のレコードを検索して提示するシステムが知られている。
【０００３】
上記システムのように、入力されたクエリに類似するレコードをデータベースから抽出するシステムに関して、或る文献は、クエリと各レコードとの間の距離（すなわち非類似度）を計算し、距離が短いレコードを抽出する技術を開示する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−２３４４４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
但し、上記文献の技術を利用する場合、データベースに登録されているレコードの数によっては、クエリと各レコードとの類似度の計算に時間がかかり、最終的に検索結果を提示するまでの時間が長くなる。
【０００６】
本発明の目的は、１つの側面では、類似するデータの検索に要する時間を短縮するための技術を提供することである。
【課題を解決するための手段】
【０００７】
一態様に係る情報処理システムは、第１情報処理装置と、第２情報処理装置とを有する。そして、第１情報処理装置は、複数の変数の値を含むレコードを複数格納する記憶部に基づき、複数の変数の各々について、当該変数の値の平均を算出する算出部と、第２情報処理装置から受信したクエリに含まれる複数の変数の値の各々について、当該変数の値と当該変数について算出部により算出された平均との差を表す値を算出し、算出した当該値に基づき、クエリに含まれる複数の変数の値から第１の変数の値を特定する特定部と、特定部により特定された第１の変数の値と、記憶部に格納されている各レコードに含まれる第１の変数の値との差に基づき、記憶部から１又は複数のレコードを抽出する抽出部とを有する。
【発明の効果】
【０００８】
１つの側面では、類似するデータの検索に要する時間を短縮できるようになる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本実施の形態のシステムの概要を示す図である。
【図２】図２は、検索装置の機能ブロック図である。
【図３】図３は、ＤＢに格納されるデータの一例を示す図である。
【図４】図４は、前処理の処理フローを示す図である。
【図５】図５は、統計量データ格納部に格納される統計量の一例を示す図である。
【図６】図６は、メインの処理フローを示す図である。
【図７】図７は、利用者端末の表示装置の画面例を示す図である。
【図８】図８は、クエリ格納部に格納されるデータの一例を示す図である。
【図９】図９は、絞り込み変数の特定について具体的に説明するための図である。
【図１０】図１０は、絞り込み変数の特定について具体的に説明するための図である。
【図１１】図１１は、絞り込み変数の特定について具体的に説明するための図である。
【図１２】図１２は、絞り込み変数の特定について具体的に説明するための図である。
【図１３】図１３は、候補レコード格納部に格納されるデータの一例を示す図である。
【図１４】図１４は、距離データ格納部に格納されるデータの一例を示す図である。
【図１５】図１５は、類似レコード格納部に格納されるデータの一例を示す図である。
【図１６】図１６は、コンピュータのハードウエア構成図である。
【発明を実施するための形態】
【００１０】
図１に、本実施の形態のシステムの概要を示す。例えば医療機関に設置されている利用者端末３ａ及び３ｂは、医師等によって操作される。医師等は、利用者端末３ａ及び３ｂの入力装置（例えばマウス及びキーボード）を使用して、患者に関する複数の変数（例えば、属性及び検査項目等）を選択する。利用者端末３ａ及び３ｂは、例えばインターネットであるネットワーク５を介して、本実施の形態の主要な処理を実行する検索装置１に対して、選択された変数の値を含むクエリを送信する。検索装置１は、受信したクエリに類似するレコードをＤＢ（DataBase）から抽出し、抽出したレコードを含む出力データを、ネットワーク５を介して利用者端末３ａ及び３ｂに送信する。
【００１１】
ネットワーク５は医療機関に構築されたＬＡＮ（Local Area Network）であってもよく、その場合には検索装置１は医療機関に設置される。なお、図１においては利用者端末３の数が２であるが、数に限定は無い。
【００１２】
図２に、検索装置１の機能ブロック図を示す。検索装置１は、ＤＢ１０１と、統計量データ格納部１０３と、索引格納部１０５と、クエリ格納部１０７と、候補レコード格納部１１１と、距離データ格納部１１３と、類似レコード格納部１１５と、統計量算出部１１７と、索引生成部１１９と、規格化実行部１２１と、抽出部１２３と、出力部１２５とを含む。
【００１３】
統計量算出部１１７、索引生成部１１９、規格化実行部１２１、抽出部１２３及び出力部１２５は、ハードウエア資源（例えば、図１６におけるＣＰＵ（Central Processing Unit）２５０３及びメモリ２５０１）と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。ＤＢ１０１、統計量データ格納部１０３、索引格納部１０５、クエリ格納部１０７、候補レコード格納部１１１、距離データ格納部１１３及び類似レコード格納部１１５は、ハードウエア資源（例えば、図１６におけるメモリ２５０１及びＨＤＤ（Hard Disk Drive）２５０５）を用いて実現される。
【００１４】
統計量算出部１１７は、ＤＢ１０１に格納されている各レコードに含まれる各変数の値から、各変数について統計量（本実施の形態においては、平均及び分散）を算出し、算出した統計量を統計量データ格納部１０３に格納する。
【００１５】
規格化実行部１２１は、ＤＢ１０１に格納されている各レコードに含まれる各変数の値に対して、統計量データ格納部１０３に格納されている統計量を用いて後述の規格化を実行し、規格化後の値をＤＢ１０１に追加で格納する。また、規格化実行部１２１は、クエリ格納部１０７に格納されているクエリに含まれる各変数の値に対して後述の規格化を実行し、規格化後の値をクエリ格納部１０７に追加で格納する。また、規格化実行部１２１は、クエリ格納部１０７に格納されている規格化後の各変数の値に基づき、絞り込み変数を特定する。
【００１６】
索引生成部１１９は、ＤＢ１０１に格納されている規格化後の各変数の値から、各変数について索引（インデックスとも呼ばれる）を生成し、生成した索引を索引格納部１０５に格納する。
【００１７】
抽出部１２３は、ＤＢ１０１に格納されている規格化後の絞り込み変数の値と、索引格納部１０５に格納されている絞り込み変数についての索引と、クエリ格納部１０７に格納されている規格化後の絞り込み変数の値とに基づき、クエリに含まれる絞り込み変数の値との差が所定値未満である絞り込み変数の値を含む候補レコードを抽出し、抽出した候補レコードのＩＤ（IDentifier）を候補レコード格納部１１１に格納する。また、抽出部１２３は、候補レコード格納部１１１にＩＤが格納された候補レコードの各々について、クエリとのユークリッド距離を算出し、算出したユークリッド距離を距離データ格納部１１３に格納する。また、抽出部１２３は、距離データ格納部１１３に格納されたユークリッド距離に基づき類似レコードを抽出し、抽出した類似レコードのＩＤを類似レコード格納部１１５に格納する。出力部１２５は、類似レコード格納部１１５にＩＤが格納された類似レコードを含む出力データを生成し、クエリの送信元の利用者端末に送信する。
【００１８】
図３に、ＤＢ１０１に格納されるレコードの一例を示す。図３の例では、レコードのＩＤと、レコードに含まれる各変数の値とが格納される。なお、図３の例では規格化前のレコードが格納されているが、規格化が実行された後は規格化後のレコードも格納される。変数は、例えば血糖値及び血圧などの検査項目並びに年齢及び体重などの属性である。
【００１９】
次に、図４乃至図１５を用いて、検索装置１が実行する処理について説明する。まず、図４及び図５を用いて、クエリの受信前に予め検索装置１が実行しておく前処理について説明する。
【００２０】
統計量算出部１１７は、ＤＢ１０１に格納されている複数のレコードを用いて、各変数について統計量を算出する（図４：ステップＳ１）。統計量算出部１１７は、算出した統計量を統計量データ格納部１０３に格納する。
【００２１】
図５に、統計量データ格納部１０３に格納される統計量の一例を示す。図５の例では、各変数について、平均と分散とが格納されている。
【００２２】
規格化実行部１２１は、統計量データ格納部１０３に格納された統計量に基づき、ＤＢ１０１に格納されている各レコードに含まれる各変数の値に対して規格化を実行し（ステップＳ３）、規格化後の値をＤＢ１０１に追加で格納する。本実施の形態においては、以下のような式に従って規格化が実行される。
【００２３】
【数１】
2018084881.tif 000003
【００２４】
「：＝」は代入を表す演算子である。ｉは１≦ｉ≦Ｍ（Ｍはクエリに含まれる変数の値の数（すなわち、ユーザにより選択された変数の数））を満たす整数である。ｖ（ａｔｔi）は変数ａｔｔiの値である。ＡＶＧ（ａｔｔi）は変数ａｔｔiの値ｖ（ａｔｔi）の平均値である。ＶＡＲ（ａｔｔi）は変数ａｔｔiの値ｖ（ａｔｔi）の分散である。
【００２５】
上記の式に従って規格化された値は、平均からの距離の大きさを表す。分散で除されているので、変数間で値の大きさを比較することが可能である。本実施の形態の規格化は、変数の値の分布の形状にかかわらず適用可能である汎用的な規格化である。
【００２６】
索引生成部１１９は、ＤＢ１０１に格納され且つステップＳ３において規格化された各値を用いて、各変数について索引を生成し（ステップＳ５）、生成した索引を索引格納部１０５に格納する。そして処理は終了する。本実施の形態における索引は、例えばＢ−ｔｒｅｅの構造を有する索引である。但し、その他の構造を有する索引であってもよい。
【００２７】
以上のような処理を実行すれば、検索装置１が本実施の形態の検索を実行することができるようになる。
【００２８】
図６乃至図１５を用いて、クエリの受信時に検索装置１が実行する処理について説明する。
【００２９】
例えば利用者端末３ａを操作する医師等は、図７に示すような画面を見ながらマウスのクリック等を行い、予め定められた基本変数セットに含まれる変数の少なくとも一部について選択指示を入力する。図７の例では、変数ａｔｔ1と、変数ａｔｔ3と、変数ａｔｔ4と、変数ａｔｔ6と、変数ａｔｔ7と、変数ａｔｔ10とが選択されている。利用者端末３ａは変数の選択指示を受け付けると、対象となる患者（図７の例では患者ＩＤ「１００２３」の患者）について選択された変数の値と類似度の閾値Ｓｉｍとその患者ＩＤ等とを含むクエリを、検索装置１に送信する。なお、図７の画面の下部には検索結果が示されているが、後述するステップＳ１１の処理の段階では検索結果は表示されない。以下では、選択された変数セットをａｔｔi(1)，ａｔｔi(2)，．．．，ａｔｔi(m)とする。ｍは選択された変数セットに含まれる変数の数である。また、クエリに含まれる各変数の値をｑi(1)，ｑi(2)，．．．，ｑi(m)とする。
【００３０】
このように、本システムにおいては医師等が自身の判断において患者を特徴付ける変数（例えば、属性及び検査項目等）を選択することができる。なお、疾病と関連がある変数は基本変数セットとして予め有識者会等によって指定されるが、患者は必ずしも全ての検査項目について検査を受けているとは限らないので、その場合には患者が受けた検査の値と患者の属性とを使用してレコードの検索が行われる。また、医療機関が提供する治療方法に対して無関係な変数が有る場合には、その変数をクエリから除外して検索が行われる。
【００３１】
検索装置１は、利用者端末３ａから、選択された変数の値（すなわち、ｑi(1)，ｑi(2)，．．．，ｑi(m)）を含むクエリを受信し（図６：ステップＳ１１）、受信したクエリをクエリ格納部１０７に格納する。
【００３２】
規格化実行部１２１は、クエリ格納部１０７に格納されたクエリに含まれる各変数の値の規格化を、統計量データ格納部１０３に格納された平均及び分散を用いて実行し（ステップＳ１３）、規格化後の各変数の値をクエリ格納部１０７に追加で格納する。ステップＳ１３における規格化は、以下の式に従って行われる。
【００３３】
【数２】
2018084881.tif 000004
【００３４】
ここで、ｑiはクエリに含まれる変数ａｔｔiの値である。ＡＶＧ（ａｔｔi）及びＶＡＲ（ａｔｔi）については、上で述べたとおりである。
【００３５】
図８に、ステップＳ１３の処理が実行された後にクエリ格納部１０７に格納されるデータの一例を示す。図８の例では、クエリに含まれる各変数の値と、クエリに含まれる各変数の値の規格化後の値とが格納される。
【００３６】
規格化実行部１２１は、クエリ格納部１０７に格納されている規格化後の変数の値の比較に基づき、絞り込み変数を特定する（ステップＳ１５）。本実施の形態においては、以下のような式に従って、規格化後の絶対値が最大である変数が絞り込み変数として特定される。
【００３７】
【数３】
2018084881.tif 000005
【００３８】
ｎは絞り込み変数の識別番号である。
【００３９】
図９乃至図１２を用いて、絞り込み変数の特定について具体的に説明する。本実施の形態においては、平均との差が大きい値をもつ変数ほど絞り込みに有効な変数であるとして絞り込み変数が特定される。例えば図９及び図１０に示す、クエリに含まれる変数ａｔｔ1の値ｑ1と変数ａｔｔ1についての平均ＡＶＧ（ａｔｔ1）との差を表す矢印９０１と、クエリに含まれる変数ａｔｔ3の値ｑ3と変数ａｔｔ3についての平均ＡＶＧ（ａｔｔ3）との差を表す矢印１００１とを比べると、矢印９０１の方が長い。すなわち、外れ値としての外れの程度に関しては、ｑ1＞ｑ3であるので、平均値だけを見る場合には絞り込み変数としてｑ1が特定される。
【００４０】
但し、各変数の値の分散は異なる場合があるので、平均値だけで比較をすることが適切ではないことがある。そこで本実施の形態においては各変数の値の分散が考慮される。例えば、変数ａｔｔ1の値の分散の大きさ（図１１における矢印１１０１で表される）と、変数ａｔｔ4の値の分散の大きさ（図１２における矢印１２０１で表される）とを比較すると、変数ａｔｔ1の値の分散の方が小さいので、たとえｑ4の方が平均との差が大きいとしても外れの程度がｑ4＞ｑ1であると単純に考えることはできない。そこで本実施の形態においては、上で述べたように、平均との差を分散で除するように規格化が行われる。
【００４１】
図６の説明に戻り、抽出部１２３は、クエリに含まれる絞り込み変数の値の規格化後の値との差が所定値Ｒ1未満である規格化後の絞り込み変数の値を含む候補レコードを、索引格納部１０５に格納されている索引を用いてＤＢ１０１から特定する（ステップＳ１７）。そして、抽出部１２３は、特定したレコードのＩＤを候補レコード格納部１１１に格納する。所定値Ｒ1は、例えば、Ｒ1＝（１００／Ｓｉｍ）−１として与えられる。ステップＳ１７においては、以下の関係を成立させるような絞り込み変数の値ｖ（ａｔｔn）を含む候補レコードが特定される。
【００４２】
【数４】
2018084881.tif 000006
【００４３】
図１３に、候補レコードに格納されるデータの一例を示す。図１３の例では、候補レコードのＩＤが格納される。
【００４４】
なお、ステップＳ１７においては索引を用いた範囲検索が行われるので、差が所定値Ｒ1未満である絞り込み変数の値を含む候補レコードを高速に特定することができる。
【００４５】
抽出部１２３は、候補レコード格納部１１１にＩＤが格納された各候補レコード（ここでは、規格化後のレコード）と、クエリ格納部１０７に格納された規格化後のクエリとのユークリッド距離（すなわち非類似度）を算出し（ステップＳ１９）、算出したユークリッド距離を距離データ格納部１１３に格納する。ユークリッド距離は、以下のように表される。
【００４６】
【数５】
2018084881.tif 000007
【００４７】
ここで、ｄｉｓｔはユークリッド距離である。
【００４８】
図１４に、距離データ格納部１１３に格納されるデータの一例を示す。図１４の例では、候補レコードのＩＤと、各候補レコードについて規格化後のクエリとのユークリッド距離が格納される。
【００４９】
抽出部１２３は、ステップＳ１９において算出したユークリッド距離が閾値Ｒ1以下である類似レコードを特定し（ステップＳ２１）、特定した類似レコードのＩＤを類似レコード格納部１１５に格納する。ステップＳ２１において特定されたレコードは類似レコードと呼ばれる。
【００５０】
【数６】
2018084881.tif 000008
【００５１】
図１５に、類似レコードに格納されるデータの一例を示す。図１５の例では、類似レコードのＩＤが格納される。
【００５２】
出力部１２５は、類似レコード格納部１１５に格納されているＩＤを有する類似レコード（ここでは、規格化前のレコード）をＤＢ１０１から特定し、特定した類似レコードを含む検索結果を利用者端末３ａに送信する（ステップＳ２３）。そして処理は終了する。利用者端末３ａは、受信した検索結果を表示装置（例えばモニタ）に表示させる。例えば、図７の下段に示すような検索結果が表示される。医師等はこのような画面の内容を参照し、例えば、似た症状を有する過去の患者を把握し、その患者に対して行った治療方法等を確認することができるようになる。
【００５３】
以上のように、本実施の形態ではレコードを絞り込んだうえでユークリッド距離の計算を実行するので、ユークリッド距離の計算にかかる時間が短縮され、結果として検索全体にかかる時間を短縮することができるようになる。
【００５４】
また、ユークリッド距離の計算の対象となるレコード数Ｎが多い場合、メモリに全レコードを保持することができず、何度もディスク装置からの読み出しが発生して時間がかかる。しかし、本実施の形態においては絞り込みによりレコード数ＮがＮsに減らされるので、ディスク装置からの読み出しにかかる時間の長期化を抑制できる。
【００５５】
また、索引の読み込みにも時間がかかるが、本実施の形態においては絞り込み変数についてのみ索引を読み込むため、索引の読み込みが原因で処理時間が長くなることがない。
【００５６】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した検索装置１の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００５７】
また、上で説明したデータ構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００５８】
また、医師等が利用するシステムを例として説明をしたが、上で説明した検索方法の適用は、このようなシステムに限定されるわけではない。
【００５９】
また、ユークリッド距離の計算において複数のプロセッサ又は複数のコンピュータにより並列で処理をすることで、処理にかかる時間を短縮してもよい。
【００６０】
また、上では非類似度としてユークリッド距離を利用しているが、類似度としてコサイン類似度或いはその他の類似度を利用してもよい。
【００６１】
また、上では平均値を利用しているが、その他の統計量（例えば中央値）等を利用してもよい。
【００６２】
また、上では分散を利用しているが、分散と同等の意味を有する他の統計量を利用してもよい。
【００６３】
また、２以上の絞り込み変数を使用して候補レコードを特定してもよい。
【００６４】
また、規格化後の値が最大である変数を絞り込み変数としているが、規格化後の値が所定順位以上である変数の中から、医師等が適切だと考える絞り込み変数を選択するようにしてもよい。
【００６５】
また、規格化前の候補レコードと規格化前のクエリとの距離を算出してもよい。
【００６６】
なお、上で述べた検索装置１は、コンピュータ装置であって、図１６に示すように、メモリ２５０１とＣＰＵ２５０３とＨＤＤ２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００６７】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００６８】
本実施の形態の第１の態様に係る情報処理システムは、（Ａ）第１情報処理装置（例えば検索装置１）と、（Ｂ）第２情報処理装置（例えば利用者端末３ａ）とを有する。そして、第１情報処理装置は、（ａ１）複数の変数の値を含むレコードを複数格納する記憶部（例えばＤＢ１０１）に基づき、複数の変数の各々について、当該変数の値の平均を算出する算出部（例えば統計量算出部１１７）と、（ａ２）第２情報処理装置から受信したクエリに含まれる複数の変数の値の各々について、当該変数の値と当該変数について算出部により算出された平均との差を表す値を算出し、算出した当該値に基づき、クエリに含まれる複数の変数の値から第１の変数の値を特定する特定部（例えば規格化実行部１２１）と、（ａ３）特定部により特定された第１の変数の値と、記憶部に格納されている各レコードに含まれる第１の変数の値との差に基づき、記憶部から１又は複数のレコードを抽出する抽出部（例えば抽出部１２３）とを有する。
【００６９】
類似の度合いを表す値（例えば非類似度）の算出の対象となるレコードを絞り込むことができるので、類似度の計算に要する時間を短縮できるようになる。また、対象のレコードが絞り込まれることで、対象のレコードをメモリに保持できるようになり、ディスク装置からレコードを読み出す処理の発生を抑制できるので、さらに時間を短縮できるようになる。
【００７０】
また、上記抽出部は、（ａ３１）抽出された１又は複数のレコードの各々と、クエリとの類似の度合いを表す値を算出し、算出された当該類似の度合いを表す値と閾値との比較に基づき、抽出された１又は複数のレコードから１又は複数のレコードを抽出してもよい。絞り込まれた１又は複数のレコードについて類似の度合いを表す値を算出すれば済むので、最終的にレコードを抽出するまでに要する時間を短縮できるようになる。
【００７１】
また、上記算出部は、（ａ１１）記憶部に基づき、複数の変数の各々について、当該変数の値の分散をさらに算出してもよい。そして、上記特定部は、（ａ２１）クエリに含まれる複数の変数の値の各々について、当該変数の値と当該変数について算出部により算出された平均との差を、当該変数について算出部により算出された分散で除した値を算出してもよい。規格化により変数の値間での適切な比較を行えるようになる。
【００７２】
また、上記特定部は、（ａ２２）算出部により算出された平均との差を表す値が所定順位以上である第１の変数の値を特定してもよい。外れ値の変数を基に絞り込みを行えるので、絞り込みの精度を上げることができるようになる。
【００７３】
また、上記第１情報処理装置は、（ａ４）記憶部に格納されている複数のレコードについての複数の変数の各々について、当該変数の値に基づき索引を生成する生成部（例えば索引生成部１１９）をさらに有してもよい。そして、上記抽出部は、（ａ３２）生成部により生成された索引を用いて、特定部により特定された第１の変数の値との差が所定値未満である第１の変数の値を含む１又は複数のレコードを抽出してもよい。索引を利用することで高速に抽出することができるようになる。
【００７４】
また、上記第１情報処理装置は、（ａ５）抽出部により抽出された１又は複数のレコードを含む出力データを第２情報処理装置に出力する出力部（例えば出力部１２５）をさらに有してもよい。クエリを入力したユーザが結果を確認できるようになる。
【００７５】
また、類似の度合いを表す値はユークリッド距離であってもよい。
【００７６】
本実施の形態の第２の態様に係る検索方法は、（Ｃ）複数の変数の値を含むレコードを複数格納する記憶部に基づき、複数の変数の各々について、当該変数の値の平均を算出し、（Ｄ）他の情報処理装置から受信したクエリに含まれる複数の変数の値の各々について、当該変数の値と当該変数について算出された平均との差を表す値を算出し、算出した当該値に基づき、クエリに含まれる複数の変数の値から第１の変数の値を特定し、（Ｅ）特定された第１の変数の値と、記憶部に格納されている各レコードに含まれる第１の変数の値との差に基づき、記憶部から１又は複数のレコードを抽出する処理を含む。
【００７７】
なお、上記方法による処理をコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００７８】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００７９】
（付記１）
第１情報処理装置と、
第２情報処理装置と、
を有し、
前記第１情報処理装置は、
複数の変数の値を含むレコードを複数格納する記憶部に基づき、前記複数の変数の各々について、当該変数の値の平均を算出する算出部と、
前記第２情報処理装置から受信したクエリに含まれる複数の変数の値の各々について、当該変数の値と当該変数について前記算出部により算出された平均との差を表す値を算出し、算出した当該値に基づき、前記クエリに含まれる複数の変数の値から第１の変数の値を特定する特定部と、
前記特定部により特定された前記第１の変数の値と、前記記憶部に格納されている各レコードに含まれる前記第１の変数の値との差に基づき、前記記憶部から１又は複数のレコードを抽出する抽出部と、
を有する情報処理システム。
【００８０】
（付記２）
前記抽出部は、
抽出された前記１又は複数のレコードの各々と、前記クエリとの類似の度合いを表す値を算出し、算出された当該類似の度合いを表す値と閾値との比較に基づき、抽出された前記１又は複数のレコードから１又は複数のレコードを抽出する、
付記１記載の情報処理システム。
【００８１】
（付記３）
前記算出部は、
前記記憶部に基づき、前記複数の変数の各々について、当該変数の値の分散をさらに算出し、
前記特定部は、
前記クエリに含まれる複数の変数の値の各々について、当該変数の値と当該変数について前記算出部により算出された平均との差を、当該変数について前記算出部により算出された分散で除した値を算出する、
付記１又は２記載の情報処理システム。
【００８２】
（付記４）
前記特定部は、
前記算出部により算出された平均との差を表す値が所定順位以上である前記第１の変数の値を特定する、
付記１乃至３のいずれか１つ記載の情報処理システム。
【００８３】
（付記５）
前記第１情報処理装置は、
前記記憶部に格納されている前記複数のレコードについての前記複数の変数の各々について、当該変数の値に基づき索引を生成する生成部
をさらに有し、
前記抽出部は、
前記生成部により生成された前記索引を用いて、前記特定部により特定された前記第１の変数の値との差が所定値未満である前記第１の変数の値を含む１又は複数のレコードを抽出する、
付記１乃至４のいずれか１つ記載の情報処理システム。
【００８４】
（付記６）
前記第１情報処理装置は、
前記抽出部により前記類似度の度合いを表す値と前記閾値との比較に基づき抽出された前記１又は複数のレコードを含む出力データを前記第２情報処理装置に出力する出力部
をさらに有する付記２記載の情報処理システム。
【００８５】
（付記７）
前記類似の度合いを表す値はユークリッド距離である、
付記２乃至６のいずれか１つ記載の情報処理システム。
【００８６】
（付記８）
複数の変数の値を含むレコードを複数格納する記憶部に基づき、前記複数の変数の各々について、当該変数の値の平均を算出する算出部と、
他の情報処理装置から受信したクエリに含まれる複数の変数の値の各々について、当該変数の値と当該変数について前記算出部により算出された平均との差を表す値を算出し、算出した当該値に基づき、前記クエリに含まれる複数の変数の値から第１の変数の値を特定する特定部と、
前記特定部により特定された前記第１の変数の値と、前記記憶部に格納されている各レコードに含まれる前記第１の変数の値との差に基づき、前記記憶部から１又は複数のレコードを抽出する抽出部と、
を有する情報処理装置。
【００８７】
（付記９）
コンピュータが、
複数の変数の値を含むレコードを複数格納する記憶部に基づき、前記複数の変数の各々について、当該変数の値の平均を算出し、
他の情報処理装置から受信したクエリに含まれる複数の変数の値の各々について、当該変数の値と当該変数について算出された平均との差を表す値を算出し、算出した当該値に基づき、前記クエリに含まれる複数の変数の値から第１の変数の値を特定し、
特定された前記第１の変数の値と、前記記憶部に格納されている各レコードに含まれる前記第１の変数の値との差に基づき、前記記憶部から１又は複数のレコードを抽出する、
処理を実行する検索方法。
【００８８】
（付記１０）
コンピュータに、
複数の変数の値を含むレコードを複数格納する記憶部に基づき、前記複数の変数の各々について、当該変数の値の平均を算出し、
他の情報処理装置から受信したクエリに含まれる複数の変数の値の各々について、当該変数の値と当該変数について算出された平均との差を表す値を算出し、算出した当該値に基づき、前記クエリに含まれる複数の変数の値から第１の変数の値を特定し、
特定された前記第１の変数の値と、前記記憶部に格納されている各レコードに含まれる前記第１の変数の値との差に基づき、前記記憶部から１又は複数のレコードを抽出する、
処理を実行させる検索プログラム。
【符号の説明】
【００８９】
１  検索装置    ３ａ，３ｂ  利用者端末
５  ネットワーク
１０１  ＤＢ    １０３  統計量データ格納部
１０５  索引格納部    １０７  クエリ格納部
１１１  候補レコード格納部    １１３  距離データ格納部
１１５  類似レコード格納部    １１７  統計量算出部
１１９  索引生成部    １２１  規格化実行部
１２３  抽出部    １２５  出力部
【図１】
2018084881.tif 000009
【図２】
2018084881.tif 000010
【図３】
2018084881.tif 000011
【図４】
2018084881.tif 000012
【図５】
2018084881.tif 000013
【図６】
2018084881.tif 000014
【図７】
2018084881.tif 000015
【図８】
2018084881.tif 000016
【図９】
2018084881.tif 000017
【図１０】
2018084881.tif 000018
【図１１】
2018084881.tif 000019
【図１２】
2018084881.tif 000020
【図１３】
2018084881.tif 000021
【図１４】
2018084881.tif 000022
【図１５】
2018084881.tif 000023
【図１６】
2018084881.tif 000024