• 検索結果がありません。

グループ化関数呼出しの実現方法

ドキュメント内 情報集約データベースに関する研究 (ページ 76-79)

第 6 章 情報集約言語 59

6.3 グループ化関数呼出しの実現方法

グループ化関数の呼出し機構を実現するために,オブジェクト指向の抽象クラスと,そ のクラスの抽象メソッドとして,次を定義する.

抽象クラス名: BaseTupleGrouping

抽象グループキー生成関数: makeGroupKey(情報要素タプル集合,パラメータ配列) 返却値: <グループキー, 情報要素タプル>の集合

6.3 グループ化関数呼出しの実現方法 新しいグループ化方法を追加したい場合は,BaseTupleGroupingクラスを継承したクラス を定義し,makeGroupKeyを実装する.このクラス名とグループ化関数名との対応表をシ ステムに追加することで,集計条件中でグループ化関数が使用できるようになる.

実際に2つのグループ化関数を定義する例を示す.1つ目は,6.2.2節で述べたクラスタ リングである.クラスタリングを実行するために次のクラスを実装する.

クラス名: ClusteringTupleGrouping

グループキー生成関数: makeGroupKey(情報要素タプル集合,[属性名集合]) 処理概要:

(1) 入力された各属性名の属性値から概念ベクトル[7]を生成し,これらを合成す ることで各情報要素タプルに対応する特徴ベクトルを生成する.

(2) 特徴ベクトル間の類似度を計算する.

(3) 類似度に基づきクラスタリングを行う.クラスタリングには,最長距離法に基 づく階層型クラスタリングを用い,各クラスタに属する全タプルとそのクラス タ重心との距離の合計が小さい順に一定個数のクラスタを選択する.この手 法によって,非常に似ているタプル集合からなるクラスタを生成できる.

(4) 生成された各クラスタに属するタプルに同一のグループキーを付与し,返却 する.

2つ目のグループ化関数は,時系列のグラフでの利用を想定し,ある与えられた期間ご とに情報要素タプルを集計する関数である.この関数を実現するために次のクラスを実装 する.

クラス名: DateTermTupleGrouping

グループキー生成関数: makeGroupKey(情報要素タプル集合,[日付カラム名,集計 期間])

処理概要:

(1) 各情報要素タプルから日付カラム名に対応するカラム値(日付)を取得する.

(2) 日付を集計期間で,除算し,整数化した商をグループキーとする.

(3) グループキーを各情報要素タプルに付与し,返却する.

この関数を用いることで,あらかじめ集計期間を表す値をそれぞれ格納しておかなくても,

絶対日時を格納しておけば,集計条件で指定した集計期間ごとに集計できるようになる.

次に,これらのクラスについて,集計条件中に指定するグループ化関数名と,同一階層 内でのグループの出力順を決めるためのソート方法を次のように指定する.

クラスタリング用グループ化関数

上位のクラスタが選択された場合には,下位のクラスタは選択しない.

第6章 情報集約言語

㻨〇ရ㻭㻘㻌ዲホ㻘㻌㻞㻜㻝㻞㻜㻟㻝㻡㻪 㻨〇ရ㻭㻘㻌୙ホ㻘㻌㻞㻜㻝㻞㻜㻟㻜㻟㻪 㻨〇ရ㻭㻘㻌ዲホ㻘㻌㻞㻜㻝㻞㻜㻟㻜㻠㻪㻌 㻨〇ရ㻭㻘㻌୙ホ㻘㻌㻞㻜㻝㻞㻜㻟㻝㻞㻪 㻨〇ရ㻭㻘㻌ዲホ㻘㻌㻞㻜㻝㻞㻜㻟㻜㻥㻪 㻨〇ရ㻭㻘㻌ዲホ㻘㻌㻞㻜㻝㻞㻜㻟㻝㻜㻪 㻨〇ရ㻭㻘㻌ዲホ㻘㻌㻞㻜㻝㻞㻜㻟㻝㻤㻪 㻨〇ရ㻭㻘㻌୙ホ㻘㻌㻞㻜㻝㻞㻜㻟㻜㻞㻪 㻨〇ရ㻭㻘㻌୙ホ㻘㻌㻞㻜㻝㻞㻜㻟㻜㻣㻪 㻨〇ရ㻭㻘㻌ዲホ㻘㻌㻞㻜㻝㻞㻜㻟㻝㻢㻪

䜾䝹䞊䝥䜻䞊㻦㻌㻞

㻨〇ရ㻭㻘㻌ዲホ㻘㻌㻞㻜㻝㻞㻜㻟㻝㻡㻪 㻨〇ရ㻭㻘㻌ዲホ㻘㻌㻞㻜㻝㻞㻜㻟㻝㻤㻪 㻨〇ရ㻭㻘㻌ዲホ㻘㻌㻞㻜㻝㻞㻜㻟㻝㻢㻪

㻨〇ရ㻭㻘㻌୙ホ㻘㻌㻞㻜㻝㻞㻜㻟㻜㻟㻪 㻨〇ရ㻭㻘㻌ዲホ㻘㻌㻞㻜㻝㻞㻜㻟㻜㻠㻪 㻨〇ရ㻭㻘㻌୙ホ㻘㻌㻞㻜㻝㻞㻜㻟㻜㻞㻪

㻨〇ရ㻭㻘㻌୙ホ㻘㻌㻞㻜㻝㻞㻜㻟㻝㻞㻪 㻨〇ရ㻭㻘㻌ዲホ㻘㻌㻞㻜㻝㻞㻜㻟㻜㻥㻪 㻨〇ရ㻭㻘㻌ዲホ㻘㻌㻞㻜㻝㻞㻜㻟㻝㻜㻪 㻨〇ရ㻭㻘㻌୙ホ㻘㻌㻞㻜㻝㻞㻜㻟㻜㻣㻪 䜾䝹䞊䝥䜻䞊㻦㻌㻜

䜾䝹䞊䝥䜻䞊㻦㻌㻝

ධຊ䝍䝥䝹㞟ྜ 䜾䝹䞊䝥

䜻䞊

䐟䜾䝹䞊䝥䜻䞊䜢௜୚ 䐠䜾䝹䞊䝥䜻䞊䛷䜾䝹䞊䝥໬

䜾䝹䞊䝥䜻䞊㻦㻌㻞 㻨〇ရ㻭㻘㻌ዲホ㻘㻌㻞㻜㻝㻞㻜㻟㻝㻡㻪 㻨〇ရ㻭㻘㻌ዲホ㻘㻌㻞㻜㻝㻞㻜㻟㻝㻤㻪 㻨〇ရ㻭㻘㻌ዲホ㻘㻌㻞㻜㻝㻞㻜㻟㻝㻢㻪

㻨〇ရ㻭㻘㻌୙ホ㻘㻌㻞㻜㻝㻞㻜㻟㻝㻞㻪 㻨〇ရ㻭㻘㻌ዲホ㻘㻌㻞㻜㻝㻞㻜㻟㻜㻥㻪 㻨〇ရ㻭㻘㻌ዲホ㻘㻌㻞㻜㻝㻞㻜㻟㻝㻜㻪 㻨〇ရ㻭㻘㻌୙ホ㻘㻌㻞㻜㻝㻞㻜㻟㻜㻣㻪 䜾䝹䞊䝥䜻䞊㻦㻌㻝

㻨〇ရ㻭㻘㻌୙ホ㻘㻌㻞㻜㻝㻞㻜㻟㻜㻟㻪 㻨〇ရ㻭㻘㻌ዲホ㻘㻌㻞㻜㻝㻞㻜㻟㻜㻠㻪 㻨〇ရ㻭㻘㻌୙ホ㻘㻌㻞㻜㻝㻞㻜㻟㻜㻞㻪 䜾䝹䞊䝥䜻䞊㻦㻌㻜

䐡䜾䝹䞊䝥䜻䞊䛷䝋䞊䝖

ᅗ6.3

୺ㄽᩥ⏬ീSGI

୺ㄽᩥ⏬ീSGI

図 6.3日付が集計されるフロー

グループ化関数名: cl

対応クラス名: ClusteringTupleGrouping ソート方法: 文字列,降順

期間集計用グループ化関数 グループ化関数名: dt

対応クラス名: DateTermTupleGrouping ソート方法: 数値,降順

これで,関数を追加する作業は完了となる.

実際の関数呼出し方法を,dtを用いた例で説明する.まず,集計条件が,次のように記 述されていたとする.

MC="dt(DATE,7),v(評価極性)"

ここで,DATEには,基準日からの経過日数が含まれていることを想定している.図6.3 に,‘dt(DATE,7)’の処理フローを示す.

(1) DateTermTupleGroupingクラスのmakeGroupKey(情報要素タプル集合,[”DATE”,

”7”])が呼び出され,7日ごとに同じグループキーを付与する.

(2) グループキーが等しい情報要素タプルをグループ化する.

(3) グループキー(DATEを7で割った商)を数値化し,各グループをグループキーの 降順にソートする.

この処理によって,7日ごとにグループ化され,日付の新しい期間順にグループがソート されたデータ構造をもつ情報要素タプル集合が生成される.更に,集計条件のv(評価極 性)を適用し,各グループを評価極性(好評/不評)でグループ化し,配下のタプル数の集

ドキュメント内 情報集約データベースに関する研究 (ページ 76-79)