(57)【特許請求の範囲】
【請求項１】
複数の事象について、属性ごとに、当該属性に関する属性データが対応付けて格納されたデータ群から各事象間の属性データの一致関係が、第１の事象の第１の属性の属性データが第２の事象の前記第１の属性とは異なる第２の属性の属性データと一致し、前記第１の事象の前記第２の属性の属性データが前記第２の事象の前記第１の属性とは一致しない集合の条件、各事象間の２以上の属性で属性データが入れ替わるリストの条件、および、属性ごとに同じ属性データを１種類として各事象の格納される属性データの種類数を抽出した際に前記データ群の属性の並び順に属性ごとの属性データの種類数が単調非減少となる階層の条件の何れかの条件を満たす事象のデータを抽出し、
抽出結果に基づき、属性間の意味関係の判定結果を出力する
処理をコンピュータが実行することを特徴とする関係推定方法。  
【請求項２】
前記出力する処理は、抽出された事象のデータを判定の根拠として出力する
ことを特徴とする請求項１に記載の関係推定方法。  
【請求項３】
複数の事象について、属性ごとに、当該属性に関する属性データが対応付けて格納されたデータ群から各事象間の属性データの一致関係が、第１の事象の第１の属性の属性データが第２の事象の前記第１の属性とは異なる第２の属性の属性データと一致し、前記第１の事象の前記第２の属性の属性データが前記第２の事象の前記第１の属性とは一致しない集合の条件、各事象間の２以上の属性で属性データが入れ替わるリストの条件、および、属性ごとに同じ属性データを１種類として各事象の格納される属性データの種類数を抽出した際に前記データ群の属性の並び順に属性ごとの属性データの種類数が単調非減少となる階層の条件の何れかの条件を満たす事象のデータを抽出し、
抽出結果に基づき、属性間の意味関係の判定結果を出力する
処理をコンピュータに実行させることを特徴とする関係推定プログラム。  
【請求項４】
複数の事象について、属性ごとに、当該属性に関する属性データが対応付けて格納されたデータ群から各事象間の属性データの一致関係が、第１の事象の第１の属性の属性データが第２の事象の前記第１の属性とは異なる第２の属性の属性データと一致し、前記第１の事象の前記第２の属性の属性データが前記第２の事象の前記第１の属性とは一致しない集合の条件、各事象間の２以上の属性で属性データが入れ替わるリストの条件、および、属性ごとに同じ属性データを１種類として各事象の格納される属性データの種類数を抽出した際に前記データ群の属性の並び順に属性ごとの属性データの種類数が単調非減少となる階層の条件の何れかの条件を満たす事象のデータを抽出する抽出部と、
前記抽出部による抽出結果に基づき、属性間の意味関係の判定結果を出力する出力部と、
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、関係推定方法、関係推定プログラムおよび情報処理装置に関する。
【背景技術】
【０００２】
従来から、複数の事象について、属性ごとに、当該属性に関する属性データを対応付けて格納するデータ形式が用いられている。例えば、表形式のデータでは、各属性をそれぞれ列として、事象ごとにレコードを分けて、各属性に対応する列の領域に、事象の各属性に関する属性データを格納する。
【０００３】
このように、属性ごとに、当該属性に関する属性データを対応付けて格納されたデータは、属性間の意味関係が明確ではない。そこで、データの意味関係を明確にする技術が知られている。例えば、語の概念や、語と語の関係を示すオントロジーを用いて、意味関係を特定する技術である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２６２３４３号公報
【特許文献２】特開２００９−１６９８４０号公報
【特許文献３】特開２００６−４８１８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の技術は、使用された語がどのような意味で使用されたかを特定するものであるが、属性間の意味関係を推定することはできない。
【０００６】
一つの側面では、属性間の意味関係の推定を支援できる関係推定方法、関係推定プログラムおよび情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
第１の案では、関係推定方法は、複数の事象について、属性ごとに、当該属性に関する属性データが対応付けて格納されたデータ群から各事象間の属性データの一致関係が所定の条件を満たす事象のデータを抽出する処理をコンピュータが実行する。関係推定方法は、抽出結果に基づき、属性間の意味関係の判定結果を出力する処理をコンピュータが実行する。
【発明の効果】
【０００８】
本発明の一の実施態様によれば、属性間の意味関係の推定を支援できるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、情報処理装置の機能的な構成の一例を示す図である。
【図２】図２は、対象データのデータ構成の一例を示す図である。
【図３Ａ】図３Ａは、集合の関係の一例を示す図である。
【図３Ｂ】図３Ｂは、同値の関係の一例を示す図である。
【図３Ｃ】図３Ｃは、階層の関係の一例を示す図である。
【図３Ｄ】図３Ｄは、リストの関係の一例を示す図である。
【図３Ｅ】図３Ｅは、無関係の状態の一例を示す図である。
【図４Ａ】図４Ａは、集合の関係があるレコードの抽出の一例を示す図である。
【図４Ｂ】図４Ｂは、同値の関係があるレコードの抽出の一例を示す図である。
【図４Ｃ】図４Ｃは、リストの関係があるレコードの抽出の一例を示す図である。
【図４Ｄ】図４Ｄは、階層の関係があるレコードの属性ごとの属性データの種類数の抽出の一例を示す図である。
【図５】図５は、判定結果画面の一例を示す図である。
【図６Ａ】図６Ａは、関係推定処理の手順の一例を示すフローチャートである。
【図６Ｂ】図６Ｂは、集合関係抽出処理の手順の一例を示すフローチャートである。
【図６Ｃ】図６Ｃは、リスト関係抽出処理の手順の一例を示すフローチャートである。
【図６Ｄ】図６Ｄは、反例抽出処理の手順の一例を示すフローチャートである。
【図６Ｅ】図６Ｅは、種類数抽出処理の手順の一例を示すフローチャートである。
【図６Ｆ】図６Ｆは、出力処理の手順の一例を示すフローチャートである。
【図７】図７は、関係推定プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１０】
以下に、本発明に係る関係推定方法、関係推定プログラムおよび情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１１】
［装置構成］
本実施例に係る情報処理装置１０について説明する。情報処理装置１０は、属性ごとに、当該属性に関する属性データが対応付けて格納されたデータの属性間の意味構造の推定を支援する装置である。情報処理装置１０は、例えば、パーソナルコンピュータやサーバコンピュータなどのコンピュータなどである。情報処理装置１０は、１台のコンピュータとして実装してもよく、また、複数台のコンピュータによるクラウドとして実装することもできる。本実施例では、情報処理装置１０を１台のコンピュータとした場合を例として説明する。なお、情報処理装置１０は、スマートフォンやタブレット端末などの携帯可能な端末装置であってもよい。
【００１２】
図１は、情報処理装置の機能的な構成の一例を示す図である。図１に示すように、情報処理装置１０は、通信Ｉ／Ｆ（インタフェース）部２０と、表示部２１と、入力部２２と、記憶部２３と、制御部２４とを有する。なお、情報処理装置１０は、上記の機器以外の他の機器を有してもよい。
【００１３】
通信Ｉ／Ｆ部２０は、他の装置との間で通信制御を行うインタフェースである。通信Ｉ／Ｆ部２０としては、ＬＡＮカードなどのネットワークインタフェースカードを採用できる。
【００１４】
通信Ｉ／Ｆ部２０は、不図示のネットワークを介して他の装置と各種情報を送受信する。例えば、通信Ｉ／Ｆ部２０は、意味関係の推定の対象とする対象データを他の装置から受信する。
【００１５】
表示部２１は、各種情報を表示する表示デバイスである。表示部２１としては、ＬＣＤ（Liquid  Crystal  Display）などの表示デバイスが挙げられる。表示部２１は、各種情報を表示する。例えば、表示部２１は、各種の操作画面など各種の画面を表示する。
【００１６】
入力部２２は、各種の情報を入力する入力デバイスである。例えば、入力部２２としては、マウスやキーボードなどの操作の入力を受け付ける入力デバイス、情報処理装置１０に設けられた各種のボタンや、表示部２１上に設けられた透過型のタッチセンサなどの入力デバイスが挙げられる。入力部２２は、各種の情報の入力を受け付ける。例えば、入力部２２は、各種の操作入力を受け付ける。入力部２２は、ユーザからの操作入力を受け付け、受け付けた操作内容を示す操作情報を制御部２４に入力する。なお、図１の例では、機能的な構成を示したため、表示部２１と入力部２２を別に分けているが、例えば、タッチパネルなど表示部２１と入力部２２を一体的に設けたデバイスで構成してもよい。
【００１７】
記憶部２３は、各種のデータを記憶する記憶デバイスである。例えば、記憶部２３は、ハードディスク、ＳＳＤ（Solid  State  Drive）、光ディスクなどの記憶装置である。なお、記憶部２３は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ、ＮＶＳＲＡＭ（Non  Volatile  Static  Random  Access  Memory）などのデータを書き換え可能な半導体メモリであってもよい。
【００１８】
記憶部２３は、制御部２４で実行されるＯＳ（Operating  System）や各種プログラムを記憶する。例えば、記憶部２３は、後述する各種の処理を実行するプログラムを含む各種のプログラムを記憶する。さらに、記憶部２３は、制御部２４で実行されるプログラムで用いられる各種データを記憶する。例えば、記憶部２３は、対象データ３０と、抽出データ３１とを記憶する。
【００１９】
対象データ３０は、属性間の意味関係を推定する対象のデータである。対象データ３０には、複数の事象について、属性ごとに、当該属性に関する属性データが対応付けて格納されている。事象とは、例えば、対象から各属性データが得られた状態や、対象に対して各属性データを対応付けた状態である。このように属性ごとに、当該属性に関する属性データが対応付けて格納可能なデータの形式は、様々ある。例えば、表形式やテーブル形式のデータでは、各属性をそれぞれ列として、事象ごとにレコードを分けて、各属性に対応する列の領域に、事象の各属性に関する属性データが格納される。また、例えば、ＣＳＶ（Comma  Separated  Values）形式のデータでは、各属性に順番を定め、事象ごとにレコードを分けて、各属性の順番の順に、事象の属性に関する属性データがカンマで区切って格納される。
【００２０】
図２は、対象データのデータ構成の一例を示す図である。図２の例は、対象データ３０をテーブル形式のデータとした場合の一例を示している。対象データ３０には、ヘッダ３０Ａが設けられている。属性には、それぞれの属性を識別する識別情報として属性名が定められる。この属性名は、属性を表現した名称であってもよい。また、属性名は、「属性１」、「属性２」、「属性３」・・・などと属性を識別するために定めた名称であってもよい。ヘッダ３０Ａには、属性の属性名が格納する領域が設けられている。ヘッダ３０Ａには、属性名として「属性１」、「属性２」、「属性３」が設けられている。対象データ３０は、各属性をそれぞれ列として、事象ごとにレコードを分けて、事象の各属性に対応する列の領域に各属性に関する属性データが格納されている。図２の例では、属性名「属性１」の属性データとして「データ１」が格納され、属性名「属性２」の属性データとして「データ２」が格納され、属性名「属性３」の属性データとして「データ３」が格納されている。
【００２１】
このように属性ごとに、当該属性に関する属性データを対応付けて格納されたデータは、属性間の意味関係が明確ではない。
【００２２】
ここで、属性間の意味関係について説明する。属性ごとに属性データを格納した場合、各属性データは、様々な関係を有する場合がある。このような属性データの関係としては、例えば、集合、同値、階層、リストがある。属性データの関係の例を説明する。
【００２３】
図３Ａは、集合の関係の一例を示す図である。事象について同じ属性の複数の属性データがあり、複数の属性データの間に優先順位が無い場合、複数の属性データは、集合の関係がある。この集合の関係にある複数の属性データは、それぞれ別な対象を表す。このような属性の例として、例えば、キーワードが挙げられる。事象に関するキーワードとして、データ１、データ２およびデータ３がある場合、データ１、データ２、データ３は、集合の関係がある。
【００２４】
図３Ｂは、同値の関係の一例を示す図である。事象の属性としては単一であるが、表現が複数ある場合、複数の属性データは、同値の関係がある。この同値の関係にある複数の属性データは、同じ対象を表す。このような属性の例として、例えば、会社の名称などが挙げられる。例えば、会社の正式名称は、「富士通株式会社」であるが、略称として「富士通」や「富士通（株）」と記載される場合がある。この「富士通」および「富士通（株）」は、何れも「富士通株式会社」を表す。
【００２５】
図３Ｃは、階層の関係の一例を示す図である。例えば、事象は、ツリー構造など階層的に複数の属性が定められる場合がある。複数の属性にそれぞれの階層の属性データを格納する場合、複数の属性の属性データは、階層の関係がある。このように複数の属性にそれぞれの階層の属性データを格納した場合、下位の階層の属性データが定まると上位の階層の属性データが定まる。例えば、事象に関して、大まかに分類した大分類、大分類をそれぞれ分類した中分類、中分類をそれぞれ詳細に分類した小分類と階層的に分類を属性として定める。この場合、中分類は、何れかの大分類に含まれる。小分類は、何れかの中分類に含まれる。よって、小分類が定まると、階層構造から中分類および大分類が定まる。図３Ｃは、データ２がデータ１のサブクラスとされた、データ３がデータ２のサブクラスとされた階層的な属性であることを示している。図３Ｃの例では、事象に関して、データ３が定まると、階層の関係からデータ２、データ１が定まる。このような場合、データ１、データ２、データ３は、階層の関係がある。
【００２６】
図３Ｄは、リストの関係の一例を示す図である。例えば、事象の属性としては単一であるが、複数の属性データがあり、属性データの順番に意味がある場合、複数の属性データは、リストの関係がある。このような属性の例として、例えば、論文の著者名が挙げられる。図３Ｄは、事象の属性として最初の要素の属性データが先頭に対応付けられ、各要素の属性データが次の要素の属性データへ対応付けられることを示している。このような場合、データ１、データ２、データ３は、リストの関係がある。
【００２７】
なお、参考に、属性間に関係が無い無関係の状態を説明する。図３Ｅは、無関係の状態の一例を示す図である。事象について複数の属性があり、各属性の属性データが他の属性データの影響を受けずに独立して変化する場合、各属性は、無関係の状態である。図３Ｅの例では、事象に関して、属性１のデータ１、属性２のデータ２、属性３のデータ３がある。データ１、データ２、データ３がそれぞれ他の影響を受けずに独立して変化する場合、データ１、データ２、データ３は、無関係の状態がある。
【００２８】
図１に戻り、抽出データ３１は、後述する抽出部４１により抽出されたデータを記憶したデータである。
【００２９】
制御部２４は、情報処理装置１０を制御するデバイスである。制御部２４としては、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）等の電子回路や、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路を採用できる。制御部２４は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部２４は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部２４は、受付部４０と、抽出部４１と、出力部４２とを有する。
【００３０】
受付部４０は、各種の受け付けを行う。例えば、受付部４０は、各種の操作指示を受け付ける。例えば、受付部４０は、操作画面など各種の画面を表示部２１に表示させて、入力部２２から、属性間の関係の推定開始の指示などの操作指示を受け付ける。
【００３１】
抽出部４１は、各種の抽出を行う。例えば、抽出部４１は、対象データ３０から各レコード間の属性データの一致関係が所定の条件を満たすレコードのデータを抽出する。例えば、抽出部４１は、対象データ３０の各レコード間で属性データの一致の関係や、属性データが一致する属性の順番から、属性間に集合、同値、階層、リストの関係があるレコードのデータを抽出する。抽出部４１は、属性の関係ごとに、抽出したレコードのデータを抽出データ３１に格納する。
【００３２】
例えば、抽出部４１は、対象データ３０から属性データを比較する比較対象の２つのレコードを順に選択する。例えば、抽出部４１は、対象データ３０から第１のレコードと第２のレコードを順に選択する。そして、抽出部４１は、第１のレコードと第２のレコードの間で属性データの比較を行って属性間に集合の関係があるか判定する。抽出部４１は、属性間に集合の関係があるレコードを抽出する。例えば、抽出部４１は、第１のレコードの第１の属性の属性データが第２のレコードの第１の属性とは異なる第２の属性の属性データと一致し、第１のレコードの第２の属性の属性データが第２のレコードの第１の属性とは一致しないか判定する。抽出部４１は、第１のレコードの第１の属性の属性データが第２のレコードの第２の属性の属性データと一致し、第１のレコードの第２の属性の属性データが第２のレコードの第１の属性とは一致しない場合、第１のレコードおよび第２のレコードを抽出する。
【００３３】
図４Ａは、集合の関係があるレコードの抽出の一例を示す図である。図４Ａに示す対象データ３０には、３つのレコード６１、６２、６３が格納されている。レコード６１は、属性名「属性１」の属性データが「あああ」、属性名「属性２」の属性データが「いいい」、属性名「属性３」の属性データが「ううう」とされている。レコード６２は、属性名「属性１」の属性データが「あああ」、属性名「属性２」の属性データが「ううう」、属性名「属性３」の属性データが空白（ＮＵＬＬ）とされている。レコード６３は、属性名「属性１」の属性データが「えええ」、属性名「属性２」の属性データが「おおお」、属性名「属性３」の属性データが空白とされている。図４Ａの例では、レコード６１の属性名「属性３」の属性データ「ううう」が、レコード６２の属性名「属性２」の属性データ「ううう」と一致する。また、レコード６２の属性名「属性３」は、属性データが空白とされ、レコード６１の属性名「属性２」の属性データ「いいい」と一致しない。このレコード６１、６２は、属性名「属性２」、「属性３」に集合の関係がある。抽出部４１は、レコード６１、６２を集合の関係があるレコードのデータとして抽出データ３１に格納する。
【００３４】
また、抽出部４１は、第１のレコードと第２のレコードの間で属性データの比較を行って属性間に同値の関係があるか判定する。抽出部４１は、属性間に同値の関係があるレコードを抽出する。例えば、抽出部４１は、第１のレコードと第２のレコードの間で属性データが空白以外の各属性で属性データが全て同じであるか判定する。抽出部４１は、第１のレコードと第２のレコードの間で各属性の属性データが全て同じである場合、第１のレコードおよび第２のレコードを抽出する。
【００３５】
図４Ｂは、同値の関係があるレコードの抽出の一例を示す図である。図４Ｂに示す対象データ３０には、４つのレコード７１、７２、７３、７４が格納されている。レコード７１は、属性名「属性１」の属性データが「あああ」、属性名「属性２」の属性データが「いいい」、属性名「属性３」の属性データが「ううう」とされている。レコード７２は、属性名「属性１」の属性データが「あああ」、属性名「属性２」の属性データが「いいい」、属性名「属性３」の属性データが「ううう」とされている。レコード７３は、属性名「属性１」の属性データが「かかか」、属性名「属性２」の属性データが「ききき」、属性名「属性３」の属性データが空白とされている。レコード７４は、属性名「属性１」の属性データが「かかか」、属性名「属性２」の属性データが「ききき」、属性名「属性３」の属性データが空白とされている。図４Ｂの例では、レコード７１とレコード７２は、属性名「属性１」、「属性２」、「属性３」の各属性で属性データが一致し、同値の関係がある。レコード７３とレコード７４は、属性名「属性１」、「属性２」の各属性で属性データが一致し、同値の関係がある。抽出部４１は、レコード７１、７２およびレコード７３、７４を同値の関係があるレコードのデータとして抽出データ３１に格納する。
【００３６】
ところで、対象データ３０に格納されたデータが同値の関係があるデータの場合、全てのデータが抽出されてしまう。
【００３７】
そこで、本実施例に係る情報処理装置１０では、対象データ３０から同値の関係が無い反例のレコードを抽出する。これにより、対象データ３０は、各レコードの属性間に同値の関係がある場合、レコードが抽出されない。よって、レコードが抽出されないことで、対象データ３０は、格納されたデータが同値の関係があると判別できる。
【００３８】
このため、本実施例に係る抽出部４１は、属性間に同値の関係があるレコードを抽出に代えて、同値の関係がない反例のレコードを抽出する。例えば、抽出部４１は、第１のレコードと第２のレコードの間で、各属性の属性データの一部が一致し、他の一部が不一致であるか判定する。抽出部４１は、第１のレコードと第２のレコードの間で各属性の属性データの一部が一致し、他の一部が不一致である場合、第１のレコードおよび第２のレコードを抽出する。図４Ｂの例では、レコード間で一部の属性のみで属性データが一致するものはないため、反例のレコードは抽出されない。
【００３９】
また、抽出部４１は、第１のレコードと第２のレコードの間で属性データの比較を行って属性間にリストの関係があるか判定する。抽出部４１は、属性間にリストの関係があるレコードを抽出する。例えば、抽出部４１は、第１のレコードと第２のレコードの間の２以上の属性で属性データが入れ替わっているか判定する。抽出部４１は、２以上の属性で属性データが入れ替わっている場合、第１のレコードおよび第２のレコードを抽出する。
【００４０】
図４Ｃは、リストの関係があるレコードの抽出の一例を示す図である。図４Ｃに示す対象データ３０には、３つのレコード８１、８２、８３が格納されている。レコード８１は、属性名「属性１」の属性データが「あああ」、属性名「属性２」の属性データが「いいい」、属性名「属性３」の属性データが空白とされている。レコード８２は、属性名「属性１」の属性データが「あああ」、属性名「属性２」の属性データが「ううう」、属性名「属性３」の属性データが空白とされている。レコード８３は、属性名「属性１」の属性データが「いいい」、属性名「属性２」の属性データが「あああ」、属性名「属性３」の属性データが空白とされている。図４Ｃの例では、レコード８１とレコード８３は、属性名「属性１」、「属性２」の属性で属性データが入れ替わっており、リストの関係がある。抽出部４１は、レコード８１、８３をリストの関係があるレコードのデータとして抽出データ３１に格納する。
【００４１】
また、抽出部４１は、対象データ３０の各レコードの間で属性データの比較を行って属性間に階層の関係があるか判定に用いる情報を抽出する。例えば、抽出部４１は、対象データ３０の各レコードについて、属性ごとに、同じ属性データを１種類として、対象データ３０の各レコードの格納される属性データの種類数を抽出する。
【００４２】
図４Ｄは、階層の関係があるレコードの属性ごとの属性データの種類数の抽出の一例を示す図である。図４Ｄに示す対象データ３０には、属性名「カテゴリ１」、「カテゴリ２」、「カテゴリ３」、「カテゴリ４」、「カテゴリ５」の各属性が設けられており、５つのレコード９１〜９５が格納されている。レコード９１は、属性名「カテゴリ１」の属性データが「あああ」、属性名「カテゴリ２」の属性データが「かかか」、属性名「カテゴリ３」の属性データが「さささ」、属性名「カテゴリ４」の属性データが「たたた」、属性名「カテゴリ５」の属性データが「ななな」とされている。レコード９２は、属性名「カテゴリ１」の属性データが「あああ」、属性名「カテゴリ２」の属性データが「かかか」、属性名「カテゴリ３」の属性データが「さささ」、属性名「カテゴリ４」の属性データが「ちちち」、属性名「カテゴリ５」の属性データが「ににに」とされている。レコード９３は、属性名「カテゴリ１」の属性データが「あああ」、属性名「カテゴリ２」の属性データが「ききき」、属性名「カテゴリ３」の属性データが「ししし」、属性名「カテゴリ４」の属性データが「つつつ」、属性名「カテゴリ５」の属性データが「ぬぬぬ」とされている。レコード９４は、属性名「カテゴリ１」の属性データが「いいい」、属性名「カテゴリ２」の属性データが「くくく」、属性名「カテゴリ３」の属性データが「すすす」、属性名「カテゴリ４」の属性データが「ててて」、属性名「カテゴリ５」の属性データが空白とされている。レコード９５は、属性名「カテゴリ１」の属性データが「いいい」、属性名「カテゴリ２」の属性データが「くくく」、属性名「カテゴリ３」の属性データが「すすす」、属性名「カテゴリ４」の属性データが「ととと」、属性名「カテゴリ５」の属性データが空白とされている。
【００４３】
対象データ３０での属性の並び順に属性間に階層の関係がある場合、各属性の属性データの種類数は、対象データ３０での並び順でそれぞれ１つ前に出現する属性の属性データの種類数以上となる。すなわち、対象データ３０での属性の並び順に属性間に階層の関係がある場合、各属性の属性データの種類数は、対象データ３０での並び順でそれぞれ１つ前に出現する属性より属性データの種類数が減少しない。例えば、レコード９１〜９３では、属性名「カテゴリ１」の属性は、属性データの種類が１種類である。属性名「カテゴリ２」の属性は、属性データの種類が２種類である。属性名「カテゴリ３」の属性は、属性データの種類が２種類である。属性名「カテゴリ４」の属性は、属性データの種類が３種類である。属性名「カテゴリ５」の属性は、属性データの種類が３種類である。よって、対象データ３０での属性の並び順に、属性間に階層の関係がある場合、各属性の属性データの種類数は、対象データ３０での属性の並び順に単調非減少となる。
【００４４】
一方、階層の関係がある属性の属性データに空白（Ｎｕｌｌ）が認められている場合、各属性の属性データの種類数は、対象データ３０での並び順でそれぞれ１つ前に出現する属性の属性データの種類数から減少する場合がある。例えば、レコード９１〜９５では、属性名「カテゴリ４」の属性は、属性データの種類が５種類であるが、属性名「カテゴリ５」の属性は、属性データの種類が３種類である。
【００４５】
そこで、階層の関係がある属性の属性データに空白が認められている場合、抽出部４１は、次のように属性の属性データの種類数をカウントする。まず、抽出部４１は、属性データの種類数を抽出する対象範囲とする属性を対象データ３０での並び順に１つずつ追加する。そして、抽出部４１は、対象範囲ごとに、対象範囲の何れかの属性で属性データが格納されていないレコードを除いて、対象範囲に含まれる属性ごとに、対象データ３０の各レコードの格納される属性データの種類数を抽出する。
【００４６】
図４Ｄの例に属性データの種類数を抽出する流れを説明する。まず、抽出部４１は、属性名「カテゴリ１」および「カテゴリ２」の属性を対象範囲する。そして、抽出部４１は、属性名「カテゴリ１」および「カテゴリ２」の属性で属性データが格納されていないレコードを除いて、属性名「カテゴリ１」および「カテゴリ２」の属性ごとに、属性データの種類数を抽出する。図４Ｄの例では、属性名「カテゴリ１」および「カテゴリ２」の属性で属性データが格納されていないレコードは無い。このため、属性名「カテゴリ１」の属性は、属性データの種類数が２種類と求まる。属性名「カテゴリ２」の属性は、属性データの種類数が３種類と求まる。
【００４７】
次に、抽出部４１は、属性名「カテゴリ１」〜「カテゴリ３」の属性を対象範囲する。そして、抽出部４１は、属性名「カテゴリ１」〜「カテゴリ３」の属性で属性データが格納されていないレコードを除いて、属性名「カテゴリ１」〜「カテゴリ３」の属性ごとに、属性データの種類数を抽出する。図４Ｄの例では、属性名「カテゴリ１」〜「カテゴリ３」の属性で属性データが格納されていないレコードは無い。このため、属性名「カテゴリ１」の属性は、属性データの種類数が２種類と求まる。属性名「カテゴリ２」の属性は、属性データの種類数が３種類と求まる。属性名「カテゴリ３」の属性は、属性データの種類数が３種類と求まる。
【００４８】
次に、抽出部４１は、属性名「カテゴリ１」〜「カテゴリ４」の属性を対象範囲する。そして、抽出部４１は、属性名「カテゴリ１」〜「カテゴリ４」の属性で属性データが格納されていないレコードを除いて、属性名「カテゴリ１」〜「カテゴリ４」の属性ごとに、属性データの種類数を抽出する。図４Ｄの例では、属性名「カテゴリ１」〜「カテゴリ４」の属性で属性データが格納されていないレコードは無い。このため、属性名「カテゴリ１」の属性は、属性データの種類数が２種類と求まる。属性名「カテゴリ２」の属性は、属性データの種類数が３種類と求まる。属性名「カテゴリ３」の属性は、属性データの種類数が３種類と求まる。属性名「カテゴリ４」の属性は、属性データの種類数が５種類と求まる。
【００４９】
次に、抽出部４１は、属性名「カテゴリ１」〜「カテゴリ５」の属性を対象範囲する。そして、抽出部４１は、属性名「カテゴリ１」〜「カテゴリ５」の属性で属性データが格納されていないレコードを除いて、属性名「カテゴリ１」〜「カテゴリ５」の属性ごとに、属性データの種類数を抽出する。図４Ｄの例では、レコード９４、９５は、属性名「カテゴリ５」の属性で属性データが格納されていないため、レコード９１〜９３から属性ごとに属性データの種類数が求められる。この場合、属性名「カテゴリ１」の属性は、属性データの種類数が１種類と求まる。属性名「カテゴリ２」の属性は、属性データの種類数が２種類と求まる。属性名「カテゴリ３」の属性は、属性データの種類数が２種類と求まる。属性名「カテゴリ４」の属性は、属性データの種類数が３種類と求まる。属性名「カテゴリ５」の属性は、属性データの種類数が３種類と求まる。
【００５０】
このように、抽出部４１は、対象データ３０から各レコード間の属性データの一致関係から集合、同値、階層、リストの関係があるレコードのデータを抽出する。なお、対象データ３０から集合、同値、階層、リストのレコードがそれぞれ抽出されてもよい。対象データ３０が属性間に各種の意味関係があるレコードが混在する場合、対象データ３０から集合、同値、階層、リストのレコードが抽出される。また、１つのレコードが複数の意味関係で抽出されてもよい。
【００５１】
出力部４２は、各種の出力を行う。例えば、出力部４２は、抽出部４１による抽出結果に基づき、属性間の意味関係の判定結果を出力する。出力部４２は、表示部２１に判定結果画面を表示させ、属性間の意味関係の判定結果を表示する。例えば、出力部４２は、抽出部４１により属性間に集合の関係があるレコードが抽出された場合、属性間に集合の意味関係があるとの判定結果を出力する。また、出力部４２は、抽出部４１により属性間にリストの関係があるレコードが抽出された場合、属性間にリストの意味関係があるとの判定結果を出力する。また、出力部４２は、抽出部４１により抽出された何れの対象範囲においても、属性の並び順に、属性ごとの属性データの種類数が単調非減少である場合、属性間に階層の意味関係があるとの判定結果を出力する。また、出力部４２は、抽出部４１により属性間に同値の関係があるレコードが抽出された場合、属性間に同値の意味関係があるとの判定結果を出力する。ここで、本実施例では、抽出部４１は、同値の関係がない反例のレコードを抽出する。このため、本実施例では、出力部４２は、抽出部４１により反例のレコードを抽出されない場合、属性間に同値の意味関係があるとの判定結果を出力する。
【００５２】
また、出力部４２は、抽出部４１により抽出されたレコードのデータを判定の根拠として出力する。
【００５３】
図５は、判定結果画面の一例を示す図である。判定結果画面１００は、属性間の意味構造の判定結果を表示する表示領域１０１〜１０５を有する。
【００５４】
表示領域１０１は、対象データ３０の属性間に階層の関係があるかの判定結果を表示する領域である。出力部４２は、抽出部４１により属性間に階層の関係があるレコードが抽出された場合、表示領域１０１に「ｙｅｓ」を表示させ、階層の関係があるレコードが抽出されない場合、表示領域１０１に「ｎｏ」を表示させる。
【００５５】
表示領域１０２は、対象データ３０の属性間に集合の関係があるかの判定結果を表示する領域である。出力部４２は、抽出部４１により属性間に集合の関係があるレコードが抽出された場合、表示領域１０２に「ｙｅｓ」を表示させ、集合の関係があるレコードが抽出されない場合、表示領域１０２に「ｎｏ」を表示させる。
【００５６】
表示領域１０３は、対象データ３０の属性間にリストの関係があるかの判定結果を表示する領域である。出力部４２は、抽出部４１により属性間にリストの関係があるレコードが抽出された場合、表示領域１０３に「ｙｅｓ」を表示させ、リストの関係があるレコードが抽出されない場合、表示領域１０３に「ｎｏ」を表示させる。
【００５７】
表示領域１０５は、対象データ３０の属性間に同値の関係があるかの判定結果を表示する領域である。出力部４２は、抽出部４１により属性間に同値の関係があるレコードが抽出された場合、表示領域１０５に「ｙｅｓ」を表示させ、同値の関係があるレコードが抽出されない場合、表示領域１０５に「ｎｏ」を表示させる。ここで、本実施例では、抽出部４１は、同値の関係がない反例のレコードを抽出する。このため、本実施例では、出力部４２は、抽出部４１により反例のレコードを抽出されない場合、表示領域１０５に「ｙｅｓ」を表示させ、反例のレコードが抽出された場合、表示領域１０５に「ｎｏ」を表示させる。
【００５８】
表示領域１０４は、対象データ３０の属性間が無関係であるかの判定結果を表示する領域である。出力部４２は、階層、集合、リスト、同値の何れについても関係のデータが抽出されない場合、表示領域１０４に「ｙｅｓ」を表示させ、何れかの関係のデータが抽出された場合、表示領域１０４に「ｎｏ」を表示させる。
【００５９】
判定結果画面１００は、属性間の意味構造の判定の根拠となるデータの表示を指示するボタン１１１〜１１４を有する。
【００６０】
出力部４２は、ボタン１１１が選択された場合、対象範囲ごとに、属性ごとの属性データの種類数を出力する。図５の例では、２つの属性を対象範囲とした場合、属性１での属性データの種類数が１８と表示され、属性２での属性データの種類数が４１と表示されている。また、図５の例では、３つの属性を対象範囲とした場合、属性１での属性データの種類数が１２と表示され、属性２での属性データの種類数が３４と表示され、属性３での属性データの種類数が５３と表示されている。
【００６１】
出力部４２は、ボタン１１２が選択された場合、抽出部４１により抽出された属性間に集合の関係があるレコードを出力する。図５の例では、属性間に集合の関係があるレコードが表示されている。出力部４２は、ボタン１１３が選択された場合、抽出部４１により抽出された属性間にリストの関係があるレコードを出力する。図５の例では、属性間にリストの関係があるレコードが表示されている。出力部４２は、ボタン１１４が選択された場合、抽出部４１により抽出された属性間に同値の関係があるレコードを出力する。ここで、本実施例では、抽出部４１は、同値の関係がない反例のレコードを抽出する。このため、本実施例では、出力部４２は、ボタン１１４が選択された場合、反例のレコードが表示されている。
【００６２】
ユーザは、判定結果画面１００の表示領域１０１〜１０５や、属性間の意味構造の判定の根拠となるデータを確認することで、対象データ３０の属性間の意味関係を推定する。情報処理装置１０は、属性間の意味構造の判定結果を表示した判定結果画面１００を表示することにより、ユーザによる属性間の意味関係の推定を支援できる。
【００６３】
［処理の流れ］
実施例１に係る情報処理装置１０が対象データ３０の属性間の意味関係を推定する関係推定処理の流れについて説明する。図６Ａは、関係推定処理の手順の一例を示すフローチャートである。この関係推定処理は、所定のタイミング、例えば、入力部２２から意味関係の推定開始を指示する処理の操作を受け付けたタイミングで実行される。
【００６４】
図６Ａに示すように、抽出部４１は、対象データ３０から属性間に集合の関係があるレコードを抽出する集合関係抽出処理を実行する（Ｓ１０）。集合関係抽出処理の詳細は、後述する。次に、抽出部４１は、対象データ３０から属性間にリストの関係があるレコードを抽出するリスト関係抽出処理を実行する（Ｓ１１）。リスト関係抽出処理の詳細は、後述する。次に、抽出部４１は、属性間に同値の関係がない反例のレコードを抽出する反例抽出処理を実行する（Ｓ１２）。反例抽出処理の詳細は、後述する。次に、抽出部４１は、属性データの種類数を抽出する種類数抽出処理を実行する（Ｓ１３）。種類数抽出処理の詳細は、後述する。
【００６５】
出力部４２は、抽出部４１による抽出結果に基づき、属性間の意味関係の判定結果を出力する出力処理を実行し（Ｓ１４）、処理を終了する。出力処理の詳細は、後述する。
【００６６】
次に、集合関係抽出処理の詳細を説明する。図６Ｂは、集合関係抽出処理の手順の一例を示すフローチャートである。この集合関係抽出処理は、図６Ａ示した関係推定処理のＳ１０から実行される。
【００６７】
図６Ｂに示すように、抽出部４１は、属性間に集合の関係があるレコードを格納する領域Ｘｓｅｔを空に初期化する（Ｓ２０）。抽出部４１は、変数ｉを０に初期化する（Ｓ２１）。本実施例では、対象データ３０のレコード数をＮとした場合、各レコードに０〜Ｎ−１の番号を対応付ける。変数ｉの値は、比較を行う第１のレコードの番号を示す。
【００６８】
抽出部４１は、変数ｉの値がＮ−１より小さいか否かを判定する（Ｓ２２）。変数ｉの値がＮ−１より小さくない場合（Ｓ２２否定）、抽出部４１は、領域Ｘｓｅｔを記憶部２３に格納し（Ｓ２３）、図６Ａに示した関係推定処理のＳ１１へ移行する。
【００６９】
一方、変数ｉの値がＮ−１より小さい場合（Ｓ２２肯定）、抽出部４１は、変数ｊに変数ｉ＋１の値をセットする（Ｓ２４）。この変数ｊの値は、比較を行う第２のレコードの番号を示す。
【００７０】
抽出部４１は、変数ｊの値がＮより小さいか否かを判定する（Ｓ２５）。変数ｊの値がＮより小さくない場合（Ｓ２５否定）、抽出部４１は、変数ｉの値を１加算し（Ｓ２６）、上述のＳ２２へ移行する。
【００７１】
一方、変数ｊの値がＮより小さい場合（Ｓ２５肯定）、抽出部４１は、変数ｉ番目の第１のレコードと、変数ｊ番目の第２のレコードとの間で属性データの比較を行って属性間に集合の関係があるか判定する（Ｓ２７）。例えば、抽出部４１は、第１のレコードの第１の属性の属性データが第２のレコードの第１の属性とは異なる第２の属性の属性データと一致し、第１のレコードの第２の属性の属性データが第２のレコードの第１の属性とは一致しないか判定する。例えば、ｉ番目のレコードのｍ番目の属性の属性データをＶ（ｉ，ｍ）と表記する。また、ｊ番目のレコードのｎ番目の属性の属性データをＶ（ｊ，ｎ）と表記する。また、ｉ番目のレコードのｎ番目の属性の属性データをＶ（ｉ，ｎ）と表記する。また、ｊ番目のレコードのｍ番目の属性の属性データをＶ（ｊ，ｍ）と表記する。抽出部４１は、Ｖ（ｉ，ｍ）＝Ｖ（ｊ，ｎ）≠Ｎｕｌｌ、かつ、Ｖ（ｉ，ｎ）≠Ｖ（ｊ，ｍ）、かつ、ｍ≠ｎを満たすｍ、ｎが存在するか否かを判定する。
【００７２】
属性間に集合の関係がある場合（Ｓ２７肯定）、抽出部４１は、第１のレコードと第２のレコードを対応付けて領域Ｘｓｅｔに格納する（Ｓ２８）。抽出部４１は、変数ｊの値を１加算し（Ｓ２９）、上述のＳ２５へ移行する。
【００７３】
一方、属性間に集合の関係がない場合（Ｓ２７否定）、上述のＳ２９へ移行する。
【００７４】
次に、リスト関係抽出処理の詳細を説明する。図６Ｃは、リスト関係抽出処理の手順の一例を示すフローチャートである。このリスト関係抽出処理は、図６Ａ示した関係推定処理のＳ１１から実行される。
【００７５】
図６Ｃに示すように、抽出部４１は、属性間にリストの関係があるレコードを格納する領域Ｘｌｉｓｔを空に初期化する（Ｓ３０）。抽出部４１は、変数ｉを０に初期化する（Ｓ３１）。この変数ｉの値は、比較を行う第１のレコードの番号を示す。
【００７６】
抽出部４１は、変数ｉの値がＮ−１より小さいか否かを判定する（Ｓ３２）。変数ｉの値がＮ−１より小さくない場合（Ｓ３２否定）、抽出部４１は、領域Ｘｌｉｓｔを記憶部２３に格納し（Ｓ３３）、図６Ａに示した関係推定処理のＳ１２へ移行する。
【００７７】
一方、変数ｉの値がＮ−１より小さい場合（Ｓ３２肯定）、抽出部４１は、変数ｊに変数ｉ＋１の値をセットする（Ｓ３４）。この変数ｊの値は、比較を行う第２のレコードの番号を示す。
【００７８】
抽出部４１は、変数ｊの値がＮより小さいか否かを判定する（Ｓ３５）。変数ｊの値がＮより小さくない場合（Ｓ３５否定）、抽出部４１は、変数ｉの値を１加算し（Ｓ３６）、上述のＳ３２へ移行する。
【００７９】
一方、変数ｊの値がＮより小さい場合（Ｓ３５肯定）、抽出部４１は、変数ｉ番目の第１のレコードと、変数ｊ番目の第２のレコードとの間で属性データの比較を行って属性間にリストの関係があるか判定する（Ｓ３７）。例えば、抽出部４１は、第１のレコードと第２のレコードの間の２以上の属性で属性データが入れ替わっているか判定する。例えば、抽出部４１は、Ｖ（ｉ，ｍ）＝Ｖ（ｊ，ｎ）≠Ｎｕｌｌ、かつ、Ｖ（ｉ，ｎ）＝Ｖ（ｊ，ｍ）、かつ、ｍ≠ｎを満たすｍ、ｎが存在するか否かを判定する。
【００８０】
属性間にリストの関係がある場合（Ｓ３７肯定）、抽出部４１は、第１のレコードと第２のレコードを対応付けて領域Ｘｌｉｓｔに格納する（Ｓ３８）。抽出部４１は、変数ｊの値を１加算し（Ｓ３９）、上述のＳ３５へ移行する。
【００８１】
一方、属性間に集合の関係がない場合（Ｓ３７否定）、上述のＳ３９へ移行する。
【００８２】
次に、反例抽出処理の詳細を説明する。図６Ｄは、反例抽出処理の手順の一例を示すフローチャートである。この反例抽出処理は、図６Ａ示した関係推定処理のＳ１２から実行される。
【００８３】
図６Ｄに示すように、抽出部４１は、属性間に同値の関係がない反例のレコードを格納する領域Ｘｅｑを空に初期化する（Ｓ４０）。抽出部４１は、変数ｉを０に初期化する（Ｓ４１）。この変数ｉの値は、比較を行う第１のレコードの番号を示す。
【００８４】
抽出部４１は、変数ｉの値がＮ−１より小さいか否かを判定する（Ｓ４２）。変数ｉの値がＮ−１より小さくない場合（Ｓ４２否定）、抽出部４１は、領域Ｘｅｑを記憶部２３に格納し（Ｓ４３）、図６Ａに示した関係推定処理のＳ１３へ移行する。
【００８５】
一方、変数ｉの値がＮ−１より小さい場合（Ｓ４２肯定）、抽出部４１は、変数ｊに変数ｉ＋１の値をセットする（Ｓ４４）。この変数ｊの値は、比較を行う第２のレコードの番号を示す。
【００８６】
抽出部４１は、変数ｊの値がＮより小さいか否かを判定する（Ｓ４５）。変数ｊの値がＮより小さくない場合（Ｓ４５否定）、抽出部４１は、変数ｉの値を１加算し（Ｓ４６）、上述のＳ４２へ移行する。
【００８７】
一方、変数ｊの値がＮより小さい場合（Ｓ４５肯定）、抽出部４１は、変数ｉ番目の第１のレコードと、変数ｊ番目の第２のレコードとの間で属性データの比較を行って属性間が同値の関係を満たさない反例の関係であるか判定する（Ｓ４７）。例えば、抽出部４１は、第１のレコードと第２のレコードの間で、各属性の属性データの一部が一致し、他の一部が不一致であるか判定する。例えば、抽出部４１は、Ｖ（ｉ，ｍ）＝Ｖ（ｊ，ｍ）≠Ｎｕｌｌ、かつ、Ｖ（ｉ，ｎ）≠Ｖ（ｊ，ｎ）、かつ、ｍ≠ｎを満たすｍ、ｎが存在するか否かを判定する。
【００８８】
属性間が反例の関係である場合（Ｓ４７肯定）、抽出部４１は、第１のレコードと第２のレコードを対応付けて領域Ｘｅｑに格納する（Ｓ４８）。抽出部４１は、変数ｊの値を１加算し（Ｓ４９）、上述のＳ４５へ移行する。
【００８９】
一方、属性間が反例の関係ではない場合（Ｓ４７否定）、上述のＳ４９へ移行する。
【００９０】
次に、種類数抽出処理の詳細を説明する。図６Ｅは、種類数抽出処理の手順の一例を示すフローチャートである。この種類数抽出処理は、図６Ａ示した関係推定処理のＳ１３から実行される。
【００９１】
図６Ｅに示すように、抽出部４１は、変数ａを２に初期化する（Ｓ５０）。この変数ａの値は、対象範囲とする属性数を示す。本実施例では、対象データ３０の全属性数をＭとする。
【００９２】
抽出部４１は、変数ａの値がＭ以下であるか否かを判定する（Ｓ５１）。変数ａの値がＭ以下ではない場合（Ｓ５１否定）、抽出部４１は、属性データの種類数を記憶する領域Ｘを記憶部２３に格納し（Ｓ５２）、図６Ａに示した関係推定処理のＳ１４へ移行する。
【００９３】
一方、変数ａの値がＭ以下の場合（Ｓ５１肯定）、抽出部４１は、変数ｊを０に初期化する（Ｓ５３）。この変数ｊの値は、属性データの種類をカウントする範囲の下限とするレコードの番号を示す。
【００９４】
抽出部４１は、変数ｊの値が対象データ３０のレコード数Ｎより小さいか否かを判定する（Ｓ５４）。変数ｊの値がＮより小さくない場合（Ｓ５４否定）、抽出部４１は、変数ａの値を１加算し（Ｓ５５）、上述のＳ５１へ移行する。
【００９５】
一方、変数ｊの値がＮより小さい場合（Ｓ５４肯定）、抽出部４１は、ｋ＝０〜ａ−１について領域Ｘ（ａ，ｋ）を空に初期化する（Ｓ５６）。抽出部４１は、変数ｊ番目までのレコードにおいて、属性の並び順に変数ａまでの範囲の属性に空白（ＮＵＬＬ）の属性データがあるか否かを判定する（Ｓ５７）。例えば、ｊ番目のレコードのｌ番目の属性の属性データをＶ（ｊ，ｌ）と表記する。抽出部４１は、Ｖ（ｊ，ｌ）＝Ｎｕｌｌ、かつ、ｌ＜ａを満たす属性データが存在するか否かを判定する。
【００９６】
空白の属性データがない場合（Ｓ５７否定）、抽出部４１は、属性の並び順に変数ａまでの属性について、属性ごとに、対象データ３０の変数ｊ番目までのレコードに格納される属性データの種類数をカウントする（Ｓ５８）。抽出部４１は、変数ａまでの範囲の各属性の属性データの種類数を記憶する（Ｓ５９）。例えば、抽出部４１は、並び順に変数ａまでの属性の範囲で、ｋ＝０〜ａ−１の各属性の属性データの種類数を領域Ｘ（ａ，ｋ）に記憶させる。これにより、領域Ｘ（ａ，ｋ）には、並び順に変数ａまでの属性の範囲での並び順にｋ番目の属性での属性データの種類数が記憶される。抽出部４１は、変数ｊの値を１加算し（Ｓ６０）、上述のＳ５４へ移行する。
【００９７】
一方、空白の属性データがある場合（Ｓ５７肯定）、上述のＳ６０へ移行する。
【００９８】
次に、出力処理の詳細を説明する。図６Ｆは、出力処理の手順の一例を示すフローチャートである。この出力処理は、図６Ａ示した関係推定処理のＳ１４から実行される。
【００９９】
図６Ｆに示すように、出力部４２は、抽出部４１により属性間に集合の関係があるレコードが抽出されたか否かを判定する（Ｓ１００）。例えば、出力部４２は、領域Ｘｓｅｔにレコードが格納されているか否かにより、集合の関係があるレコードが抽出されたか否かを判定する。集合の関係があるレコードが抽出された場合（Ｓ１００肯定）、出力部４２は、集合の関係の有無を示すフラグＺｓｅｔにｔｒｕｅをセットする（Ｓ１０１）。一方、集合の関係があるレコードを抽出されていない場合（Ｓ１００否定）、出力部４２は、フラグＺｓｅｔにｆａｌｓｅをセットする（Ｓ１０２）。
【０１００】
出力部４２は、抽出部４１により属性間にリストの関係があるレコードが抽出されたか否かを判定する（Ｓ１０３）。例えば、出力部４２は、領域Ｘｌｉｓｔにレコードが格納されているか否かにより、リストの関係があるレコードが抽出されたか否かを判定する。リストの関係があるレコードが抽出された場合（Ｓ１０３肯定）、出力部４２は、リストの関係の有無を示すフラグＺｌｉｓｔにｔｒｕｅをセットする（Ｓ１０４）。一方、リストの関係があるレコードを抽出されていない場合（Ｓ１０３否定）、出力部４２は、フラグＺｌｉｓｔにｆａｌｓｅをセットする（Ｓ１０５）。
【０１０１】
出力部４２は、抽出部４１により属性間に同値の関係がない反例のレコードが抽出されたか否かを判定する（Ｓ１０６）。例えば、出力部４２は、領域Ｘｅｑにレコードが格納されているか否かにより、反例のレコードが抽出されたか否かを判定する。反例のレコードが抽出された場合（Ｓ１０６肯定）、出力部４２は、同値の関係の有無を示すフラグＺｅｑにｆａｌｓｅをセットする（Ｓ１０７）。一方、反例のレコードを抽出されていない場合（Ｓ１０６否定）、出力部４２は、フラグＺｅｑにｔｒｕｅをセットする（Ｓ１０８）。ここで、本実施例では、同値の関係がない反例のレコードを抽出しているため、反例のレコードが抽出されない場合、属性間に同値の関係があるものと判定している。
【０１０２】
出力部４２は、変数ａを２に初期化する（Ｓ１０９）。この変数ａの値は、対象範囲とする属性数を示す。出力部４２は、変数ａの値がＭ以下であるか否かを判定する（Ｓ１１０）。変数ａの値がＭ以下である場合（Ｓ１１０肯定）、出力部４２は、抽出部４１により抽出された、属性の並び順に変数ａまでの属性について、属性ごとに、属性データの種類数が単調非減少であるか判定する（Ｓ１１１）。例えば、出力部４２は、ｋ＝０〜ａ−１について、Ｘ（ａ，ｋ）≦Ｘ（ａ，ｋ＋１）が何れも成り立つか否かにより、単調非減少であるか判定する。単調非減少である場合（Ｓ１１１肯定）、出力部４２は、変数ａの値を１加算し（Ｓ１１２）、上述のＳ１１０へ移行する。一方、単調非減少ではない場合（Ｓ１１１否定）、属性間に階層の関係がないため、出力部４２は、階層の関係の有無を示すフラグＺｈにｆａｌｓｅをセットする（Ｓ１１３）。一方、変数ａの値がＭ以下ではない場合（Ｓ１１０否定）、変数ａの値がＭとなる全ての対象範囲で属性データの種類数が単調非減少であり、属性間に階層の関係があるため、出力部４２は、フラグＺｈにｔｒｕｅをセットする（Ｓ１１４）。
【０１０３】
出力部４２は、フラグＺｓｅｔ、Ｚｌｉｓｔ、Ｚｅｑ、Ｚｈが全てｆａｌｓｅであるか判定する（Ｓ１１５）。全てｆａｌｓｅである場合（Ｓ１１５肯定）、出力部４２は、属性間が無関係であるか否かを示すフラグＺｎｏにｔｒｕｅをセットする（Ｓ１１６）。一方、全てｆａｌｓｅではない場合（Ｓ１１５否定）、出力部４２は、フラグＺｎｏにｆａｌｓｅをセットする（Ｓ１１７）。
【０１０４】
出力部４２は、判定結果画面１００を表示させ、フラグＺｓｅｔ、Ｚｌｉｓｔ、Ｚｅｑ、Ｚｈ、フラグＺｎｏに基づいて、属性間の意味構造の判定結果を出力する（Ｓ１１８）。
【０１０５】
［効果］
上述してきたように、情報処理装置１０は、対象データ３０から各レコード間の属性データの一致関係が所定の条件を満たす事象のデータを抽出する。情報処理装置１０は、抽出結果に基づき、属性間の意味関係の判定結果を出力する。これにより、情報処理装置１０は、ユーザによる属性間の意味関係の推定を支援できる。
【０１０６】
また、情報処理装置１０は、対象データ３０から各レコード間で属性データが一致し、属性データが一致する属性の順番が所定の条件を満たすレコードを抽出する。これにより、情報処理装置１０は、属性間の意味関係があるレコードを抽出できる。
【０１０７】
また、情報処理装置１０は、第１のレコードの第１の属性の属性データが第２のレコードの第１の属性とは異なる第２の属性の属性データと一致し、第１のレコードの第２の属性の属性データが第２のレコードの第１の属性とは一致しない第１および第２のレコードを抽出する。情報処理装置１０は、レコードが抽出された場合、属性間の意味関係が集合との判定結果を出力する。これにより、情報処理装置１０は、対象データ３０の属性間に集合の関係があることをユーザに知らせることができる。
【０１０８】
また、情報処理装置１０は、各レコード間の２以上の属性で属性データが入れ替わるレコードを抽出する。情報処理装置１０は、レコードが抽出された場合、属性間の意味関係がリストとの判定結果を出力する。これにより、情報処理装置１０は、対象データ３０の属性間にリストの関係があることをユーザに知らせることができる。
【０１０９】
また、情報処理装置１０は、属性ごとに、同じ属性データを１種類として、各レコードの格納される属性データの種類数を抽出する。情報処理装置１０は、対象データ３０での属性の並び順に、属性ごとの属性データの種類数が単調非減少である場合、属性間の意味関係が階層との判定結果を出力する。これにより、情報処理装置１０は、対象データ３０の属性間に階層の関係があることをユーザに知らせることができる。
【０１１０】
また、情報処理装置１０は、各レコード間で各属性の属性データが全て同じとなるレコードを抽出する。情報処理装置１０は、各レコード間で各属性の属性データが全て同じとなるレコードが抽出された場合、当該各属性の意味関係が同値との判定結果を出力する。これにより、情報処理装置１０は、対象データ３０の属性間に同値の関係があることをユーザに知らせることができる。
【０１１１】
また、情報処理装置１０は、各レコード間で各属性の属性データの一部が一致し、他の一部が不一致となるレコードを抽出する。情報処理装置１０は、各レコード間で各属性の属性データの一部が一致し、他の一部が不一致となるレコードが抽出されない場合、各属性の意味関係が同値との判定結果を出力する。これにより、情報処理装置１０は、対象データ３０の属性間に同値の関係があることをユーザに知らせることができる。また、情報処理装置１０は、対象データ３０の属性間に同値の関係がある場合、レコードが多量に抽出されて根拠の判別がし難くなることを抑制できる。
【０１１２】
また、情報処理装置１０は、抽出されたレコードを判定の根拠として出力する。これにより、情報処理装置１０は、出力されたレコードから、ユーザによる対象データ３０の属性間の関係の推定結果の妥当性の検討を支援できる。
【実施例２】
【０１１３】
さて、これまで開示の装置に関する実施例について説明したが、開示の技術は上述した実施例以外にも、種々の異なる形態にて実施されてよい。そこで、以下では、本発明に含まれる他の実施例を説明する。
【０１１４】
例えば、上記の実施例では、対象データ３０の全ての属性について関係の推定を行う場合について説明したが、開示の装置はこれに限定されない。例えば、対象データ３０の属性のうち、推定対象の属性についてのみ属性間の関係の推定を行ってもよい。抽出部４１は、推定対象の属性についてのみ属性間に集合、同値、階層、リストの関係があるレコードのデータを抽出してもよい。推定対象の属性は、ユーザから指定させてもよい。例えば、受付部４０が、対象データ３０の全ての属性の属性名を表示した画面を表示部２１に表示させて、入力部２２から、推定対象の属性の選択を受け付けてもよい。また、所定の関係がある属性を推定対象の属性としてもよい。関連がある属性は、属性名に同一の名称部分を含む場合がある。例えば、関連がある属性は、属性名が同一の名称部分と連番の組み合わせとされる場合がある。例えば、図４Ａ〜図４Ｃでは、属性名が「属性」と同一の名称部分と連番の組み合わせとされている。また、図４Ｄでは、属性名が「カテゴリ」と同一の名称部分と連番の組み合わせとされている。なお、連番は、「第１属性」、「第２属性」などと同一の名称部分の前にあってもよい。抽出部４１は、属性名が同一の名称部分と連番の組み合わせとされた属性を推定対象の属性として、推定対象の属性ごとに、推定対象の属性に集合、同値、階層、リストの関係があるレコードのデータを抽出してもよい。例えば、対象データ３０に属性名が「第１属性」、「第２属性」、「カテゴリ１」、「カテゴリ２」の属性がある場合、抽出部４１は、属性名が「第１属性」、「第２属性」の属性の間に集合、同値、階層、リストの関係があるレコードのデータを抽出する。抽出部４１は、属性名が「カテゴリ１」、「カテゴリ２」の属性の間に集合、同値、階層、リストの関係があるレコードのデータを抽出する。
【０１１５】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、受付部４０、抽出部４１および出力部４２の各処理部が適宜統合、適宜複数の処理部の処理に分離されてもよい。さらに、各処理部にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１１６】
［関係推定プログラム］
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。図７は、関係推定プログラムを実行するコンピュータの一例を示す図である。
【０１１７】
図７に示すように、コンピュータ３００は、ＣＰＵ（Central  Processing  Unit）３１０、ＨＤＤ（Hard  Disk  Drive）３２０、ＲＡＭ（Random  Access  Memory）３４０を有する。これら３００〜３４０の各部は、バス４００を介して接続される。
【０１１８】
ＨＤＤ３２０には上記の受付部４０、抽出部４１および出力部４２と同様の機能を発揮する関係推定プログラム３２０Ａが予め記憶される。なお、関係推定プログラム３２０Ａについては、適宜分離しても良い。
【０１１９】
また、ＨＤＤ３２０は、各種情報を記憶する。例えば、ＨＤＤ３２０は、ＯＳや各種の処理に用いる各種データを記憶する。
【０１２０】
そして、ＣＰＵ３１０が、関係推定プログラム３２０ＡをＨＤＤ３２０から読み出して実行することで、実施例の各処理部と同様の動作を実行する。すなわち、関係推定プログラム３２０Ａは、受付部４０、抽出部４１および出力部４２と同様の動作を実行する。
【０１２１】
なお、上記した関係推定プログラム３２０Ａは、必ずしも最初からＨＤＤ３２０に記憶させることを要しない。また、例えば、関係推定プログラム３２０Ａは、コンピュータ３００に挿入されるＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」にプログラムを記憶させてもよい。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。
【０１２２】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ３００に接続される「他のコンピュータ（またはサーバ）」などにプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。
【符号の説明】
【０１２３】
１０  情報処理装置
２１  表示部
２２  入力部
２３  記憶部
２４  制御部
３０  対象データ
３０Ａ  ヘッダ
３１  抽出データ
４０  受付部
４１  抽出部
４２  出力部
１００  判定結果画面
【図１】
0006578685.tif 000002
【図２】
0006578685.tif 000003
【図３Ａ】
0006578685.tif 000004
【図３Ｂ】
0006578685.tif 000005
【図３Ｃ】
0006578685.tif 000006
【図３Ｄ】
0006578685.tif 000007
【図３Ｅ】
0006578685.tif 000008
【図４Ａ】
0006578685.tif 000009
【図４Ｂ】
0006578685.tif 000010
【図４Ｃ】
0006578685.tif 000011
【図４Ｄ】
0006578685.tif 000012
【図５】
0006578685.tif 000013
【図６Ａ】
0006578685.tif 000014
【図６Ｂ】
0006578685.tif 000015
【図６Ｃ】
0006578685.tif 000016
【図６Ｄ】
0006578685.tif 000017
【図６Ｅ】
0006578685.tif 000018
【図６Ｆ】
0006578685.tif 000019
【図７】
0006578685.tif 000020