(57)【要約】  テーブル形式のデータに対して、カラム間の包含関係の抽出をより容易とすることを目的として、第１のカラムおよび第２のカラムが含まれる入力テーブルに対し、第１のカラムの情報量と、第２のカラムの情報量と、を算出する工程と、第１のカラムの情報量と第２のカラムの情報量の大小関係を比較する工程と、第２のカラムに対する第１のカラムの情報量である第１の条件付き情報量を算出する工程と、第１の条件付き情報量に基づいて、第１のカラムと第２のカラムの包含関係を判定する工程と、を実行する。
2016002062.tif 000002
【特許請求の範囲】
【請求項１】
第１のカラムおよび第２のカラムが含まれる入力テーブルに対し、
前記第１のカラムの情報量である第１の情報量と、前記第２のカラムの情報量である第２の情報量と、を算出する第１の工程と、
前記第１の情報量と前記第２の情報量の大小関係を比較する第２の工程と、
前記第２のカラムに対する前記第１のカラムの情報量である、第１の条件付き情報量を算出する第３の工程と、
前記第１の条件付き情報量に基づいて、前記第１のカラムと前記第２のカラムの包含関係を判定する第４の工程と、
を有することを特徴とする情報処理方法。
【請求項２】
請求項１において、
前記第２の工程において、前記第１の情報量が０より大きく前記第２の情報量より小さい場合に、前記第３の工程を実行することを特徴とする情報処理方法。
【請求項３】
請求項１において、
前記第４の工程において、前記第１の条件付き情報量が、０以上所定の閾値未満の場合に、前記第１のカラムが前記第２のカラムを包含すると判定することを特徴とする情報処理方法。
【請求項４】
請求項１において、
前記第２のカラムに含まれるレコードの型を、時刻型、数値型または文字列型のどれであるか判定する第５の工程をさらに有することを特徴とする情報処理方法。
【請求項５】
請求項４において、
前記第５の工程において前記第２のカラムの型が時刻型であると判定された場合に、前記第２のカラムに含まれるレコードの刻み幅を変更した複数のカラムを生成する第６の工程をさらに有することを特徴とする情報処理方法。
【請求項６】
請求項４において、
前記第５の工程において前記第２のカラムの型が数値型であると判定された場合に、前記第２のカラムに含まれるレコードを、数値型として扱うか文字列型として扱うかを判定する第７の工程をさらに有することを特徴とする情報処理方法。
【請求項７】
請求項６において、
前記第６の工程において前記第２のカラムを数値型として扱うと判定した場合に、前記カラムのレコードの範囲を所定の閾値で分割した複数のカラムを生成する第８の工程をさらに有することを特徴とする情報処理方法。
【請求項８】
請求項３において、
前記入力テーブルは、第２のカラムを包含すると判定される第３のカラムをさらに有し、
前記情報処理方法は、前記第１、第２、および第３のカラムの包含関係を格納する包含関係テーブルに、前記第１および第３のテーブルに含まれるユニークなレコード数が大きい順を示す直近度を格納する第９の工程をさらに有することを特徴とする情報処理方法。
【請求項９】
請求項１において、
前記第１のカラムまたは前記第２のカラムにNullであるレコードが含まれている場合に、当該レコードを削除する第１０の工程をさらに有することを特徴とする情報処理方法。
【請求項１０】
第１のカラムおよび第２のカラムが含まれる入力テーブルを記憶する記憶部と、
前記第１のカラムの情報量である第１の情報量と、前記第２のカラムの情報量である第２の情報量と、を算出し、前記第１の情報量と前記第２の情報量の大小関係を比較する情報量計算処理部と、
前記第２のカラムに対する前記第１のカラムの情報量である、第１の条件付き情報量を算出し、前記第１の条件付き情報量に基づいて、前記第１のカラムと前記第２のカラムの包含関係を判定する包含関係計算処理部と、を有することを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置および情報処理システムに関する。より具体的には、テーブル形式のデータに対して、分析を支援する情報処理装置および情報処理システムに関する。
【背景技術】
【０００２】
近年、企業で蓄積されてきた業績に関するビッグデータを活用し、業績向上に繋がる要因を分析するシステムの開発が盛んに行われている。分析者は様々な情報を含む大量のデータに対して、条件を絞ることで要因を限定して目的との関係性を調べる。このとき、どの程度の粒度で条件を絞るかが重要である。ある店舗の売上向上について分析する場合を例に挙げる。例えば顧客の推移を時間ごとに絞って調べる場合、１分ごと、１時間ごと、６時間ごとのように、絞る時間の粒度によって分析結果が大きく異なる。このように分析者は、様々な条件、粒度にデータを加工する、または関係性を使って分析する。しかし分析するデータのサイズが大きくなるにつれ、こうしたデータの加工や関係性の発見を分析者が人手で行うことは困難になってきた。そこでこのような分析を支援するシステムの開発が求められている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−２２２７７号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本願発明に先駆けて、本願発明者らは、背景技術で述べたデータの粒度について、特に収集したデータ中におけるカラム間の粒度関係を抽出することを検討した。【０００５】
図１に、分析対象として扱うテーブルの具体例、及び、カラム間の粒度関係についての具体例を示す。テーブル001において、一つのサンプルを表すテーブルの各行をレコードと呼び、「顧客ID」002、「年齢」003、「入店時刻」004のようなテーブルの各列をカラムと呼ぶ。【０００６】
ここで、テーブル中のカラムには、格納されるレコードの粒度が異なるカラムが存在することがある。例えば、「商品分類」005は、「商品名」006の辞書的な上位概念であるため、「商品名」006を包含する。また、「年齢」003は、どの顧客も１つの年齢の値を持ち、同一年齢の顧客が複数人居る可能性があるため、「顧客ID」002を情報量的に包含する。【０００７】
このように、より粒度の細かい「商品名」006や「顧客ID」002を子カラム、粗い「商品分類」005や「年齢」003を親カラムと呼ぶ。すなわち、テーブル001において包含関係があるカラムの具体例は、「商品名」006と「商品分類」005、「顧客ID」002と「年齢」003である。一方、包含関係がないカラムの具体例は、例えば「商品分類」005と「気温」008等である。予め包含関係を見つけることができれば、分析の際にその情報を活用できる。【０００８】
包含関係を抽出する技術の一例として、特許文献１には、所定の単語の同義語や上位概念となる単語などの概念階層に関する情報を予めシソーラス辞書に登録しておき、検索に際して単語間の概念階層を考慮した検索方法を提供する技術が記載されている。【０００９】
特許文献1に記載の技術は、シソーラス辞書に、同義語や上位概念となる単語に関する情報が保存されている単語については、単語と単語の概念関係を知ることができる。しかしながら、例えば「年齢」は通常のシソーラス辞書においては、「顧客ID」の上位概念とは登録されない。さらに、今回対象とするテーブルにおけるカラム名は、テーブルの作成者が自由に割り当てることができるものである。そのため、商品の名前カラムのカラム名が、例えば「Label」、「Product Name」、「pro_name」、「商品名」のようにテーブルの作成者によって異なり、その結果、シソーラス辞書に登録されていない単語になることが当然にあり得る。これらの場合、特許文献１に記載の技術を用いて上位概念の単語を検索する方法は適用できない。【００１０】
以上を踏まえ、本願発明の目的は、テーブル形式のデータに対して、カラム間の包含関係の抽出をより容易とする技術を提供することにある。
【課題を解決するための手段】
【００１１】
本願発明による課題を解決する手段のうち代表的なものを例示すれば、情報処理方法であって、第１のカラムおよび第２のカラムが含まれる入力テーブルに対し、第１のカラムの情報量である第１の情報量と、第２のカラムの情報量である第２の情報量と、を算出する第１の工程と、第１の情報量と第２の情報量の大小関係を比較する第２の工程と、第２のカラムに対する第１のカラムの情報量である第１の条件付き情報量を算出する第３の工程と、第１の条件付き情報量に基づいて第１のカラムと第２のカラムの包含関係を判定する第４の工程と、を有することを特徴とする。【００１２】
または、情報処理システムであって、第１のカラムおよび第２のカラムが含まれる入力テーブルを記憶する記憶部と、第１のカラムの情報量である第１の情報量と第２のカラムの情報量である第２の情報量と、を算出し、第１の情報量と第２の情報量の大小関係を比較する情報量計算処理部と、第２のカラムに対する第１のカラムの情報量である、第１の条件付き情報量を算出し、第１の条件付き情報量に基づいて、第１のカラムと第２のカラムの包含関係を判定する包含関係計算処理部と、を有することを特徴とする。
【発明の効果】
【００１３】
本願発明によれば、テーブル形式のデータにおいて、カラム間の包含関係を抽出することがより容易となる。
【図面の簡単な説明】
【００１４】
【図１】カラムの包含関係を説明する模式図。
【図２】システム全体の構成を示すブロック図。
【図３】包含関係計算抽出部における処理フロー図。
【図４】情報量の計算における処理フロー図。
【図５】条件付き情報量の計算における処理フロー図。
【図６】全カラムを子カラムの対象とする処理フロー図。
【図７】入力テーブルを示す図。
【図８】包含関係情報テーブルを示す図。
【図９】親フラグテーブルを示す図。
【図１０】包含関係計算処理の具体例を示す模式図。
【図１１】カラムを自動生成する処理フロー図。
【図１２】全カラムの情報の具体例を示す図。
【図１３】型の分類を示す図。
【図１４】時刻テーブル生成処理における処理フロー図。
【図１５】テーブル自動生成処理における処理フロー図。
【図１６】時刻テーブルと自動生成テーブルの具体例を示す図。
【図１７】包含関係情報テーブルを示す図。
【図１８】出力テーブルを示す図。
【発明を実施するための形態】
【実施例１】
【００１５】
以下、本発明の一実施形態を、図面を参照して説明する。図２は、本発明のシステム全体のハードウェア構成を示すブロック図である。本実施例に係る情報処理システム100は、中央処理装置101および記憶装置102を含む情報処理装置100、入力装置103及び出力装置104を有する。【００１６】
中央処理装置101は、記憶装置102に格納されたプログラムを実行するプロセッサであり、情報量計算処理部105、包含関係計算処理部106等を有する。記憶装置102は、例えば磁気記憶装置、フラッシュメモリ等の大容量かつ不揮発性の記憶装置であり、入力テーブル107、出力テーブル108、包含関係情報テーブル109等を記憶する。入力装置103は、キーボード、マウスなどのユーザインターフェースであり、出力装置104は、ディスプレイ装置、プリンタなどのユーザインターフェースである。ここで、情報処理装置100と、入力装置103および出力装置104とはネットワークを介して接続されている構成としたが、この点は特に限定されない。本システムは物理的に一つの計算機上に構築されても、物理的には一つ又は複数の計算機上に構成された論理区画上に構築されてもよい。情報量計算処理部105は、例えば図４で後述する、各カラムの情報量を計算する。包含関係計算処理部106は、例えば図５で後述する、子カラムに対する親カラムの条件付き情報量を計算する。【００１７】
次に、情報処理システム100がテーブル形式のデータに対してカラム間の包含関係を抽出する方法を、図３を用いて説明する。図３は、中央処理装置101における処理を示したフロー図である。図３のフローにおいて、入力となるデータは、入力テーブル110および子カラム情報203である。入力テーブル110は、図７上段のような、例えば店舗の売上と顧客に関する情報が格納されているテーブルであり、テーブルの各列（顧客ID、年齢、入店時刻、…）のそれぞれにデータが含まれる。以下、このテーブルの各列を「カラム」と呼ぶ。また、テーブルの各行はレコードと呼ばれ、それぞれ一つのサンプルを表す。子カラム情報203が示す「子カラム」とは、図７下段の「商品分類」のように、入力テーブル110から任意に選択された一つのカラムである。図３では、子カラムを「商品分類」に固定した場合のフローを説明し、全カラムを子カラムの対象とするフローについては図６で説明する。【００１８】
まず、ステップ301において、入力テーブル110に含まれるカラムから、親カラム候補となるカラムを一つ選択し、親カラム情報302を生成する。図７下段に親カラム情報302の例を示す。親カラム候補は、子カラム情報203のカラムと親フラグテーブル309においてフラグが立っているカラム以外のカラムを対象として、入力テーブル110から順に選択される。ここで、親フラグテーブル309は包含関係が既知であるフラグ関係を示すテーブルである。このテーブルを用いることで、親カラムとして調べる必要のない組み合わせを除くことができる。親フラグテーブル309の具体例を図９に示す。親フラグテーブル309では、例えば「商品名」と「商品分類」が包含関係にあるとしてフラグが立っている。【００１９】
次に、ステップ303において、親カラム情報302のカラムの情報量H(X)と子カラム情報203のカラムの情報量H(Y)を算出する。ここで、情報量が大きいほどカラムのユニークなレコード数が多いことを示している。ユニークなレコード数とは、重複を許さないカラムのレコード数である。【００２０】
次に、ステップ304では、情報量の比較を行い、0<H(親カラム)<H(子カラム)を満たす時Yesと判定する。全てのレコードが同じ値を持つカラムは情報量が0となり、必ずH(親カラム)<H(子カラム)を満たすが、意味のない関係であるため、0<H(親カラム)を条件に加えてこのようなカラムを除いている。【００２１】
ステップ304でYesと判定された場合は、ステップ305において、親カラム情報302と子カラム情報203に対し、子カラムに対する親カラムの条件付き情報量H(X|Y)を算出する。【００２２】
次に、ステップ306で、子カラムによる親カラムの包含判定を行う。このステップは、カラム間の情報量の観点から見た包含関係を判定するステップであり、上記H(X|Y)が0である場合にYesと判断する。また、カラム内のデータにノイズが含まれた場合を考慮して、0に十分近い値所定の閾値α（例えば0.1）未満であるとき、Yesと判定する。【００２３】
ステップ307では、以上の判定の結果を包含関係情報テーブル109に登録する。ステップ306でYesと判定された場合には、カラム名および対応する親カラム名を包含関係情報テーブル109に登録する。【００２４】
次に、ステップ308で親フラグテーブル309を更新し、ステップ310で、包含関係情報テーブル109を更新する。【００２５】
ここで図４を用いて、図３のステップ303の詳細を説明する。まず、ステップ401で、親カラム情報302と、子カラム情報203を入力としNullを含むレコードを除いた親カラム情報、子カラム情報を出力する。このとき、親カラム情報302のレコードと子カラム情報203のレコードはペアで扱うため、いずれかがNullを含む場合は両方のレコードが除かれる。以上の具体例を図１０に示す。例えば入力テーブル110から、親カラム情報302として「商品分類」カラムが、子カラム情報203として「商品名」カラムが選択されている。これに対しステップ401を実行すると、「商品名」カラムにおける5番目のレコードには「スリッパ」が入っているが、「商品分類」カラムにおける5番目のレコードはnullであるため、5番目のレコードが削除された、親カラム情報701および子カラム情報702が出力される。その後、変数Zを初期化し(ステップ402)、各カラム中のユニークなレコードを抽出してXに格納する(ステップ403)。【００２６】
次に、ステップ404で、X中の各レコードxに対して情報量を、以下の（１）により算出する。【００２７】
【数１】
2016002062.tif 000003
【００２８】
ここで、
x：カラムの各ユニークなレコード
X：レコードxの集合
p(x)：カラムのレコードがxである確率
H(X)：カラムの情報量
である。この計算を、ステップ405において親カラムの全てのxに対して行う。そして、ステップ406および408〜410で、子カラムに対して同様の計算を行うことで、親カラムおよび子カラムについて情報量が算出できる(ステップ407)。【００２９】
具体的な演算は以下の通りである。まず、親カラム情報701に対して、情報量を算出する。親カラム情報701において、「商品分類」カラムのレコード数は9である。その中で、「商品分類」中の「文房具」であるレコードに注目すると、レコード数は3であるのでx=「文房具」である確率はp(x)=3/9である。同様にx=「食べ物」のときp(x)=4/9、x=「キッチン」のときp(x)=2/9であるため、X=「商品分類」カラムの情報量は、以下の式(2)よりH(X)=1.53と計算される。【００３０】
【数２】
2016002062.tif 000004
【００３１】
ここで、
x：「商品分類」カラムの各ユニークなレコード
X：レコードxの集合
p(x)：「商品分類」カラムのレコードがxである確率
H(X)：「商品分類」カラムの情報量
である。同様に、子カラム情報702に対して情報量を算出と、式(3)より情報量はH(Y)=2.95と計算される。【００３２】
【数３】
2016002062.tif 000005
【００３３】
ここで、
y：「商品名」カラムの各ユニークなレコード
Y：レコードyの集合
p(y)：「商品名」カラムのレコードがyである確率
H(Y)：「商品名」カラムの情報量
である。従って、0<H(X)<H(Y)であるため、後段のステップ304でYesと判定されることとなる。すなわち、本具体例では、「商品分類」カラムより「商品名」カラムの方が大きな情報量を持つカラムである。言い方を変えると、「商品分類」カラムより「商品名」カラムの方がユニークなレコード数が大きい。ユニークなレコード数とは重複を許さないカラムのレコード数である。【００３４】
次に図５を用いて、図３のステップ305の詳細を説明する。図４と同様に、Nullを含むレコードを除いた親カラム情報、子カラム情報を出力し(ステップ401)、Zを初期化し(ステップ501)、各カラム中のユニークなレコードを抽出してX、Yに格納する(ステップ502)。【００３５】
次に、ステップ503から505で、X、Y中の各レコードx、yについて、子カラムに対する親カラムの条件付き情報量506を算出する。ステップ503における、条件付き情報量の計算は、以下の式(4)によって行う。【００３６】
【数４】
2016002062.tif 000006
【００３７】
x：親カラムの各ユニークレコード
y：子カラムの各ユニークレコード
X：レコードxの集合
Y：レコードyの集合
p(y)  ：子カラムのレコードがyである確率
p(x、y)：親カラムのレコードがxかつ子カラムのレコードがyである確率
H(X|Y)：子カラムのレコードが決まったとき親カラムのレコードに残る情報量
以上の計算を、図１０の親カラム情報701および子カラム情報702を引き続き用いて説明する。以下、各記号の意味は以下の通りである。
x：「商品分類」カラムの各ユニークレコード
y：「商品名」カラムの各ユニークレコード
X：レコードxの集合
Y：レコードyの集合
p(y)：「商品数」カラムのレコードがyである確率
p(x、y)：「商品分類」カラムのレコードがxかつ「商品名」カラムのレコードがyである確率
H(X|Y)：「商品名」カラムのレコードが決まったとき「商品分類」カラムのレコードに残る情報量
まず、x=「文房具」、y=「ペン」とすると、「商品名」カラムのレコード数は9、「商品名」カラムが「ペン」であるレコード数は1、「商品名」カラムが「ペン」かつ「商品分類」が「文房具」であるレコード数は1であるので、p(y)=1/9であり、p(x、y)=1/9である。同様にしてx=「食べ物」、y=「お茶」のときp(y)=2/9、p(x、y)=2/9である。【００３８】
以上の要領で、全てのレコードについてp(y)とp(x、y)を用いて、X=「商品分類」カラムの全レコードに対するY=「商品名」カラムの全レコードの条件付き情報量は式(5)よりH(X|Y)=0と計算される。【００３９】
【数５】
2016002062.tif 000007
【００４０】
ここで、ステップ306では、H(X|Y)<αを満たす場合にYesと判定される。ここでαは、0≦α<0.1程度の範囲を持つ閾値である。具体例では条件を満たすためYesと判定され、これは言い換えると「商品分類」カラムは「商品名」カラムに包含されていると判定される。仮にXとYを入れ替え、「商品分類」カラムに対する「商品名」カラムの条件付き情報量H(Y|X)を計算したものを式(6)に示す。【００４１】
【数６】
2016002062.tif 000008
【００４２】
式(6)よりH(Y|X)=1.42となるが、これはH(Y|X)>αであるため、包含関係判定部306でNoと判定される値である。言い換えると、「商品名」カラムは「商品分類」カラムに包含されていないと判定される。つまり「商品分類」カラムは「商品名」カラムの親カラムであるが、逆は成り立たないことを示している。なお、以上の計算は説明のためのものであり、式(6)の計算は本願発明の実施に必須ではないことに留意されたい。【００４３】
このように、ステップ306では、片方のカラムのレコードが決まったとき、もう片方のカラムのレコードが唯一に決まる傾向にあるか判定している。入力テーブル110の具体例で説明すると、「商品名」が「ペン」であるとき「商品分類」は必ず「文房具」であるし、「商品名」が「お茶」であるとき「商品分類」は必ず「食べ物」であるため、「商品分類」カラムは「商品名」カラムの親カラムである。一方で「商品分類」が「文房具」であるとき、「商品名」は「ペン」「鉛筆」「消しゴム」のいずれかであり唯一に決まらないため、「商品名」は「商品分類」の親ではない。以上のように、情報量判定部304でYesかつ包含関係判定部306でYesと判定された親カラム情報302のカラムと子カラム情報203のカラムは包含関係にあるカラムである。【００４４】
以上で、子カラムを「商品分類」に固定した場合の、包含関係の抽出が完了した。次に、全カラムを子カラムとするフローを図６で説明する。【００４５】
まず、ステップ202で、入力テーブル110中の任意の一つのカラムを子カラムとして選択し、子カラム情報203を出力する。次に、ステップ204で、図３〜５にて説明した一連のフローを実行することで、カラム間の包含関係情報を抽出し、包含関係情報テーブル109を更新する。ステップ205で、ステップ204の処理を全てのカラムに対して実行する。【００４６】
ステップ205で、全てのカラムに対してステップ204の処理を実行したことを確認すると、必要に応じてステップ206で直近度計算処理を実行し、包含関係情報テーブル109を更新する。以上で、入力テーブル110に含まれる全カラムについて、包含関係が自動で算出できる。ここで、直近度603とは、カラム名601と親カラム名602に格納されるカラム間の包含関係の近さを示す値であり、カラム名601が同一のレコードについて、親カラム名602のレコード中に格納されているカラムについて、そのカラムのユニークなレコード数が多い順に番号が与えられる。直近度603の具体例は図１７で説明する。【００４７】
本実施例におけるテーブルとは、一般的なデータベースにおけるテーブルと同一の概念であると考えて問題ないが、本発明はテーブルがデータベース内のテーブルに限定されるものではなく、プログラム上のメモリ領域に格納されている形態でも良いし、テキストファイル形式、CSVファイル形式などあらゆる形態のデータに置き換えても良い。【００４８】
図８は、包含関係情報テーブル109の具体例である。カラム名601には、図７の入力テーブル110において包含関係を算出した子カラムのカラム名が格納される。親カラム名602には、カラム名601のカラムに対して親カラムが存在する場合、親カラムのカラム名が格納される。例えば、図３のステップ307において、レコード604に親カラム情報302のカラムである「商品分類」と子カラム情報203のカラムである「商品名」が登録されている。【００４９】
図９は親フラグテーブル309の具体例である。親フラグテーブル309は、行と列に同じ要素を持つ正方行列である。正方行列の中で、斜線を引いた場所は使用しない。親フラグテーブル309の初期状態は空のテーブルである。入力テーブル110から、ステップ307において「商品名」カラムと「商品分類」カラムが包含関係にあると登録されると、ステップ308によって親フラグテーブル309の「商品名」「商品分類」に対応する場所にフラグ1が格納される。同様に包含関係にあると判定されたカラムの組み合わせに対応する場所にフラグが格納される。【００５０】
このように、本実施例に係る情報処理方法は、第１のカラム（親カラム）および第２のカラム（子カラム）が含まれるテーブル110を入力とし、第１のカラムの情報量である第１の情報量H(X)および第２のカラムの情報量である第２の情報量H(Y)を求める工程303と、第１の情報量と第２の情報量を比較する工程304と、第２のカラムに対する第１のカラムの情報量である第１の条件付き情報量H(X|Y)を求める工程305と、第１の条件付き情報量に基づいて、第１のカラムと第２のカラムの包含関係を判定する工程306とを有することを特徴とする。また、本実施例に係る情報処理システムは、第１のカラムおよび第２のカラムが含まれる入力テーブルを記憶する記憶部102と、第１のカラムの情報量である第１の情報量と第２のカラムの情報量である第２の情報量と、を算出し、第１の情報量と第２の情報量の大小関係を比較する情報量計算処理部105と、第２のカラムに対する第１のカラムの情報量である第１の条件付き情報量を算出し、第１の条件付き情報量に基づいて第１のカラムと第２のカラムの包含関係を判定する包含関係計算処理部106と、を有することを特徴とする。【００５１】
係る特徴により、本実施例に係る情報処理方法および情報処理システムは、テーブル形式のデータに対して、カラム間の包含関係を抽出することがより容易となる。特に、この情報処理方法は、データの情報量に基づき包含関係を抽出する方法であるため、シソーラス辞書等は当然に不要であり、さらに、作成者が任意のカラム名を付与していたとしても問題なく実施が可能となる。
【実施例２】
【００５２】
図１１は実施例２における情報処理システム100のフロー図であり、実施例１の図６に対応するものである。実施例１との違いは、子カラム情報203によって入力される子カラムの型によって動作を変え、親カラムを自動生成する機能が追加されている点である。これにより、入力テーブル110中に子カラムの親カラムが存在しない場合でも親カラムを生成できる。【００５３】
図１１では、ユーザから入力テーブル110に加え、全カラムの情報テーブル801を入力とする。全カラムの情報テーブル801には、入力テーブル110に関する全てのカラムの情報が格納されている。全カラムの情報テーブル801の具体例を図１２に示す。入力テーブル110からステップ202によってカラムが一つ選択され、子カラム情報203が出力される。子カラムの情報203と全カラムの情報テーブル801を入力として、ステップ802において子カラム情報203のカラムの型を、「時刻型」「数値型」「文字列型」の三種類のいずれかに判定し、選択された型に応じて、それぞれステップ805、ステップ803、ステップ204が実行される。ステップ802では、全カラムの情報テーブル801に格納されている、子カラム情報203のカラムの型名を元に型が判定される。型の判定する型の分類について図１３に示す。【００５４】
ステップ802において時刻型と判定されると、ステップ805が実行され、時刻テーブル807が出力される。時刻テーブル生成処理部805の詳細なフローを図１４に、時刻テーブル807の具体例を図１６に示す。【００５５】
ステップ802において数値型と判定されると、ステップ803が実行され、子カラム情報203のカラム中の各レコードについて頻度分布が算出される。そして、得られた結果を用いてステップ804において、数値型として扱うか文字列型として扱うか判定される。具体的には、例えば頻度分布が一様分布に従う場合はNo、正規分布やその他の分布に従う場合はYesと判定するというように、子カラム情報203におけるカラムの要素がIDとして扱われている数値なのか、値として扱われている数値なのか判定する。ステップ804でYesと判定されると、ステップ806が実行され、自動生成テーブル808が出力される。自動生成テーブル生成処理部806の詳細を図１５に、自動生成テーブルの具体例を図１６に示す。【００５６】
ステップ802において文字列型と判定されると、ステップ204が実行される。ステップ204の詳細は図３〜５で説明したものと同様である。【００５７】
その後、入力テーブル110と時刻テーブル807または自動生成テーブル808を入力として、ステップ809によりテーブルが結合される。この結合は、入力テーブル110が一般的なリレーショナルデータベースにおけるテーブルの場合、結合クエリーであるinner joinを用いて行われ、テキスト形式など他の形式の場合も同等の処理で行われる。結合の際にキーとなるカラムは、子カラム情報テーブルのカラムである。ステップ810では、包含関係情報を包含関係情報テーブル812に格納する。包含関係情報テーブル812の具体例を図１７に示す。【００５８】
ステップ205においてYesと判定されると、出力テーブル108と包含関係情報テーブル812が出力され、必要に応じてステップ206により包含関係情報テーブル812が更新される。出力テーブル108の具体例を図１８に示す。今回は選択された子カラムに対して初めに型の判定を行ったが、初めにステップ204を実行し、親カラムが見つからなかった場合に型の判定を行い、ステップ805やステップ806を実行することも可能である。【００５９】
図１２は全カラムの情報テーブル801の具体例を示している。全カラムの情報テーブル801はカラム名、型名、閾値を格納する。カラム名は入力テーブル110の各カラムの名前、型名は一般的なリレーショナルデータベースにおける型名のことであり、int、float、double、decimal、bit、boolean、char、string、time、date、datetime等が挙げられる。閾値は、ユーザもしくはシステムから与えられる数値である。【００６０】
図１３は型の分類テーブル902を示している。ステップ802では、型の分類テーブル902のとおりに判定される。ここに上げた型以外の型についても同様にして型分類を定義して判定する。【００６１】
図１４は、ステップ805の詳細なフロー図を示している。この処理では、時刻型である子カラムに対して粒度を様々に変えたカラムを生成する。子カラム情報203を入力としてステップ1001でカラム中のレコードの開始日時と終了日時を、レコードの最大最小値を求めることで取得する。次に、ステップ1002では、開始日時から終了日時までの範囲で時刻テーブル807を生成する。時刻テーブル807の具体例を図１６に示す。【００６２】
図１５は、ステップ806の詳細なフロー図を示している。この処理では、子カラムに対して粒度を様々に変えたカラムを生成する。子カラム情報203を入力としてステップ1101でカラム中のレコードの最大値と最小値を取得し、その他にも、カラム中のレコードの頻度分布情報等を取得する。次に、ステップ1101で求めた子カラムの情報を元に、ステップ1102において自動生成テーブル808を生成する。ステップ1102では、全カラムの情報テーブル801から取得した閾値で最大値と最小値の範囲を分割した値を持つテーブルや、子カラムの頻度分布を元にテーブルを生成できる。自動生成テーブル808の具体例を図１６に示す。【００６３】
図１６は、時刻テーブル807と自動生成テーブル808の具体例である。ステップ1001により得られた開始の日時と終了の日時を元に時刻テーブル807が生成される。このとき生成される時刻テーブルは、10分刻みの時刻をレコードに持つカラム、1時間刻みの時刻をレコードに持つカラムなど様々な刻み幅の時刻カラムである。同様に、ステップ1101により得られた最大値と最小値を元に自動生成テーブル808が生成される。ここで「ReCalc_気温」カラム1506には、全カラムの情報テーブル801におけるカラム名中のレコード「気温」カラムに対応する「閾値」カラムのレコード「2」によって、入力テーブル110における「気温」カラムのレコードの最大値と最小値の範囲を2分割した値が格納されている。また、最大値と最小値を閾値で分割する方法以外にも、頻度分布情報抽出1102で抽出した頻度分布情報を元にして、頻度が均等になるように閾値で分割したカラムを生成することも可能である。【００６４】
図１７は、包含関係情報テーブル812の具体例である。カラム名601には、入力テーブル110における全てのカラムのカラム名が格納される。親カラム名602には、カラム名601のカラムに対して親カラムが存在する場合、親カラムのカラム名が格納される。直近度603は、カラム名601と親カラム名602に格納されるカラム間の包含関係の近さである。カラム名601のレコードが同じ親カラム名602のレコード中に格納されているカラムについて、そのカラムのユニークなレコード数が大きい順に番号が与えられる。レコード1201では、「気温」の親カラムとして自動生成テーブル生成処理部806により生成された「ReCalc_気温」が登録されている。レコード1208と1209では、カラム間の包含関係情報抽出処理部204により「顧客ID」の親カラムとして「年齢」、「商品名」の親カラムとして「商品分類」が抽出され登録されている。これらのレコードは、一つの子カラムに対して一つの親カラムしか存在しないため、直近度には1が格納されている。【００６５】
これに対しレコード1202、1203、1204では、時刻テーブル807が生成されたため、「10分ごとの時刻」「1時間ごとの時刻」「6時間ごとの時刻」が親カラムとしてそれぞれ登録されている。ここで「入店時刻」は親カラムを三つ持つため、各親カラムについてユニークなレコード数が大きい順に直近度603を求める。ここでは「10分ごとの時刻」「1時間ごとの時刻」「6時間ごとの時刻」の順にユニークなレコード数が大きいため、この順に直近度に順位が格納される。また「10分ごとの時刻」に対して「1時間ごとの時刻」「6時間ごとの時刻」、「1時間ごとの時刻」に対して「6時間ごとの時刻」が親カラムであるため、それぞれレコード1205、1206、1207に登録される。レコード1210のように親カラムが存在しない場合、親カラム名や直近度には何も格納されない。以上のようにして包含関係情報テーブル812が得られる。【００６６】
図１８は、出力テーブル108の具体例である。入力テーブル110に対して、ステップ805やステップ806で生成された時刻テーブル807や自動生成テーブル808がステップ809で結合され、出力テーブル108が出力される。出力テーブル108には、ステップ805によって、「入店時刻」カラム1301に対する親カラムとして「10分ごとの時刻」カラム1302、「1時間ごとの時刻」カラム1303、「6時間ごとの時刻」カラム1304が生成され、結合されている。また自動生成テーブル生成処理部806によって、「気温」カラム1305に対する親カラムとして「ReCalc_気温」カラム1306が生成され、結合されている。人工的に生成されたカラムを含むカラム間の包含関係情報は、包含関係情報テーブル812に格納されている。このように、本実施例に係る発明によって出力された出力テーブル108とカラムの包含関係情報テーブル812を用いることで、入力テーブル中のあらゆる型のカラムに対して包含関係を抽出することができる。
【符号の説明】
【００６７】
110：情報処理システム、101：中央処理装置、102：記憶装置、103：入力装置、104：出力装置、105：情報量計算処理部、106：包含関係計算処理部、107：入力テーブル、108：出力テーブル、109：包含関係情報テーブル、110：入力テーブル、202, 204, 205, 206, 301, 303, 304, 305, 306, 307, 308, 401, 402, 403, 404, 405, 406, 501, 502, 503, 504, 505, 802, 803, 804, 805, 806, 809, 810, 1001, 1002, 1101, 1102：ステップ、203, 702：子カラム情報、302, 701：親カラム情報、309：親フラグテーブル、407：情報量、506：条件付き情報量、601：カラム名、602：親カラム名、603：直近度、604, 1201〜1210：レコード、801：全カラムの情報テーブル、807：時刻テーブル、808：自動生成テーブル、812：包含関係情報テーブル、902：型の分類テーブル、1301〜1306：カラム。
【図１】
2016002062.tif 000009
【図２】
2016002062.tif 000010
【図３】
2016002062.tif 000011
【図４】
2016002062.tif 000012
【図５】
2016002062.tif 000013
【図６】
2016002062.tif 000014
【図７】
2016002062.tif 000015
【図８】
2016002062.tif 000016
【図９】
2016002062.tif 000017
【図１０】
2016002062.tif 000018
【図１１】
2016002062.tif 000019
【図１２】
2016002062.tif 000020
【図１３】
2016002062.tif 000021
【図１４】
2016002062.tif 000022
【図１５】
2016002062.tif 000023
【図１６】
2016002062.tif 000024
【図１７】
2016002062.tif 000025
【図１８】
2016002062.tif 000026
【手続補正書】
【提出日】平成28年10月26日(2016.10.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のカラムおよび第２のカラムが含まれる入力テーブルに対し、
前記第１のカラムの情報量である第１の情報量と、前記第２のカラムの情報量である第２の情報量と、を算出する第１の工程と、
前記第１の情報量と前記第２の情報量の大小関係を比較する第２の工程と、
前記第２のカラムに対する前記第１のカラムの情報量である、第１の条件付き情報量を算出する第３の工程と、
前記第１の条件付き情報量に基づいて、前記第１のカラムと前記第２のカラムの包含関係を判定する第４の工程と、
を有することを特徴とする情報処理方法。
【請求項２】
請求項１において、
前記第２の工程において、前記第１の情報量が０より大きく前記第２の情報量より小さい場合に、前記第３の工程を実行することを特徴とする情報処理方法。
【請求項３】
請求項１において、
前記第４の工程において、前記第１の条件付き情報量が、０以上所定の閾値未満の場合に、前記第１のカラムが前記第２のカラムを包含すると判定することを特徴とする情報処理方法。
【請求項４】
請求項１において、
前記第２のカラムに含まれるレコードの型を、時刻型、数値型または文字列型のどれであるか判定する第５の工程をさらに有することを特徴とする情報処理方法。
【請求項５】
請求項４において、
前記第５の工程において前記第２のカラムの型が時刻型であると判定された場合に、前記第２のカラムに含まれるレコードの刻み幅を変更した複数のカラムを生成する第６の工程をさらに有することを特徴とする情報処理方法。
【請求項６】
請求項４において、
前記第５の工程において前記第２のカラムの型が数値型であると判定された場合に、前記第２のカラムに含まれるレコードを、数値型として扱うか文字列型として扱うかを判定する第７の工程をさらに有することを特徴とする情報処理方法。
【請求項７】
請求項６において、
前記第７の工程において前記第２のカラムを数値型として扱うと判定した場合に、前記第２のカラムのレコードの範囲を所定の閾値で分割した複数のカラムを生成する第８の工程をさらに有することを特徴とする情報処理方法。
【請求項８】
請求項３において、
前記入力テーブルは、第２のカラムを包含すると判定される第３のカラムをさらに有し、
前記情報処理方法は、前記第１、第２、および第３のカラムの包含関係を格納する包含関係テーブルに、前記第１および第３のカラムに含まれるユニークなレコード数が大きい順を示す直近度を格納する第９の工程をさらに有することを特徴とする情報処理方法。
【請求項９】
請求項１において、
前記第１のカラムまたは前記第２のカラムにNullであるレコードが含まれている場合に、当該レコードを削除する第１０の工程をさらに有することを特徴とする情報処理方法。
【請求項１０】
第１のカラムおよび第２のカラムが含まれる入力テーブルを記憶する記憶部と、
前記第１のカラムの情報量である第１の情報量と、前記第２のカラムの情報量である第２の情報量と、を算出し、前記第１の情報量と前記第２の情報量の大小関係を比較する情報量計算処理部と、
前記第２のカラムに対する前記第１のカラムの情報量である、第１の条件付き情報量を算出し、前記第１の条件付き情報量に基づいて、前記第１のカラムと前記第２のカラムの包含関係を判定する包含関係計算処理部と、を有することを特徴とする情報処理システム。
【国際調査報告】
2016002062.tif 000027
2016002062.tif 000028