(57)【特許請求の範囲】
【請求項１】
Ｍ（Ｍは２以上の自然数）種類のカテゴリ毎にデータを有するレコードを処理するデータ処理装置が実行するデータ処理方法であって、
前記レコードの各カテゴリに対して、上位の階層とする第１のカテゴリと、下位の階層とする第２のカテゴリとのいずれに属するかを判定する判定ステップと、
前記判定ステップにおいて判定された判定結果と、前記カテゴリの要素数とに基づいて、前記カテゴリの第１の階層〜第Ｍの階層を特定する階層特定ステップと、
前記階層特定ステップにおいて特定された前記カテゴリの前記第１の階層〜第Ｍの階層に応じた階層構造を有するテーブルに対して、前記階層構造に基づいて前記データを格納する格納ステップと、
を有するデータ処理方法。
【請求項２】
前記テーブルの前記階層構造は、前記第１の階層〜第Ｍの階層において前記第１のカテゴリに属する階層の各カテゴリの要素を組み合わせた構造である請求項１に記載のデータ処理方法。
【請求項３】
前記テーブルに含まれる各カテゴリのデータと、検索キーに含まれるカテゴリのデータとの比較を前記テーブルの前記階層構造に基づいて行い、前記検索キーとマッチするレコードを選択して検索結果として出力する検索処理ステップと、
前記検索処理ステップにおいて出力した前記検索結果に基づいて、前記レコードに含まれるデータの特徴又は傾向を可視化した画像データを取得する画像データ取得ステップと、
を更に有する請求項１又は請求項２に記載のデータ処理方法。
【請求項４】
前記判定ステップは、当該カテゴリが前記第１のカテゴリと前記第２のカテゴリとのいずれに属するかを各カテゴリのデータの分散に基づいて判定する請求項１から請求項３のいずれか一項に記載のデータ処理方法。
【請求項５】
Ｍ（Ｍは２以上の自然数）種類のカテゴリ毎に値を有するデータの各カテゴリに対して、上位の階層とする第１のカテゴリと、下位の階層とする第２のカテゴリとのいずれに属するかを判定する判定部と、
前記判定部が判定した判定結果と、前記カテゴリの要素数とに基づいて、前記カテゴリに対して第１の階層〜第Ｍの階層を特定する階層特定部と、
前記階層特定部が特定した前記カテゴリの前記第１の階層〜第Ｍの階層に応じた階層構造を有するテーブルと、
前記階層構造に基づいて前記データを前記テーブルに格納する格納部と、
を備えるデータ処理装置。
【請求項６】
前記テーブルの前記階層構造は、前記第１の階層〜第Ｍの階層において前記第１のカテゴリに属する階層の各カテゴリの要素を組み合わせた構造である請求項５に記載のデータ処理装置。
【請求項７】
前記テーブルに含まれる各カテゴリのデータと、検索キーに含まれるカテゴリのデータとの比較を前記テーブルの前記階層構造に基づいて行い、前記検索キーとマッチするレコードを選択して検索結果として出力する検索処理部と、
前記検索処理部が出力した前記検索結果に基づいて、前記レコードに含まれるデータの特徴又は傾向を可視化した画像データを取得する画像データ取得部と、
を更に備える請求項５又は請求項６に記載のデータ処理装置。
【請求項８】
前記判定部は、当該カテゴリが前記第１のカテゴリと前記第２のカテゴリとのいずれに属するかを各カテゴリのデータの分散に基づいて判定する請求項５から請求項７のいずれか一項に記載のデータ処理装置。
【請求項９】
請求項１から請求項４のいずれか一項に記載のデータ処理方法をコンピュータに実行させるためのデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理方法、データ処理装置及びデータ処理プログラムに関する。
【背景技術】
【０００２】
近年、産業社会は、情報化の浸透に伴い、詳細なカテゴリに基づく統計データを得ることができるようになった。しかし、統計データの容量は、カテゴリの細分化・高次元化に伴って膨大になる。そこで、膨大な統計データからセマンティック情報を抽出する需要が高まっている。その需要を満たすため、統計データの特徴や傾向を示す画像を生成して、セマンティック情報を可視化する技術が開発されている。ここで、セマンティック情報とは、データ群の特徴や傾向を示す情報、データ群が何を意味するのかを示す情報又はデータ群のメタデータとなる情報である。
【０００３】
このようなセマンティック情報を可視化する技術は、時系列で広範囲にわたって収集されるビッグデータの解析や可視化などに関する応用分野で利用可能である。ビッグデータの具体例として、モバイル空間統計、ネットワークのトラフィック解析及びＩｏＴ(Internet of Things)センサによるイベント検出などが挙げられる。
【０００４】
セマンティック情報を可視化する技術は、データの集合を扱うため、格納手法とそれに基づく検索処理とが基本技術となる。従来の格納手法は、テーブル等で構成される関係データベースを用いる手法である。図５は、従来のテーブルのデータ構造例を示す図である。図５に示すように、テーブル５０は、Ｌ個（Ｌは１以上の自然数）のレコード５１−１〜５１−Ｌから構成されている。また、各レコード５１−１〜５１−Ｌは、Ｍ個（Ｍは２以上の自然数）のカテゴリ５２−１〜５２−Ｍで共通化されたデータのセットである。テーブル５０は、データをカテゴリ５２−１〜５２−Ｍ毎に格納した複数のレコード５１−１〜５１−Ｌを並べたデータ構造である。
【０００５】
従来の検索処理は、検索キーと呼ばれる、カテゴリの一部あるいは全部に対応したデータセットを各レコードと比較して、検索キーとマッチするレコードを選択する処理である。また、検索処理の結果に基づいて、可視化を行う。
図６は、従来のセマンティック情報を可視化する基本的な処理を示すフロー図である。なお、図６に示す処理は、コンピュータが行う処理である。
【０００６】
コンピュータは、解析対象となるデータを図５に示したテーブル５０に格納する（ステップＳ６１）。コンピュータは、所望のデータを検索するための検索キーを入力する（ステップＳ６２）。この入力処理は、コンピュータの利用者が入力する。コンピュータは、カテゴリの一部と対応したデータセットである検索キーを入力する。
【０００７】
コンピュータは、入力された検索キーを用いてテーブル５０に格納されたデータの検索を行う（ステップＳ６３）。コンピュータは、検索キーに含まれるデータセットと、各レコードの対応するカテゴリのデータとを比較して、検索キーとマッチするレコードを選択し、検索結果として出力する。コンピュータは、検索結果のレコードから可視化対象となるカテゴリのデータのサブセットを選択して可視化データを取得する（ステップＳ６４）。
【０００８】
コンピュータは、可視化データを、点又は線等の描画要素を用いた記述である描画データに変換する（ステップＳ６５）。コンピュータは、描画データに基づいて描画処理を行い、可視化画像データを出力する（ステップＳ６６）。これにより、コンピュータは、表示部に可視化画像データを表示したり、プリンタから可視化画像データを出力したりする。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１４−１７０４１０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
近年、情報通信技術の進歩により、ネットワークに接続された様々なディジタルセンシング装置が増加している。多様なディジタルセンシング装置から出力されるデータは、上述したテーブル５０におけるカテゴリの細分化の原因となっている。また、ディジタルセンシング装置は、所定の周期となる時系列のデータを出力するので、時間の経過と共にデータ量が増大する。上述したセマンティック情報を可視化する技術は、カテゴリの種類が非常に多く、かつ、膨大な量となるデータを処理すると、図６に示したステップＳ６１においてデータを格納するテーブル５０のデータ量が膨大となる。テーブル５０のデータ量が膨大であると、その後の処理であるステップＳ６３〜Ｓ６５の処理負荷が、膨大となってしまう。
【００１１】
上記事情に鑑み、本発明は、複数のデータをカテゴリに応じて格納したテーブルに基づいて複数のデータのセマンティック情報の可視化処理を行う場合に、テーブルに格納するデータの容量を減少させることができるデータ処理方法、データ処理装置及びデータ処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【００１２】
本発明の一態様は、Ｍ（Ｍは２以上の自然数）種類のカテゴリ毎にデータを有するレコードを処理するデータ処理装置が実行するデータ処理方法であって、前記レコードの各カテゴリに対して、上位の階層とする第１のカテゴリと、下位の階層とする第２のカテゴリとのいずれに属するかを判定する判定ステップと、前記判定ステップにおいて判定された判定結果と、前記カテゴリの要素数とに基づいて、前記カテゴリの第１の階層〜第Ｍの階層を特定する階層特定ステップと、前記階層特定ステップにおいて特定された前記カテゴリの前記第１の階層〜第Ｍの階層に応じた階層構造を有するテーブルに対して、前記階層構造に基づいて前記データを格納する格納ステップと、を有するデータ処理方法である。
【００１３】
本発明の一態様は、前記のデータ処理方法であって、前記テーブルの前記階層構造は、前記第１の階層〜第Ｍの階層において前記第１のカテゴリに属する階層の各カテゴリの要素を組み合わせた構造である。
【００１４】
本発明の一態様は、前記のデータ処理方法であって、前記テーブルに含まれる各カテゴリのデータと、検索キーに含まれるカテゴリのデータとの比較を前記テーブルの前記階層構造に基づいて行い、前記検索キーとマッチするレコードを選択して検索結果として出力する検索処理ステップと、前記検索処理ステップにおいて出力した前記検索結果に基づいて、前記レコードに含まれるデータの特徴又は傾向を可視化した画像データを取得する画像データ取得ステップと、を更に有する。
【００１５】
本発明の一態様は、前記のデータ処理方法であって、前記判定ステップは、当該カテゴリが前記第１のカテゴリと前記第２のカテゴリとのいずれに属するかを各カテゴリのデータの分散に基づいて判定する。
【００１６】
本発明の一態様は、Ｍ（Ｍは２以上の自然数）種類のカテゴリ毎に値を有するデータの各カテゴリに対して、上位の階層とする第１のカテゴリと、下位の階層とする第２のカテゴリとのいずれに属するかを判定する判定部と、前記判定部が判定した判定結果と、前記カテゴリの要素数とに基づいて、前記カテゴリに対して第１の階層〜第Ｍの階層を特定する階層特定部と、前記階層特定部が特定した前記カテゴリの前記第１の階層〜第Ｍの階層に応じた階層構造を有するテーブルと、前記階層構造に基づいて前記データを前記テーブルに格納する格納部と、を備えるデータ処理装置である。
【００１７】
本発明の一態様は、前記のデータ処理装置であって、前記テーブルの前記階層構造は、前記第１の階層〜第Ｍの階層において前記第１のカテゴリに属する階層の各カテゴリの要素を組み合わせた構造である。
【００１８】
本発明の一態様は、前記のデータ処理装置であって、前記テーブルに含まれる各カテゴリのデータと、検索キーに含まれるカテゴリのデータとの比較を前記テーブルの前記階層構造に基づいて行い、前記検索キーとマッチするレコードを選択して検索結果として出力する検索処理部と、前記検索処理部が出力した前記検索結果に基づいて、前記レコードに含まれるデータの特徴又は傾向を可視化した画像データを取得する画像データ取得部と、を更に備える。
【００１９】
本発明の一態様は、前記のデータ処理装置であって、前記判定部は、当該カテゴリが前記第１のカテゴリと前記第２のカテゴリとのいずれに属するかを各カテゴリのデータの分散に基づいて判定する。
【００２０】
本発明の一態様は、前記のデータ処理方法をコンピュータに実行させるためのデータ処理プログラムである。
【発明の効果】
【００２１】
本発明により、複数のデータをカテゴリに応じて格納したテーブルに基づいて複数のデータのセマンティック情報の可視化処理を行う場合に、テーブルに格納するデータの容量を減少させることができる。
【図面の簡単な説明】
【００２２】
【図１】本実施形態におけるデータ処理装置１０の機能構成例を示す図である。
【図２】本実施形態におけるテーブル情報格納部１０５が格納するテーブルのデータ構造例を示す図である。
【図３】本実施形態における描画処理部１１３が出力する可視化画像データの一例を示す図である。
【図４】本実施形態におけるデータ処理装置１０の動作例を示すフロー図である。
【図５】従来のテーブルのデータ構造例を示す図である。
【図６】従来のセマンティック情報を可視化する基本的な処理を示すフロー図である。
【発明を実施するための形態】
【００２３】
以下、図面を参照して、本発明の実施形態について説明する。
図１は、本実施形態におけるデータ処理装置１０の機能構成例を示す図である。図１に示すように、データ処理装置１０は、制御部１００と、入力処理部１０１と、データ取得部１０２と、データ蓄積部１０３と、テーブル生成部１０４と、テーブル情報格納部１０５と、表示制御部１０６と、疎密判定部１０７と、階層特定部１０８と、データ格納処理部１０９と、検索処理部１１０と、可視化データ取得部１１１と、描画データ取得部１１２と、描画処理部１１３とを備える。
【００２４】
データ処理装置１０は、例えば、コンピュータであり、キーボード及びマウス等である入力装置１１と、液晶ディスプレイ等である表示装置１２と、インターネット等であるネットワーク１３と接続されている。データ処理装置１０は、入力装置１１からの入力を受け付ける機能、表示装置１２に対して様々な画面を表示させる機能及びネットワーク１３を介してネットワーク１３上にあるディジタルセンシング装置（図１には示していない）等からデータを収集する機能を有する。データ処理装置１０は、入力装置１１又はネットワーク１３経由で取得した複数のデータからセマンティック情報となる画像データを生成し、表示装置１２に表示する機能を有する。セマンティック情報とは、複数のデータの特徴又は傾向を示す情報、複数のデータが何を意味するのかを示す情報又は複数のデータのメタデータとなる情報である。
【００２５】
制御部１００は、データ処理装置１０内の各部の動作を制御する。入力処理部１０１は、入力装置１１からの入力信号を受信し、入力信号に応じた信号を制御部１００へ出力する。データ取得部１０２は、ネットワーク１３経由で様々なデータを取得する。データ取得部１０２は、定期的にデータを取得してもよいし、任意のタイミングでデータを取得してもよい。なお、データ取得部１０２は、ＵＳＢメモリやＤＶＤ−ＲＯＭ等の記録媒体に記録されたデータを取得する機能をさらに備えてもよい。データ蓄積部１０３は、データ取得部１０２が取得したデータを、データに関する時刻及び所定のカテゴリに関連付けて記録し、蓄積する。データに関する時刻とは、例えばデータが生成された時刻であり、データ取得部１０２がデータを取得した時刻としてもよい。データ蓄積部１０３は、例えば、図５に示したような複数のカテゴリが行方向に並んだレコードを、列方向に複数並べたデータ構造のテーブルを用いてデータを蓄積する。
【００２６】
テーブル生成部１０４は、テーブル情報格納部１０５内にカテゴリに応じた階層的なデータ構造を有するテーブルを生成する。テーブル情報格納部１０５は、カテゴリに応じた階層的なデータ構造を有するテーブルを格納する。テーブルは、１まとまりのデータ１件を１レコード（１行）として、複数レコードから構成される。各レコードは、一部のカテゴリ対して階層的なデータ構造を共有する。テーブル情報格納部１０５は、データ蓄積部１０３に蓄積されたデータを、カテゴリに応じてテーブル内に格納している。ここで、テーブル情報格納部１０５内で用いられるテーブルのデータ構造例について具体例を示して説明する。
【００２７】
図２は、本実施形態におけるテーブル情報格納部１０５が格納するテーブルのデータ構造例を示す図である。レコード２１は、データ蓄積部１０３から読み出したデータを、所定のカテゴリの順番に並べたものである。テーブル２０は、レコード２１に含まれるデータを、階層的なデータ構造で格納する。レコード２１は、テーブル２０において、階層的な構造となる第１のカテゴリと、図５と同様の配列構造となる第２のカテゴリとから構成される。第１のカテゴリは、レコード２１において点線２３より左側に並んでいるカテゴリ２２−１〜カテゴリ２２−４から構成される。第２のカテゴリは、レコード２１において点線２３より右側に配列されたカテゴリ２２−５…カテゴリ２２−Ｍ（Ｍは、２以上の自然数であって、カテゴリの種類の数に応じて変化する）から構成される。
【００２８】
テーブル２０において、第１のカテゴリのデータ構造は、第２のカテゴリに比べて疎な構造である。疎な構造とは、例えば図２に示すように、左側の上位の階層から下位の階層へ下位の階層となるカテゴリに含まれる要素数に応じた分岐となる構造である。テーブル２０において、第２のカテゴリのデータ構造は、第１のカテゴリに比べて密な構造である。密な構造とは、カテゴリ毎のデータの並びをレコードとして、複数レコードからなる配列構造である。
【００２９】
図２を用いて、第１のカテゴリのデータ構造の詳細について説明する。最も左側の列となる最上位の階層は、カテゴリ２２−１の階層（第１の階層）であり、カテゴリ２２−１のｎ１種類の要素ＣＡＴ１−１〜ＣＡＴ１−ｎ１を上から順に列方向に並べたデータ構造である。ここで、ｎ１は、カテゴリ２２−１に含まれる要素数であり、要素の種類（データとして取りうる値の種類）の数を示す。例えば、カテゴリ２２−１が性別のカテゴリであれば、「男」、「女」の２個の要素数となり、ｎ１＝２となる。また、カテゴリ２２−１が血液型のカテゴリであれば「Ａ型」、「Ｂ型」、「Ｏ型」、「ＡＢ型」の４個の要素数となり、ｎ１＝４となる。以下に説明する他のカテゴリ２２−２〜２２−４におけるｎ２〜ｎ４も同様である。なお、各カテゴリの階層の決定方法については後述するが、ｎ１〜ｎ４は、ｎ１≦ｎ２≦ｎ３≦ｎ４の大小関係を有する。
【００３０】
カテゴリ２２−１の下位の階層となるカテゴリ２２−２の階層（第２の階層）は、ｎ２種類の要素ＣＡＴ２−１〜ＣＡＴ２−ｎ２のいずれかを列方向に配置している。第２の階層は、第１の階層となる要素ＣＡＴ１−１〜ＣＡＴ１−ｎ１の右側の列となる。上位の階層の要素ＣＡＴ１−１〜ＣＡＴ１−ｎ１の各々に下位の階層の要素ＣＡＴ２−１〜ＣＡＴ２−ｎ２の全て又は一部を対応させたデータ構造とする。ここで、上位の階層の要素ＣＡＴ１−１〜ＣＡＴ１−ｎ１の各々に下位の階層の要素ＣＡＴ２−１〜ＣＡＴ２−ｎ２の一部を対応させる場合とは、例えば以下の具体例１、２の場合である。具体例１は、上位の階層となるカテゴリと下位の階層となるカテゴリとの所定の組み合わせに対応するデータが無い場合である。具体例２は、上位の階層となるカテゴリの内容と、下位の階層となるカテゴリの内容とを参酌すると現実的ではない組み合わせがある場合である。このように不要な下位の階層のカテゴリを省略することで、テーブル２０を用いたデータ処理の負荷を軽減することができる。
【００３１】
例えば、小学校の学年というカテゴリがあり、１年生〜６年生の６個の要素を含み、かつ、年齢というカテゴリがあり、０歳〜６０歳までの６１個の要素を含む場合について説明する。この場合には、小学校の学年というカテゴリが上位の階層となり、年齢というカテゴリが下位の階層となる。そして、上位のカテゴリである小学校１年生の要素には、下位のカテゴリにおいて、小学校１年生の年齢となる６歳又は７歳の要素のみを対応させればよい。図２においては、図を複雑にしないよう、上位のカテゴリの要素に、下位のカテゴリの一部の要素のみを対応させている。
【００３２】
例えば、要素ＣＡＴ１−１に対応する下位の階層となる要素は、要素ＣＡＴ２−１及び要素ＣＡＴ２−２の２つの要素のみである。要素ＣＡＴ１−１及び要素ＣＡＴ２−１に対応する下位の階層となる要素は、要素ＣＡＴ３−１及び要素ＣＡＴ３−２の２つの要素のみである。要素ＣＡＴ１−１、要素ＣＡＴ２−１及び要素ＣＡＴ３−１に対応する下位の階層となる要素は、要素ＣＡＴ４−１及び要素ＣＡＴ４−２の２つの要素のみである。要素ＣＡＴ１−１及び要素ＣＡＴ２−２に対応する下位の階層となる要素は、要素ＣＡＴ３−２のみである。要素ＣＡＴ１−１、要素ＣＡＴ２−２及び要素ＣＡＴ３−２に対応する下位の階層となる要素は、要素ＣＡＴ４−２のみである。要素ＣＡＴ１−１、要素ＣＡＴ２−１及び要素ＣＡＴ３−２に対応する下位の階層となる要素は、要素ＣＡＴ４−１のみである。要素ＣＡＴ１−ｎ１に対応する下位の階層となる要素は、要素ＣＡＴ２−ｎ２のみである。要素ＣＡＴ１−ｎ１及び要素ＣＡＴ２−ｎ２に対応する下位の階層となる要素は、要素ＣＡＴ３−ｎ３のみである。要素ＣＡＴ１−ｎ１、要素ＣＡＴ２−ｎ２及び要素ＣＡＴ３−ｎ３に対応する下位の階層となる要素は、要素ＣＡＴ４−ｎ４のみである。
【００３３】
第２の階層の下位の階層となるカテゴリ２２−３の階層（第３の階層）は、ｎ３種類の要素ＣＡＴ３−１〜ＣＡＴ３−ｎ３のいずれかを列方向に配置している。上位の階層の要素ＣＡＴ２−１〜ＣＡＴ２−ｎ２の各々に下位の階層の要素ＣＡＴ３−１〜ＣＡＴ３−ｎ３の全て又は一部を対応させたデータ構造とする。第３の階層の下位の階層となるカテゴリ２２−４の階層（第４の階層）は、ｎ４種類の要素ＣＡＴ４−１〜ＣＡＴ４−ｎ４のいずれかを列方向に配置している。上位の階層の要素ＣＡＴ３−１〜ＣＡＴ３−ｎ３の各々に下位の階層の要素ＣＡＴ４−１〜ＣＡＴ４−ｎ４の全て又は一部を対応させたデータ構造とする。
【００３４】
このように、要素ＣＡＴ１−１〜要素ＣＡＴ１−ｎ１、要素ＣＡＴ２−１〜要素ＣＡＴ２−ｎ２、要素ＣＡＴ３−１〜要素ＣＡＴ３−ｎ３及び要素ＣＡＴ４−１〜要素ＣＡＴ４−ｎ４から構成される第１のカテゴリのデータ構造は、各階層となるカテゴリの要素数に基づいたものであり、後述する第２のカテゴリの配列構造と比較すると、疎な構造である。
【００３５】
第２のカテゴリのデータ構造の詳細について説明する。第２のカテゴリのデータ構造は、上述した第１のカテゴリの最下層（第４の階層）に配置された要素（要素ＣＡＴ４−１〜要素ＣＡＴ４−ｎ４のいずれか）に対して、それぞれに配列２４−１〜２４−ｍが配置された構造である。ここで、ｍは、第４の階層に含まれる要素の数であり、最大でｎ１×ｎ２×ｎ３×ｎ４の値となる。
【００３６】
配列２４−１〜２４−ｍのデータ構造について、配列２４−１を例に説明する。図２に示すように、配列２４−１は、Ｌ１個のレコード２４−１−１〜２４−１−Ｌ１から構成される。Ｌ１は、第１のカテゴリにおける要素ＣＡＴ１−１、要素ＣＡＴ２−１、要素ＣＡＴ３−１及び要素ＣＡＴ４−１を有するレコードの数である。
【００３７】
各レコード２４−１−１〜２４−１−Ｌ１は、カテゴリ２２−５〜カテゴリ２２−Ｍに対応するデータを含む。Ｍは、レコード２４−１−１〜２４−１−Ｌ１に含まれるカテゴリの総数に第１のカテゴリに含まれるカテゴリの数を加算した値である。Ｍは、レコード２１に含まれるカテゴリの総数でもある。
【００３８】
図２には示していないが配列２４−２〜２４−ｍのデータ構造は、配列２４−１と同様のデータ構造である。すなわち、配列２４−２は、Ｌ２個のレコード２４−２−１〜２４−２−Ｌ２から構成される。配列２４−３は、Ｌ３個のレコード２４−３−１〜２４−３−Ｌ３から構成される。配列２４−４は、Ｌ４個のレコード２４−４−１〜２４−４−Ｌ４から構成される。配列２４−ｍは、Ｌｍ個のレコード２４−ｍ−１〜２４−ｍ−Ｌｍから構成される。
【００３９】
このように、レコード２４−１−１〜２４−１−Ｌ１から構成される第２のカテゴリのデータ構造は、各カテゴリ及び各レコードの値を有する配列構造であるので、第１のカテゴリの配列構造と比較すると、密な構造である。テーブル情報格納部１０５は、図２に示すデータ構造を有するテーブル２０を格納する。これにより、データ処理装置１０は、図５に示した従来のテーブルと比較して、テーブル２０に格納するデータの容量を減少させることができる。また、データ処理装置１０は、図５に示した従来のテーブルと比較して、テーブル２０をデータ処理する際の負荷を減少させることができる。
【００４０】
表示制御部１０６は、制御部１００からの画面情報に応じた画面を表示装置１２に表示させる。表示制御部１０６は、例えば、セマンティック情報となる画像データを含む画面を表示装置１２に表示させる。
【００４１】
疎密判定部１０７は、データ蓄積部１０３から読み出したデータの各カテゴリが、疎な構造に適したカテゴリ（第１のカテゴリ）であるか、密な構造に適したカテゴリ（第２のカテゴリ）であるかを判定する。疎密判定部１０７は、テーブル２０に示すようなデータ構造を生成するために、データの各カテゴリを、第１のカテゴリとするか、第２のカテゴリとするかを判定する（以下、疎密判定という）。
【００４２】
階層特定部１０８は、疎密判定部１０７の各カテゴリに対する判定結果及び各カテゴリの要素の数に基づいて、各カテゴリの階層を特定する。テーブル２０において、各カテゴリの左端からの並びの順は、階層特定部１０８が特定した階層に応じた並びの順となっている。テーブル生成部１０４は、疎密判定部１０７が判定した疎密判定及び階層特定部１０８が特定した各カテゴリの階層に応じて、図２に示したテーブル２０と同様のデータ構造のテーブルをテーブル情報格納部１０５内に生成する。
【００４３】
ここで、疎密判定部１０７及び階層特定部１０８におけるカテゴリの疎密判定及び階層の特定の具体例について説明する。疎密判定部１０７及び階層特定部１０８は、データ蓄積部１０３に蓄積されたデータの一部又は全部を用いてカテゴリの疎密判定及び階層の特定を行う。疎密判定部１０７は、データ蓄積部１０３より処理対象とするデータを取得し、各カテゴリのデータについて正規化を行う。正規化を行う理由は、データの値の範囲を同一とするためである。なお、疎密判定部１０７は、文字のデータを数字化する。例えば、性別のカテゴリのデータ「男」、「女」であれば、疎密判定部１０７は、「男」＝０、「女」＝１としてから正規化を行う。ｉ番目のカテゴリにおいてｎｉ個のデータが含まれる場合、そのカテゴリのデータは、｛ｖｉ，ｋ｜ｋ＝１，…，ｎｉ｝で表す。正規化後のデータは、｛＾ｖｉ，ｋ｜ｋ＝１，…，ｎｉ｝で表す（ｖの前の＾は、実際にはｖの上に位置するものである）。
【００４４】
疎密判定部１０７は、正規化したデータ＾ｖｉ，ｋの標本分散ｓｉ２を以下の（式１）を用いて算出する。
【数１】
0006348915.tif 000002
【００４５】
疎密判定部１０７は、予め決められた分散ｓｉ２についての閾値Ｓを保持している。疎密判定部１０７は、ｉ番目のカテゴリをＣｉで表した以下の（式２）を用いて、各カテゴリＣｉの疎密判定を行う。（式２）において、Ｃｓｐａｒｓｅは疎な構造に適した第１のカテゴリの集合を表している。Ｃｓｏｌｉｄは、密な構造に適した第２のカテゴリの集合を表している。
【数２】
0006348915.tif 000003
【００４６】
（式２）に示すように、疎密判定部１０７は、カテゴリＣｉの分散ｓｉ２が閾値Ｓより大きい場合に、そのカテゴリＣｉを第１のカテゴリの集合Ｃｓｐａｒｓｅに含めると判定する。疎密判定部１０７は、カテゴリＣｉの分散ｓｉ２が閾値Ｓ以下の場合に、そのカテゴリＣｉを第２のカテゴリの集合Ｃｓｏｌｉｄに含めると判定する。このように、分散の値が大きいカテゴリを疎なデータ構造とすることで、疎なデータ構造（例えば、木構造）の最下層の各要素に対して、第２のカテゴリの配列を偏りなく対応させることができる。このように、疎なデータ構造の最下層の各要素に対して、偏りなく第２のカテゴリの配列が対応されていると、データを検索する際に、疎なデータ構造に含まれるカテゴリを用いて効率よくデータを絞り込むことができる。
【００４７】
階層特定部１０８は、２つのカテゴリＣｉ及びカテゴリＣｊに対して、カテゴリＣｉはカテゴリＣｊより上位の階層であるか、下位の階層であるかを以下の４つの条件式に応じて決定する。下記の条件式においてＮｉ、ＮｊがそれぞれカテゴリＣｉ及びカテゴリＣｊの要素数を表す。
Ｃｉが上位、ｉｆ  Ｃｉ∈｛Ｃｓｐａｒｓｅ｝，Ｃｊ∈｛Ｃｓｏｌｉｄ｝
Ｃｉが上位、ｉｆ  Ｎｉ＜Ｎｊ，ｗｈｉｌｅ  Ｃｉ∈｛Ｃｓｐａｒｓｅ｝，Ｃｊ∈｛Ｃｓｐａｒｓｅ｝
Ｃｉが上位、ｉｆ  Ｎｉ＜Ｎｊ，ｗｈｉｌｅ  Ｃｉ∈｛Ｃｓｏｌｉｄ｝，Ｃｊ∈｛Ｃｓｏｌｉｄ｝
Ｃｉが下位、ｉｆ  ｏｔｈｅｒｗｉｓｅ
【００４８】
上記条件式に示すように、階層特定部１０８は、カテゴリＣｉが第１のカテゴリに属し、カテゴリＣｊが第２のカテゴリに属する場合は、カテゴリＣｉを上位とする。階層特定部１０８は、カテゴリＣｉ及びカテゴリＣｊが共に第１のカテゴリに属し、かつ、カテゴリＣｉの要素数がカテゴリＣｊの要素数より小さい場合は、カテゴリＣｉを上位とする。階層特定部１０８は、カテゴリＣｉ及びカテゴリＣｊが共に第２のカテゴリに属し、かつ、カテゴリＣｉの要素数がカテゴリＣｊの要素数より小さい場合は、カテゴリＣｉを上位とする。
【００４９】
階層特定部１０８は、ｏｔｈｅｒｗｉｓｅの場合に、カテゴリＣｉを下位とするが、具体的には、以下の条件に応じた処理を行う。階層特定部１０８は、カテゴリＣｉが第２のカテゴリに属し、カテゴリＣｊが第１のカテゴリに属する場合は、カテゴリＣｉを下位とする。階層特定部１０８は、カテゴリＣｉ及びカテゴリＣｊが共に第１のカテゴリに属し、かつ、カテゴリＣｉの要素数がカテゴリＣｊの要素数以上の場合は、カテゴリＣｉを下位とする。階層特定部１０８は、カテゴリＣｉ及びカテゴリＣｊが共に第２のカテゴリに属し、かつ、カテゴリＣｉの要素数がカテゴリＣｊの要素数以上の場合は、カテゴリＣｉを下位とする。
【００５０】
階層特定部１０８は、階層特定の対象であるカテゴリＣｉと、階層特定済みのカテゴリ群の上位又は下位から順に取り出したカテゴリＣｊとの階層関係を上記条件式で判断する。これにより、階層特定部１０８は、階層特定の対象であるカテゴリＣｉが収まるべき階層特定済みのカテゴリ群内の階層を特定する。階層特定部１０８は、各カテゴリを第１の階層から第Ｍの階層と対応させる情報であるカテゴリ階層情報を、テーブル生成部１０４及びデータ格納処理部１０９へ出力する。テーブル生成部１０４は、テーブル情報格納部１０５内にカテゴリ階層情報に応じた階層的なデータ構造を有するテーブルを生成する。データ格納処理部１０９は、階層特定部１０８から受信したカテゴリ階層情報を保持する。
【００５１】
データ格納処理部１０９は、データ蓄積部１０３から取得したデータを、カテゴリに応じてテーブル情報格納部１０５内のテーブルに格納する処理を行う。データ格納処理部１０９は、テーブル情報格納部１０５内のテーブルの階層構造に従ってデータを格納する。テーブルの階層構造に従ってデータを格納する処理について、図２に示したテーブル２０を用いて説明する。
【００５２】
まず、データ格納処理部１０９は、データ蓄積部１０３から取得したデータに対して、カテゴリ階層情報に基づいて第１の階層から第Ｍの階層までの階層を特定する。データ格納処理部１０９は、データの階層を特定するために、例えば、図２に示すレコード２１と同じカテゴリ順となるデータを生成してもよい。
【００５３】
データ格納処理部１０９は、最上位となる第１の階層のデータが、要素ＣＡＴ１−１…要素ＣＡＴ１−n１のいずれに該当するのか判断し、特定する。データ格納処理部１０９は、第２の階層となるデータが、特定した第１の階層の要素に繋がる第２の階層の要素のいずれに該当するのか判断する。例えば、第１の階層で要素ＣＡＴ１−１が特定されると、データ格納処理部１０９は、第２の階層となるデータが、要素ＣＡＴ２−１及び要素ＣＡＴ２−２のどちらに該当するのか判断する。
【００５４】
第２の階層において例えば要素ＣＡＴ２−１に該当すると判断されたとすると、データ格納処理部１０９は、第３の階層のデータが要素ＣＡＴ３−１及び要素ＣＡＴ３−２のどちらに該当するデータかを判断する。第３の階層において例えば要素ＣＡ３−１に該当すると判断されたとすると、データ格納処理部１０９は、第４の階層のデータが要素ＣＡＴ４−１及び要素ＣＡＴ４−２のどちらに該当するデータかを判断する。ここで、第４の階層において要素ＣＡＴ４−２に該当すると判断されたとすると、データ格納処理部１０９は、第５の階層〜第Ｍの階層のデータを配列２４−２に対してレコードとして追加する。これにより、テーブル情報格納部１０５内に図２に示すデータ構造と同様のデータ構造を有するテーブルが構成される。
【００５５】
検索処理部１１０は、テーブル情報格納部１０５内のテーブルの各レコードと検索キーとを比較して、検索キーとマッチするレコードを選択する。検索処理部１１０は、カテゴリの一部あるいは全部に対応したデータセットを検索キーとする。検索キーは、入力装置１１から予め入力されているものとする。検索処理部１１０は、検索キーに含まれるデータセットと、各レコードの対応するカテゴリのデータとを比較して、検索キーとマッチするレコードを選択し、検索結果として出力する。検索処理部１１０は、選択されたレコードを図２に示すレコード２１と同じ構成として、それらのレコードを並べたデータセットを検索結果として出力する。
【００５６】
検索処理部１１０は、検索キーの中に第１のカテゴリに含まれるカテゴリのデータがあれば、まず、このカテゴリのデータを用いて第１のカテゴリの階層構造を利用した検索を行う。検索キーの中に第１のカテゴリに含まれるカテゴリのデータが無い場合、検索キーの中に第１のカテゴリに含まれるカテゴリのデータが１つある場合、検索キーの中に第１のカテゴリに含まれるカテゴリのデータが複数ある場合、のそれぞれの場合について、検索処理部１１０の検索処理について、図２に示したテーブル２０を検索する場合について説明する。
【００５７】
＜検索キーの中に第１のカテゴリに含まれるカテゴリのデータが無い場合＞
検索キーは、第２のカテゴリに含まれるカテゴリのデータを含む。検索処理部１１０は、配列２４−１〜配列２４−ｍに含まれる各レコードの対応するカテゴリのデータと、検索キーとを比較して検索結果を出力する。
【００５８】
＜検索キーの中に第１のカテゴリに含まれるカテゴリのデータが１つある場合＞
検索キー中の第１のカテゴリに含まれるカテゴリに対応する１つのデータを、第１のデータとし、検索キー中の第２のカテゴリに含まれるカテゴリに対応する１つ又は複数のデータを、第２のデータとする。検索処理部１１０は、テーブル２０の木構造となるカテゴリの中から第１のデータとマッチする要素を特定し、特定された要素の下位となる要素及び配列を特定する。
【００５９】
例えば、第１のデータとマッチする要素が要素ＣＡＴ３−１であれば、検索処理部１１０は、要素ＣＡＴ３−１の下位に繋がる第４の階層の要素ＣＡＴ４−１、要素ＣＡＴ４−２、…と、その第４の階層の要素ＣＡＴ４−１、要素ＣＡＴ４−２に対応する配列２４−１、２４−２、…を特定する。検索処理部１１０は、特定された配列内のデータと、第２のデータとを比較して、マッチするレコードを選択する。例えば、第１のデータとマッチする要素が要素ＣＡＴ３−１であれば、検索処理部１１０は、要素ＣＡＴ３−１の下位に繋がる配列２４−１、２４−２、…内のデータと、第２のデータとを比較する。このように、検索処理部１１０は、テーブル２０の階層構造に基づいて検索を行うことで効率よい検索処理を実現している。
【００６０】
＜検索キーの中に第１のカテゴリに含まれるカテゴリのデータが複数ある場合＞
検索キーは、第１のカテゴリに含まれるカテゴリに対応する複数のデータと、第２のカテゴリに含まれるカテゴリに対応する一つ又は複数のデータを含む。以下の説明では、検索キー中の第１のカテゴリに含まれるカテゴリに対応する複数のデータは、第３のデータ及び第４のデータの２つのデータであるとする。検索キー中の第２のカテゴリに含まれるカテゴリに対応する１つ又は複数のデータは、第５のデータとする。第３のデータのカテゴリは、第４のデータのカテゴリよりも上位であるとする。
【００６１】
検索処理部１１０は、テーブル２０の木構造となるカテゴリの中から検索キーの中で最上位のカテゴリとなる第３のデータとマッチする第１の要素を特定する。検索処理部１１０は、特定された第１の要素の下位となる要素において検索キーの中で２番目に上位のカテゴリとなる第４のデータとマッチする第２の要素を特定する。例えば、第３のデータとマッチする第１の要素が要素ＣＡＴ３−１であれば、検索処理部１１０は、要素ＣＡＴ３−１の下位に繋がる第４の階層の要素ＣＡＴ４−１及び要素ＣＡＴ４−２を特定する。例えば、第４のデータとマッチする第２の要素が要素ＣＡＴ４−２であれば、検索処理部１１０は、要素ＣＡＴ４−２に対応する配列２４−２を特定する。
【００６２】
検索処理部１１０は、特定された配列２４−２内のデータと、第５のデータとを比較して、マッチするレコードを選択する。このように、検索処理部１１０は、階層が上位のカテゴリとなるデータから順にマッチするか否かを判断して検索を行う。検索処理部１１０は、テーブル２０の階層構造に基づいて検索を行うことで効率よい検索処理を実現している。特に、検索キーに第１のカテゴリに含まれるカテゴリに対応するデータがＡ個（Ａは１以上の自然数）含まれている場合には、検索処理部１１０は、上位の階層から順にマッチする要素を特定する処理をＡ回行う。一般的に、このマッチする要素を特定する処理の回数が多いほど、検索処理の対象となる配列２４−１〜２４−ｍの数を減らすことができる。
【００６３】
可視化データ取得部１１１は、検索処理部１１０が出力した検索結果のレコードから可視化対象となるカテゴリのデータのサブセットを選択して可視化データを取得する。描画データ取得部１１２は、可視化データ取得部１１１が取得した可視化データを、点又は線等の描画要素を用いた記述である描画データに変換して、描画データを取得する。描画処理部１１３は、描画データ取得部１１２が取得した描画データに基づいて描画処理を行い、可視化画像データを出力する。図３は、本実施形態における描画処理部１１３が出力する可視化画像データの一例を示す図である。図３では、可視化対象となるカテゴリは、カテゴリＸ、Ｙ、Ｚであり、横軸を各データが生成された時刻としている。この可視化画像データは、テーブルに格納されているデータからセマンティック情報として抽出された画像データである。
【００６４】
制御部１００は、描画処理部１１３が出力した可視化画像データを含む画面情報を生成し、表示制御部１０６へ出力する機能を有する。表示制御部１０６は、制御部１００からの画面情報に応じた画面を表示装置１２に表示させる。これにより、表示装置１２は、可視化画像データを含む画面を表示する。
【００６５】
次に、本実施形態におけるデータ処理装置１０の動作について説明する。図４は、本実施形態におけるデータ処理装置１０の動作例を示すフロー図である。図４に示すように、疎密判定部１０７は、データ蓄積部１０３より処理対象とするデータを取得し、各カテゴリのデータについて正規化を行う（ステップＳ１０１）。疎密判定部１０７は、正規化したデータの分散を算出する（ステップＳ１０２）。疎密判定部１０７は、各カテゴリに対して分散に基づいて疎密判定を行う（ステップＳ１０３）。疎密判定部１０７は、疎密判定により、各カテゴリが疎な構造に適した第１のカテゴリの集合Ｃｓｐａｒｓｅに属するカテゴリか、密な構造に適した第２のカテゴリの集合Ｃｓｏｌｉｄに属するカテゴリかを判定する。
【００６６】
階層特定部１０８は、各カテゴリの疎密判定結果及び各カテゴリの要素数に基づいて、各カテゴリが第１の階層から第Ｍの階層のいずれに対応するのかを特定し、カテゴリ階層情報を出力する（ステップＳ１０４）。テーブル生成部１０４は、テーブル情報格納部１０５内にカテゴリ階層情報に応じた階層的なデータ構造を有するテーブルを生成する（ステップＳ１０５）。データ格納処理部１０９は、テーブル情報格納部１０５内のテーブルの階層構造に従ってデータを格納する（ステップＳ１０６）。これにより、図２に示すようなデータ構造のテーブルが生成される。
【００６７】
検索処理部１１０は、テーブル情報格納部１０５内のテーブルの各レコードと検索キーとを比較して、検索キーとマッチするレコードを選択する。検索処理部１１０は、テーブルの階層構造に基づいて各カテゴリの階層順に、レコードに含まれるカテゴリのデータと検索キー内の同じカテゴリのデータとを比較して検索処理を行う（ステップＳ１０７）。
【００６８】
可視化データ取得部１１１は、検索処理部１１０が出力した検索結果のレコードから可視化対象となるカテゴリのデータのサブセットを選択して可視化データを取得する。描画データ取得部１１２は、可視化データ取得部１１１が取得した可視化データを、点又は線等の描画要素を用いた記述である描画データに変換して、描画データを取得する（ステップＳ１０８）。描画処理部１１３は、描画データ取得部１１２が取得した描画データに基づいて描画処理を行い、可視化画像データを出力する（ステップＳ１０９）。
【００６９】
以上に説明したとおり、本実施形態におけるデータ処理装置１０は、カテゴリを階層構造としたテーブルを用いることにより、テーブルに格納するデータの容量を減少させることができる。データ処理装置１０は、カテゴリを階層構造としたテーブルを用いることにより、効率の高いデータの格納手法を実現している。データ処理装置１０は、カテゴリを階層構造としたテーブルを用いることで、複数のデータのセマンティック情報の可視化処理を行う際のデータ処理の負荷を軽減することができる。データ処理装置１０は、カテゴリを階層構造としたテーブルを用いることにより、ビッグデータの解析における計算効率を向上することができる。これにより、データ処理装置１０は、ビックデータの解析等に要する時間を短縮し、例えば、ビックデータからのセマンティック情報の抽出をリアルタイムで行うことができる。
【００７０】
なお、図２に示した第１のカテゴリの数は４つであったが、この数は一例であり、第１のカテゴリの数は、疎密判定部１０７が疎な構造に適すると判定したカテゴリの数となる。また、第１のカテゴリにおけるテーブルの木構造は、利用者が、手動で変更することができる。上述した実施形態では、検索キーは、入力装置１１から予め入力されていたが、これに限定されるものではない。図４のステップＳ１０７の前の任意のタイミングで入力装置１１は、検索キーを入力してもよい。また、検索キーが複数入力された場合は、データ処理装置１０は、各検索キーについて、ステップＳ１０７〜Ｓ１０９の処理をそれぞれ行う。また、データ処理装置１０は、表示装置１２に複数の検索結果をまとめた画像データを表示してもよい。
【００７１】
上述した本実施形態におけるデータ処理装置１０の備える各機能部は、例えば、コンピュータで実現することができる。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、ＦＰＧＡ（Field Programmable Gate Array）等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
【００７２】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【００７３】
時系列で広範囲にわたって収集されるビッグデータの解析及びセマンティック情報の可視化などに関する技術に利用することができる。
【符号の説明】
【００７４】
１０…データ処理装置，  １１…入力装置，  １２…表示装置，１３…ネットワーク，  １００…制御部，  １０１…入力処理部，  １０２…データ取得部，  １０３…データ蓄積部，  １０４…テーブル生成部，１０５…テーブル情報格納部，  １０６…表示制御部，  １０７…疎密判定部，  １０８…階層特定部，  １０９…データ格納処理部，  １１０…検索処理部，  １１１…可視化データ取得部，  １１２…描画データ取得部，  １１３…描画処理部
【図１】
0006348915.tif 000004
【図２】
0006348915.tif 000005
【図３】
0006348915.tif 000006
【図４】
0006348915.tif 000007
【図５】
0006348915.tif 000008
【図６】
0006348915.tif 000009