データセットで頻繁に使用されるアイテムの数を見つけようとしています。最初に、入力文字列のサブセットを見つけようとしました
Input:
coke,cracker,beer
coke,cracker
私がこれまでに行ったことは、
String[] transaction = value.toString().split(delim);
/*
* Get subsets
*/
System.out.println("Transaction----"+Arrays.toString(transaction));
Arrays.sort(transaction);
int len = transaction.length;
long numofSubsets = (long) Math.pow(2, transaction.length);
for (long i = 1; i < numofSubsets; i++) {
String j = String.format("%" + len + "s", Long.toBinaryString(i)).replace(' ', '0');
String addVal = "";
for (int l = 0; l < j.length(); l++) {
if (j.charAt(l) == '0') {
//do nothing
}
else{
addVal += transaction[l]+delim;
System.out.println("addval---------- "+addVal);
addVal = addVal.substring(0, addVal.length()-1);
}
}
}
そして、出力は
Transaction----[coke, cracker, beer]
addval---------- cracker
addval---------- coke
addval---------- coke
addval---------- coke,cracker
addval---------- beer
addval---------- beer
addval---------- beer,cracker
addval---------- beer
addval---------- beer,coke
addval---------- beer
addval---------- beer,coke
addval---------- beer,coke,cracker
Transaction----[coke, cracker]
addval---------- cracker
addval---------- coke
addval---------- coke
addval---------- coke,cracker
サブセットは次のようになると思います
coke
cracker
beer
coke,cracker
coke,beer
cracker,beer
coke
cracker
coke,cracker
Transaction----[coke, cracker]
addval---------- cracker
addval---------- coke
addval---------- coke
addval---------- coke,cracker
ここcoke
で取得してrepeated
います。
私は何か間違ったことをしていますか?
ご意見をお聞かせください。