(57)【要約】【課題】データマイニングを効率的に行なうことを課題とする。【解決手段】データ処理装置は、任意の条件を満たす要素又は該要素の組み合わせを含むデータを入力し、入力されたデータから、複数の基準それぞれのパターンに対応する、要素或いは該要素の組み合わせを部分集合とする集合である組み合わせ集合を抽出する。また、データ処理装置は、抽出した組み合わせ集合それぞれについて、ＺＤＤに対応するデータ形式で記憶部に記録する。また、データ処理装置は、クエリを入力し、クエリに対応する組み合わせ集合を取得することにより演算処理を実行して、演算処理結果を出力する。【選択図】図１
2012173951.tif 000002
【特許請求の範囲】
【請求項１】
任意の条件を満たす要素又は該要素の組み合わせを含むデータを入力するデータ入力部と、
前記データ入力部によって入力されたデータから、複数の基準それぞれのパターンに対応する、前記要素或いは前記要素の組み合わせを部分集合とする集合である組み合わせ集合を抽出する抽出部と、
前記抽出部によって抽出された組み合わせ集合それぞれについて、ＺＤＤ（Zero‐Suppressed  Binary  Decision  Diagram）中の各要素に対応する通し番号を示す通番と、要素のラベルを示すラベルと、０リンクが指す要素の通番を示す０リンクのリンク先と、１リンクが指す要素の通番を示す１リンクのリンク先とを対応付けて記憶部に記録する記録部と
を有することを特徴とするデータ処理装置。
【請求項２】
クエリを入力するクエリ入力部と、
前記クエリ入力部によって入力されたクエリに対応する組み合わせ集合を、前記記憶部から取得することにより演算処理を行ない、取得した組み合わせ集合を演算処理結果とする演算処理部と、
前記演算処理部での演算処理結果を出力する出力部と
をさらに有することを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記演算処理部は、前記記憶部から取得した組み合わせ集合の積集合をさらに演算することを特徴とする請求項２に記載のデータ処理装置。
【請求項４】
データ処理装置で実行されるデータ処理方法であって、
任意の条件を満たす要素又は該要素の組み合わせを含むデータを入力するデータ入力工程と、
前記データ入力工程によって入力されたデータから、複数の基準それぞれのパターンに対応する、前記要素或いは前記要素の組み合わせを部分集合とする集合である組み合わせ集合を抽出する抽出工程と、
前記抽出工程によって抽出された組み合わせ集合それぞれについて、ＺＤＤ（Zero‐Suppressed  Binary  Decision  Diagram）中の各要素に対応する通し番号を示す通番と、要素のラベルを示すラベルと、０リンクが指す要素の通番を示す０リンクのリンク先と、１リンクが指す要素の通番を示す１リンクのリンク先とを対応付けて記憶部に記録する記録工程と
を含んだことを特徴とするデータ処理方法。
【請求項５】
クエリを入力するクエリ入力工程と、
前記クエリ入力工程によって入力されたクエリに対応する組み合わせ集合を、前記記憶部から取得することにより演算処理を行ない、取得した組み合わせ集合を演算処理結果とする演算処理工程と、
前記演算処理工程での演算処理結果を出力する出力工程と
をさらに含んだことを特徴とする請求項４に記載のデータ処理方法。
【請求項６】
前記演算処理工程は、前記記憶部から取得した組み合わせ集合の積集合をさらに演算することを特徴とする請求項５に記載のデータ処理方法。
【請求項７】
任意の条件を満たす要素又は該要素の組み合わせを含むデータを入力するデータ入力ステップと、
前記データ入力ステップによって入力されたデータから、複数の基準それぞれのパターンに対応する、前記要素或いは前記要素の組み合わせを部分集合とする集合である組み合わせ集合を抽出する抽出ステップと、
前記抽出ステップによって抽出された組み合わせ集合それぞれについて、ＺＤＤ（Zero‐Suppressed  Binary  Decision  Diagram）中の各要素に対応する通し番号を示す通番と、要素のラベルを示すラベルと、０リンクが指す要素の通番を示す０リンクのリンク先と、１リンクが指す要素の通番を示す１リンクのリンク先とを対応付けて記憶部に記録する記録ステップと
をコンピュータに実行させるためのデータ処理プログラム。
【請求項８】
クエリを入力するクエリ入力ステップと、
前記クエリ入力ステップによって入力されたクエリに対応する組み合わせ集合を、前記記憶部から取得することにより演算処理を行ない、取得した組み合わせ集合を演算処理結果とする演算処理ステップと、
前記演算処理ステップでの演算処理結果を出力する出力ステップと
をさらに前記コンピュータに実行させるための請求項７に記載のデータ処理プログラム。
【請求項９】
前記演算処理ステップは、前記記憶部から取得した組み合わせ集合の積集合をさらに演算することを前記コンピュータに実行させるための請求項８に記載のデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、データ処理方法及びデータ処理プログラムに関する。
【背景技術】
【０００２】
従来、データマイニングでは、何らかのデータが格納されたデータベースから有用な情報を抽出することが基礎的な問題の一つとして挙げられる。例えば、商品を取り扱う店舗でデータマイニングを行なう場合には、店舗での商取引ログが格納されたデータベースに対し、ある基準を満たす商品の組み合わせの集合を全て列挙する。一つの様態として、「出現頻度が所定閾値以上」を基準とする場合には、出現頻度が所定閾値以上である商品の組み合わせをデータベースから抽出して、組み合わせの集合を列挙することが行なわれる。データマイニングを行なう専門家は、列挙された組み合わせ集合に対し、どのような組み合わせ集合のパターンが出現するかを検討して、ビジネスにおける意思決定等に活用するために種々の解釈を加える。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】R．Agrawal  et  al．，“Mining  association  rules  between  sets  of  items  in  large  databases”，In  Proc．of  SIGMOD’93
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来に係るデータマイニングの手法では、データマイニングを効率的に行なうことができないという問題がある。具体的には、従来に係るデータマイニングの手法では、データマイニングを人手により行なうので、繰り返して行なわれる組み合わせ集合のパターンの解釈を効率的に行なうことができない。また、従来に係るデータマイニングの手法では、より専門的な知識や技術を有する専門家でなければ、解釈を与えることが困難である。上述した店舗の例では、データベースの全体的な性質を知ることよりも、ある商品のブランド戦略を立てるときに、特定の商品の組み合わせについて、より多くの理解を有することが強い動機になる場合もある。このような動機に基づいたデータマイニングにおいては、パターンを解釈するという部分に重きが置かれることになる。これらにより、従来に係るデータマイニングでは、利用者にとって解釈が容易になるマイニング結果を得ることが困難となり、データマイニングを効率的に行なうことができない。
【０００５】
そこで、本願に開示する技術は、上記に鑑みてなされたものであって、データマイニングを効率的に行なうことが可能であるデータ処理装置、データ処理方法及びデータ処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するため、本願に開示するデータ処理装置は、任意の条件を満たす要素又は該要素の組み合わせを含むデータを入力するデータ入力部と、前記データ入力部によって入力されたデータから、複数の基準それぞれのパターンに対応する、前記要素或いは前記要素の組み合わせを部分集合とする集合である組み合わせ集合を抽出する抽出部と、前記抽出部によって抽出された組み合わせ集合それぞれについて、ＺＤＤ（Zero‐Suppressed  Binary  Decision  Diagram）中の各要素に対応する通し番号を示す通番と、要素のラベルを示すラベルと、０リンクが指す要素の通番を示す０リンクのリンク先と、１リンクが指す要素の通番を示す１リンクのリンク先とを対応付けて記憶部に記録する記録部とを有する。
【０００７】
また、本願に開示するデータ処理方法は、データ処理装置で実行されるデータ処理方法であって、任意の条件を満たす要素又は該要素の組み合わせを含むデータを入力するデータ入力工程と、前記データ入力工程によって入力されたデータから、複数の基準それぞれのパターンに対応する、前記要素或いは前記要素の組み合わせを部分集合とする集合である組み合わせ集合を抽出する抽出工程と、前記抽出工程によって抽出された組み合わせ集合それぞれについて、ＺＤＤ（Zero‐Suppressed  Binary  Decision  Diagram）中の各要素に対応する通し番号を示す通番と、要素のラベルを示すラベルと、０リンクが指す要素の通番を示す０リンクのリンク先と、１リンクが指す要素の通番を示す１リンクのリンク先とを対応付けて記憶部に記録する記録工程とを含む。
【０００８】
また、本願に開示するデータ処理プログラムは、任意の条件を満たす要素又は該要素の組み合わせを含むデータを入力するデータ入力ステップと、前記データ入力ステップによって入力されたデータから、複数の基準それぞれのパターンに対応する、前記要素或いは前記要素の組み合わせを部分集合とする集合である組み合わせ集合を抽出する抽出ステップと、前記抽出ステップによって抽出された組み合わせ集合それぞれについて、ＺＤＤ（Zero‐Suppressed  Binary  Decision  Diagram）中の各要素に対応する通し番号を示す通番と、要素のラベルを示すラベルと、０リンクが指す要素の通番を示す０リンクのリンク先と、１リンクが指す要素の通番を示す１リンクのリンク先とを対応付けて記憶部に記録する記録ステップとをコンピュータに実行させる。
【発明の効果】
【０００９】
本願に開示するデータ処理装置、データ処理方法及びデータ処理プログラムの一つの様態によれば、データマイニングを効率的に行なうことができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１に係るデータ処理装置の構成例を示す図である。
【図２】図２は、データ入力部から入力される購買データベースの例を示す図である。
【図３】図３は、出現頻度が「２」以上である商品の組み合わせ集合の例を示す図である。
【図４Ａ】図４Ａは、ある時間帯に買われた商品の組み合わせ集合の例を示す図である。
【図４Ｂ】図４Ｂは、２０代の顧客に買われた商品の組み合わせ集合の例を示す図である。
【図５Ａ】図５Ａは、ＺＤＤを説明するための組み合わせ集合の例を示す図である。
【図５Ｂ】図５Ｂは、組み合わせ集合をＺＤＤによって表現した例を示す図である。
【図５Ｃ】図５Ｃは、パターン記憶部によって記憶される情報例を示す図である。
【図６】図６は、実施例１に係る関係出力部による出力例を示す図である。
【図７】図７は、実施例１に係るパターン抽出処理の流れの例を示すフローチャートである。
【図８】図８は、実施例１に係るクエリ演算処理の流れの例を示すフローチャートである。
【図９】図９は、実施例２に係る関係出力部による出力例を示す図である。
【図１０】図１０は、実施例２に係るクエリ演算処理の流れの例を示すフローチャートである。
【図１１】図１１は、開示の技術に係るデータ処理プログラムによる情報処理がコンピュータを用いて具体的に実現されることを示す図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、本願に開示するデータ処理装置、データ処理方法及びデータ処理プログラムの実施例を説明する。なお、以下の実施例により本発明が限定されるものではない。
【実施例１】
【００１２】
［実施例１に係るデータ処理装置の構成］
図１を用いて、実施例１に係るデータ処理装置の構成を説明する。図１は、実施例１に係るデータ処理装置の構成例を示す図である。
【００１３】
例えば、図１に示すように、データ処理装置１００は、データ入力部１１０と、パターン抽出処理部１２０と、パターン集合記憶部１３０と、クエリ入力部１４０と、演算処理部１５０と、関係出力部１６０とを有する。また、データ処理装置１００は、ＰＣ（Personal  Computer）やサーバ装置等の、データマイニングを行なうための情報処理装置である。なお、以下では、具体的な処理の実施形態として、商品を取り扱う店舗に適用する例を挙げて説明する。
【００１４】
データ入力部１１０は、任意の条件を満たす要素又は該要素の組み合わせを含むデータを入力する。例えば、データ入力部１１０は、同時に購入された商品の組み合わせを保持するデータベースである購買データベースを入力する。かかる購買データベースは、例えば、人手により作成されたものであっても、あるシステムに含まれるものであっても良い。すなわち、上記の「任意の条件」とは、一つの様態として、購買データベースとして「同時に購入された商品の組み合わせ」を指す。図２は、データ入力部１１０から入力される購買データベースの例を示す図である。図２に示すように、購買データベースは、データを一意に識別する「トランザクションＩＤ」と、「購入された商品」の組み合わせとを対応付けて保持する。
【００１５】
例を挙げると、購買データベースは、トランザクションＩＤ「１」と、購入された商品「ａ，ｂ，ｄ」とを対応付けて保持する。また、購買データベースは、トランザクションＩＤ「２」と、購入された商品「ｂ，ｄ」とを対応付けて保持する。また、購買データベースは、トランザクションＩＤ「３」と、購入された商品「ａ，ｃ，ｄ，ｆ」とを対応付けて保持する。また、購買データベースは、トランザクションＩＤ「Ｔ」（「Ｔ」は、自然数）と、購入された商品「ｅ，ｇ」とを対応付けて保持する。ここで、図２に示す「ａ，ｂ，ｃ，ｄ，ｅ，ｆ，ｇ」は、同時に購買対象となったある商品にそれぞれ対応している。
【００１６】
また、データ入力部１１０によって入力されるデータベースのデータ形式は、後述するパターン抽出処理部１２０での処理結果の出力が組み合わせ集合になることを条件とする。組み合わせ集合とは、アイテムの集合「Ｅ」が与えられたときに、「Ｅ」の部分集合「Ｆ」を要素とする集合「Ｆ⊆Ｅ」である。つまり、組み合わせ集合とは、アイテムの集合「Ｅ」のべき集合「２Ｅ」の部分集合のことである。
【００１７】
パターン抽出部１２０は、処理モジュール１２０−１〜１２０−Ｎ（「Ｎ」は、自然数）を有する。処理モジュール１２０−１〜１２０−Ｎは、データ入力部１１０によって入力されたデータから、複数の基準それぞれのパターンに対応する、要素或いは要素の組み合わせを部分集合とする集合である組み合わせ集合を抽出する。また、処理モジュール１２０−１〜１２０−Ｎは、抽出した組み合わせ集合それぞれについて、ＺＤＤ（Zero‐Suppressed  Binary  Decision  Diagram）中の各項目を対応付けてパターン集合記憶部１３０に記録する。各項目とは、「通番」、「ラベル」、「０リンクのリンク先」及び「１リンクのリンク先」を指す。これらのうち、「通番」は、ＺＤＤ中の各要素に対応する通し番号を示し、「ラベル」は、要素のラベルを示し、「０リンクのリンク先」は、０リンクが指す要素の通番を示し、「１リンクのリンク先」は、１リンクが指す要素の通番を示す。なお、ＺＤＤについては後述する。
【００１８】
ここで、処理モジュール１２０−１が、例えば、「出現頻度が『２』以上である商品」を基準とするパターン抽出を実行する処理モジュールであるものとする。図３は、出現頻度が「２」以上である商品の組み合わせ集合の例を示す図である。例えば、図３に示すように、処理モジュール１２０−１は、図２に示す購買データベースのトランザクションＩＤ「１」〜「３」について、出現頻度「２」以上を基準としたときに得られる組み合わせ集合を抽出する。図２に示すトランザクションＩＤ「１」〜「３」において、出現頻度が「２」以上である商品の組み合わせ集合は、「ａ」、「ｂ」、「ｄ」、「ａ，ｄ」及び「ｂ，ｄ」となる。すなわち、組み合わせ集合には、「ａ」、「ｂ」、「ｄ」のような商品、或いは、「ａ，ｄ」、「ｂ，ｄ」のような商品の組み合わせが含まれる。また、処理モジュール１２０−１によって抽出された組み合わせ集合は、商品の集合である購買データベースの部分集合である。
【００１９】
また、処理モジュール１２０−２が、例えば、「ある時間帯に買われた商品」を基準とするパターン抽出を実行する処理モジュールであるものとする。「ある時間帯」には、例えば、１１時〜１４時等の任意の時間帯が設定される。このとき、購買データベースには、商品それぞれについて、購入された時間情報が含まれる。図４Ａは、ある時間帯に買われた商品の組み合わせ集合の例を示す図である。例えば、図４Ａに示すように、処理モジュール１２０−２は、データ入力部１１０によって入力された購買データベースに基づいて、商品が購入された時間情報から、「１１時〜１４時に買われた商品」を基準としたときに得られる組み合わせ集合を抽出する。１１時〜１４時に買われた商品となる組み合わせ集合は、「ｅ」、「ｃ，ｅ」及び「ｃ」となる。すなわち、組み合わせ集合には、「ｃ」、「ｅ」のような商品、或いは、「ｃ，ｅ」のような商品の組み合わせが含まれる。また、処理モジュール１２０−２によって抽出された組み合わせ集合は、商品の集合である購買データベースの部分集合である。
【００２０】
また、処理モジュール１２０−３が、例えば、「２０代の顧客に買われた商品」を基準とするパターン抽出を実行する処理モジュールであるものとする。このとき、購買データベースには、商品それぞれについて、購入した顧客の年齢情報が含まれる。図４Ｂは、２０代の顧客に買われた商品の組み合わせ集合の例を示す図である。例えば、図４Ｂに示すように、処理モジュール１２０−３は、データ入力部１１０によって入力された購買データベースに基づいて、商品を購入した顧客の年齢情報から、「２０代の顧客に買われた商品」を基準としたときに得られる組み合わせ集合を抽出する。２０代の顧客に買われた商品の組み合わせ集合は、「ａ，ｄ」、「ａ」、「ｄ」及び「ｆ」となる。すなわち、組み合わせ集合には、「ａ」、「ｄ」、「ｆ」のような商品、或いは、「ａ，ｄ」のような商品の組み合わせが含まれる。また、処理モジュール１２０−３によって抽出された組み合わせ集合は、商品の集合である購買データベースの部分集合である。上記のように、処理モジュール１２０−１〜１２０−Ｎは、それぞれが独立して、基準それぞれのパターンに対応する組み合わせ集合を抽出する。
【００２１】
その後、処理モジュール１２０−１〜１２０−Ｎは、例えば、抽出した組み合わせ集合を、データ処理装置１００上でのＺＤＤの表現方法でパターン記憶部１３０−１〜１３０−Ｎそれぞれに記録する。ＺＤＤは、指向性をもった二分グラフによって組み合わせ集合を表現するものである。表現する際に等価な接点を共有したり、冗長な接点を削除したりすることができ、これにより、圧縮した記憶容量で組み合わせ集合を表現できる。なお、組み合わせ集合から対応するＺＤＤを構築する手法については、例えば、“Shin‐Ichi  Minato，“Zero‐Suppressed  BDDs  for  Set  Manipulation  in  Combinatorial  Problems”，Design  Automation，1993”に記載されている。
【００２２】
ここで、図５Ａ〜図５Ｃを用いて、ＺＤＤについて説明する。図５Ａは、ＺＤＤを説明するための組み合わせ集合の例を示す図である。また、図５Ｂは、組み合わせ集合をＺＤＤによって表現した例を示す図である。また、図５Ｃは、パターン記憶部１３０−１〜１３０−Ｎによって記憶される情報例を示す図である。
【００２３】
処理モジュール１２０−Ｎが、例えば、ある基準に対するパターン抽出において、図５Ａに示すように、「ａ」、「ｂ」、「ｃ」及び「ａ，ｂ」を含む組み合わせ集合を抽出したものとする。処理モジュール１２０−Ｎによって抽出された組み合わせ集合は、例えば、図５Ｂに示すように、ＺＤＤによって表現できる。図５Ｂに示すように、ＺＤＤは、指向性を有するグラフ構造であり、ある変数に対応する「変数ノード」と、０又は１を値に持つ「終端ノード」と、ＺＤＤの開始地点を表す「ｒｏｏｔリンク」とを有する。例えば、図５Ｂにおいて、変数ノードは、円で示された「ａ」、「ｂ」、「ｃ」であり、終端ノードは、方形で示された「０」、「１」であり、ｒｏｏｔリンクは、「ｒｏｏｔ」である。そして、これらの「変数ノード」、「終端ノード」及び「ｒｏｏｔリンク」は、各変数ノードについて子孫ノードへの０又は１の「ラベル」のついた２つの「リンク」によって構成される。
【００２４】
ＺＤＤで表現された組み合わせ集合は、ｒｏｏｔリンクからスタートし、到達した各変数ノードにおいて、該当する変数が組み合わせに含まれるか否かが判定される。このとき、該当する変数が組み合わせに含まれる場合には、「１」のラベルのついたリンクを辿る。一方、該当する変数が組み合わせに含まれない場合には、「０」のラベルのついたリンクを辿る。このようにして、ＺＤＤで表現された組み合わせ集合にあるアイテムの組み合わせが含まれるか否かは、１又は０のラベルのリンクを辿る処理を終端ノードに到達するまで繰り返される。
【００２５】
すなわち、ＺＤＤでは、終端ノード「１」に辿り着き、且つ、「ｒｏｏｔ」から終端ノードまでの経路中に、組み合わせに含まれる全ての変数について対応する変数ノードが含まれる場合に、該当するアイテムは組み合わせ集合に含まれることになる。一方、ＺＤＤでは、終端ノード「０」に辿り着いた場合や、終端ノード「１」に辿り着いた場合であっても、「ｒｏｏｔ」から終端ノードまでの経路中に組み合わせに含まれる全ての変数について対応する変数ノードが含まれない場合に、該当するアイテムは組み合わせ集合に含まれない。図５Ｂの例では、アイテム「ａ」、「ｂ」、「ｃ」及び「ａ，ｂ」について、ＺＤＤのリンクを辿る処理を行なうと、終端ノード「１」に到達するため、該当するアイテムは組み合わせ集合に含まれる。一方、図５Ｂの例では、アイテム「ａ」、「ｂ」、「ｃ」及び「ａ，ｂ」以外について、ＺＤＤのリンクを辿る処理を行なうと、終端ノード「０」に到達する、若しくは、終端ノード「１」に到達しても全ての変数について対応する変数ノードが含まれないため、該当するアイテムは組み合わせ集合に含まれない。
【００２６】
そして、処理モジュール１２０−Ｎは、データ処理装置１００上でのＺＤＤの表現方法として、図５Ｃに示すように、「通番」、「ラベル」、「０リンクのリンク先」、「１リンクのリンク先」とを対応付けてパターン記憶部１３０−Ｎに記録する。例を挙げると、パターン記憶部１３０−Ｎは、図５Ｃに示すように、通番「１」と、ラベル「ａ」と、０リンクのリンク先「２」と、１リンクのリンク先「３」とを対応付けて記憶する。すなわち、処理モジュール１２０−Ｎは、ＺＤＤに含まれるそれぞれのノードがパターン記憶部１３０−Ｎの１レコードに対応するテーブルとして記録する。
【００２７】
詳細には、図５Ｃに示す通番「１」のレコードは、図５Ｂに示す変数ノードのラベル「ａ」に対し、０リンクのリンク先を図５Ｂの左方に示す変数ノードのラベル「ｂ」に対応する通番「２」として表している。同様に、図５Ｃに示す通番「１」のレコードは、図５Ｂに示す変数ノードのラベル「ａ」に対し、１リンクのリンク先を図５Ｂの右方に示す変数ノードのラベル「ｂ」に対応する通番「３」として表している。
【００２８】
また、図５Ｃに示す通番「２」のレコードは、図５Ｂの左方に示す変数ノードのラベル「ｂ」に対し、０リンクのリンク先を図５Ｂに示す変数ノードのラベル「ｃ」に対応する通番「４」として表している。同様に、図５Ｃに示す通番「２」のレコードは、図５Ｂの左方に示す変数ノードのラベル「ｂ」に対し、１リンクのリンク先を図５Ｂに示す終端ノード「１」として表している。
【００２９】
また、図５Ｃに示す通番「３」のレコードは、図５Ｂの右方に示す変数ノードのラベル「ｂ」に対し、０リンクのリンク先を図５Ｂに示す終端ノード「１」として表している。同様に、図５Ｃに示す通番「３」のレコードは、図５Ｂの右方に示す変数ノードのラベル「ｂ」に対し、１リンクのリンク先を図５Ｂに示す終端ノード「１」として表している。
【００３０】
また、図５Ｃに示す通番「４」のレコードは、図５Ｂに示す変数ノードのラベル「ｃ」に対し、０リンクのリンク先を図５Ｂに示す終端ノード「０」として表している。同様に、図５Ｃに示す通番「４」のレコードは、図５Ｂに示す変数ノードのラベル「ｃ」に対し、１リンクのリンク先を図５Ｂに示す終端ノード「１」として表している。
【００３１】
また、図５Ｃに示す通番「５」のレコードは、図５Ｂに示す終端ノード「０」を表している。また、図５Ｃに示す通番「６」のレコードは、図５Ｂに示す終端ノード「１」を表している。このように、パターン集合記憶部１３０が有するパターン記憶部１３０−１〜１３０−Ｎそれぞれは、ＺＤＤに含まれる各情報を図５Ｃに示すデータ形式で保持する。
【００３２】
図１の説明に戻り、クエリ入力部１４０は、クエリを入力する。例えば、クエリ入力部１４０は、ある組み合わせ集合の部分集合となるクエリ「（ａ，ｄ）」を入力する。なお、クエリ入力部１４０によるクエリ入力は、任意のタイミングで行なわれる。
【００３３】
演算処理部１５０は、クエリ入力部１４０によって入力されたクエリに対応する組み合わせ集合を、パターン集合記憶部１３０から取得することにより演算処理を行ない、取得した組み合わせ集合を演算処理結果とする。例えば、演算処理部１５０は、パターン集合記憶部１３０に含まれるＮ個の組み合わせ集合のうち、クエリ入力部１４０によって入力されたクエリ「（ａ，ｄ）」を含む組み合わせ集合を全て列挙する。クエリ「（ａ，ｄ）」を含む組み合わせ集合は、例えば、図３に示した組み合わせ集合「出現頻度が『２』以上である商品」と、図４Ｂに示した組み合わせ集合「２０代の顧客に買われた商品」とが挙げられる。入力されたクエリに対応する組み合わせ集合を取得する処理は、ＺＤＤをデータ処理装置１００上で表現したパターン集合記憶部１３０を利用するので、組み合わせ集合に含まれるアイテムの総数に比例する時間で効率的に行なうことができる。
【００３４】
ここで、図５Ｃを用いて、クエリ入力部１４０によってクエリ「（ａ，ｂ）」が入力された場合の演算処理部１５０による処理を説明する。例えば、演算処理部１５０は、クエリ入力部１４０によってクエリ「（ａ，ｂ）」が入力されると、通番「１」のレコードを参照する。そして、演算処理部１５０は、通番「１」に含まれるラベル「ａ」がクエリ「（ａ，ｂ）」に含まれる変数であるので、１リンクのリンク先「３」を取得する。続いて、演算処理部１５０は、１リンクのリンク先「３」に対応する通番「３」のレコードを参照する。その後、演算処理部１５０は、通番「３」に含まれるラベル「ｂ」がクエリ「（ａ，ｂ）」に含まれる変数であるので、１リンクのリンク先「６」を取得する。このとき、演算処理部１５０は、１リンクのリンク先「６」に対応する通番「６」のラベルが終端ノードを示す「１」であることを識別する。また、演算処理部１５０は、ｒｏｏｔからの経路においてクエリ「（ａ，ｂ）」に含まれる全ての変数「ａ」及び「ｂ」が含まれていることをさらに識別する。これらの結果、演算処理部１５０は、クエリ「（ａ，ｂ）」を組み合わせ集合に含まれるものとして、該当する組み合わせ集合を演算処理結果の一つとする。このようにして、演算処理部１５０は、パターン記憶部１３０−１〜１３０−Ｎそれぞれについて上記処理を実行して、クエリに対応する組み合わせ集合を列挙する。
【００３５】
図１の説明に戻り、関係出力部１６０は、演算処理部１５０での演算処理結果を出力する。図６は、実施例１に係る関係出力部１６０による出力例を示す図である。例えば、図６に示すように、関係出力部１６０は、入力クエリ「（ａ，ｄ）」に対応する組み合わせ集合である「出現頻度が『２』以上である商品」と、「２０代の顧客に買われた商品」とを出力する。このように、クエリとして渡されたパターンを含む組み合わせ集合の情報は、クエリとして渡されたパターンがどのような性質を満たすものであるかを表しているため、クエリの解釈に利用することが可能となる。
【００３６】
［実施例１に係るパターン抽出処理］
次に、図７を用いて、実施例１に係るパターン抽出処理を説明する。図７は、実施例１に係るパターン抽出処理の流れの例を示すフローチャートである。なお、パターン抽出処理とは、データ入力部１１０及びパターン抽出処理部１２０による処理を指す。
【００３７】
例えば、図７に示すように、パターン抽出処理部１２０は、データ入力部１１０から購買データベース等のデータが入力された場合に（ステップＳ１０１肯定）、複数の基準それぞれのパターンに対応する組み合わせ集合を抽出する（ステップＳ１０２）。ここで、複数の基準とは、例えば、「出現頻度が『２』以上である商品」や、「ある時間帯に買われた商品」や、「２０代の顧客に買われた商品」等が挙げられる。そして、パターン抽出処理部１２０は、抽出した組み合わせ集合それぞれについて、ＺＤＤに対応するデータ形式でパターン集合記憶部１３０に記録する（ステップＳ１０３）。また、パターン抽出処理部１２０は、データ入力部１１０からデータが入力されない場合に（ステップＳ１０１否定）、データ入力部１１０からのデータ入力待ちの状態となる。
【００３８】
［実施例１に係るクエリ演算処理］
次に、図８を用いて、実施例１に係るクエリ演算処理を説明する。図８は、実施例１に係るクエリ演算処理の流れの例を示すフローチャートである。なお、クエリ演算処理とは、クエリ入力部１４０、演算処理部１５０及び関係出力部１６０による処理を指す。
【００３９】
例えば、図８に示すように、演算処理部１５０は、クエリ入力部１４０からクエリが入力された場合に（ステップＳ２０１肯定）、クエリに対応する特性の組み合わせ集合を、パターン集合記憶部１３０から取得する（ステップＳ２０２）。ここで、クエリ「（ａ，ｄ）」に対応する特性の組み合わせ集合とは、「出現頻度が『２』以上である商品」や、「２０代の顧客に買われた商品」等が挙げられる。そして、関係出力部１６０は、演算処理部１５０による演算処理結果である、組み合わせ集合「出現頻度が『２』以上である商品」及び「２０代の顧客に買われた商品」を出力する（ステップＳ２０３）。また、演算処理部１５０は、クエリ入力部１４０からクエリが入力されない場合に（ステップＳ２０１否定）、クエリ入力部１４０によるクエリの入力待ちの状態となる。
【００４０】
［実施例１による効果］
上述したように、データ処理装置１００は、クエリに対応する組み合わせ集合のパターンの解釈を機械的に行なうので、人手によりデータを分析して解釈する従来と比較して、データマイニングを効率的に行なうことができる。また、データ処理装置１００は、組み合わせ集合を記憶部に記録する際に、ＺＤＤに対応するデータ形式で記録するので、記憶容量を抑制できるとともに、その後のクエリ演算処理の処理負荷を削減することもできる。
【実施例２】
【００４１】
上記実施例１では、クエリに対応する組み合わせ集合がどのような性質を満たすかを出力する場合を説明したが、クエリと同じ性質を有する組み合わせ集合を出力することもできる。そこで、実施例２では、クエリと同じ性質を有する組み合わせ集合を出力する場合を説明する。
【００４２】
［実施例２に係るデータ処理装置の構成］
実施例２では、説明の便宜上、データ処理装置１００をデータ処理装置２００として表現するとともに、演算処理部１５０を演算処理部２５０、関係出力部１６０を関係出力部２６０として表現する。また、実施例２では、これら以外の各機能部については、実施例１と同様の機能を有するためその説明を省略する。例えば、データ処理装置２００は、データ入力部１１０と、パターン抽出部１２０と、パターン集合記憶部１３０と、クエリ入力部１４０と、演算処理部２５０と、関係出力部２６０とを有する。
【００４３】
演算処理部２５０は、クエリ入力部１４０によって入力されたクエリに対応する組み合わせ集合をパターン集合記憶部１３０から取得し、取得した組み合わせ集合の積集合をさらに演算する。例えば、演算処理部２５０は、クエリ入力部１４０によって入力されたクエリ「（ａ，ｄ）」を含む組み合わせ集合を全て列挙する。クエリ「（ａ，ｄ）」を含む組み合わせ集合は、例えば、図３に示した組み合わせ集合「出現頻度が『２』以上である商品」と、図４Ｂに示した組み合わせ集合「２０代の顧客に買われた商品」とが挙げられる。また、例えば、演算処理部２５０は、列挙した全ての組み合わせ集合について、積集合を計算して、クエリと同じ性質を有する組み合わせ集合「ａ」、「ｄ」、「（ａ，ｄ）」を求める。
【００４４】
関係出力部２６０は、演算処理部２５０での演算処理結果を出力する。図９は、実施例２に係る関係出力部２６０による出力例を示す図である。例えば、図９に示すように、関係出力部２６０は、入力クエリ「（ａ，ｄ）」に対応する組み合わせ集合の積集合として、「ａ」、「ｄ」、「（ａ，ｄ）」を出力する。このように、クエリとして渡されたパターンを含む組み合わせ集合の積集合は、クエリとして渡されたパターンと同じ性質を有するパターンの組み合わせ集合であるため、例えば、あるクエリに類似する性質を有するパターンを検索する場合に応用できる。すなわち、類似のパターンを検索できれば、購買データの解析等に利用することができる。
【００４５】
［実施例２に係るクエリ演算処理］
次に、図１０を用いて、実施例２に係るクエリ演算処理を説明する。図１０は、実施例２に係るクエリ演算処理の流れの例を示すフローチャートである。なお、クエリ演算処理とは、クエリ入力部１４０、演算処理部２５０及び関係出力部２６０による処理を指す。
【００４６】
例えば、図１０に示すように、演算処理部２５０は、クエリ入力部１４０からクエリが入力された場合に（ステップＳ３０１肯定）、クエリに対応する特性の組み合わせ集合を、パターン集合記憶部１３０から取得する（ステップＳ３０２）。ここで、クエリ「（ａ，ｄ）」に対応する特性の組み合わせ集合とは、「出現頻度が『２』以上である商品」や、「２０代の顧客に買われた商品」等が挙げられる。
【００４７】
そして、演算処理部２５０は、取得した組み合わせ集合の積集合を演算する（ステップＳ３０３）。ここで、組み合わせ集合の積集合としては、「ａ」、「ｄ」、「（ａ，ｄ）」が挙げられる。その後、関係出力部２６０は、演算処理部２５０による演算処理結果である、組み合わせ集合の積集合「ａ」、「ｄ」、「（ａ，ｄ）」を出力する（ステップＳ３０４）。また、演算処理部２５０は、クエリ入力部１４０からクエリが入力されない場合に（ステップＳ３０１否定）、クエリ入力部１４０によるクエリの入力待ちの状態となる。
【００４８】
［実施例２による効果］
上述したように、データ処理装置２００は、クエリに対応する組み合わせ集合の積集合を出力することで、クエリのパターンに類似する性質を有するパターンを検索する用途に適用できるので、入力データの解析を容易に行なうことができる。
【００４９】
また、上記文書中や図面中などで示した処理手順、制御手順、具体的名称、各種のデータやパラメータなどを含む情報（例えば、データ入力部１１０によって入力されるデータの内容等）については、特記する場合を除いて任意に変更することができる。
【００５０】
また、図示した各装置の各構成要素は、機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は、図示のものに限られず、その全部または一部を各種の負担や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合することができる。例えば、データ処理装置１００は、ＺＤＤに対応するデータ形式でパターン集合記憶部１３０に記録することで、記憶容量の抑制や、その後のクエリ演算処理の処理量を削減することができる。このことから、データ入力部１１０及びパターン抽出処理部１２０のみを有する装置構成として実現しても良い。このとき、パターン抽出処理部１２０は、装置構成に含まれる記憶部或いは外部の記憶装置にパターン抽出結果を出力する。
【００５１】
さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、或いは、ワイヤードロジックによるハードウェアとして実現され得る。
【００５２】
図１１は、開示の技術に係るデータ処理プログラムによる情報処理がコンピュータを用いて具体的に実現されることを示す図である。図１１に例示するように、コンピュータ１０００は、例えば、メモリ１００１と、ＣＰＵ（Central  Processing  Unit）１００２と、ハードディスクドライブインタフェース１００３と、ディスクドライブインタフェース１００４と、シリアルポートインタフェース１００５と、ビデオアダプタ１００６と、ネットワークインタフェース１００７とを有し、これらの各部はバス１００８によって接続される。
【００５３】
メモリ１００１は、図１１に例示するように、ＲＯＭ（Read  Only  Memory）１００１ａ及びＲＡＭ（Random  Access  Memory）１００１ｂを含む。ＲＯＭ１００１ａは、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１００３は、図１１に例示するように、ハードディスクドライブ１００９に接続される。ディスクドライブインタフェース１００４は、図１１に例示するように、ディスクドライブ１０１０に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１０１０に挿入される。シリアルポートインタフェース１００５は、図１１に例示するように、例えばマウス１０１１、キーボード１０１２に接続される。ビデオアダプタ１００６は、図１１に例示するように、例えばディスプレイ１０１３に接続される。
【００５４】
ここで、図１１に例示するように、ハードディスクドライブ１００９は、例えば、ＯＳ（Operating  System）１００９ａ、アプリケーションプログラム１００９ｂ、プログラムモジュール１００９ｃ、プログラムデータ１００９ｄを記憶する。すなわち、開示の技術に係るデータ処理プログラムは、コンピュータ１０００によって実行される指令が記述されたプログラムモジュール１００９ｃとして、例えばハードディスクドライブ１００９に記憶される。具体的には、上記実施例で説明したデータ入力部１１０と同様の情報処理を実行するデータ入力手順と、パターン抽出処理部１２０と同様の情報処理を実行するパターン抽出処理手順と、クエリ入力部１４０と同様の情報処理を実行するクエリ入力手順と、演算処理部１５０と同様の情報処理を実行する演算処理手順と、関係出力部１６０と同様の情報処理を実行する関係出力手順とが記述されたプログラムモジュール１００９ｃが、ハードディスクドライブ１００９に記憶される。また、上記実施例で説明したパターン集合記憶部１３０に記憶されるデータのように、データ処理プログラムによる情報処理に用いられるデータは、プログラムデータ１００９ｄとして、例えばハードディスクドライブ１００９に記憶される。そして、ＣＰＵ１００２が、ハードディスクドライブ１００９に記憶されたプログラムモジュール１００９ｃやプログラムデータ１００９ｄを必要に応じてＲＡＭ１００１ｂに読み出し、データ入力手順、パターン抽出処理手順、クエリ入力手順、演算処理手順、関係出力手順を実行する。
【００５５】
なお、データ処理プログラムに係るプログラムモジュール１００９ｃやプログラムデータ１００９ｄは、ハードディスクドライブ１００９に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１０１０等を介してＣＰＵ１００２によって読み出されてもよい。あるいは、データ処理プログラムに係るプログラムモジュール１００９ｃやプログラムデータ１００９ｄは、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶され、ネットワークインタフェース１００７を介してＣＰＵ１００２によって読み出されてもよい。
【符号の説明】
【００５６】
１００                  データ処理装置
１１０                  データ入力部
１２０                  パターン抽出処理部
１２０−１〜１２０−Ｎ  処理モジュール
１３０                  パターン集合記憶部
１３０−１〜１３０−Ｎ  パターン記憶部
１４０                  クエリ入力部
１５０                  演算処理部
１６０                  関係出力部
【図１】
2012173951.tif 000003
【図２】
2012173951.tif 000004
【図３】
2012173951.tif 000005
【図４Ａ】
2012173951.tif 000006
【図４Ｂ】
2012173951.tif 000007
【図５Ａ】
2012173951.tif 000008
【図５Ｂ】
2012173951.tif 000009
【図５Ｃ】
2012173951.tif 000010
【図６】
2012173951.tif 000011
【図７】
2012173951.tif 000012
【図８】
2012173951.tif 000013
【図９】
2012173951.tif 000014
【図１０】
2012173951.tif 000015
【図１１】
2012173951.tif 000016