以下、本発明の実施形態を図面を参照して説明する。
本発明では、テーブルの意味の集合(以下、テーブル意味集合と記す。)が用意される。テーブル意味集合に属するテーブルの意味の個数は有限個である。そして、本発明は、意味の推定対象となるテーブルに関して、テーブル意味集合からテーブルの意味を選択することによって、テーブルの意味を推定する。
実施形態1.
図1は、本発明の第1の実施形態のテーブル意味推定システムの構成例を示すブロック図である。テーブル意味推定システム1は、データ入力部2と、学習データ記憶部3と、テーブル意味モデル生成部4と、テーブル意味モデル記憶部5と、テーブル意味推定部6と、表示制御部7と、学習データ追加部8とを備える。
データ入力部2は、データが入力される入力デバイスである。データ入力部2には、意味の推定対象となるテーブルが入力される。以下、各カラム名がそれぞれカラムの意味に置き換えられたテーブルがデータ入力部2に入力されるものとして説明する。この場合、データ入力部2に入力されるテーブルには、前処理として、各カラム名をそれぞれカラムの意味に置き換える処理が行われる。各カラムの意味を特定する方法は、例えば、非特許文献1に記載された方法を用いればよく、あるいは、他の方法であってもよい。例えば、入力されるテーブルの各カラムの意味を非特許文献1に記載された方法で推定し、各カラム名をそれぞれ推定した各カラムの意味に置き換える前処理を、テーブル意味推定システム1の外部システム(図示略)が実行する。カラム名をカラムの意味に置き換えることで、カラム名の表記ゆれは排除される。データ入力部2には、その前処理後のテーブルが入力される。
ここで、カラムの意味の集合は予め定められているものとする。また、カラムの意味の集合に属するカラムの意味の個数は有限個であるものとする。例えば、上記の外部システムは、その集合からカラムの意味を選択することによって、カラムの意味を推定するものとする。
学習データ記憶部3は、学習データを記憶する記憶装置である。本実施形態では、学習データ記憶部3は、テーブルにおけるカラムの意味に応じた属性値の分布からテーブルの意味を推定するための推定モデルの学習に用いられる学習データを記憶する。学習データは、テーブルとそのテーブルの意味とを含む。以下に示す例では、各カラム名がそれぞれカラムの意味に置き換えられたテーブルと、そのテーブルの意味との組み合わせの集合が、学習データ記憶部3に記憶されるものとする。例えば、上記の外部システムが、テーブルの意味が既知となっているテーブル毎に、テーブルの各カラムの意味を非特許文献1に記載された方法で推定し、各カラム名をそれぞれ推定した各カラムの意味に置き換える処理を行えばよい。例えば、元々、テーブルに4つのカラムが存在し、それらのカラムにそぞれ、“Familyname”,“Age group”,“Class”,“Customer_job”というカラム名が付与されているとする。また、それらのカラムの意味の推定結果がそれぞれ、“name”,“age”,“sex”,“job” であるとする。この場合、“Familyname”,“Age group”,“Class”,“Customer_job”というカラム名がそれぞれ、“name”,“age”,“sex”,“job” というカラムの意味に置き換えられる。そして、そのような処理が実行されたテーブルと、そのテーブルの意味との組み合わせの集合を、学習データとして学習データ記憶部3に記憶させておけばよい。既に説明したように、カラムの意味の集合は予め定められていて、その集合に属するカラムの意味の個数は有限個であるものとする。
図2は、各カラム名がそれぞれカラムの意味に置き換えられたテーブルと、そのテーブルの意味との組み合わせの例を示す模式図である。図2に例示する“name”,“age”,“sex”,“job” はそれぞれ、カラムの意味である。また、図2に例示するテーブルの意味が“Customer”であるということは既知であるものとする。学習データ記憶部3は、図2に例示したようなテーブルとそのテーブルの意味との組み合わせの集合を記憶する。
以下の説明において、テーブルの意味を推定するための推定モデルをテーブル意味モデルと記す。
テーブル意味モデル生成部4は、学習データに基づいて、テーブル意味モデルを生成する。換言すれば、テーブル意味モデル生成部4は、学習データを用いて、機械学習によって、テーブル意味モデルを学習する。本実施形態では、テーブル意味モデル生成部4は、テーブルにおけるカラムの意味に応じた属性値の分布からテーブルの意味を推定するためのテーブル意味モデルを生成する。このテーブル意味モデルは、テーブルにおけるカラムの意味に応じた属性値の分布と、テーブルの意味との間の規則性を示すモデルであるということができる。
ここで、カラムの意味に応じて、カラムの属性値のデータ型は決定されているものとする。具体的には、カラムの意味に応じて、カラムの属性値のデータ型が数値型であるのか文字列型であるのかが決定されているものとする。例えば、“name”という意味を有するカラムの属性値は文字列型であると決定されているものとする。また、例えば、“age” という意味を有するカラムの属性値は数値型であると決定されているものとする。
図3は、テーブル意味モデル生成部4によって生成されるテーブル意味モデルの例を示す説明図である。図3に示すW,xはいずれも列ベクトルであるが、適宜、W,xを行ベクトルの転置行列として示す。以下の説明において、“T”は、転置行列を意味する。
カラムの意味の集合に属しているカラムの意味の個数をnとする。図3に示すxは、カラムの意味に対応する説明変数を要素として持つ。ここで、1つのカラムの意味に対して、複数の説明変数が対応する。
図3において、xの各要素に付した1番目の添え字は、カラムの意味の集合に属しているカラムの意味の識別番号を意味している。例えば、“age” というカラムの意味の識別番号が1であるとする。この場合、図3に示すμ1,σ1,m1は、“age” というカラムの意味に対応する説明変数である。また、例えば、“job” というカラムの意味の識別番号が2であるとする。この場合、図3に示すx2_1,x2_2,・・・x2_t,x2_p1,x2_p2,・・・,x2_pqは、“job” というカラムの意味に対応する説明変数である。
属性値のデータ型が数値型であるカラムの意味には、μr,σr,mrという3つの説明変数が対応する。なお、ここでは、そのカラムの意味の識別番号がrであるものして説明する。μrは、属性値のデータ型が数値型であるカラムにおける属性値の平均値を表す説明変数である。σiは、そのカラムにおける属性値の分散を表す説明変数である。miは、そのカラムにおける属性値の高次モーメントを表す説明変数である。
属性値のデータ型が文字列型であるカラムの意味には、xs_1,xs_2,・・・xs_tという説明変数、および、xs_p1,xs_p2,・・・,xs_pqという説明変数が対応する。なお、ここでは、そのカラムの意味の識別番号がsであるものとして説明する。xs_1,xs_2,・・・xs_tにおける2番目の添え字1〜tは、学習データ内で、識別番号がsであるカラムの意味を有するカラムに格納されている属性値に対応する。例えば、“job” というカラムの意味の識別番号がsであり、そのカラムの意味を有するテーブルが学習データ内に存在しているとする。そのようなテーブルが複数存在していてもよい。そして、カラムの意味“job” を有するカラムに格納されている属性値の種類がt種類であり、その属性値に1〜tの識別番号を割り当てたとする。xs_1〜xs_tのうち、識別番号uの属性値に対応する説明変数をxs_uと記す。xs_uは、着目しているテーブルで“job”というカラムの意味を有するカラムに存在しているその属性値の個数を表す説明変数である。例えば、カラムの意味“job” を有するカラムに属性値“Reseacher” が存在し、その属性値の識別番号が1であるとする。この場合、xs_1は、着目しているテーブルで“job”というカラムの意味を有するカラムに存在している“Reseacher”の個数を表す。xs_2〜xs_tに関しても同様である。
xs_p1,xs_p2,・・・,xs_pqにおける2番目の添え字p1〜pqは、それぞれ所定の文字列に対応する。また、着目しているテーブルで識別番号sに対応するカラムに存在する各属性値をそれぞれ、所定の方法で区切るものとする。本実施形態および後述の第2の実施形態では、各属性値を区切る方法として、2文字ずつ区切る方法を採用する場合を例にして説明する。上記の添え字p1〜pqは、それぞれ“aa”,“ab”,“ac”,・・・,“zz”という2つのアルファベットからなる文字列に対応しているものとする。ここで、2つの文字の順番が異なれば、異なる文字列として扱う。例えば、“ab”と“ba”とを異なる文字列として扱う。また、文字列は、同じ文字が2つ続いた文字列(例えば“aa”)であってもよい。また、ここでは、大文字と小文字とを区別しないものとする。xs_p1,xs_p2,・・・,xs_pqは、着目しているテーブルで識別番号sに対応するカラムに存在する各属性値を2文字ずつ区切った場合に得られる2文字の文字列の数を表す変数である。
xs_1,xs_2,・・・xs_tに相当する説明変数は、文字列型の各属性値の個数を表す説明変数である。また、これらの説明変数を、文字列型属性値の第1説明変数と記す場合がある。xs_p1,xs_p2,・・・,xs_pqに相当する説明変数は、文字列型属性値を区切った場合に得られる個々の文字列の個数を表す説明変数である。また、これらの説明変数を、文字列型属性値の第2説明変数と記す場合がある。
上記の例では、文字列型属性値の第1説明変数を規定するための属性値は、カラムの意味毎に学習データから定められる。そして、カラムの意味毎に、その属性値に対応する文字列型属性値の第1説明変数が定められる。また、カラムの意味毎に、予め、文字列型属性値の第1説明変数を規定するための属性値が複数個定められてもよい。そして、カラムの意味毎に、その属性値に対応する文字列型属性値の第1説明変数が定められてもよい。
文字列型属性値の第2説明変数の数は、カラムの意味(属性値のデータ型が文字列型であるカラムの意味)毎に共通である。文字列型属性値の第2説明変数が、“aa”〜“zz”に対応しているとすると、xs_p1〜xs_pqの個数は、26×26=676個である。
xの各要素は、テーブルにおけるカラムの意味に応じた属性値の分布を表す説明変数であると言うことができる。
1つのテーブルに着目することによって、図3に例示するxの要素となっている各説明変数の値を定めることができる。換言すれば、テーブル毎に、xの要素の値を定めることができる。各説明変数の値が定められたベクトルxをテーブル特徴と記す。
また、テーブル意味モデルには、テーブル意味集合も含まれる。図3では、テーブル意味集合の例として、{Customer,Item,Purchasing Log,・・・}という集合を例示している。テーブル意味集合に属しているテーブルの意味の個数をk個とする。
図3に示すWは、テーブル意味集合に属しているテーブルの意味毎に定められる。識別番号jのテーブルの意味に対応するWを、Wjと記す。テーブルの意味の個数はk個であるのでは、ベクトルWは、k個定められることになる。また、Wの要素数は、xの要素数と等しい。Wの任意のa番目の要素は、xのa番目の要素に対応している。例えば、図3に示す例において、Wの1番目の要素w1_μは、xの1番目の要素μ1に対応している。
また、図3に示すf(x)は、テーブルが与えられ、テーブル意味集合からテーブルの意味を1つ選択した場合に、選択したテーブルの意味が、与えられたテーブルの意味に該当する確度を意味している。
テーブル意味モデル生成部4は、有限個のカラムの意味に基づいて、ベクトルxの要素となる説明変数を決定する。
このとき、テーブル意味モデル生成部4は、属性値のデータ型が数値型であるカラムの意味毎に、3つの説明変数(属性値の平均値を表す説明変数、属性値の分散を表す説明変数、属性値の高次モーメントを表す説明変数)を定め、xの要素として定める。
また、テーブル意味モデル生成部4は、属性値のデータ型が文字列型であるカラムの意味毎に、上記のxs_1,xs_2,・・・xs_tに相当する説明変数(文字列型属性値の第1説明変数)およびxs_p1,xs_p2,・・・,xs_pqに相当する説明変数(文字列型属性値の第2説明変数)を定め、xの要素として定める。
ここで、上記のxs_1,xs_2,・・・xs_tに相当する説明変数の個数は、学習データにおいて、着目しているカラムの意味を有するカラム内に格納されている属性値の種類の数に合わせればよい。そして、上記のxs_1〜xs_tに相当する説明変数を、それぞれ、着目しているテーブル内でその意味を有するカラムにおいて、対応する属性値が格納されている個数を表す変数として規定すればよい。すなわち、テーブル意味モデル生成部4は、属性値のデータ型が文字列型であるカラムの意味毎に、学習データに基づいて、文字列型属性値の第1説明変数を規定するための属性値を定め、その属性値に対応する文字列型属性値の第1説明変数を規定すればよい。また、前述のように、属性値のデータ型が文字列型であるカラムの意味毎に、予め、文字列型属性値の第1説明変数を規定するための属性値が複数個定められてもよい。テーブル意味モデル生成部4は、属性値のデータ型が文字列型であるカラムの意味毎に、その属性値に対応する文字列型属性値の第1説明変数を規定してもよい。
また、xs_p1,xs_p2,・・・,xs_pqは、着目しているテーブル内でその意味を有するカラムに格納されている各属性値を所定の方法で区切った場合に得られる各文字列の数を表す変数として規定すればよい。テーブル意味モデル生成部4は、属性値のデータ型が文字列型であるカラムの意味毎に、文字列型属性値の第2説明変数を、所定数(例えば、26×26=676個)規定すればよい。
テーブル意味モデル生成部4は、ベクトルxの要素となる説明変数を決定した後、学習データに含まれているテーブル毎に、テーブル特徴を定める。このとき、テーブル意味モデル生成部4は、着目しているテーブルに含まれているカラムの意味、および、そのカラムの意味に対応するカラムに格納されている属性値に基づいて、そのカラムに意味に対応する説明変数の値を定めればよい。例えば、着目しているテーブルに含まれているカラムの意味のうちの1つに着目したとする。そのカラムの意味に対応するカラムに格納される属性値のデータ型が数値型であれば、テーブル意味モデル生成部4は、そのカラムの意味に対応する説明変数の値として、その属性値の平均値、分散、および高次モーメントを定めればよい。また、着目しているカラムの意味に対応するカラムに格納されている属性値のデータ型が文字列型であれば、テーブル意味モデル生成部4は、格納されている各属性値の個数や、格納されている各属性値を区切った場合に得られる各文字列の個数を、そのカラムの意味に対応する各説明変数の値として定めればよい。また、テーブル意味モデル生成部4は、着目しているテーブルに含まれていないカラムの意味に対応する各説明変数に対しては値を0に定めればよい。
さらに、テーブル意味モデル生成部4は、各テーブル特徴と学習データに含まれている各テーブルの意味との対応関係に基づいて、テーブル意味集合および、テーブル意味集合に属するテーブルの意味毎のWを定めることで、テーブル意味モデルを生成する。
各テーブル特徴と各テーブルの意味との対応関係に基づいて、テーブル意味モデルを生成する際の、機械学習の方法は特に限定されない。この点は、後述の実施形態でも同様である。
生成されたテーブル意味モデルにおいて、xの要素は変数で表される。一方、テーブルの意味毎に定められるWの要素は、具体的な値である。
テーブル意味モデル記憶部5は、テーブル意味モデル生成部4によって生成されたテーブル意味モデルを記憶する記憶装置である。テーブル意味モデル生成部4は、テーブル意味モデルを生成すると、そのテーブル意味モデルをテーブル意味モデル記憶部5に記憶させる。
テーブル意味推定部6は、テーブル意味モデル記憶部5に記憶されているテーブル意味モデルに基づいて、データ入力部2に入力されたテーブルの意味を推定する。
まず、テーブル意味推定部6は、入力されたテーブルのテーブル特徴を定める。このとき、テーブル意味推定部6は、入力されたテーブルに含まれているカラムの意味、および、そのカラムの意味に対応するカラムに格納されている属性値に基づいて、そのカラムに意味に対応する説明変数の値を定めればよい。例えば、入力されたテーブルに含まれているカラムの意味のうちの1つに着目したとする。そのカラムの意味に対応するカラムに格納される属性値のデータ型が数値型であれば、テーブル意味推定部6は、そのカラムの意味に対応する説明変数の値として、その属性値の平均値、分散、および高次モーメントを定めればよい。また、着目しているカラムの意味に対応するカラムに格納されている属性値のデータ型が文字列型であれば、テーブル意味推定部6は、格納されている各属性値の個数や、格納されている各属性値を区切った場合に得られる各文字列の個数を、そのカラムの意味に対応する各説明変数の値として定めればよい。また、テーブル意味推定部6は、入力されたテーブル内に含まれていないカラムの意味に対応する各説明変数に対しては値を0に定めればよい。
そして、テーブル意味推定部6は、テーブル意味集合からテーブルの意味を1つずつ順に選択し、選択したテーブルの意味に対応するWと、テーブル特徴とを用いて、確度f(x)を計算する。すなわち、テーブル特徴をxdataとすると、テーブル意味推定部6は、WTxdataを計算することによって、確度f(x)を求める。テーブル意味推定部6は、確度が最も高いテーブルの意味を、入力されたテーブルの意味の推定結果として定める。
なお、本実施形態では、テーブル意味モデルが図3に例示するように表され、テーブル意味推定部6が、上記の演算によって、入力されたテーブルの意味を推定する場合を例にして説明する。ただし、テーブル意味モデルの態様は図3に示す態様に限定されない。また、テーブル意味推定部6は、テーブル意味モデルの態様に応じた演算で、入力されたテーブルの意味を推定すればよい。
表示制御部7は、テーブル意味推定システム1が備えるディスプレイ装置(図1において図示略)上に、情報やGUI(Graphical User Interface)を表示する。
テーブル意味推定部6が入力されたテーブルの意味の推定結果を求めると、表示制御部7は、ディスプレイ装置上に、入力されたテーブルおよびその推定結果を表示する。図4は、入力されたテーブルおよびその推定結果の表示画面の例を示す模式図である。図4に示す例では、テーブル意味推定部6が、入力されたテーブルを画面中央付近に表示する場合を示している。また、図4では、「下記テーブルは、“Customer”ですか?」という文章を表示することによって、テーブルの意味の推定結果に該当する“Customer”を表示する場合を例示している。
表示制御部7は、表示したテーブルの意味の推定結果が適切か否かをユーザが入力するためのGUIとして、ボタン51,52も表示する。ボタン51がクリックされたということは、表示したテーブルの意味が適切である旨がユーザによって入力されたことを意味する。一方、ボタン52がクリックされたということは、表示したテーブルの意味が適切でない旨がユーザによって入力されたことを意味する。
ボタン52がクリックされた場合(すなわち、表示したテーブルの意味が適切でない旨の入力を受け付けた場合)、表示制御部7は、データ入力部2に入力されたテーブルの意味として適切な意味の入力を促す画面をディスプレイ装置上に表示する。図5は、この画面の例を示す模式図である。表示制御部7は、データ入力部2に入力されたテーブルを表示するとともに、そのテーブルの意味を入力するためのGUIとして、入力欄53および確認ボタン54を表示する。ユーザは、表示されているテーブル(すなわち、データ入力部2に入力されたテーブル)の意味として適切な意味を、入力欄53に入力する。図5では、テーブルの意味として“Patient” という意味が入力された場合を例示している。ユーザが入力欄53にテーブルの意味を入力し、確認ボタン54をクリックすると、表示制御部7は、入力欄53を介して、テーブルの意味の入力を受け付ける。
学習データ追加部8は、ユーザからの入力に応じて、既存の学習データ(すなわち、既に学習データ記憶部3に記憶されている学習データ)に、学習データを追加する。
具体的には、学習データ追加部8は、図4に例示する画面に表示したテーブルの意味が適切である旨が入力された場合、表示制御部7が表示したテーブルおよびそのテーブルの意味(図4に示す例では“Customer”)の組み合わせを学習データとして、既存の学習データに追加する。
また、学習データ追加部8は、図4に例示する画面に表示したテーブルの意味が適切でない旨が入力された場合、表示制御部7が表示したテーブルと、表示制御部7がユーザから受け付けたテーブルの意味(図5に示す例では“Patient”)との組み合わせを学習データとして、既存の学習データに追加する。
学習データ追加部8によって学習データ記憶部3に学習データが追加された場合、テーブル意味モデル生成部4は、テーブル意味モデルの生成をやり直す。
テーブル意味モデル生成部4、テーブル意味推定部6、表示制御部7および学習データ追加部8は、例えば、テーブル意味推定プログラムに従って動作するコンピュータのCPUによって実現される。この場合、CPUは、例えば、コンピュータのプログラム記憶装置(図1において図示略)等のプログラム記録媒体からテーブル意味推定プログラムを読み込み、そのプログラムに従って、テーブル意味モデル生成部4、テーブル意味推定部6、表示制御部7および学習データ追加部8として動作すればよい。また、テーブル意味モデル生成部4、テーブル意味推定部6、表示制御部7および学習データ追加部8が別々のハードウェアによって実現されていてもよい。これらの点は、後述の他の実施形態でも同様である。
また、テーブル意味推定システム1は、2つ以上の物理的に分離した装置が有線または無線で接続される構成であってもよい。この点は、後述の他の実施形態でも同様である。
以下、本発明の第1の実施形態の処理経過について説明する。
テーブル意味推定システム1は、意味の推定対象のテーブルの入力を受け付ける前に、事前に、テーブル意味モデルを生成する。なお、学習データ記憶部3には、各カラム名がそれぞれカラムの意味に置き換えられたテーブルと、そのテーブルの意味との組み合わせの集合が、学習データとして記憶されているものとする。
テーブル意味モデル生成部4は、その学習データを、学習データ記憶部3から読み込む。
次に、テーブル意味モデル生成部4は、その学習データに基づいて、テーブル意味モデル生成する。このとき、まず、テーブル意味モデル生成部4は、カラムの意味の集合に属する有限個のカラムの意味に基づいて、ベクトルxの要素となる説明変数を決定する。この動作については、既に説明したので、ここでは、説明を省略する。
テーブル意味モデル生成部4は、ベクトルxの要素となる説明変数を決定した後、学習データに含まれているテーブル毎に、テーブル特徴を定める。例えば、図2に示すテーブルのテーブル特徴を定める場合を例にして説明する。
例えば、図3に示すμ1,σ1,m1は、“age” に対応する。テーブル意味モデル生成部4は、図2に示す“age” のカラムの属性値の平均値、分散および高次モーメントを計算し、その計算結果をそれぞれ、μ1,σ1,m1の値とする。
また、例えば、図3に示すx2_1,x2_2,・・・x2_t,x2_p1,x2_p2,・・・,x2_pqは、“job” に対応する。x2_1は、属性値“Engineer”に対応する説明変数であるとする。テーブル意味モデル生成部4は、図2に示す“job” のカラムに格納された“Engineer”の個数をカウントし、そのカウント結果をx2_1の値とする。テーブル意味モデル生成部4は、x2_2,・・・x2_tの値も同様に定める。また、テーブル意味モデル生成部4は、図2に示す“job” のカラムに格納された“Engineer”等の全ての属性値を2文字ずつ区切る。この結果、“En”,“gi”,“ne”,“er”,“Sa”,“le”,“sm”,“an”等の文字列が得られる。なお、属性値の文字数が奇数である場合、例えば、最後の1文字を無視してよい。テーブル意味モデル生成部4は、例えば、得られた“En”という文字列の個数をカウントし、そのカウント結果を、x2_p1,x2_p2,・・・,x2_pqのうち、“En”に対応する説明変数の値とする。テーブル意味モデル生成部4は、同様に、他の文字列“gi”等に対応する説明変数の値も定める。また、テーブル意味モデル生成部4は、属性値を区切ったときにえられなかった文字列に対応する説明変数の値を0とする。
テーブル意味モデル生成部4は、図2に示すテーブルに含まれるカラムの意味毎に、カラムの意味に対応する説明変数の値を、そのテーブルの属性値に基づいて、定めればよい。また、テーブル意味モデル生成部4は、図2に示すテーブルに含まれていないカラムの意味に対応する各説明変数に対しては値を0に定めればよい。
この結果、図2に例示するテーブルのテーブル特徴と、“Customer”というテーブルの意味との組み合わせが定まる。
テーブル意味モデル生成部4は、学習データに含まれている他の各テーブルに関しても同様にテーブル特徴を定め、テーブル特徴とテーブルの意味との組み合わせを定める。
そして、テーブル意味モデル生成部4は、テーブル特徴とテーブルの意味との組み合わせの集合に基づいて、テーブル意味集合を定めるとともに、f(x)=WTxという式におけるベクトルWを、テーブル意味集合に属するテーブルの意味毎に定める。この結果、テーブル意味モデルが定まる。既に説明したように、テーブル意味モデルにおいて、xの要素は変数で表される。一方、テーブルの意味毎に定められるWの要素は、具体的な値である。
テーブル意味モデル生成部4は、生成したテーブル意味モデルをテーブル意味モデル記憶部5に記憶させる。
次に、テーブル意味推定システム1に対して、意味の推定対象となるテーブルが入力された場合の処理経過を説明する。図6および図7は、意味の推定対象となるテーブルが入力された場合の処理経過の例を示すフローチャートである。
まず、データ入力部2にテーブルが入力される(ステップS11)。ステップS11では、各カラム名をそれぞれカラムの意味に置き換える処理が行われたテーブルが入力される。
次に、テーブル意味推定部6は、ステップS11で入力されたテーブルの意味を、テーブル意味モデルに基づいて推定する(ステップS12)。
ステップS12において、テーブル意味推定部6は、テーブル意味モデル記憶部5からテーブル意味モデルを読み込む。
さらに、テーブル意味推定部6は、入力されたテーブルのテーブル特徴を定める。この動作は、テーブル意味モデル生成部4が、学習データ内の1つのテーブルのテーブル特徴を定める動作と同様である。
テーブル特徴は、テーブルにおけるカラムの意味に応じた属性値の分布を表しているということができる。入力されたテーブルに対して定められたテーブル特徴をxdataとする。
そして、テーブル意味推定部6は、テーブル意味集合からテーブルの意味を1つずつ順に選択し、選択したテーブルの意味に対応するWと、テーブル特徴とを用いて、確度f(x)を計算する。既に説明したように、j番目のテーブルの意味に対応するWを、Wjと記す。テーブル意味推定部6は、図3に示す1番目のテーブルの意味“Customer”を選択した場合、“Customer”に対応するW1と、上記のテーブル特徴xdataとを用いて、“Customer”が、入力されたテーブルの意味である確度を、f(x)=W1 Txdataの計算によって求める。テーブル意味推定部6は、“Item”,“Purchasing Log”(図3参照)等の他のテーブルの意味に関してもそれぞれ、同様の演算を行い、選択したテーブルの意味が、入力されたテーブルの意味に該当する確度を求める。
そして、テーブル意味推定部6は、確度が最も高いテーブルの意味を、入力されたテーブルの意味の推定結果として定める。
以下の説明では、テーブル意味推定部6が上記の処理によって、入力されたテーブルの意味が“Customer”であると推定した場合を例にして説明する。
ステップS12の処理が実行された後、表示制御部7は、ステップS11で入力されたテーブルと、ステップS12で推定されたテーブルの意味をディスプレイ装置上に表示し、そのテーブルの意味が適切か否かの入力をユーザに促す(ステップS13)。ステップS13では、表示制御部7は、例えば、図4に示す画面を表示する。図4に示す画面については、既に説明したので、ここでは適宜、説明を省略する。
図4に例示する画面で表示されているテーブルは、ステップS11で入力されたテーブル(意味の推定対象であるテーブル)である。図4に例示する画面で表示されている“Customer”は、ステップS12で推定されたテーブルの意味である。
ステップS13で表示されたテーブルの意味“Customer”が、ステップS13で表示されている画面内のテーブルの意味として適切であるとユーザが判断した場合、ユーザは、ボタン51(図4参照)をクリックする。すなわち、表示制御部7は、表示したテーブルの意味が適切である旨の入力を受け付ける(ステップS14のYes)。
すると、学習データ追加部8は、表示制御部7がステップS13で表示したテーブルと、そのテーブルの意味(推定されたテーブルの意味)との組み合わせを、既存の学習データに追加する(ステップS15)。すなわち、学習データ追加部8は、テーブルと、推定されたテーブルの意味との組み合わせを、学習データ記憶部3に記憶されている学習データに追加する。ステップS15の処理が実行された後、ステップS18に移行する。
また、ステップS13で表示されたテーブルの意味“Customer”が、ステップS13で表示されている画面内のテーブルの意味として適切でないとユーザが判断した場合、ユーザは、ボタン52(図4参照)をクリックする。表示制御部7は、表示したテーブルの意味が適切でない旨の入力を受け付ける(ステップS14のNo)。
すると、表示制御部7は、ステップS13で表示したテーブルの意味の入力をユーザから受け付ける(ステップS16)。表示制御部7は、例えば、図5に示す画面を表示する。図5に示す画面については、既に説明したので、ここでは適宜、説明を省略する。表示制御部7は、ユーザから、例えば、入力欄53(図5参照)を介して、テーブルの意味の入力を受け付ける。ここでは、ステップS13で表示されたテーブルの意味として、“Patient”が適切であるとユーザが判断し、“Patient”が入力されたとする。
次に、学習データ追加部8は、表示制御部7がステップS13で表示したテーブルと、ステップS16で入力されたテーブルの意味(本例では、“Patient” )との組み合わせを、既存の学習データに追加する(ステップS17)。すなわち、学習データ追加部8は、テーブルと、ユーザに入力されたテーブルの意味(本例では、“Patient” )との組み合わせを、学習データ記憶部3に記憶されている学習データに追加する。ステップS17の処理が実行された後、ステップS18に移行する。
ステップS15,S17の何れにおいても、学習データに新たな学習データが追加される。ステップS15またはステップS17からステップS18に移行した場合、テーブル意味モデル生成部4は、その時点で学習データ記憶部3に記憶されている学習データに基づいて、テーブル意味モデルを生成する処理をやり直す(ステップS18)。換言すれば、テーブル意味モデル生成部4は、既存の学習データおよび追加された学習データを用いて、テーブル意味モデルを学習し直す。
本実施形態によれば、テーブル意味モデル生成部4が、テーブルにおけるカラムの意味に応じた属性値の分布からテーブルの意味を推定するための推定モデル(テーブル意味モデル)を生成する。そして、テーブル意味推定部6は、入力されたテーブルにおけるカラムの意味に応じた属性値の分布(具体的には、第1の実施形態におけるテーブル特徴)とテーブル意味モデルに基づいて、そのテーブルの意味を推定する。従って、本実施形態によれば、テーブルの意味を推定することができる。
従って、例えば、典型的分析パターンを用いて自動分析を実施しようとする者は、その分析で用いるテーブルの意味を短時間で把握することができる。
また、例えば、データベースの移行作業が行われ、移行前のデータベース作業者とは異なる作業者が、移行後のテーブルを利用する場合であっても、その作業者は、移行後のテーブルの意味を短時間で把握することができ、移行後のデータベースを円滑に利用することができる。
また、第1の実施形態によれば、テーブル意味推定部6が推定したテーブルの意味が適切か否かをユーザが判断する。そして、そのテーブルの意味が適切であると判断された場合、学習データ追加部8は、ステップS11で入力されたテーブルと、テーブル意味推定部6が推定したテーブルの意味との組み合わせを学習データに追加する。また、推定したテーブルの意味が適切でないと判断された場合、表示制御部7は、ステップS11で入力されたテーブルの意味として適切な意味をユーザから入力され、学習データ追加部8は、ステップS11で入力されたテーブルと、ユーザによって入力されたそのテーブルの意味との組み合わせを学習データに追加する。そして、テーブル意味モデル生成部4は、テーブル意味モデルを生成し直す。従って、テーブル意味モデルの精度を向上させることができる。特に、テーブル意味推定部6が推定したテーブルの意味が適切でないと判断された場合、ユーザが適切と判断したテーブルの意味が学習データに追加されるので、テーブル意味モデルの精度を向上させる効果が大きい。
また、テーブル意味モデル生成部4は、逐次的にテーブル意味モデルを学習し、学習データ内の各テーブルについて、推定の確度を得る構成であってもよい。その際、テーブル意味モデル生成部4は、推定の確度の低いテーブルから順に学習処理をおこなってもよい。その場合、全てのテーブルから学習処理を行う前に、十分な推定精度を達成することができる。
次に、第1の実施形態の変形例について説明する。第1の実施形態では、テーブル意味推定システム1がテーブル意味モデルの生成と、入力されたテーブルの意味の推定とを行う場合を示した。テーブル意味推定システム1とは異なる別のシステム(図示略。以下、学習システムと記す。)がテーブル意味モデルの生成を実行し、テーブル意味推定システム1がテーブル意味モデルの生成を行わない構成であってもよい。図8は、テーブル意味推定システム1がテーブル意味モデルの生成を行わない場合の構成例を示すブロック図である。この場合、学習データ記憶部3およびテーブル意味モデル生成部4(図1参照)は、学習システムに設けられる。学習システムに設けられる学習データ記憶部3およびテーブル意味モデル生成部4は、図1に示すそれらと同様である。テーブル意味推定システム1は、例えば、図8に示すように、データ入力部2と、テーブル意味モデル記憶部5と、テーブル意味推定部6と、表示制御部7とを備える。データ入力部2、テーブル意味モデル記憶部5およびテーブル意味推定部6は、図1に示すそれらと同様である。ただし、テーブル意味モデル記憶部5には、学習システムが生成したテーブル意味モデルが記憶される。学習システムがテーブル意味モデルを学習するので、図8に示すテーブル意味推定システム1は、テーブル意味モデルを学習しなくてよい。また、表示制御部7は、ステップS12の処理が実行された後、ステップS11で入力されたテーブル、および、ステップS12で推定されたテーブルの意味を表示すればよい。このとき、表示制御部7は、ボタン51,52を表示しなくてよい。そして、テーブル意味推定システム1は、入力されたテーブル、および、推定したテーブルの意味を表示し、その時点で、処理を終了してよい。
また、第1の実施形態では、データ入力部2に、各カラム名がそれぞれカラムの意味に置き換えられたテーブルが入力される場合を説明した。そのような置き換えが行われていないテーブルがデータ入力部2に入力される構成であってもよい。すなわち、テーブル作成時に付与されたカラム名をそのまま含むテーブルがデータ入力部2に入力される。図9は、テーブル作成時に付与されたカラム名をそのまま含むテーブルがデータ入力部2に入力される場合の構成例を示すブロック図である。図1に示す構成要素と同様の構成要素については、図1に示す符号と同一の符号を付し、適宜、説明を省略する。以下に説明する構成および動作は、図8に示す構成や、後述の第2の実施形態およびその変形例に適用してもよい。
図9に示すテーブル意味推定システム1は、図1に示す各構成要素に加えて、カラム意味推定部9と、関係性情報記憶部10とを備える。
関係性情報記憶部10は、関係性情報を記憶する記憶装置である。関係性情報とは、「カラムの意味」と「属性値」との関係を表すデータである。カラム意味推定部9は、入力されたテーブルの各カラムの意味を推定するときに、関係性情報を参照する。関係性情報記憶部10には、例えば、予め定められた関係性情報が記憶される。
図10は、属性値のデータ型が文字列型である場合の関係性情報の例を示す模式図である。属性値のデータ型が文字列型である場合、個々の関係性情報は、“A is B”という形式で表されるものとする。具体的には、個々の関係性情報は、“カラムの意味 is 属性値”という形式で表されるものとする。“カラムの意味 is 属性値”は、そのカラムの意味と属性値とが対応付けられていることを意味する。例えば、図10に示す“Name is Sato”は、“Sato”という属性値が“Name”というカラムの意味に対応していることを表している。また、例えば、“Job is Salesman” は、“Salesman”という属性値が“Job” というカラムの意味に対応していることを表している。
また、図11は、属性値のデータ型が数値型である場合の関係性情報の例を示す模式図である。属性値のデータ型が数値型である場合、個々の関係性情報は、カラムの意味と、属性値の平均値、属性値の分散、および、属性値の高次モーメントとの組み合わせで表される。この関係性情報は、カラムに格納されている属性値の平均値、分散、および高次モーメントがそれぞれ、関係性情報が示す平均値、分散、および高次モーメントを基準とする所定閾値範囲内の値であれば、そのカラムの意味は、関係性情報が示している意味であることを表している。所定閾値範囲は、個々の関係性情報の平均値、分散、高次モーメント毎に定めておけばよい。例えば、あるカラム(Cとする。)の属性値の平均値が“31”であり、分散が“9”であり、高次モーメントが“102”であったとする。この平均値“31”は、図11に示す“30”を基準とする所定閾値範囲内であるとする。同様に、分散“9”は、図11に示す“10”を基準とする所定閾値範囲内であり、高次モーメント“102”は、図11に示す“100”を基準とする所定閾値範囲内であるとする。図11に例示する関係性情報に基づいて、上記のカラムCの意味は、“age” であると推定される。
関係性情報を用いることで、属性値が格納されているカラムの意味を推定することができる。
カラム意味推定部9は、データ入力部2に入力されたテーブルのカラム毎に、カラムの意味を推定し、カラム名をカラムの意味に置き換える。
カラム意味推定部9は、1つのカラムに対して、例えば、以下の処理を行うことによって、そのカラムの意味を推定する。
まず、カラム意味推定部9は、そのカラムの属性値のデータ型が文字列型であるか、数値型であるかを判定する。
カラムの属性値のデータ型が文字列型である場合、カラム意味推定部9は、カラム内の属性値毎に、対応する「カラムの意味」を、文字列型に関する関係性情報(例えば、図10に示す関係性情報)を参照して特定する。このとき、1つのカラム内の全ての属性値が同一の「カラムの意味」に対応付けられているとは限らない。そのため、属性値毎にカラムの意味を特定した結果、カラムの意味が複数個得られてもよい。カラム意味推定部9は、特定したカラムの意味毎に、対応する属性値の数をカウントし、対応する属性値の数が最大となっているカラムの意味を、カラムの意味の推定結果とする。例えば、カラムに100個の属性値が格納されていて、そのうち95個の属性値が、“name”というカラムの意味に対応し、残りの5個の属性値が、“job” というカラムの意味に対応していたとする。この場合、カラム意味推定部9は、そのカラムの意味は“name”であると推定する。さらに、カラム意味推定部9は、そのカラムのカラム名を、推定したカラムの意味(本例では“name”)に置き換える。
また、属性値のデータ型が文字列型である場合の関係性情報として、カラムの意味と、各属性値を所定の方法で区切った場合に得られる文字列の分布との対応関係を示す情報が含まれていてもよい。ここでは、文字列型の属性値を2文字ずつ区切る場合を例にして説明する。以下、着目しているカラムの各属性値を2文字ずつ区切った場合に得られる文字列の総数を、文字列総数と記す。例えば、“name”というカラムの意味と、文字列総数に対する“sa”,“to”,“su”,“zu”,“ki”等の各文字列の個数の割合との対応関係が、関係性情報として定められていてもよい。このとき、それぞれの割合には、所定閾値範囲も定められているものする。この場合、カラム意味推定部9は、以下の2つの条件を満たすカラムの意味を、カラムの意味の推定結果として導出すればよい。1つ目の条件は、上記のように、属性値毎に、対応する「カラムの意味」を特定し、そのカラムの意味毎に、対応する属性値の個数をカウントした場合、そのカウント結果が最大となっているという条件である。2つ目の条件は、着目しているカラムの各属性値を2文字ずつ区切ることによって得られた各文字列の文字列総数に対する割合が、関係性情報に定められた割合を基準とする所定閾値範囲内であるという条件である。例えば、上記のように、カラムに100個の属性値が格納されていて、そのうち95個の属性値が、“name”というカラムの意味に対応していた場合、カラムの意味“name”は1つ目の条件(カウント数に関する条件)を満たす。さらに、その100個の属性値をそれぞれ2文字ずつ区切ることで文字列を得た場合に、“sa”等の各文字列の文字列総数に対する割合がそれぞれ、“name”に関連付けられて定められた割合を基準とする閾値範囲内であれば、“name”は2つめの条件(文字列の分布に関する条件)も満たす。カラム意味推定部9は、カラムの意味毎に2つの条件を満たしているか否かを判定し、2つの条件を満たしているカラムの意味を、推定結果としてもよい。
また、カラムの属性値のデータ型が数値型である場合、カラム意味推定部9は、そのカラムに格納されている属性値の平均値、分散、および高次モーメントを計算する。カラム意味推定部9は、計算によって得られた平均値、分散、および高次モーメントがそれぞれ、関係性情報が示す平均値、分散、および高次モーメントを基準とする所定閾値範囲内の値であるという条件を満たすか否かを、数値型に関する個々の関係性情報(例えば、図11に示す関係性情報)毎に判定する。カラム意味推定部9は、その条件を満たす関係性情報が示しているカラムの意味を、着目しているカラムの意味として推定する。そして、カラム意味推定部9は、そのカラムのカラム名を、推定したカラムの意味に置き換える。例えば、前述の例のように、あるカラムCの属性値の平均値が“31”であり、分散が“9”であり、高次モーメントが“102”であったとする。カラム意味推定部9は、図11に例示する関係性情報に基づいて、カラムCの意味を“age” と推定し、カラムCのカラム名を、“age” に置き換える。
カラム意味推定部9は、上記の処理を、入力されたテーブルのカラム毎に実行する。
カラム意味推定部9は、例えば、テーブル意味推定プログラムに従って動作するコンピュータのCPUによって実現される。
図9に示す構成の場合、テーブル作成時に付与されたカラム名をそのまま含むテーブルが、データ入力部2に入力される。次に、カラム意味推定部9は、入力されたテーブルのカラム毎に、カラムの意味を推定し、カラム名をカラムの意味に置き換える。例えば、“Familyname”,“Age group”,“Class”,“Customer_job”というカラム名が付与されたテーブルが入力され、カラム意味推定部9が、そのテーブル内のカラムの属性値に基づいて、カラム毎に“name”,“age”,“sex”,“job” というカラムの意味を推定したとする。すると、カラム意味推定部9は、“Familyname”,“Age group”,“Class”,“Customer_job”というカラム名をそれぞれ、“name”,“age”,“sex”,“job” というカラムの意味の意味に置き換える。
カラム意味推定部9は、各カラム名をカラムの意味に置き換えたテーブルをテーブル意味推定部6に送る。
この後の処理は、第1の実施形態におけるステップS12以降の処理と同様である。
また、図9に示す構成において、ユーザは、学習データの生成のために、テーブル作成時に付与されたカラム名をそのまま含むテーブルとそのテーブルの意味との組み合わせの集合をテーブル意味推定システム1に入力してもよい。このとき、カラム意味推定部9が、入力された各テーブルのカラム毎に、カラムの意味を推定し、カラム名をカラムの意味に置き換える処理を行い、その処理を行った後のテーブルおよびテーブルの意味の組み合わせの集合を学習データとして、学習データ記憶部3に記憶させてもよい。
図9に示す構成においても、第1の実施形態と同様の効果が得られる。
また、図9に示す構成の場合、カラム意味推定部9が、入力されたテーブル内のカラム毎に、カラムの意味を推定し、カラム名をカラムの意味に置き換える。従って、データ入力部2に入力されるテーブルは、各カラム名をそれぞれカラムの意味に置き換える前処理を施したテーブルでなくてよい。すなわち、ユーザは、付与されたカラム名をそのまま含むテーブルをデータ入力部2に入力してよい。
また、学習データに含まれる各テーブルに、カラムの意味ではなく、カラム名が付与されている場合を考える。前述のように、一般に、カラム名は、人間によって決定されるので、カラム名には表記ゆれが生じる。すると、カラム名を有限個に定めることは困難である。その結果、図3に示すテーブル意味モデルにおいて、x,Wの要素を有限個に定めることが困難となり、図3に示すテーブル意味モデルを生成することも困難となる。その結果、テーブル意味推定部6がテーブルの意味を推定できないことになる。それに対して、図9に示す構成では、カラム意味推定部9が、入力されたテーブル内のカラム毎に、カラムの意味を推定し、カラム名をカラムの意味に置き換える。従って、テーブル意味推定部6がテーブルの意味を推定できる。
また、仮に、カラム名を有限個に定めることができ、図3に示すテーブル意味モデルを生成できたとしても、カラム名の個数は、カラムの意味の個数に比べて、膨大な数となる。従って、テーブル意味モデルにおけるベクトルW,xの要素の個数(次元数)も膨大な数になる。すると、テーブル意味モデル生成部4がテーブル意味モデルを生成する処理や、テーブル意味推定部6がテーブルの意味を推定する処理の処理負荷が非常に大きくなる。図9に示す構成では、カラム意味推定部9が、入力されたテーブル内のカラム毎に、カラムの意味を推定し、カラム名をカラムの意味に置き換えるので、そのような処理負荷の増加を防ぐことができる。
実施形態2.
第1の実施形態およびその変形例では、テーブルにおけるカラムの意味に応じた属性値の分布からテーブルの意味を推定するためのテーブル意味モデルが生成される。そして、テーブル意味推定部6は、入力されたテーブルに基づいて、テーブルにおけるカラムの意味に応じた属性値の分布を表すテーブル特徴を定め、そのテーブル特徴と、テーブル意味モデルとに基づいて、入力されたテーブルの意味を推定する。
これに対して、第2の実施形態では、テーブルにおけるカラムの意味に応じた属性値の分布およびそのテーブルに関する参照関係から、そのテーブルの意味を推定するためのテーブル意味モデルが作成される。また、第2の実施形態では、データ入力部2に複数のテーブルが入力される。テーブル意味推定部6は、個々のテーブル毎に、テーブルにおけるカラムの意味に応じた属性値の分布およびそのテーブルに関する参照関係を表すテーブル特徴を定める。テーブル意味推定部6は、そのテーブル特徴と、テーブル意味モデルとに基づいて、入力された各テーブルの意味を推定する。さらに、テーブル意味推定部6は、各テーブルの意味の推定結果を確定するまでに、入力された各テーブルの意味を推定する処理を複数回繰り返す。
第2の実施形態のテーブル意味推定システムは、第1の実施形態のテーブル意味推定システムと同様に、図1に示すブロック図で表すことができるので、図1を用いて第2の実施形態を説明する。第1の実施形態と同様の事項については、適宜、説明を省略する。
まず、第2の実施形態におけるテーブル意味モデルについて説明する。図12は、第2の実施形態におけるテーブル意味モデルの例を示す説明図である。図12に示すW,xはいずれも列ベクトルであるが、適宜、W,xを行ベクトルの転置行列として示す。
第2の実施形態では、ベクトルxの要素は、テーブルの意味毎にユーザから指定された情報によって定められる。従って、ベクトルxは、テーブルの意味毎に異なる。Wもテーブルの意味毎に定められる。従って、xとWは、一対一に対応している。図3では、1つのテーブルの意味に対応するxおよびWを例示している。
xは、ユーザによって指定されたカラムの意味に対応する説明変数を要素として持つ。1つのカラムの意味に対して、複数の説明変数が対応する。
図12に示す説明変数μ1,σ1,m1は、図3に示すμ1,σ1,m1と同様である。また、図12に示す説明変数x2_1,x2_2,・・・x2_t,x2_p1,x2_p2,・・・,x2_pqは、図3に示すx2_1,x2_2,・・・x2_t,x2_p1,x2_p2,・・・,x2_pqと同様である。例えば、例えば、“age” というカラムの意味の識別番号が1であり、“job” というカラムの意味の識別番号が2であるとする。図12では、“age”および“job”という2つのカラムの意味が指定されたテーブルの意味に対応するxを例示している。
なお、属性値のデータ型が数値型であるカラムの意味に対応する説明変数の規定の仕方や、属性値のデータ型が文字列型であるカラムの意味に対応する説明変数の規定の仕方は、第1の実施形態と同様である。
テーブルの意味毎にxがどのカラムの意味に対応する説明変数を有するのかは、ユーザによって指定される。ユーザがこの指定を行うためのGUIについては、後述する。
また、xは、指定されたカラムの意味に対応する説明変数の他に、テーブルの参照関係を表す説明変数xreferencedおよびxreferを有する。xは、テーブルの意味に依存せずに、xreferencedおよびxreferを有する。以下、あるテーブルが他のテーブルを参照する場合、参照する側のテーブルを参照元テーブルと記す。また、参照される側のテーブルを参照先テーブルと記す。参照元テーブルは、例えば、参照キーを介して、参照先テーブルを参照する。
xreferencedは、xに対応するテーブルの意味を有するテーブルを参照している参照元テーブルが存在し、その参照元テーブルがユーザに指定されたテーブルの意味を有しているという条件を満たしているか否かを示す説明変数である。以下、この参照元テーブルを符号Sで表す。また、以下、この条件を第1の条件と記す。第1の条件が満たされていれば、xreferenced=1であり、第1の条件が満たされていなければ、xreferenced=0である。
xreferは、上記の参照元テーブルSが参照している参照先テーブルが存在し、かつ、その参照先テーブルがユーザに指定されたテーブルの意味を有し、さらに、ユーザに指定されたカラムの意味を含んでいるという条件を満たしているか否かを示す変数である。以下、この参照先テーブルを符号Dで表す。以下、この条件を第2の条件と記す。第2の条件が満たされていれば、xrefer=1であり、第2の条件が満たされていなければ、xrefer=0である。
どのテーブルの意味に対応するxであっても、要素の数は有限個である。
また、テーブル意味モデルには、テーブル意味集合も含まれる。この点は、第1の実施形態と同様である。テーブル意味集合に属しているテーブルの意味の個数をk個とする。
前述のように、Wは、テーブルの意味毎に定められる。テーブルの意味の個数はk個であるのでは、ベクトルWは、k個定められることになる。Wの要素数は、Wに対応するxの要素数と等しい。また、Wの任意のa番目の要素は、xのa番目の要素に対応している。例えば、図12に示す例において、Wの1番目の要素w1_μは、xの1番目の要素μ1に対応している。
また、第2の実施形態におけるf(x)は、テーブルが与えられ、テーブル意味集合からテーブルの意味を1つ選択した場合に、選択したテーブルの意味が、与えられたテーブルの意味に該当するか否かを表す。すなわち、f(x)は、二値の値をとる。
第2の実施形態におけるテーブル意味モデルは、テーブルにおけるカラムの意味に応じた属性値の分布およびそのテーブルに関する参照関係と、テーブルの意味との間の規則性を示すモデルであるということができる。
次に、本実施形態の学習データについて説明する。学習データは、テーブルと、そのテーブルの意味と、そのテーブルの意味を表す特徴的なカラムの意味と、そのテーブルに関する参照関係を示すデータとの組み合わせの集合である。図13は、この組み合わせの一例を示す模式図である。
図13に例示するテーブルの意味等の各情報は、テーブルに応じて、ユーザが指定する。例えば、図13に示すテーブルの意味“Customer”、カラムの意味“name”,“age”,“job”、テーブルに関する参照関係を示すデータは、ユーザによって指定される。なお、ユーザによって、テーブルの意味“Customer”と、カラムの意味“name”,“age”,“job”が対応付けられることによって、“Customer”に対応するxは、“name”,“age”,“job”に対応する説明変数を含み、他のカラムの意味に対応する説明変数は含まないことになる。
テーブルに関する参照関係を示すデータは、例えば、図13に示すテーブルの参照元テーブルSの意味、図13に示すテーブルと参照元テーブルが共通に含むカラムの意味、参照元テーブルSの参照先テーブルDの意味、および、参照先テーブルDが含むカラムの意味である。
表示制御部7は、学習データとなるテーブルが入力されると、ユーザに情報の指定を促すGUIを表示し、ユーザによって指定された情報を受け付ける。なお、本実施形態では、カラム名をカラムの意味に置き換える前処理が行われたテーブルが入力されるものとして説明する。
学習データ追加部8は、そのテーブルと、ユーザによって指定された情報との組み合わせ(例えば、図13に示す組み合わせ)を学習データとして、学習データ記憶部3に記憶させる。この結果、学習データ記憶部3は、図13に例示する組み合わせの集合を学習データとして記憶する。
テーブル意味モデル生成部4は、その学習データを用いて、テーブル意味モデルを生成する。テーブル意味モデル生成部4は、学習データに含まれるテーブルの意味毎に、テーブルの意味に対応するxを定める(具体的には、xの要素となる説明変数)を定める。
次に、テーブル意味モデル生成部4は、学習データに含まれているテーブル毎に、テーブル特徴を定める。
さらに、テーブル意味モデル生成部4は、各テーブル特徴と学習データに含まれている各テーブルの意味との対応関係に基づいて、テーブル意味集合および、テーブル意味集合に属するテーブルの意味毎のWを定めることで、テーブル意味モデルを生成する。
生成されたテーブル意味モデルにおいて、xの要素は変数で表される。一方、テーブルの意味毎に定められるWの要素は、具体的な値である。
テーブル意味モデル生成部4は、生成したテーブル意味モデルをテーブル意味モデル記憶部5に記憶させる。
データ入力部2には、意味の推定対象となるテーブルが複数入力される。前述のように、本実施形態では、カラム名をカラムの意味に置き換える前処理が行われたテーブルが入力されるものとする。
テーブル意味推定部6は、入力された各テーブルに対してテーブルの意味を推定する推定処理を複数回実行することにより、各テーブルの意味の推定結果を確定する。この推定処理の実行回数は、予め定めておけばよい。
テーブル意味推定部6は、各回の推定処理で、入力された各テーブルに対して、以下の処理を行う。テーブル意味推定部6は、テーブル意味集合からテーブルの意味を選択し、そのテーブルの意味に対応するxを用いて、データ特徴を定める。すなわち、テーブル意味推定部6は、選択したテーブルの意味に対応するxの要素である各説明変数の値を定めることによって、データ特徴を定める。このデータ特徴をxdataとする。テーブル意味推定部6は、選択したテーブルの意味に対応するWとxdataとにより、WTxdataを計算し、選択したテーブルの意味が、与えられたテーブルの意味に該当するか否かを判断する。テーブル意味推定部6は、他のテーブルの意味に関しても、順次、選択し、同様の演算を行う。従って、1回の推定処理で、1つのテーブルに対する意味の推定結果として、複数のテーブルの意味が得られる場合がある。
テーブル意味推定部6が推定処理を複数回行う理由について説明する。本実施形態では、各ベクトルxは、テーブルの意味に依存せずに、xreferencedおよびxreferを有する。そして、xreferencedおよびxreferの値を決定する際に、他のテーブルが有するテーブルの意味も参照する。複数のテーブルが入力された時点で、各テーブルの意味は不明であるので、初回の推定処理では、各ベクトルxのxreferencedおよびxreferは、必ず0となる。推定処理の結果、あるテーブルに関して、テーブルの意味が得られた場合、そのテーブルが、その意味を有していることとして、次の推定処理を行うことができる。そのため、次の推定処理では、xreferencedおよびxreferの値が更新される。すなわち、データ特徴が更新され、テーブル特徴の精度が向上する。従って、推定したテーブルの意味を用いて、各テーブルの意味を推定し直すことを繰り返すことで、テーブル特徴の精度が向上し、その結果、各テーブルの意味の推定結果の精度も向上する。よって、本実施形態では、テーブル意味推定部6は、入力された各テーブルに対してテーブルの意味を推定する推定処理を複数回実行する。
表示制御部7は、各テーブルと、推定した各テーブルの意味とを表示するとともに、推定結果が適切であるか否かをユーザが入力するためのGUIを表示する。
表示制御部7は、テーブルの意味の推定結果が適切でない旨の入力をユーザから受け付けた場合、そのテーブルの意味およびそのテーブルに関する参照関係の入力をユーザから受け付ける。その場合、学習データ追加部8は、そのテーブルと、表示制御部7がユーザから入力されたそのテーブルの意味およびそのテーブルに関する参照関係との組み合わせを、学習データとして、既に学習データ記憶部3に記憶されている学習データに追加する。さらに、その場合、テーブル意味モデル生成部4は、テーブル意味モデルを学習し直す。
次に、第2の実施形態の処理経過について説明する。
まず、テーブル意味推定システム1が学習データを記憶する際の処理経過について説明する。図14は、テーブル意味推定システム1が学習データを記憶する際の処理経過の例を示すフローチャートである。なお、以下に示す処理を行う場合、テーブル意味推定システム1は、例えば、ユーザの操作により、学習データ記憶処理を実行する旨の指示を受けているものとする。
まず、データ入力部2に、学習データとなるテーブルが入力される(ステップS21)。本例では、テーブルが1つずつ入力され、テーブルが入力される毎に、テーブル意味推定システム1がステップS22〜S25を実行するものとする。
ステップS21の次に、表示制御部7は、入力されたテーブルを表示し、そのテーブルの意味の入力、および、そのテーブルの意味を表す特徴的なカラムの意味の指定を受け付ける(ステップS22)。
図15は、ステップS22で表示制御部7がディスプレイ装置上に表示する画面の例を示す説明図である。図15に示すように、表示制御部7は、入力されたテーブルを画面内に表示する。入力欄61は、ユーザがそのテーブルの意味を入力するための入力欄である。また、表示制御部7は、テーブルが含むカラムの意味毎(換言すれば、カラム毎)に、チェックボックス62を表示する。チェックボックス62は、ユーザがそのテーブルの意味を表す特徴的なカラムの意味を指定するためのGUIである。ユーザが入力欄61にテーブルの意味を入力し、指定しようとするカラムの意味に対応するチェックボックスにチェックを入れた後、ボタン63をクリックすると、表示制御部7は、テーブルの意味と、指定されたカラムの意味の入力を受け付ける。図15では、テーブルの意味として“Customer”が入力され、また、“Customer”に対応するカラムの意味として、“name”,“age”,“job”が指定された場合を例示している。
次に、表示制御部7は、入力されたテーブルの参照元テーブルSの意味、および、入力されたテーブルと参照元テーブルSが共通に含むカラムの意味の入力を受け付ける(ステップS23)。
図16は、ステップS23で表示制御部7がディスプレイ装置上に表示する画面の例を示す説明図である。表示欄64は、入力欄61に入力されたテーブルの意味(本例では“Customer”)を表示する表示欄である。入力欄65は、入力されたテーブルを参照する参照元テーブルSの意味を入力するための入力欄である。入力欄66は、入力されたテーブルと参照元テーブルSとが共通に有するカラムの意味を入力するための入力欄である。追加ボタン67は、入力欄66を追加するためのボタンである。また、表示制御部7は、入力欄65を追加するためのボタン(図示略)を表示してもよい。ユーザが参照元テーブルSの意味およびカラムの意味を入力した後、ボタン68をクリックすると、表示制御部7は、その参照元テーブルSの意味およびカラムの意味の入力を受け付ける。図16では、参照元テーブルSの意味として“Purchasing Log”が入力され、カラムの意味として“name”が入力された場合を例示している。
次に、表示制御部7は、参照元テーブルSが参照している参照先テーブルDの意味、および、その参照先テーブルDの意味を表す特徴的なカラムの意味の入力を受け付ける(ステップS24)。参照先テーブルDの意味を表す特徴的なカラムの意味は、参照先テーブルDに含まれている。
図17は、ステップS24で表示制御部7がディスプレイ装置上に表示する画面の例を示す説明図である。表示欄70は、入力欄65に入力された参照元テーブルSの意味(本例では“Purchasing Log”)を表示する表示欄である。入力欄69は、参照元テーブルSが参照している参照先テーブルDの意味を入力するための入力欄である。入力欄71は、参照先テーブルDの意味を表す特徴的なカラムの意味を入力するための入力欄である。追加ボタンは、入力欄71を追加するためのボタンである。ユーザが参照先テーブルDの意味およびカラムの意味を入力した後、ボタン73をクリックすると、表示制御部7は、その参照元テーブルSの意味およびカラムの意味の入力を受け付ける。図17では、参照先テーブルDの意味として“Item”が入力され、カラムの意味として“Price” および“ItemName”が入力された場合を例示している。
次に、学習データ追加部8は、入力されたテーブルと、ステップS22〜S24で入力された情報との組み合わせを学習データ記憶部3に記憶させる(ステップS25)。本例では、学習データ追加部8は、入力されたテーブルと、そのテーブルの意味“Customer”と、ユーザに指定されたそのテーブル内のカラムの意味“name”,“age”,“job”と、参照元テーブルSの意味“Purchasing Log”と、ユーザに指定されたカラムの意味“name”と、参照先テーブルDの意味“Item”と、ユーザに指定された照先テーブルD内のカラムの意味“Price”,“ItemName”との組み合わせを学習データ記憶部3に記憶させる(図15〜17を参照)。
テーブルが入力される毎に、テーブル意味推定システム1がステップS22〜S25を実行することで、学習データ記憶部3に学習データが蓄積される。
次に、テーブル意味モデル生成処理の処理経過の例について説明する。学習データ記憶部3には学習データが記憶されているものとする。
テーブル意味モデル生成部4は、入力欄61を介して入力されたテーブルの意味毎に、xの要素を定める。
このとき、テーブル意味モデル生成部4は、入力欄61を介して入力されたテーブルの意味の中から、1つのテーブルの意味を選択し、そのテーブルの意味に対応するカラムの意味(チェックボックス62を介して指定されたカラムの意味)を特定する。そして、テーブル意味モデル生成部4は、そのカラムの意味毎に、カラムの意味に対応する説明変数を規定する。テーブル意味モデル生成部4は、属性値のデータ型が数値型であるカラムの意味に対応する説明変数として、3つの説明変数(属性値の平均値を表す説明変数、属性値の分散を表す説明変数、属性値の高次モーメントを表す説明変数)を定め、xの要素として規定する。また、テーブル意味モデル生成部4は、属性値のデータ型が文字列型であるカラムの意味に対する説明変数として、文字列型属性値の第1説明変数および文字列型属性値の第2説明変数をそれぞれ複数個定め、xの要素として規定する。文字列型属性値の第1説明変数および文字列型属性値の第2説明変数の定め方は、第1の実施形態と同様である。さらに、テーブル意味モデル生成部4は、テーブルの意味に依存せずに、xreferencedおよびxreferをxの要素として規定する。
テーブル意味モデル生成部4は、他のテーブルの意味も順次、選択し、上記と同様の処理によって、テーブルの意味に対応するxを定めればよい。
次に、テーブル意味モデル生成部4は、入力欄61を介して入力されたテーブルの意味毎に、テーブル特徴を定める。
テーブル意味モデル生成部4は、入力欄61を介して入力されたテーブルの意味の中から、1つのテーブルの意味を選択し、そのテーブルの意味に対応する説明変数の値を求めることによって、そのテーブルの意味に対応するテーブル特徴を定める。属性値のデータ型が数値型であるカラムの意味に対応する説明変数の値の定め方は、第1の実施形態と同様である。属性値のデータ型が文字列型であるカラムの意味に対応する説明変数の値の定め方も、第1の実施形態と同様である。
また、テーブル意味モデル生成部4は、選択したテーブルの意味に対応するテーブルを参照する参照元テーブルSが学習データ内に存在し、その参照元テーブルSが入力欄65を介してユーザに指定されたテーブルの意味を有しているという条件(第1の条件)が満たされているか否かを判定する。テーブル意味モデル生成部4は、その条件が満たされているならば、xreferenced=1とし、その条件が満たされていなければ、xreferenced=0とする。
また、テーブル意味モデル生成部4は、その参照元テーブルSが参照する参照先テーブルDが学習データ内に存在し、かつ、参照先テーブルDが入力欄69を介してユーザに指定されたテーブルの意味を有し、さらに、入力欄71を介してユーザに指定されたカラムの意味を含んでいるという条件(第2の条件)が満たされているか否かを判定する。テーブル意味モデル生成部4は、その条件が満たされているならば、xrefer=1とし、その条件が満たされていなければ、xrefer=0とする。
テーブル意味モデル生成部4は、他のテーブルの意味も順次、選択し、上記と同様の処理によって、テーブル特徴を定める。
次に、テーブル意味モデル生成部4は、各テーブル特徴と各テーブルの意味との対応関係に基づいて、テーブル意味集合および、テーブル意味集合に属するテーブルの意味毎のWを定めることで、テーブル意味モデルを生成する。
テーブル意味モデル生成部4は、生成したテーブル意味モデルをテーブル意味モデル記憶部5に記憶させる。
次に、意味の推定対象となるテーブルが入力された場合の処理経過を説明する。図18および図19は、意味の推定対象となるテーブルが入力された場合の処理経過の例を示すフローチャートである。
まず、データ入力部2に、意味の推定対象となるテーブルが複数個、入力される(ステップS31)。
テーブル意味推定部6は、入力された各テーブルに対してテーブルの意味を推定する推定処理を所定回数実行し、各テーブルの意味の推定結果を確定する(ステップS32)。
テーブル意味推定部6は、各回の推定処理で、入力された各テーブルに対して、以下の処理を行う。
テーブル意味推定部6は、テーブル意味集合からテーブルの意味を選択し、そのテーブルの意味に対応するxを用いて、データ特徴を定める。このとき、属性値のデータ型が数値型であるカラムの意味に対応する説明変数の値の定め方は、第1の実施形態と同様である。属性値のデータ型が文字列型であるカラムの意味に対応する説明変数の値の定め方も、第1の実施形態と同様である。
また、テーブル意味推定部6は、着目しているテーブルを参照する参照元テーブルが、ステップS31で入力されたテーブル群の中に存在し、その参照元テーブルが、選択中のテーブルの意味に対応付けられた参照元テーブルの意味を有しているという条件(第1の条件)が満たされているか否かを判定する。テーブル意味推定部6は、その条件が満たされているならば、xreferenced=1とし、その条件が満たされていなければ、xreferenced=0とする。
また、テーブル意味推定部6は、その参照元テーブルが参照する参照先テーブルが、ステップS31で入力されたテーブル群の中に存在し、かつ、その参照先テーブルが、選択中のテーブルの意味に対応付けられた参照先テーブルの意味を有し、さらに、選択中のテーブルの意味に対応付けられたカラムの意味(入力欄71を介して指定されたカラムの意味)を含んでいるという条件(第2の条件)が満たされているか否かを判定する。テーブル意味推定部6は、その条件が満たされているならば、xrefer=1とし、その条件が満たされていなければ、xrefer=0とする。
テーブル意味推定部6は、定めたテーブル特徴(xdataとする。)と、選択中のテーブルの意味に対応するWとを用いて、WTxdataを計算することによって、選択中のテーブルの意味が、着目しているテーブルの意味に該当するかを判定する。
テーブル意味推定部6は、他のテーブルの意味も順次、選択し、上記と同様の処理を行う。
テーブル意味推定部6は、各テーブルに対してテーブルの意味を推定する推定処理を所定回数実行した時点で、得られた各テーブルの意味の推定結果を、それぞれ、推定結果として確定する。
次に、表示制御部7は、ステップS31で入力された各テーブル、および、推定された各テーブルの意味を表示し、その各テーブルの意味が適切か否かの入力をユーザに促す(ステップS33)。
表示制御部7は、各テーブルを表示するとともに、テーブル毎に、推定されたテーブルの意味と、そのテーブルの意味が適切であるか否かをユーザが入力するためのGUIとをディスプレイ装置上に入力すればよい。
ユーザは、テーブル毎に、推定されたテーブルの意味が適切であるか否かを判断し、その判断に応じて、上記のGUIに対して入力を行う。この結果、表示制御部7は、テーブル毎に、テーブルの意味が適切である旨の入力、または、テーブルの意味が適切でない旨の入力を受け付ける。
適切でないと判断されたテーブルの意味がない場合(ステップS34のNo)、処理を終了する。
また、適切でないと判断されたテーブルの意味がある場合(ステップS34のYes)、表示制御部7および学習データ追加部8は、テーブルの意味が適切でないと判断されたテーブルと、そのテーブルの意味と、そのテーブルに関する参照関係との組み合わせを学習データとして、既存の学習データに追加する(ステップS35)。ステップS35では、表示制御部7および学習データ追加部8は、テーブルの意味が適切でないと判断されたテーブルに関して、ステップS22〜S25(図14参照)と同様の処理を行えばよい。
ステップS35の処理が実行された後、テーブル意味モデル生成部4は、その時点で学習データ記憶部3に記憶されている学習データに基づいて、テーブル意味モデルを生成する処理をやり直す(ステップS36)。換言すれば、テーブル意味モデル生成部4は、既存の学習データおよび追加された学習データを用いて、テーブル意味モデルを学習し直す。
本実施形態によれば、テーブル意味モデル生成部4が、テーブルにおけるカラムの意味に応じた属性値の分布およびそのテーブルに関する参照関係から、そのテーブルの意味を推定するためのテーブル意味モデルを生成する。そして、テーブル意味推定部6は、入力されたテーブルにおけるカラムの意味に応じた属性値の分布およびそのテーブルに関する参照関係と、テーブル意味モデルとに基づいて、テーブルの意味を推定する。従って、本実施形態によれば、テーブルの意味を推定することができる。
従って、第1の実施形態と同様の効果が得られる。
また、第2の実施形態によれば、ユーザは、図15に例示する画面を介して、テーブルの意味毎に、カラムの意味を指定する。表示制御部7は、指定されたカラムの意味を受け付ける。そして、テーブル意味モデル生成部4は、テーブルの意味毎にxを定めるときに、ユーザに指定されたカラムの意味に応じた説明変数を要素として含むようにxを定める。従って、それぞれのxの要素数を少なくすることができる。
第2の実施形態においても、テーブル意味推定システム1とは異なる学習システム(図示略)がテーブル意味モデルの生成を実行し、テーブル意味推定システム1がテーブル意味モデルの生成を行わない構成であってもよい。この場合、テーブル意味推定システム1は、図8に示す構成と同様の構成とすることができる。この場合、学習データ記憶部3、テーブル意味モデル生成部4、学習データ追加部8、および、ステップS21〜S25を実行するための表示制御部7の機能は、学習システムに実装される。また、テーブル意味推定システム1は、例えば、データ入力部2と、テーブル意味モデル記憶部5と、テーブル意味推定部6と、表示制御部7とを備える(図8参照)。データ入力部2と、テーブル意味モデル記憶部5と、テーブル意味推定部6と、表示制御部7は、上記の第2の実施形態におけるそれらと同様である。ただし、テーブル意味モデル記憶部5には、学習システムが生成したテーブル意味モデルが記憶される。また、表示制御部7は、ステップS32の処理が実行された後、入力された各テーブルと、推定された各テーブルの意味を表示し、その時点で処理を終了してよい。
第2の実施形態およびその変形例において、テーブル意味推定システム1がカラム意味推定部9と関係性情報記憶部10とを備えていてもよい。その場合、データ入力部2には、カラム名をそのまま含むテーブルが入力される。ステップS31の処理が実行された後、カラム意味推定部9が、入力された各テーブルの各カラムに対して、カラムの意味を推定し、各カラム名をカラムの意味に置き換える。その後、テーブル意味推定システム1は、ステップS32以降の処理を実行すればよい。また、ステップS21の処理が実行された後、カラム意味推定部9が、入力されたテーブルの各カラムに対して、カラムの意味を推定し、各カラム名をカラムの意味に置き換える。その後、テーブル意味推定システム1は、ステップS22以降の処理を実行すればよい。
また、第1の実施形態において、表示制御部7は、例えば、図15に示す画面と同様の画面を表示することによって、テーブルの意味毎に、カラムの意味の指定を受け付けてもよい。そして、テーブル意味モデル生成部4は、テーブル意味モデルを生成する際、テーブルの意味毎に、xの説明変数を定めてもよい。すなわち、テーブル意味モデル生成部4は、あるテーブルの意味に対応するxを定める場合に、そのxの要素として、指定されたカラムの意味に対応する説明変数のみを定めてもよい。
図20は、本発明の各実施形態に係るコンピュータの構成例を示す概略ブロック図である。コンピュータ1000は、CPU1001と、主記憶装置1002と、補助記憶装置1003と、インタフェース1004と、ディスプレイ装置1005と、入力デバイス1006とを備える。図20に示す例では、入力デバイス1006がデータ入力部2に相当する。
本発明の各実施形態のテーブル意味推定システム1は、コンピュータ1000に実装される。テーブル意味推定システム1の動作は、プログラム(テーブル意味推定プログラム)の形式で補助記憶装置1003に記憶されている。CPU1001は、プログラムを補助記憶装置1003から読み出して主記憶装置1002に展開し、そのプログラムに従って上記の処理を実行する。
補助記憶装置1003は、一時的でない有形の媒体の例である。一時的でない有形の媒体の他の例として、インタフェース1004を介して接続される磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ1000に配信される場合、配信を受けたコンピュータ1000がそのプログラムを主記憶装置1002に展開し、上記の処理を実行してもよい。
また、プログラムは、前述の処理の一部を実現するためのものであってもよい。さらに、プログラムは、補助記憶装置1003に既に記憶されている他のプログラムとの組み合わせで前述の処理を実現する差分プログラムであってもよい。
また、各装置の各構成要素の一部または全部は、汎用または専用の回路(circuitry )、プロセッサ等やこれらの組み合わせによって実現される。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各装置の各構成要素の一部または全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
各装置の各構成要素の一部または全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
次に、本発明の概要について説明する。図21は、本発明の概要を示すブロック図である。本発明のテーブル意味推定システムは、学習手段71と、推定手段72とを備える。
学習手段71(例えば、テーブル意味モデル生成部4)は、カラムの意味を含むテーブルと当該テーブルの意味とを含む学習データに基づいて、テーブルにおけるカラムの意味に応じた属性値の分布とテーブルの意味との間の規則性を示すモデル(例えば、テーブル意味モデル)を学習する。
推定手段72(例えば、テーブル意味推定部6)は、入力されるテーブルにおけるカラムの意味に応じた属性値の分布とモデルとに基づいて、そのテーブルの意味を推定する。
そのような構成により、テーブルの意味を推定することができる。
また、入力されるテーブルのカラムの属性値から、カラムの意味を推定するカラム意味推定手段(例えば、カラム意味推定部9)を備え、推定手段72が、推定されたカラムの意味に応じた属性値の分布と、モデルとに基づいて、テーブルの意味を推定する構成であってもよい。
また、推定されたテーブルの意味を表示し、当該テーブルの意味が適切か否かに関する入力をユーザから受け付ける表示制御手段(例えば、表示制御部7)と、ユーザからの入力に応じて、学習データを追加する学習データ追加手段(例えば、学習データ追加部8)とを備える構成であってもよい。
また、表示制御手段が、表示したテーブルの意味が適切でない旨の入力をユーザから受け付けた場合、テーブルの意味の入力をユーザから受け付け、学習データ追加手段が、テーブルの意味が適切である旨が入力された場合、テーブルと、表示制御手段が表示したテーブルの意味との組み合わせを学習データとして、既存の学習データに追加し、テーブルの意味が適切でない旨が入力された場合、テーブルと、表示制御手段がユーザから受け付けたテーブルの意味との組み合わせを学習データとして、既存の学習データに追加し、学習手段が、学習データが追加された場合に、既存の学習データおよび追加された学習データを用いて、モデルを学習し直す構成であってもよい。
また、図21に示す構成において、学習手段71および推定手段72が以下のように動作してもよい。
学習手段71(例えば、テーブル意味モデル生成部4)は、カラムの意味を含むテーブルと当該テーブルの意味とを含むとともに、テーブルの参照関係を示すデータとを含む学習データに基づいて、テーブルにおけるカラムの意味に応じた属性値の分布およびテーブルに関する参照関係とテーブルの意味との間の規則性を示すモデルを学習する。
推定手段72(例えば、テーブル意味推定部6)は、入力されるテーブルにおけるカラムの意味に応じた属性値の分布およびテーブルに関する参照関係とモデルとに基づいて、テーブルの意味を推定する。
この場合にも、テーブルの意味を推定することができる。
また、この場合において、入力されるテーブルのカラムの属性値から、カラムの意味を推定するカラム意味推定手段(例えば、カラム意味推定部9)を備え、推定手段72が、推定されたカラムの意味に応じた属性値の分布およびテーブルに関する参照関係と、モデルとに基づいて、テーブルの意味を推定する構成であってもよい。
また、推定されたテーブルの意味を表示し、当該テーブルの意味が適切か否かに関する入力をユーザから受け付ける表示制御手段(例えば、表示制御部7)と、ユーザからの入力に応じて、学習データを追加する学習データ追加手段(例えば、学習データ追加部8)とを備える構成であってもよい。
また、表示制御手段が、表示したテーブルの意味が適切でない旨の入力をユーザから受け付けた場合、テーブルの意味およびテーブルに関する参照関係の入力をユーザから受け付け、学習データ追加手段が、表示したテーブルの意味が適切でない旨の入力をユーザから受け付けた場合、テーブルと、表示制御手段がユーザから受け付けたテーブルの意味との組み合わせ、および、テーブルに関する参照関係を学習データとして、既存の学習データに追加し、学習手段が、学習データが追加された場合に、既存の学習データおよび追加された学習データを用いて、モデルを学習し直す構成であってもよい。
図22は、本発明の概要の他の例を示すブロック図である。図22に示すテーブル意味推定システムは、入力受付手段73と、推定手段72とを備える。
入力受付手段73(例えば、データ入力部2)は、テーブルの入力を受け付ける。
推定手段72(例えば、テーブル意味推定部6)は、テーブルにおけるカラムの意味に応じた属性値の分布と、予め学習されているモデルとに基づいて、テーブルの意味を推定する。
モデル(例えば、テーブル意味モデル)は、カラムの意味を含むテーブルと当該テーブルの意味とを含む学習データに基づいて学習された、テーブルにおけるカラムの意味に応じた属性値の分布とテーブルの意味との間の規則性を示すモデルである。
そのような構成により、テーブルの意味を推定することができる。
また、入力されるテーブルのカラムの属性値から、カラムの意味を推定するカラム意味推定手段(例えば、カラム意味推定部9)を備え、推定手段72が、推定されたカラムの意味に応じた属性値の分布と、モデルとに基づいて、テーブルの意味を推定する構成であってもよい。
また、図22に示す構成において、入力受付手段73および推定手段72が以下のように動作してもよい。
入力受付手段73(例えば、データ入力部2)は、テーブルの入力を受け付ける。
推定手段72(例えば、テーブル意味推定部6)は、テーブルにおけるカラムの意味に応じた属性値の分布およびテーブルに関する参照関係と、予め学習されているモデルとに基づいて、テーブルの意味を推定する。
モデル(例えば、テーブル意味モデル)は、カラムの意味を含むテーブルと当該テーブルの意味とを含むとともに、テーブルの参照関係を示すデータとを含む学習データに基づいて学習された、テーブルにおけるカラムの意味に応じた属性値の分布およびテーブルに関する参照関係とテーブルの意味との間の規則性を示すモデルである。
この場合にも、テーブルの意味を推定することができる。
また、この場合においても、入力されるテーブルのカラムの属性値から、カラムの意味を推定するカラム意味推定手段(例えば、カラム意味推定部9)を備え、推定手段72が、推定されたカラムの意味に応じた属性値の分布およびテーブルに関する参照関係と、モデルとに基づいて、テーブルの意味を推定する構成であってもよい。
なお、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下に限られない。
(付記1)カラムの意味を含むテーブルと当該テーブルの意味とを含む学習データに基づいて、前記テーブルにおけるカラムの意味に応じた属性値の分布と前記テーブルの意味との間の規則性を示すモデルを学習する学習手段と、
入力されるテーブルにおけるカラムの意味に応じた属性値の分布と前記モデルとに基づいて、前記テーブルの意味を推定する推定手段とを備える
ことを特徴とするテーブル意味推定システム。
(付記2)入力されるテーブルのカラムの属性値から、前記カラムの意味を推定するカラム意味推定手段を備え、
推定手段は、推定されたカラムの意味に応じた属性値の分布と、モデルとに基づいて、前記テーブルの意味を推定する
付記1に記載のテーブル意味推定システム。
(付記3)推定されたテーブルの意味を表示し、当該テーブルの意味が適切か否かに関する入力をユーザから受け付ける表示制御手段と、
前記ユーザからの入力に応じて、学習データを追加する学習データ追加手段とを備える
付記1または付記2に記載のテーブル意味推定システム。
(付記4)表示制御手段は、
表示したテーブルの意味が適切でない旨の入力をユーザから受け付けた場合、前記テーブルの意味の入力を前記ユーザから受け付け、
学習データ追加手段は、
前記テーブルの意味が適切である旨が入力された場合、前記テーブルと、前記表示制御手段が表示したテーブルの意味との組み合わせを学習データとして、既存の学習データに追加し、
前記テーブルの意味が適切でない旨が入力された場合、前記テーブルと、前記表示制御手段が前記ユーザから受け付けたテーブルの意味との組み合わせを学習データとして、既存の学習データに追加し、
学習手段は、
学習データが追加された場合に、既存の学習データおよび追加された学習データを用いて、モデルを学習し直す
付記3に記載のテーブル意味推定システム。
(付記5)テーブルの入力を受け付ける入力受付手段と、
前記テーブルにおけるカラムの意味に応じた属性値の分布と、予め学習されているモデルとに基づいて、前記テーブルの意味を推定する推定手段とを備え、
前記モデルは、カラムの意味を含むテーブルと当該テーブルの意味とを含む学習データに基づいて学習された、前記テーブルにおけるカラムの意味に応じた属性値の分布と前記テーブルの意味との間の規則性を示すモデルである
ことを特徴とするテーブル意味推定システム。
(付記6)入力されるテーブルのカラムの属性値から、前記カラムの意味を推定するカラム意味推定手段を備え、
推定手段は、推定されたカラムの意味に応じた属性値の分布と、モデルとに基づいて、前記テーブルの意味を推定する
付記5に記載のテーブル意味推定システム。
(付記7)カラムの意味を含むテーブルと当該テーブルの意味とを含むとともに、テーブルの参照関係を示すデータとを含む学習データに基づいて、前記テーブルにおけるカラムの意味に応じた属性値の分布および前記テーブルに関する参照関係と前記テーブルの意味との間の規則性を示すモデルを学習する学習手段と、
入力されるテーブルにおけるカラムの意味に応じた属性値の分布および前記テーブルに関する参照関係と前記モデルとに基づいて、前記テーブルの意味を推定する推定手段とを備える
ことを特徴とするテーブル意味推定システム。
(付記8)入力されるテーブルのカラムの属性値から、前記カラムの意味を推定するカラム意味推定手段を備え、
推定手段は、推定されたカラムの意味に応じた属性値の分布および前記テーブルに関する参照関係と、モデルとに基づいて、前記テーブルの意味を推定する
付記7に記載のテーブル意味推定システム。
(付記9)推定されたテーブルの意味を表示し、当該テーブルの意味が適切か否かに関する入力をユーザから受け付ける表示制御手段と、
前記ユーザからの入力に応じて、学習データを追加する学習データ追加手段とを備える
付記7または付記8に記載のテーブル意味推定システム
(付記10)表示制御手段は、
表示したテーブルの意味が適切でない旨の入力をユーザから受け付けた場合、前記テーブルの意味および前記テーブルに関する参照関係の入力を前記ユーザから受け付け、
学習データ追加手段は、
表示したテーブルの意味が適切でない旨の入力をユーザから受け付けた場合、前記テーブルと、前記表示制御手段が前記ユーザから受け付けたテーブルの意味との組み合わせ、および、前記テーブルに関する参照関係を学習データとして、既存の学習データに追加し、
学習手段は、
学習データが追加された場合に、既存の学習データおよび追加された学習データを用いて、モデルを学習し直す
付記9に記載のテーブル意味推定システム。
(付記11)テーブルの入力を受け付ける入力受付手段と、
前記テーブルにおけるカラムの意味に応じた属性値の分布および前記テーブルに関する参照関係と、予め学習されているモデルとに基づいて、前記テーブルの意味を推定する推定手段とを備え、
前記モデルは、カラムの意味を含むテーブルと当該テーブルの意味とを含むとともに、テーブルの参照関係を示すデータとを含む学習データに基づいて学習された、前記テーブルにおけるカラムの意味に応じた属性値の分布および前記テーブルに関する参照関係と前記テーブルの意味との間の規則性を示すモデルである
ことを特徴とするテーブル意味推定システム。
(付記12)入力されるテーブルのカラムの属性値から、前記カラムの意味を推定するカラム意味推定手段を備え、
推定手段は、推定されたカラムの意味に応じた属性値の分布および前記テーブルに関する参照関係と、モデルとに基づいて、前記テーブルの意味を推定する
付記11に記載のテーブル意味推定システム。
(付記13)カラムの意味を含むテーブルと当該テーブルの意味とを含む学習データに基づいて、前記テーブルにおけるカラムの意味に応じた属性値の分布と前記テーブルの意味との間の規則性を示すモデルを学習し、
入力されるテーブルにおけるカラムの意味に応じた属性値の分布と前記モデルとに基づいて、前記テーブルの意味を推定する
ことを特徴とするテーブル意味推定方法。
(付記14)テーブルの入力を受け付け、
前記テーブルにおけるカラムの意味に応じた属性値の分布と、予め学習されているモデルとに基づいて、前記テーブルの意味を推定し、
前記モデルは、カラムの意味を含むテーブルと当該テーブルの意味とを含む学習データに基づいて学習された、前記テーブルにおけるカラムの意味に応じた属性値の分布と前記テーブルの意味との間の規則性を示すモデルである
ことを特徴とするテーブル意味推定方法。
(付記15)カラムの意味を含むテーブルと当該テーブルの意味とを含むとともに、テーブルの参照関係を示すデータとを含む学習データに基づいて、前記テーブルにおけるカラムの意味に応じた属性値の分布および前記テーブルに関する参照関係と前記テーブルの意味との間の規則性を示すモデルを学習し、
入力されるテーブルにおけるカラムの意味に応じた属性値の分布および前記テーブルに関する参照関係と前記モデルとに基づいて、前記テーブルの意味を推定する
ことを特徴とするテーブル意味推定方法。
(付記16)テーブルの入力を受け付け、
前記テーブルにおけるカラムの意味に応じた属性値の分布および前記テーブルに関する参照関係と、予め学習されているモデルとに基づいて、前記テーブルの意味を推定し、
前記モデルは、カラムの意味を含むテーブルと当該テーブルの意味とを含むとともに、テーブルの参照関係を示すデータとを含む学習データに基づいて学習された、前記テーブルにおけるカラムの意味に応じた属性値の分布および前記テーブルに関する参照関係と前記テーブルの意味との間の規則性を示すモデルである
ことを特徴とするテーブル意味推定方法。
(付記17)コンピュータに、
カラムの意味を含むテーブルと当該テーブルの意味とを含む学習データに基づいて、前記テーブルにおけるカラムの意味に応じた属性値の分布と前記テーブルの意味との間の規則性を示すモデルを学習する学習処理、および、
入力されるテーブルにおけるカラムの意味に応じた属性値の分布と前記モデルとに基づいて、前記テーブルの意味を推定する推定処理
を実行させるためのテーブル意味推定プログラム。
(付記18)コンピュータに、
テーブルの入力を受け付ける入力受付処理、および、
前記テーブルにおけるカラムの意味に応じた属性値の分布と、予め学習されているモデルとに基づいて、前記テーブルの意味を推定する推定処理を実行させ、
前記モデルは、カラムの意味を含むテーブルと当該テーブルの意味とを含む学習データに基づいて学習された、前記テーブルにおけるカラムの意味に応じた属性値の分布と前記テーブルの意味との間の規則性を示すモデルである
ことを特徴とするテーブル意味推定プログラム。
(付記19)コンピュータに、
カラムの意味を含むテーブルと当該テーブルの意味とを含むとともに、テーブルの参照関係を示すデータとを含む学習データに基づいて、前記テーブルにおけるカラムの意味に応じた属性値の分布および前記テーブルに関する参照関係と前記テーブルの意味との間の規則性を示すモデルを学習する学習処理、および、
入力されるテーブルにおけるカラムの意味に応じた属性値の分布および前記テーブルに関する参照関係と前記モデルとに基づいて、前記テーブルの意味を推定する推定処理
を実行させるためのテーブル意味推定プログラム。
(付記20)コンピュータに、
テーブルの入力を受け付ける入力受付処理、および、
前記テーブルにおけるカラムの意味に応じた属性値の分布および前記テーブルに関する参照関係と、予め学習されているモデルとに基づいて、前記テーブルの意味を推定する推定処理を実行させ、
前記モデルは、カラムの意味を含むテーブルと当該テーブルの意味とを含むとともに、テーブルの参照関係を示すデータとを含む学習データに基づいて学習された、前記テーブルにおけるカラムの意味に応じた属性値の分布および前記テーブルに関する参照関係と前記テーブルの意味との間の規則性を示すモデルである
ことを特徴とするテーブル意味推定プログラム。
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2016年8月5日に出願された日本特許出願2016−154385を基礎とする優先権を主張し、その開示の全てをここに取り込む。