以下、本発明の実施形態を図面を参照して説明する。
実施形態1.
図1は、本発明の第1の実施形態の意味推定システムの構成例を示すブロック図である。第1の実施形態では、本発明の意味推定システムは、表の各列の意味と、表の意味の両方を推定する。本発明の意味推定システム1は、表記憶部2と、データ読み込み部3と、意味集合記憶部4と、意味初期値割り当て部5と、表選択部6と、列意味推定部7と、列意味記憶部8と、列意味記録部9と、表意味推定部10と、表意味記憶部11と、表意味記録部12と、終了判定部13とを備える。
表記憶部2は、各列の意味および表の意味が定められていない表を記憶する記憶装置である。第1の実施形態の意味推定システム1は、表記憶部2に記憶されている表の各列の意味、および、表の意味を推定する。すなわち、表記憶部2は、各列の意味および表の意味を推定すべき表を記憶する。例えば、意味推定システム1の管理者が、各列の意味および表の意味が定められていない表を表記憶部2に予め記憶させておけばよい。管理者が、各列の意味および表の意味が定められていない表を表記憶部2に記憶させたということは、列の意味および表の意味を推定すべき表が与えられたことを意味する。
表記憶部2は、各列の意味および表の意味を推定すべき表を1つ記憶していてもよいし、複数個、記憶していてもよい。ただし、複数の表を記憶している場合、主キーおよび外部キーによって関連付けられている複数の表が存在しているならば、表記憶部2は、どの表とどの表が関連付けられているかを示す情報も予め記憶する。どの表とどの表が関連付けられているかを示す情報に関しても、例えば、管理者が、予め表記憶部2に記憶させておけばよい。
以下の説明では、表記憶部2が、各列の意味および表の意味を推定すべき表を複数個記憶し、さらに、どの表とどの表が関連付けられているかを示す情報も記憶しているものとして説明する。
データ読み込み部3は、各列の意味および表の意味を推定すべき表を全て、表記憶部2から読み込む。また、データ読み込み部3は、どの表とどの表が関連付けられているかを示す情報も、全て、表記憶部2から読み込む。
意味集合記憶部4は、列の意味の候補、および、表の意味の候補を記憶する記憶装置である。本実施形態では、意味集合記憶部4が、表の意味の候補、および、表の意味の候補をノードとする概念辞書を記憶するものとして説明する。概念辞書は、表の意味の候補、および、表の意味の候補をノードとし、意味が類似する候補(ノード)同士がリンクで接続されたグラフとして表される。
図2は、概念辞書の例を示す模式図である。ただし、図2は、概念辞書の一例であり、概念辞書に含まれるノードの数は、図2に示す例に限定されない。概念辞書に含まれるノードの数は、有限個である。図2に例示する概念辞書の個々のノードは、列の意味の候補や表の意味の候補である。概念辞書において、意味が類似する候補(ノード)同士は、リンクで接続されている。従って、1つの意味と他の1つの意味との類似度を示すスコアは、概念辞書におけるその2つの意味の間のホップ数の逆数で表すことができる。
意味集合記憶部4が記憶する概念辞書は、一般に公開されている概念辞書であっても、あるいは、意味推定システム1の管理者が作成した概念辞書であってもよい。
意味初期値割り当て部5は、データ読み込み部3が読み込んだ複数の表(すなわち、与えられた複数の表)それぞれに対して、表の意味の初期値、および、表に含まれる各列の意味の初期値を割り当てる。意味の初期値とは、処理開始時に、最初に割り当てられる意味である。
意味初期値割り当て部5は、与えられたそれぞれの表の意味の初期値を割り当てる際、概念辞書のノードとなっている意味の候補をランダムに選択し、その意味の候補を初期値として割り当ててもよい。同様に、意味初期値割り当て部5は、各表に含まれている各列の意味の初期値を割り当てる際にも、概念辞書のノードとなっている意味の候補をランダムに選択し、その意味の候補を初期値として割り当ててもよい。
また、各表に含まれている各列の意味の初期値を割り当てる際に、意味初期値割り当て部5は、列の意味を推定するための前述の一般的な方法によって、各列の意味の初期値を割り当ててもよい。この場合、列に格納されている各データが数値である場合には、意味初期値割り当て部5は、前述の第1の一般的な方法によって、列の意味の初期値を割り当てればよい。また、列に格納されている各データが文字列である場合には、意味初期値割り当て部5は、前述の第2の一般的な方法によって、列の意味の初期値を割り当てればよい。なお、第1の一般的な方法や第2の一般的な方法によって選ばれる意味は、概念辞書にノードとして含まれているものとする。また、意味初期値割り当て部5は、表の意味の初期値を割り当てる前に、その表に含まれる各列の意味の初期値を割り当て、その後、特許文献1に記載の方法で、その表の意味を求め、その意味を、その表の意味の初期値として割り当ててもよい。なお、特許文献1に記載の方法で求められる意味も、概念辞書にノードとして含まれているものとする。
表選択部6は、各列の意味の初期値や表の意味が割り当てられた後の全ての表の中から、順次、1つずつ表を選択する。
列意味推定部7は、表選択部6によって選択された表に含まれる各列の意味をそれぞれ推定する。列意味推定部7の詳細については、図3を参照して、後述する。
列意味記憶部8は、各表の各列の意味を記憶する記憶装置である。列意味記録部9は、選択された表に含まれる各列の意味が列意味推定部7によって推定されたならば、その表の各列の意味の推定結果を、列意味記憶部8に記憶させる。
表意味推定部10は、表選択部6によって選択された表の意味を推定する。表意味推定部10の詳細については、図7を参照して後述する。
表意味記憶部11は、各表の意味を記憶する記憶装置である。表意味記録部12は、選択された表の意味が表意味推定部10によって推定されたならば、その表の意味の推定結果を、表意味記憶部11に記憶させる。
意味推定システム1において、表選択部6が、全ての表をそれぞれ選択し、列意味推定部7が、選択された表に含まれる各列の意味を推定し、表意味推定部10が、選択された表の意味を推定する処理が繰り返し実行される。従って、列意味記憶部8に記憶される各表の各列の意味や、表意味記憶部11に記憶される各表の意味は、上記の処理が繰り返されることによって、更新されていく。以下、このように繰り返される処理を、繰り返し処理と記す場合がある。
終了判定部13は、上記の処理の繰りかえしの終了条件が満たされたか否かを判定する。この終了条件の例として、例えば、上記の処理の繰り返し数が所定数に達したこと、あるいは、各表に含まれる各列の意味、および、各表の意味が更新されなくなったこと等が挙げられる。ただし、終了条件の例は、これらの例に限定されない。
次に、列意味推定部7について、より詳細に説明する。図3は、列意味推定部7の構成例を示すブロック図である。列意味推定部7は、列選択部71と、列意味候補取得部72と、列意味候補選択部73と、列データスコア算出部74と、列類似度算出部75と、第1の列表類似度算出部76と、列スコア算出部77と、列意味特定部78とを備える。
列選択部71は、表選択部6によって選択された表に含まれる各列の中から、意味の推定対象となる列を、1列ずつ、順次、選択する。列選択部71によって選択された列は、意味の推定対象となる列である。
列意味候補取得部72は、列選択部71によって選択された列の意味の候補を、意味集合記憶部4に記憶された意味の候補の中から、複数個取得する。概念辞書のノードは、意味の候補に該当する。列意味候補取得部72は、概念辞書のノードが示す意味の候補を全て取得してもよい。あるいは、列意味候補取得部72は、概念辞書のノードのうち、任意のk個のノードを選択し、それらのノードに対応するk個の意味の候補を取得してもよい。あるいは、列意味候補取得部72は、現在、選択されている列に割り当てられている意味に該当する概念辞書内のノードを特定し、そのノードから所定ホップ数以内のk個のノードを選択し、それらのノードに対応するk個の意味の候補を取得してもよい。上記のkの値や、所定ホップ数の値は、予め定数として定めておけばよい。
列意味候補取得部72が取得する複数個の意味の候補を、列意味候補集合と記す。
列意味候補選択部73は、列意味候補集合の中から、意味の候補を、順次、1つずつ選択する。
列データスコア算出部74は、列選択部71が選択した列に格納されている各データに基づいて、列意味候補選択部73によって選択された意味の候補が、選択された列の意味に該当する度合いを示すスコアを算出する。列データスコア算出部74は、例えば、列の意味を推定するための前述の一般的な方法における類似度を、このスコアとして算出してもよい。例えば、選択された列に格納されている各データが数値である場合、列データスコア算出部74は、その数値の統計値と、選択された意味の候補に対応する統計値とを用いて、KL-Divergenceの逆数を算出し、その値をスコアとしてもよい。また、例えば、選択された列に格納されている各データが文字列である場合、列データスコア算出部74は、その各文字列に基づいてn次元ベクトルを定め、そのn次元ベクトルと、選択された意味の候補に対応するn次元ベクトルとのユークリッド距離の逆数を、スコアとしてもよい。あるいは、列データスコア算出部74は、その2つのn次元ベクトルからNaive Bayes を用いて得られる確率値をスコアとしてもよい。なお、種々の意味の候補に対応する統計値やn次元ベクトルは、例えば、それらのデータを記憶するための記憶装置(図1において図示略)に予め記憶させておけばよい。
なお、選択された意味の候補が、選択された列の意味に該当する度合いを示すスコアの算出方法(列データスコア算出部74におけるスコアの算出方法)は、上記の例に限定されない。列データスコア算出部74は、他の方法でスコアを算出してもよい。
列類似度算出部75は、表選択部6によって選択された表のうち、意味の推定対象となる列(列選択部71に選択された列)以外の個々の列の意味と、列意味候補選択部73によって選択された意味の候補との類似度を示すスコアを算出する。なお、意味初期値割り当て部5が、全ての表の全ての列に意味の初期値を割り当てるので、1回目の繰り返し処理において列類似度算出部75が動作する場合であっても、選択された表の各列には意味が割り当てられている。
図4は、意味の推定対象となる列、および、その列以外の個々の列の例を示す模式図である。図4に示す“?”は、意味の推定対象となる列(列選択部71に選択された列)であることを示している。図4に示す例では、第3列が意味の推定対象となる列であるものとしている。列意味候補選択部73によって選択された意味の候補をXとし、他の1つの列の意味をYとしたときに、XとYとの類似度をsim(X,Y)と記すこととする。列類似度算出部75は、意味の推定対象となる列以外の列を1列ずつ順次、選択し、選択した列の意味と、列意味候補選択部73によって選択された意味の候補との類似度を算出し、その類似度の総和を、上記のスコアとして算出する。また、列類似度算出部75は、sim(X,Y)を、概念辞書におけるXとYの間のホップ数の逆数として求める。この演算によって、XとYとの類似性が高いほど、sim(X,Y)の値を大きな値として得ることができる。
列意味候補選択部73によって選択された意味の候補が「平成」であるとする。この場合、列類似度算出部75は、sim(平成,名前)+sim(平成,身長)を計算し、その計算結果を、意味の推定対象となる列以外の個々の列の意味と、選択された意味の候補「平成」との類似度を示すスコアとする。概念辞書が図2に示すように定められているとする。「平成」と「名前」の間のホップ数は“5”であり、「平成」と「身長」の間のホップ数も“5”である。従って、本例では、sim(平成,名前)+sim(平成,身長)=(1/5)+(1/5)=0.4となる。
また、例えば、列意味候補選択部73によって選択された意味の候補が「年齢」であるとする。この場合、列類似度算出部75は、sim(年齢,名前)+sim(年齢,身長)を計算し、その計算結果を、意味の推定対象となる列以外の個々の列の意味と、選択された意味の候補「年齢」との類似度を示すスコアとする。「年齢」と「名前」の間のホップ数は“2”であり、「年齢」と「身長」の間のホップ数も“2”である(図2参照)。従って、本例では、sim(年齢,名前)+sim(年齢,身長)=(1/2)+(1/2)=1.0となる。
列類似度算出部75は、列意味候補選択部73によって選択された意味の候補毎に、上記のスコアを算出する。
第1の列表類似度算出部76は、表選択部6によって選択された表の意味と、列意味候補選択部73によって選択された意味の候補(推定対象となる列の意味の候補)との類似度を示すスコアを算出する。なお、意味初期値割り当て部5が、全ての表に対して、表の意味の初期値を割り当てるので、1回目の繰り返し処理において第1の列表類似度算出部76が動作する場合であっても、選択された表には意味が割り当てられている。
図5は、意味の推定対象となる列と、その列を含む表の意味の例を示す模式図である。図4に示す場合と同様に、“?”は、意味の推定対象となる列(列選択部71に選択された列)を示している。図5に示す例でも、第3列が意味の推定対象となる列であるものとしている。また、図5に示す例では、表に割り当てられている意味は「人間」である。列意味候補選択部73によって選択された意味の候補をXとし、選択されている表の意味をZとしたときに、XとZとの類似度をsim(X,Z)と記すこととする。sim(X,Z)の算出方法は、前述のsim(X,Y)の算出方法と同様である。すなわち、列類似度算出部75は、sim(X,Z)を、概念辞書におけるXとZの間のホップ数の逆数として求めればよい。XとZとの類似性が高いほど、sim(X,Z)の値を大きな値として得ることができる。第1の列表類似度算出部76は、選択された意味の候補Xと選択された表の意味Zとの類似度を示すスコアとして、sim(X,Z)を算出する。
列意味候補選択部73によって選択された意味の候補が「平成」であるとする。この場合、第1の列表類似度算出部76は、sim(平成,人間)を、「平成」と「人間(図5に例示する表の意味)」との類似度を示すスコアとする。概念辞書が図2に示すように定められているとする。「平成」と「人間」のホップ数は“4”である。従って、sim(平成,人間)=1/4=0.25となる。
また、例えば、列意味候補選択部73によって選択された意味の候補が年齢であるとする。この場合、第1の列表類似度算出部76は、sim(年齢,人間)を、「年齢」と「人間」との類似度を示すスコアとする。「年齢」と「人間」とのホップ数は“1”である(図2参照)。従って、本例では、sim(年齢,人間)=1/1=1.0となる。
第1の列表類似度算出部76は、列意味候補選択部73によって選択された意味の候補毎に、上記のスコアを算出する。
列スコア算出部77は、選択された列(意味の推定対象となる列)における、列意味候補選択部73によって選択された意味の候補のスコアを算出する。具体的には、列スコア算出部77は、選択された意味の候補に関して、列データスコア算出部74、列類似度算出部75および第1の列表類似度算出部76がそれぞれ算出したスコアの総和を、その列における選択された意味の候補のスコアとして算出する。
例えば、図4,5に示す第3列が選択されているとする。また、列意味候補選択部73によって選択された意味の候補が「平成」であるとする。この列において、列データスコア算出部74が、「平成」に対して算出したスコアが0.7であるとする。また、列類似度算出部75が、スコアとして、sim(平成,名前)+sim(平成,身長)=0.4を算出したとする。また、第1の列表類似度算出部76が、スコアとして、sim(平成,人間)=1/4=0.25を算出したとする。この場合、列スコア算出部77は、この列における意味の候補「平成」のスコアとして、0.7+0.4+0.25=1.35を算出する。
また、列意味候補選択部73によって選択された意味の候補が「年齢」であるとする。そして、上記と同じ列(図4,5に示す第3列)において、列データスコア算出部74が、「年齢」に対して算出したスコアが0.5であるとする。また、列類似度算出部75が、スコアとして、sim(年齢,名前)+sim(年齢,身長)=1.0を算出したとする。また、第1の列表類似度算出部76が、スコアとして、sim(年齢,人間)として、1.0を算出したとする。この場合、列スコア算出部77は、この列における意味の候補「年齢」のスコアとして、0.5+1.0+1.0=2.5を算出する。
列スコア算出部77は、列意味候補選択部73によって選択された意味の候補毎に、上記のスコアを算出する。
図6は、意味の候補「平成」および「年齢」を例にして、列スコア算出部77によって算出されるスコアの計算式を示した説明図である。図6において、符号Aで示した項は、列類似度算出部75によって計算される項である。また、符号Bで示した項は、第1の列表類似度算出部76によって計算される項である。
列意味特定部78は、列スコア算出部77によって算出される各候補のスコアに基づいて、推定対象となる列の意味を特定する。例えば、列意味特定部78は、列スコア算出部77によって算出されたスコアが最大となっている意味の候補を、推定対象となる列の意味として特定してもよい。
列意味記録部9(図1参照)は、列意味特定部78が特定した意味を、選択されている表における選択されている列の意味の推定結果として、列意味記憶部8(図1参照)に記憶させる。
また、列意味特定部78は、推定対象となる列の意味を複数個、特定してもよい。例えば、列意味特定部78は、列スコア算出部77によって算出されたスコアが高い順に、上位所定個の意味の候補をそれぞれ、推定対象となる列の意味として特定してもよい。また、例えば、列意味特定部78は、列スコア算出部77によって算出されたスコアが閾値以上となっている意味の候補をそれぞれ、推定対象となる列の意味として特定してもよい。閾値は、予め定められた定数である。推定対象となる列の意味が複数個特定された場合、列意味記録部9、特定された個々の意味と、その意味のスコア(列スコア算出部77によって算出されたスコア)とを対応付けて、列意味記憶部8に記憶させる。
以下の説明では、説明を簡単にするために、列意味特定部78が、列スコア算出部77によって算出されたスコアが最大となっている意味の候補を、推定対象となる列の意味として特定する場合を例にして説明する。すなわち、推定対象となる列の意味が、1つ特定される場合を例にして説明する。
次に、表意味推定部10について、より詳細に説明する。図7は、表意味推定部10の構成例を示すブロック図である。表意味推定部10は、表意味候補取得部101と、表意味候補選択部102と、第2の列表類似度算出部103と、表類似度算出部104と、表スコア算出部105と、表意味特定部106とを備える。
表意味候補取得部101は、表選択部6(図1参照)によって選択された表の意味の候補を、意味集合記憶部4に記憶された意味の候補の中から、複数個取得する。表意味候補取得部101は、概念辞書のノードが示す意味の候補を全て取得してもよい。あるいは、表意味候補取得部101は、概念辞書のノードのうち、任意のh個のノードを選択し、それらのノードに対応するh個の意味の候補を取得してもよい。あるいは、表意味候補取得部101は、現在、選択されている表の意味に該当する概念辞書内のノードを特定し、そのノードから所定ホップ数以内のh個のノードを選択し、それらのノードに対応するh個の意味の候補を取得してもよい。上記のhの値や、所定ホップ数の値は、予め定数として定めておけばよい。
表意味候補取得部101が取得する複数個の意味の集合を、表意味候補集合と記す。
表意味候補選択部102は、表意味候補集合の中から、意味の候補を、順次、1つずつ選択する。
第2の列表類似度算出部103は、表意味候補選択部102によって選択された意味の候補と、選択されている表の個々の列の意味との類似度を示すスコアを算出する。
選択された意味の候補(表の意味の候補)をZとする。また、その表から1つの列を選択した場合における、その列の意味をXとする。このとき、ZとXとの類似度をsim(Z,X)と記すこととする。sim(Z,X)の計算方法は、前述のsim(X,Y)やsim(Z,X)の計算方法と同様である。すなわち、第2の列表類似度算出部103は、sim(Z,X)を、概念辞書におけるZとXとの間のホップ数の逆数として求めればよい。ZとXとの類似性が高いほど、sim(Z,X)の値を大きな値として得ることができる。
第2の列表類似度算出部103は、選択されている表に含まれる列を1列ずつ順次、選択し、表意味候補選択部102によって選択された意味の候補と、選択した列の意味との類似度を算出し、その類似度の総和を、上記のスコアとして算出する。
図8は、意味の推定対象となる表(選択されている表)の例を示す模式図である。選択されている表に割り当てられている意味が「人間」であり、その表に含まれる各列の意味が「身長」、「名前」、「年齢」であるとする。この場合、第2の列表類似度算出部103は、上記のスコアとして、sim(人間,身長)+sim(人間,名前)+sim(人間,年齢)を算出すればよい。
第2の列表類似度算出部103は、表意味候補選択部102によって選択された意味の候補毎に、上記のスコアを算出する。
以下の説明では、第2の列表類似度算出部103が上記の方法でスコアを算出する場合を例にして説明する。ただし、第2の列表類似度算出部103は、他の方法でスコアを算出してもよい。例えば、第2の列表類似度算出部103は、特許文献1に記載された方法で、選択された表の意味の候補が表の意味に該当する確度を算出し、その確度を、スコアとして用いてもよい。
表類似度算出部104は、どの表とどの表が関連付けられているかを示す情報に基づいて、選択されている表と関連付けられている表を特定する。選択されている表と関連付けられている表は、複数個存在していてもよい。なお、既に説明したように、どの表とどの表が関連付けられているかを示す情報は、予め表記憶部2に記憶されている。
表類似度算出部104は、選択されている表(意味の推定対象となる表)において選択された意味の候補と、その表に関連付けられている他の個々の表の意味との類似度を示すスコアを算出する。上記のように選択された意味の候補(表の意味の候補)をZとする。また、選択されている表に関連付けられている表がm個存在しているとする。なお、mの値は、1であっても、2以上であってもよい。また、そのm個の表の意味をW1〜Wmとする。この場合、表類似度算出部104は、以下に示す式(1)の計算によって、上記のスコアを算出すればよい。
なお、sim(Z,Wi)の計算方法は、前述のsim(X,Y)やsim(Z,X)の計算方法と同様である。すなわち、表類似度算出部104は、概念辞書におけるZとWiとの間のホップ数の逆数として求めればよい。
表類似度算出部104が上記のスコアを計算するために用いる概念辞書を、これまでに述べた概念辞書とは別に予め意味集合記憶部4に記憶させておいてもよい。これまでに述べた概念辞書とは別に、表類似度算出部104が上記のスコアを計算するために用いる概念辞書を用いる場合、その概念辞書を第2の概念辞書と記す。第2の概念辞書では、関連付けられやすい表の意味同士がリンクで接続される。ただし、表類似度算出部104用の概念辞書(第2の概念辞書)を設けずに、表類似度算出部104は、列類似度算出部75、第1の列表類似度算出部76および第2の列表類似度算出部103が用いる概念辞書と共通の概念辞書を用いて、ホップ数の逆数を求めてもよい。
図9は、関連付けられている複数の表の例を示す模式図である。図9に示す例において、表51が選択されている表(意味の推定対象となる表)であるとする。また、表52,53が、表51に関連付けられている表であるとする。なお、図9に示す“CID”は“Customer ID ”と同義であり、“IID”は“Item ID ”と同義である。表52の意味が「顧客」であり、表53の意味が「商品」であるとする。また、表51の表意味候補集合には、「人間」、「購買履歴」等が含まれているとする。本例では、m=2であり、「顧客」がW1に相当し、「商品」がW2に相当する。
例えば、表51に関して選択された意味の候補が「人間」である場合、表類似度算出部104は、上記のスコアを、sim(人間,顧客)+sim(人間、商品)の計算によって求めればよい。また、例えば、表51に関して選択された意味の候補が「購買履歴」である場合、表類似度算出部104は、上記のスコアを、sim(購買履歴,顧客)+sim(購買履歴、商品)の計算によって求めればよい。
表類似度算出部104は、表意味候補選択部102によって選択された意味の候補毎に、上記のスコアを算出する。
表スコア算出部105は、意味の推定対象となる表に関して、表意味候補選択部102によって選択された意味の候補毎に、第2の列表類似度算出部103が算出したスコアと、表類似度算出部104が算出したスコアとの和を計算する。
表意味特定部106は、表スコア算出部105によって算出される各候補のスコアに基づいて、推定対象となる表の意味を特定する。例えば、表意味特定部106は、表スコア算出部105によって算出されたスコアが最大となっている意味の候補を、推定対象となる表の意味として特定してもよい。
表意味記録部12(図1参照)は、表意味特定部106が特定した意味を、選択されている表の意味の推定結果として、表意味記憶部11(図1参照)に記憶させる。
また、表意味特定部106は、推定対象となる表の意味を複数個、特定してもよい。例えば、表意味特定部106は、表スコア算出部105によって算出されたスコアが高い順に、上位所定個の意味の候補をそれぞれ、推定対象となる表の意味として特定してもよい。また、例えば、表意味特定部106は、表スコア算出部105によって算出されたスコアが閾値以上となっている意味の候補をそれぞれ、推定対象となる表の意味として特定してもよい。閾値は、予め定められた定数である。推定対象となる表の意味が複数個特定された場合、表意味記録部12は、特定された個々の意味と、その意味のスコア(表スコア算出部105によって算出されたスコア)とを対応付けて、表意味記憶部11に記憶させる。
以下の説明では、説明を簡単にするために、表意味特定部106が、表スコア算出部105によって算出されたスコアが最大となっている意味の候補を、推定対象となる表の意味として特定する場合を例にして説明する。すなわち、推定対象となる表の意味が、1つ特定される場合を例にして説明する。
データ読み込み部3、意味初期値割り当て部5、表選択部6、列意味推定部7(列選択部71、列意味候補取得部72、列意味候補選択部73、列データスコア算出部74、列類似度算出部75、第1の列表類似度算出部76、列スコア算出部77および列意味特定部78)、列意味記録部9、表意味推定部10(表意味候補取得部101、表意味候補選択部102、第2の列表類似度算出部103、表類似度算出部104、表スコア算出部105および表意味特定部106)、表意味記録部12、および、終了判定部13は、例えば、意味推定プログラムに従って動作するコンピュータのプロセッサ(例えば、CPU(Central Processing Unit )、GPU(Graphics Processing Unit)、FPGA(Field-Programmable Gate Array ))によって実現される。この場合、プロセッサが、プログラム記憶装置等のプログラム記録媒体から意味推定プログラムを読み込む。そして、プロセッサは、その意味推定プログラムに従って、データ読み込み部3、意味初期値割り当て部5、表選択部6、列意味推定部7(列選択部71、列意味候補取得部72、列意味候補選択部73、列データスコア算出部74、列類似度算出部75、第1の列表類似度算出部76、列スコア算出部77および列意味特定部78)、列意味記録部9、表意味推定部10(表意味候補取得部101、表意味候補選択部102、第2の列表類似度算出部103、表類似度算出部104、表スコア算出部105および表意味特定部106)、表意味記録部12、および、終了判定部13として動作すればよい。
次に、第1の実施形態の処理経過について説明する。図10、図11および図12は、本発明の意味推定システム1の処理経過の例を示すフローチャートである。以下の説明では、既に説明した事項については、適宜、説明を省略する。
なお、予め、管理者によって、各列の意味および表の意味が定められていない複数個の表が表記憶部2に記憶されているものとする。同様に、どの表とどの表が関連付けられているかを示す情報も、予め、表記憶部2に記憶されているものとする。また、予め、管理者によって、概念辞書が意味集合記憶部4に記憶されているものとする。
まず、データ読み込み部3が、各列の意味および表の意味が定められていない全ての表を、表記憶部2から読み込む(ステップS1)。
次に、意味初期値割り当て部5は、データ読み込み部3が読み込んだ複数の表それぞれに対して、表の意味の初期値、および、表に含まれる各列の意味の初期値を割り当てる(ステップS2)。表の意味の初期値や各列の意味の初期値を割り当てる方法の例については、既に説明したので、ここでは説明を省略する。意味初期値割り当て部5は、各表に含まれる各列の意味の初期値をそれぞれ、列意味記憶部8に記憶させる。また、意味初期値割り当て部5は、各表の意味の初期値をそれぞれ、表意味記憶部11に記憶させる。
ステップS2の後、表選択部6が、全ての表の中から、未選択の表を1つ選択する(ステップS3)。
ステップS4〜S12、およびステップS14は、列意味推定部7に含まれる要素(図3参照)によって実行される。
ステップS3の後、列選択部71は、ステップS3で選択された表の中から、未選択の列を1つ選択する(ステップS4)。
次に、列意味候補取得部72が、ステップS4で選択された列の意味の候補を、意味集合記憶部4に記憶された意味の候補の中から、複数個取得する(ステップS5)。換言すれば、列意味候補取得部72は、ステップS4で選択された列に関する列意味候補集合を取得する。列意味候補集合(複数個の意味の候補)を取得する方法の例については、既に説明したので、ここでは説明を省略する。
次に、列意味候補選択部73が、列意味候補集合の中から、未選択の意味の候補(列の意味の候補)を1つ選択する(ステップS6)。
次に、列データスコア算出部74が、選択された列に格納されている各データに基づいて、ステップS6で選択された意味の候補が、選択された列の意味に該当する度合いを示すスコアを算出する(ステップS7)。列データスコア算出部74がスコアを算出する動作の例については既に説明したので、ここでは説明を省略する。
次に、列類似度算出部75が、ステップS3で選択された表のうち、ステップS4で選択された列以外の個々の列の意味と、ステップS6で選択された意味の候補との類似度を示すスコアを算出する(ステップS8)。列類似度算出部75がスコアを算出する動作については既に説明したので、ここでは説明を省略する。
次に、第1の列表類似度算出部76が、ステップS3で選択された表の意味と、ステップS6で選択された意味の候補との類似度を示すスコアを算出する(ステップS9)。第1の列表類似度算出部76がスコアを算出する動作については既に説明したので、ここでは説明を省略する。
次に、列スコア算出部77は、ステップS6で選択された意味の候補に関して、ステップS7,S8,S9で算出されたスコアの和を算出する(ステップS10)。
次に、列意味候補選択部73は、列意味候補集合の中に、未選択の列の意味の候補があるか否かを判定する(ステップS11)。
未選択の列の意味の候補がある場合(ステップS11のYes)、ステップS6以降の処理を繰り返す。
未選択の列の意味の候補がない場合(ステップS11のNo)、ステップS12に移行する。この場合、列の意味の候補毎に、列スコア算出部77がステップS10でスコアを算出していることになる。ステップS12では、列意味特定部78が、列の意味の候補毎にステップS10で算出されたスコアに基づいて、選択された列の意味を特定する。本例では、列意味特定部78は、スコアが最大となっている意味の候補を、選択された列の意味として特定する。
続いて、列意味記録部9(図1参照)が、ステップS12で特定された列の意味を、その列と対応づけて列意味記憶部8に記憶させる(ステップS13)。
次に、列選択部71が、ステップS3で選択された表の中に未選択の列があるか否かを判定する(ステップS14)。
未選択の列がある場合(ステップS14のYes)、ステップS4以降の処理を繰り返す。
未選択の列がない場合(ステップS14のNo)、表意味推定部10が以下に示すステップS15〜S21の動作を行う。以下に示すステップS15〜S21は、表意味推定部10に含まれる要素(図7参照)によって実行される。
未選択の列がない場合(ステップS14のNo)、表意味候補取得部101が、ステップS3で選択された表の意味の候補を、意味集合記憶部4に記憶された意味の候補の中から、複数個取得する(ステップS15)。換言すれば、表意味候補取得部101は、ステップS3で選択された表に関する表意味候補集合を取得する。表意味候補集合(複数個の意味の候補)を取得する方法の例については、既に説明したので、ここでは説明を省略する。
次に、表意味候補選択部102が、表意味候補集合の中から、未選択の意味の候補(表の意味の候補)を1つ選択する(ステップS16)。
次に、第2の列表類似度算出部103が、ステップS3で選択された表の個々の列の意味と、ステップS16で選択された意味の候補との類似度を示すスコアを算出する(ステップS17)。第2の列表類似度算出部103がスコアを算出する動作については既に説明したので、ここでは説明を省略する。
次に、表類似度算出部104が、ステップS3で選択された表に関連付けられている個々の表の意味と、ステップS16で選択された意味の候補との類似度を示すスコアを算出する(ステップS18)。表類似度算出部104がスコアを算出する動作については既に説明したので、ここでは説明を省略する。
次に、表スコア算出部105は、ステップS16で選択された意味の候補に関して、ステップS17,S18で算出されたスコアの和を計算する(ステップS19)。
次に、表意味候補選択部102は、表意味候補集合の中に、未選択の表の意味の候補があるか否かを判定する(ステップS20)。
未選択の表の意味の候補がある場合(ステップS20のYes)、ステップS16以降の処理を繰り返す。
未選択の表の意味の候補がない場合(ステップS20のNo)、ステップS21に移行する。この場合、表の意味の候補毎に、表スコア算出部105がステップS19でスコアを算出していることになる。ステップS21では、表意味特定部106が、表の意味の候補毎にステップS19で算出されたスコアに基づいて、選択されている表の意味を特定する。本例では、表意味特定部106は、スコアが最大となっている意味の候補を、選択されている表の意味として特定する。
続いて、表意味記録部12(図1参照)が、ステップS21で特定された表の意味を、その表と対応付けて表意味記憶部11に記憶させる(ステップS22)。
次に、表選択部6は、未選択の表があるか否かを判定する(ステップS23)。
未選択の表がある場合(ステップS23のYes)、ステップS3以降の処理を繰り返す。
未選択の表がない場合(ステップS23のNo)、終了判定部13は、繰り返し処理の終了条件が満たされたか否かを判定する(ステップS24)。この繰り返し処理は、具体的には、ステップS3から、ステップS24で終了条件を満たしていないと判定されたことによってステップS25に至るまでの処理である。すなわち、ステップS3からステップS25に至るまでの処理が1回の繰り返し処理に該当する。前述のように、終了条件の例として、例えば、繰り返し処理の繰り返し数が所定数に達したこと、あるいは、各表に含まれる各列の意味、および、各表の意味が更新されなくなったこと等が挙げられる。
終了条件が満たされていない場合(ステップS24のNo)、表選択部6は、全ての表を未選択であるものと定める(ステップS25)。このとき、表選択部6は、全ての表の個々の列についても、未選択であるものと定める。ステップS25の後、ステップS3以降の処理を繰り返す。
また、終了条件が満たされている場合(ステップS24のYes)、処理を終了する。
第1の実施形態によれば、表内で選択された列(推定対象となる列)の意味の候補と、その表内の他の個々の列の意味との類似度を示すスコア(ステップS8で算出されるスコア)や、その意味の候補とその表の意味との類似度を示すスコア(ステップS9で算出されるスコア)を加味したスコアを、列スコア算出部77が、ステップS10で算出する。そして、列意味特定部78が、列の意味の候補毎に算出されたそのスコアに基づいて、列の意味を特定する。従って、表の各列の意味を高い精度で推定することができる。
例えば、図4や図5に示す第3列の意味を推定する場合を考える。この第3列の意味が正しくは「年齢」であるものとする。ステップS7で得られるスコアだけを用いると、第3列の意味の推定結果として「平成」が得られることがあり得る。しかし、ステップS7で得られるスコアだけでなく、ステップS8で得られるスコアやステップS9で得られるスコアも加味することによって、正しい推定結果である「年齢」が得られやすくなる。すなわち、列の意味の推定精度を向上させることができる。
また、第1の実施形態によれば、表の意味の候補と、その表の個々の列の意味との類似度を示すスコア(ステップS17で算出されるスコア)や、その意味の候補と、その表に関連付けられている個々の表の意味との類似度を示すスコア(ステップS18で算出されるスコア)を加味したスコアを、表スコア算出部105が、ステップS19で算出する。そして、表意味特定部106が、表の意味の候補毎に算出されたそのスコアに基づいて、表の意味を特定する。従って、表の意味を高い精度で推定することができる。
次に、第1の実施形態の変形例について説明する。
上記の処理経過の説明では、ステップS12で、列意味特定部78が、スコアが最大となっている意味の候補を、選択された列の意味として特定する場合を例にして説明した。この場合、意味の推定対象となる列に対して、1つの意味が特定されることになる。前述のように、列意味特定部78は、推定対象となる列の意味を複数個、特定してもよい。この場合、列意味記録部9は、ステップS12で特定された複数の意味(列の意味)を、ステップS10で算出されたスコアとともに、列意味記憶部8に記憶させる。
また、この場合、1つの列に複数の意味が割り当てられることになる。この場合のステップS8におけるスコア算出方法の例について説明する。1つの列に複数の意味が割り当てられている場合、列類似度算出部75(図3参照)は、その複数の意味のうち、スコアが最も高い意味のみに着目して、ステップS8におけるスコア計算を行ってもよい。図13は、意味の推定対象となる列と、複数の意味が割り当てられている列を含む表の例を示す模式図である。説明を簡単にするため、図13では、列の数を2列としている。図13に示す第1列には、「名前」、「県名」という2つの意味が割り当てられているとする。なお、括弧書きで示した数値は、意味に対応するスコアである。また、図13に示す第2列が、意味の推定対象となる列(ステップS4で選択された列)である。第2列に関して選択された意味の候補を符号Xで表す。スコアが最も高い意味のみに着目してステップS8のスコア計算を行う場合、列類似度算出部75は、図13に示す例では、スコアが最も高い「名前」のみを用いて、sim(X,名前)を計算すればよい。意味の推定対象となる列以外の列が第1の列の他にも存在する場合にも、列類似度算出部75は、列毎に同様の計算を行い、その総和を、ステップS8における算出スコアとすればよい。
また、推定対象となる列と、他の1つの列との類似度を計算する場合、列類似度算出部75は、他の列に割り当てられている意味毎にsim()を計算し、その計算結果を、意味に対応付けられたスコアを用いて重み付け加算してもよい。例えば、図13に例示する場合、列類似度算出部75は、意味の候補“X”と、第1列の意味との類似度を、以下のように計算すればよい。
(4.5/(4.5+3.5))×sim(X,名前)+(3.5/(4.5+3.5))×sim(X,県名)
意味の推定対象となる列以外の列が、第1の列の他にも存在する場合にも、列類似度算出部75は、列毎に、上記と同様の計算を行い、その総和をステップS8における算出スコアとしてもよい。
また、1つの列に複数の意味が割り当てられる場合のステップS17におけるスコア算出方法の例について説明する。1つの列に複数の意味が割り当てられている場合、第2の列表類似度算出部103(図7参照)は、その複数の意味のうち、スコアが最も高い意味のみに着目して、ステップS17におけるスコア計算を行ってもよい。図14は、複数の意味が割り当てられている列を含む表と、表の意味の候補とを示す模式図である。図14では、説明を簡単にするため、1つの列のみを図示している。また、表の意味の候補を符号Zで表す。図14に示す列には、「名前」、「県名」という2つの意味が割り当てられているとする。なお、括弧書きで示した数値は、意味に対応するスコアである。スコアが最も高い意味のみに着目してステップS17のスコア計算を行う場合、第2の列表類似度算出部103は、図14に示す列では、スコアが最も高い「名前」のみを用いて、sim(Z,名前)を計算すればよい。第2の列表類似度算出部103は、他の列(図14において図示略)に対しても、列毎に同様の計算を行い、その総和を、ステップS17における算出スコアとすればよい。
また、1つの列の意味と、表の意味の候補との類似度を計算する場合、第2の列表類似度算出部103は、その1つの列に割り当てられている意味毎にsim()を計算し、その計算結果を、意味に対応付けられたスコアを用いて重み付け加算してもよい。例えば、表の意味の候補“Z”と、図14に示す1つの列の意味との類似度を、以下のように計算すればよい。
(4.5/(4.5+3.5))×sim(Z,名前)+(3.5/(4.5+3.5))×sim(Z,県名)
第2の列表類似度算出部103は、他の列(図14において図示略)に対しても、列毎に同様の計算を行い、その総和を、ステップS17における算出スコアとすればよい。
また、上記の処理経過の説明では、ステップS21で、表意味特定部106が、スコアが最大となっている意味の候補を、選択された表の意味として特定する場合を例にして説明した。この場合、選択された表に対して、1つの意味が特定されることになる。前述のように、表意味特定部106は、表の意味を複数個、特定してもよい。この場合、表意味記録部12は、ステップS21で特定された複数の意味(表の意味)を、ステップS19で算出されたスコアとともに、表意味記憶部11に記憶させる。
また、この場合、1つの表に複数の意味が割り当てられることになる。この場合のステップS9におけるスコア算出方法の例について説明する。1つの表に複数の意味が割り当てられている場合、第1の列表類似度算出部76(図3参照)は、その複数の意味のうち、スコアが最も高い意味のみに着目して、ステップS9におけるスコア計算を行ってもよい。図15は、意味の推定対象となる列と、表に割り当てられた複数の意味の例を示す模式図である。説明を簡単にするため、図15では、意味の推定対象となる列以外の列の図示を省略している。選択された意味の候補(列の意味の候補)を符号Xで表す。また、表には、「研究者」、「顧客」という2つの意味が割り当てられているとする。なお、括弧書きで示した数値は、意味に対応するスコアである。スコアが最も高い意味のみに着目してステップS9のスコア計算を行う場合、第1の列表類似度算出部76は、図15に示す例では、スコアが最も高い「研究者」のみを用いて、sim(X,研究者)を計算すればよい。そして、第1の列表類似度算出部76は、その計算結果を、ステップS9における算出スコアとすればよい。
また、ステップS9のスコア計算を行う場合、第1の列表類似度算出部76は、表に割り当てられている意味毎にsim()を計算し、その計算結果を、意味に対応付けられたスコアを用いて重み付け加算してもよい。例えば、図15に例示する場合、第1の列表類似度算出部76は、意味の候補“X”と、表の意味の類似度を、以下のように計算すればよい。
(4.5/(4.5+3.5))×sim(X,研究者)+(3.5/(4.5+3.5))×sim(X,顧客)
第1の列表類似度算出部76は、上記の計算結果を、ステップS9における算出スコアとしてもよい。
また、1つの表に複数の意味が割り当てられる場合のステップS18におけるスコア計算方法の例について説明する。1つの表に複数の意味が割り当てられている場合、表類似度算出部104(図7参照)は、その複数の意味のうち、スコアが最も高い意味のみに着目して、ステップS18におけるスコア計算を行ってもよい。図16は、意味の推定対象となる表と、その表に関連付けられている他の表の例を示す模式図である。図16に示す表51は、意味の推定対象となる表である。表51において選択されている意味の候補を符号Zで表す。表52は、表51に関連付けられている表である。表52には、「顧客」、「研究者」という2つの意味が割り当てられているとする。なお、括弧書きで示した数値は、意味に対応するスコアである。スコアが最も高い意味のみに着目してステップS18のスコア計算を行い場合、表類似度算出部104は、図16に示す例では、スコアが最も高い「顧客」のみを用いて、sim(Z,顧客)を計算すればよい。表類似度算出部104は、表51に関連付けられている他の表に関しても、表毎に同様の計算を行い、その総和を、ステップS18における算出スコアとすればよい。
また、表の意味の候補と、その表に関連付けられている他の表の意味との類似度を計算する場合、表類似度算出部104は、他の表に割り当てられている意味毎にsim()を計算し、その計算結果を、意味に対応付けられたスコアを用いて重み付け加算してもよい。例えば、図16に例示する場合、表類似度算出部104は、意味の候補“Z”と、表52の意味との類似度を以下のように計算すればよい。
(4.5/(4.5+3.5))×sim(Z,顧客)+(3.5/(4.5+3.5))×sim(Z,研究者)
表類似度算出部104は、表51に関連付けられている表毎に、上記と同様の計算を行い、その総和をステップS18における算出スコアとしてもよい。
実施形態2.
第2の実施形態では、本発明の意味推定システムは、表の各列の意味を推定し、表の意味に関しては推定しない。図17は、本発明の第2の実施形態の意味推定システムの構成例を示すブロック図である。図1に示す要素と同様の要素には、図1と同一の符号を付し、説明を省略する。表意味推定部10および表意味記録部12を備えていない点以外は、図1に示す構成と同様である。第2の実施形態では、意味推定システム1は、表意味推定部10を備えていないので、表の意味の推定を行わない。
第2の実施形態では、どの表とどの表が関連付けられているかを示す情報は与えられなくてよい。
第2の実施形態では、意味推定システム1は、前述のステップS15〜S22の処理を実行しない。すなわち、ステップS14において、列選択部71によって未選択の列がないと判定された場合(ステップS14のNo)、ステップS23に移行し、表選択部6が、未選択の表があるか否かを判定すればよい。その他の点については、第1の実施形態で説明した処理経過と同様である。
なお、予め表記憶部2に記憶される表には、表の意味が定められていなくてよい。その場合であっても、意味初期値割り当て部5が、表の意味の初期値を割り当てるので、第1の列表類似度算出部76(図3参照)は、ステップS9のスコア算出を実行することができる。なお、表の意味が定められていない場合には、ステップS9のスコア算出処理を省略してもよい。ステップS9のスコア算出処理を省略する列意味推定部7の構成例については、後述する。
また、予め表記憶部2に記憶される表に、表の意味が定められていてもよい。この場合、意味初期値割り当て部5は、予め定められている表の意味を、表の意味の初期値として割り当てればよい。
なお、第2の実施形態では、表の意味は、初期値から更新されることはない。
第2の実施形態においても、表内で選択された列(推定対象となる列)の意味の候補と、その表内の他の個々の列の意味との類似度を示すスコア(ステップS8で算出されるスコア)や、その意味の候補とその表の意味との類似度を示すスコア(ステップS9で算出されるスコア)を加味したスコアを、列スコア算出部77が、ステップS10で算出する。そして、列意味特定部78が、列の意味の候補毎に算出されたそのスコアに基づいて、列の意味を特定する。従って、表の各列の意味を高い精度で推定することができる。
なお、第1の実施形態で説明した変形例を、第2の実施形態に適用してもよい。
実施形態3.
第3の実施形態では、本発明の意味推定システムは、表の意味を推定し、表の各列の意味に関しては推定しない。図18は、本発明の第3の実施形態の意味推定システムの構成例を示すブロック図である。図1に示す要素と同様の要素には、図1と同一の符号を付し、説明を省略する。列意味推定部7および列意味記録部9を備えていない点以外は、図1に示す構成と同様である。第3の実施形態では、意味推定システム1は、列意味推定部7を備えていないので、表の各列の意味の推定を行わない。
第3の実施形態では、意味推定システム1は、前述のステップS4〜S14の処理を実行しない。すなわち、ステップS3で、表選択部6が1つの表を選択した後、ステップS15に移行し、表意味候補取得部101が、選択された表の表意味候補集合を取得すればよい。その他の点については、第1の実施形態で説明した処理経過と同様である。
なお、予め表記憶部2に記憶される各表において、各列の意味が定められていなくてもよい。その場合であっても、意味初期値割り当て部5が、各表の各列の意味の初期値を割り当てるので、第2の列表類似度算出部103(図7参照)は、ステップS17のスコア算出処理を実行することができる。なお、各表の各列の意味が定められていない場合には、ステップS17のスコア算出処理を省略してもよい。ステップS17のスコア算出処理を省略する表意味推定部10の構成例については、後述する。
また、予め表記憶部2に記憶される各表の各列に意味が定められていてもよい。この場合、意味初期値割り当て部5は、予め定められている各表の各列の意味を、それぞれの列の意味の初期値として割り当てればよい。
なお、第3の実施形態では、各表の各列の意味は、初期値から更新されることはない。
第3の実施形態においても、表の意味の候補と、その表の個々の列の意味との類似度を示すスコア(ステップS17で算出されるスコア)や、その意味の候補と、その表に関連付けられている個々の表の意味との類似度を示すスコア(ステップS18で算出されるスコア)を加味したスコアを、表スコア算出部105が、ステップS19で算出する。そして、表意味特定部106が、表の意味の候補毎に算出されたそのスコアに基づいて、表の意味を特定する。従って、表の意味を高い精度で推定することができる。
なお、第1の実施形態で説明した変形例を、第3の実施形態に適用してもよい。
次に、前述の種々の実施形態の変形例について説明する。
第1の実施形態および第2の実施形態において、列意味推定部7は、第1の実施形態で説明したステップS8のスコア算出処理を省略してもよい。図19は、この場合の列意味推定部7の構成例を示すブロック図である。図3に示す要素と同一の要素には、図3と同一の符号を付し、説明を省略する。列類似度算出部75を備えていない点以外は、図3に示す構成と同様である。本変形例では、列意味推定部7は、列類似度算出部75を備えていないので、ステップS8のスコア算出処理を行わない。
また、ステップS8のスコア算出処理は行われないので、図19に示す列スコア算出部77は、ステップS10(図10参照)において、ステップS7,S9で算出されたスコアの和を算出する。
その他の点は、第1の実施形態または第2の実施形態と同様である。本変形例では、推定対象となる列の意味の候補と表の意味との類似度を示すスコア(ステップS9で算出されるスコア)を加味したスコアを、列スコア算出部77が、ステップS10で算出する。そして、列意味特定部78が、列の意味の候補毎に算出されたそのスコアに基づいて、列の意味を特定する。従って、表の各列の意味を高い精度で推定することができる。
また、第1の実施形態および第2の実施形態において、列意味推定部7は、第1の実施形態で説明したステップ9のスコア算出処理を省略してもよい。図20は、この場合の列意味推定部7の構成例を示すブロック図である。図3に示す要素と同一の要素には、図3と同一の符号を付し、説明を省略する。第1の列表類似度算出部76を備えていない点以外は、図3に示す構成と同様である。本変形例では、列意味推定部7は、第1の列表類似度算出部76を備えていないので、ステップS9のスコア算出処理を行わない。
また、ステップS9のスコア算出処理は行われないので、図20に示す列スコア算出部77は、ステップS10(図10参照)において、ステップS7,S8で算出されたスコアの和を算出する。
その他の点は、第1の実施形態または第2の実施形態と同様である。本変形例では、推定対象となる列の意味の候補と、表内の他の個々の列の意味との類似度を示すスコア(ステップS8で算出されるスコア)を加味したスコアを、列スコア算出部77が、ステップS10で算出する。そして、列意味特定部78が、列の意味の候補毎に算出されたそのスコアに基づいて、列の意味を特定する。従って、表の各列の意味を高い精度で推定することができる。
また、第1の実施形態および第3の実施形態において、表意味推定部10は、第1の実施形態で説明したステップS17のスコア算出処理を省略してもよい。なお、ステップS17のスコア算出処理を省略する場合には、ステップS19の処理も省略してよい。図21は、この場合の表意味推定部10の構成例を示すブロック図である。図7に示す要素と同一の要素には、図7と同一の符号を付し、説明を省略する。第2の列表類似度算出部103および表スコア算出部105を備えていない点以外は、図7に示す構成と同様である。本変形例では、表意味推定部10は、第2の列表類似度算出部103および表スコア算出部105を備えていないので、ステップS17のスコア算出処理、および、ステップS19のスコア加算処理を行わない。
本変形例では、ステップS21(図12参照)において、表意味特定部106は、ステップS18で算出されたスコアに基づいて、選択されている表の意味を特定する。この点は、第1の実施形態および第3の実施形態のステップS21と異なる。
その他の点は、第1の実施形態または第3の実施形態と同様である。本変形例では、表の意味の候補と、その表に関連付けられている個々の表の意味との類似度を示すスコア(ステップS18で算出されるスコア)に基づいて、表意味特定部106が表の意味を特定する。従って、表の意味を高い精度で推定することができる。
また、第1の実施形態および第3の実施形態において、表意味推定部10は、第1の実施形態で説明したステップS18のスコア算出処理を省略してもよい。なお、ステップS18のスコア算出処理を省略する場合には、ステップS19の処理も省略してよい。図22は、この場合の表意味推定部10の構成例を示すブロック図である。図7に示す要素と同一の要素には、図7と同一の符号を付し、説明を省略する。表類似度算出部104および表スコア算出部105を備えていない点以外は、図7に示す構成と同様である。本変形例では、表意味推定部10は、表類似度算出部104および表スコア算出部105を備えていないので、ステップS18のスコア算出処理、および、ステップS19のスコア加算処理を行わない。
本変形例では、どの表とどの表が関連付けられているかを示す情報は与えられなくてよい。また、本変形例では、ステップS21(図12参照)において、表意味特定部106は、ステップS17で算出されたスコアに基づいて、選択されている表の意味を特定する。この点は、第1の実施形態および第3の実施形態のステップS21と異なる。
その他の点は、第1の実施形態または第3の実施形態と同様である。本変形例では、表の意味の候補と、その表の個々の列の意味との類似度を示すスコア(ステップS17で算出されるスコア)に基づいて、表意味特定部106が表の意味を特定する。従って、表の意味を高い精度で推定することができる。
また、上記の各実施形態やその変形例では、選択された意味の候補と、他の意味との類似度を求める際に、概念辞書のホップ数を用いるものとして説明した。より具体的には、選択された意味の候補と、他の意味との類似度を、概念辞書における両者間のホップ数の逆数として算出するものとして説明した。
上記の各実施形態やその変形例において、概念辞書のホップ数に相当する値を算出するためのベクトルを、表の意味の個々の候補、および、表の意味の個々の候補に、予め割り当てておき、概念辞書の代わりに、意味の候補毎に、意味の候補とベクトルとの組合せを意味集合記憶部4に記憶させておいてもよい。このベクトルは、埋め込みベクトルと称される。与えられた概念辞書に基づいて、概念辞書の各ノードの埋め込みベクトルを導出するアルゴリズムとして、RESCALが知られている。予めRESCALによって、個々の候補(意味の候補)毎に、埋め込みベクトルを導出しておき、意味の候補毎に、意味の候補と埋め込みベクトルとの組合せを意味集合記憶部4に記憶させておいてもよい。この場合、概念辞書が意味集合記憶部4に記憶されていなくても、sim(X,Y)(ここで、X,Yは、任意の意味)を求めることができる。Xに対応する埋め込みベクトルとYに対応する埋め込みベクトルの内積は、概念辞書におけるX,Y間のホップ数に相当する値となる。従って、意味の候補毎に、意味の候補と埋め込みベクトルとの組合せを意味集合記憶部4に記憶させておき、任意のX,Yに関してsim(X,Y)を求める場合には、Xに対応する埋め込みベクトルとYに対応する埋め込みベクトルの内積の逆数を求めればよい。このように、ホップ数を直接求めなくても、類似度を算出することができる。また、各意味の候補に応じた埋め込みベクトルを導出するアルゴリズムとして、word2vecが知られている。word2vecでは、概念辞書が与えられなくても、既存の種々の文書から埋め込みベクトルを導出することができる。
図23は、本発明の各実施形態に係るコンピュータの構成例を示す概略ブロック図である。コンピュータ1000は、CPU1001と、主記憶装置1002と、補助記憶装置1003と、インタフェース1004とを備える。
本発明の各実施形態の意味推定システム1は、コンピュータ1000に実装される。意味推定システム1の動作は、意味推定プログラムの形式で補助記憶装置1003に記憶されている。CPU1001は、その意味推定プログラムを補助記憶装置1003から読み出して主記憶装置1002に展開し、その意味推定プログラムに従って、上記の各実施形態や各種変形例で説明した処理を実行する。
補助記憶装置1003は、一時的でない有形の媒体の例である。一時的でない有形の媒体の他の例として、インタフェース1004を介して接続される磁気ディスク、光磁気ディスク、CD−ROM(Compact Disk Read Only Memory )、DVD−ROM(Digital Versatile Disk Read Only Memory )、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ1000に配信される場合、配信を受けたコンピュータ1000がそのプログラムを主記憶装置1002に展開し、上記の処理を実行してもよい。
また、プログラムは、前述の処理の一部を実現するためのものであってもよい。さらに、プログラムは、補助記憶装置1003に既に記憶されている他のプログラムとの組み合わせで前述の処理を実現する差分プログラムであってもよい。
また、各構成要素の一部または全部は、汎用または専用の回路(circuitry )、プロセッサ等やこれらの組み合わせによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
各構成要素の一部または全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
次に、本発明の概要について説明する。図24は、本発明の意味推定システムの概要を示すブロック図である。本発明の意味推定システムは、列意味候補選択手段303と、列類似度算出手段304と、列意味特定手段305とを備える。
列意味候補選択手段303(例えば、列意味候補選択部73)は、意味の推定対象となる列の意味の候補を選択する。
列類似度算出手段304(例えば、列類似度算出部75)は、列意味候補選択手段303によって選択された意味の候補毎に、選択された意味の候補と、表に含まれる推定対象となる列以外の個々の列の意味との類似度を示すスコアを算出する。
列意味特定手段305(例えば、列意味特定部78)は、列類似度算出手段304が算出したスコアを用いて、列の意味の候補の中から、推定対象となる列の意味を特定する。
そのような構成により、表の各列の意味を高い精度で推定することができる。
図25は、本発明の意味推定システムの概要の他の例を示すブロック図である。図25に示す意味推定システムは、列意味候補選択手段403と、第1の列表類似度算出手段404と、列意味特定手段405とを備える。
列意味候補選択手段403(例えば、列意味候補選択部73)は、意味の推定対象となる列の意味の候補を選択する。
第1の列表類似度算出手段404(例えば、第1の列表類似度算出部76)は、列意味候補選択手段によって選択された意味の候補毎に、選択された意味の候補と、表の意味との類似度を示すスコアを算出する。
列意味特定手段405(例えば、列意味特定部78)は、第1の列表類似度算出手段404が算出したスコアを用いて、列の意味の候補の中から、推定対象となる列の意味を特定する。
そのような構成により、表の各列の意味を高い精度で推定することができる。
上記の本発明の実施形態は、以下の付記のようにも記載され得るが、以下に限定されるわけではない。
(付記1)
表に含まれる列の意味を推定する意味推定システムであって、
意味の推定対象となる列の意味の候補を選択する列意味候補選択手段と、
前記列意味候補選択手段によって選択された意味の候補毎に、選択された意味の候補と、表に含まれる前記推定対象となる列以外の個々の列の意味との類似度を示すスコアを算出する列類似度算出手段と、
前記列類似度算出手段が算出したスコアを用いて、列の意味の候補の中から、前記推定対象となる列の意味を特定する列意味特定手段とを備える
ことを特徴とする意味推定システム。
(付記2)
表の各列の意味の初期値を割り当てる意味初期値割り当て手段と、
意味の推定対象となる列を選択する列選択手段とを備える
付記1に記載の意味推定システム。
(付記3)
意味初期値割り当て手段は、表の意味の初期値を割り当て、
列意味候補選択手段によって選択された意味の候補毎に、選択された意味の候補と、表の意味との類似度を示すスコアを算出する第1の列表類似度算出手段を備え、
列意味特定手段は、列類似度算出手段が算出したスコアと、前記第1の列表類似度算出手段が算出したスコアとを用いて、推定対象となる列の意味を特定する
付記2に記載の意味推定システム。
(付記4)
意味初期値割り当て手段は、与えられた複数の表それぞれに対して、表に含まれる各列の意味の初期値を割り当て、
前記与えられた複数の表の中から表を選択する表選択手段を備え、
所定の条件が満たされるまで、
前記表選択手段が、前記与えられた複数の表の中から表を選択し、列選択手段が、前記表選択手段によって選択された表の中から、意味の推定対象となる列を選択し、列意味特定手段が、前記選択された表の各列の意味を特定する処理を繰り返す
付記2に記載の意味推定システム。
(付記5)
意味初期値割り当て手段は、与えられた複数の表それぞれに対して、表の意味の初期値および表に含まれる各列の意味の初期値を割り当て、
前記与えられた複数の表の中から表を選択する表選択手段を備え、
所定の条件が満たされるまで、
前記表選択手段が、前記与えられた複数の表の中から表を選択し、列選択手段が、前記表選択手段によって選択された表の中から、意味の推定対象となる列を選択し、列意味特定手段が、前記選択された表の各列の意味を特定する処理を繰り返す
付記3に記載の意味推定システム。
(付記6)
表に含まれる列の意味を推定する意味推定システムであって、
意味の推定対象となる列の意味の候補を選択する列意味候補選択手段と、
前記列意味候補選択手段によって選択された意味の候補毎に、選択された意味の候補と、表の意味との類似度を示すスコアを算出する第1の列表類似度算出手段と、
前記第1の列表類似度算出手段が算出したスコアを用いて、列の意味の候補の中から、前記推定対象となる列の意味を特定する列意味特定手段とを備える
ことを特徴とする意味推定システム。
(付記7)
表の意味の初期値と、前記表の各列の意味の初期値とを割り当てる意味初期値割り当て手段と、
意味の推定対象となる列を選択する列選択手段とを備える
付記6に記載の意味推定システム。
(付記8)
意味初期値割り当て手段は、与えられた複数の表それぞれに対して、表の意味の初期値および表に含まれる各列の意味の初期値を割り当て、
前記与えられた複数の表の中から表を選択する表選択手段を備え、
所定の条件が満たされるまで、
前記表選択手段が、前記与えられた複数の表の中から表を選択し、列選択手段が、前記表選択手段によって選択された表の中から、意味の推定対象となる列を選択し、列意味特定手段が、前記選択された表の各列の意味を特定する処理を繰り返す
付記7に記載の意味推定システム。
(付記9)
意味初期値割り当て手段は、与えられた複数の表それぞれに対して、表の意味の初期値および表に含まれる各列の意味の初期値を割り当て、
前記与えられた複数の表の中から、意味の推定対象となる表を選択する表選択手段と、
前記推定対象となる表の意味の候補を選択する表意味候補選択手段と、
前記表意味候補選択手段によって選択された意味の候補毎に、選択された意味の候補と、前記推定対象となる表と関連付けられている当該表以外の個々の表の意味との類似度を示すスコアを算出する表類似度算出手段と、
前記表類似度算出手段が算出したスコアを用いて、表の意味の候補の中から、推定対象となる表の意味を特定する表意味特定手段とを備える
付記2、付記3および付記7のうちのいずれかに記載の意味推定システム。
(付記10)
意味初期値割り当て手段は、与えられた複数の表それぞれに対して、表の意味の初期値および表に含まれる各列の意味の初期値を割り当て、
前記与えられた複数の表の中から、意味の推定対象となる表を選択する表選択手段と、
前記推定対象となる表の意味の候補を選択する表意味候補選択手段と、
前記表意味候補選択手段によって選択された意味の候補毎に、選択された意味の候補と、前記推定対象となる表の個々の列の意味との類似度を示すスコアを算出する第2の列表類似度算出手段と、
前記第2の列表類似度算出手段が算出したスコアを用いて、表の意味の候補の中から、推定対象となる表の意味を特定する表意味特定手段とを備える
付記2、付記3および付記7のうちのいずれかに記載の意味推定システム。
(付記11)
意味初期値割り当て手段は、与えられた複数の表それぞれに対して、表の意味の初期値および表に含まれる各列の意味の初期値を割り当て、
前記与えられた複数の表の中から、意味の推定対象となる表を選択する表選択手段と、
前記推定対象となる表の意味の候補を選択する表意味候補選択手段と、
前記表意味候補選択手段によって選択された意味の候補毎に、選択された意味の候補と、前記推定対象となる表と関連付けられている当該表以外の個々の表の意味との類似度を示すスコアを算出する表類似度算出手段と、
前記表意味候補選択手段によって選択された意味の候補毎に、選択された意味の候補と、前記推定対象となる表の個々の列の意味との類似度を示すスコアを算出する第2の列表類似度算出手段と、
前記表類似度算出手段が算出したスコアと、前記第2の列表類似度算出手段が算出したスコアとを用いて、表の意味の候補の中から、推定対象となる表の意味を特定する表意味特定手段とを備える
付記2、付記3および付記7のうちのいずれかに記載の意味推定システム。
(付記12)
所定の条件が満たされるまで、
前記表選択手段が、前記与えられた複数の表の中から表を選択し、列選択手段が、前記表選択手段によって選択された表の中から、意味の推定対象となる列を選択し、列意味特定手段が、前記選択された表の各列の意味を特定し、表意味特定手段が、各表の意味を特定する処理を繰り返す
付記9から付記11のうちのいずれかに記載の意味推定システム。
(付記13)
表に含まれる列の意味を推定する意味推定方法であって、
コンピュータが、
意味の推定対象となる列の意味の候補を選択し、
選択した意味の候補毎に、選択した意味の候補と、表に含まれる前記推定対象となる列以外の個々の列の意味との類似度を示すスコアを算出する列類似度算出処理を実行し、
前記列類似度算出処理で算出したスコアを用いて、列の意味の候補の中から、前記推定対象となる列の意味を特定する
ことを特徴とする意味推定方法。
(付記14)
表に含まれる列の意味を推定する意味推定方法であって、
コンピュータが、
意味の推定対象となる列の意味の候補を選択し、
選択した意味の候補毎に、選択した意味の候補と、表の意味との類似度を示すスコアを算出する第1の列表類似度算出処理を実行し、
前記第1の列表類似度算出処理で算出したスコアを用いて、列の意味の候補の中から、前記推定対象となる列の意味を特定する
ことを特徴とする意味推定方法。
(付記15)
コンピュータに、表に含まれる列の意味を推定させるための意味推定プログラムであって、
前記コンピュータに、
意味の推定対象となる列の意味の候補を選択する列意味候補選択処理、
前記列意味候補選択処理で選択された意味の候補毎に、選択された意味の候補と、表に含まれる前記推定対象となる列以外の個々の列の意味との類似度を示すスコアを算出する列類似度算出処理、および、
前記列類似度算出処理で算出したスコアを用いて、列の意味の候補の中から、前記推定対象となる列の意味を特定する列意味特定処理
を実行させるための意味推定プログラム。
(付記16)
コンピュータに、表に含まれる列の意味を推定させるための意味推定プログラムであって、
前記コンピュータに、
意味の推定対象となる列の意味の候補を選択する列意味候補選択処理、
前記列意味候補選択処理で選択された意味の候補毎に、選択された意味の候補と、表の意味との類似度を示すスコアを算出する第1の列表類似度算出処理、および、
前記第1の列表類似度算出処理で算出したスコアを用いて、列の意味の候補の中から、前記推定対象となる列の意味を特定する列意味特定処理
を実行させるための意味推定プログラム。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
産業上の利用の可能性
本発明は、表の各列の意味や表の意味を推定する意味推定システムに好適に適用可能である。