###ひとこと
投稿はおろか,このサイトを利用することが初めてで,わかりにくい質問だと思いますがよろしくお願いします.
もし質問の書き方についても.ここはこう書いたほうがいい,などのアドバイスがあったら修正します.
###前提・実現したいこと
"Web Page Recommendation Based on Bitwise Frequent Pattern Mining"という論文内で登場するVI-listというデータ構造をJavaで実装したいのですが上手くいかないので,アドバイス等お願いします.
この構造体VI-listは,
以下の表のようなWB-tableというデータ構造(実際は0/1ではなくTrue/False)から
||1|2|3|4|5|
|:--|:--:|--:|
|A|0|1|0|0|1|0|
|B|1|0|1|0|0|0|
|C|1|0|0|0|1|0|
|D|0|1|1|0|1|0|
|E|1|1|1|0|0|0|
以下のようなリストとして生成されます.
Column index | Row indeces |
---|---|
1 | 2,3,5 (WB-table上のB,C,Eを指す) |
2 | 1,4 (WB-table上のA,Dを指す) |
仕様は以下のような感じです.
0. WB-tableの各行に対して列の左から見て,初出の1(WB-table内太字部分)となる組み合わせをVI-listに格納していく.
- Column indexには配列などを用いた数の組み合わせの表現が可能であり,その組み合わせも取り出せる.
- Column indexについて昇順に並んだ状態である.
- WB-tableはboolean[][]の二次元の行列で構成されている.
拙い説明ですがよろしくお願いします.
###試したこと,問題点
- HashMapで構成しようとしたが,上記の仕様の2.と3.を満たさない(?)
- Column IndexとRowIndecesをArrayListを用いて別々に作ろうとしたが,仕様の3.が満たせない.Column Indexのソートを行うとRow Indecesとの対応関係が切れてしまう.
- 一番の問題点は自分がプログラミングの経験,知識がほとんどないことだと思います・・・
###自分が書いたコード
ここは無視してもらっても大丈夫です.
上記のArrayListで構成しようとしたver.です.
途中でこれだとできそうにないことに気づいてやめてしまっており,また,多々おかしなところがあると思います.
自分のプログラミングのレベルとやりたいことの雰囲気だけでもわかってもらえれば幸いです.
public class VI_List{ ArrayList<Integer> row = new ArrayList<Integer>(); ArrayList<ArrayList<Integer>> rowList = new ArrayList<ArraList<Integer>>(); ArrayList<Integer[]> col = new ArrayList<Integer[]>(); VI_List(WB_Table wb){ boolean flg = true; for(int i=0;i<wb.table.length;i++){ for(int j=0;flg;j++){ if(wb.table[i][j]){ if(!this.col.contains(j)){ this.col.get(j); } //このあたりで昇順に並べられないことに気づき中断 this.row.add(i); flg = false; } } } }
回答2件
あなたの回答
tips
プレビュー