import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class FreqItemset {
// method to read parameters of file ( bucket and min sup)
public int[] no_of_baskets_and_minsup(BufferedReader br) throws IOException {
String line1 = br.readLine();
return new int[] {Integer.parseInt(line1.split(" ")[0]), Integer.parseInt(line1.split(" ")[1])};
}
public void pass1(String file) {
try {
BufferedReader inputbr = new BufferedReader(new FileReader(file));
int res[] = no_of_baskets_and_minsup(inputbr);
int baskets = res[0];
int minsup = res[1];
System.out.println("Number of bukcets:"+baskets);
System.out.println("Min support is:"+minsup);
//pass 1 logic
String basket=null;
int[] unique_items = new int[100];
while( (basket = inputbr.readLine()) !=null ) { // for each basket
String[] temp = basket.split(",");
for(int i =1; i<temp.length; i++) { // for each item in basket
unique_items[Integer.parseInt(temp[i])]++; // increment counts
}
//todo create hashtable maintaing bukcet and count
//For each pair of items in a basket..
// hash the pair to a bukce;
// add 1 to the count of that bukcet;
}
} catch (Exception ex) {
System.out.println("Something wrong in Phase 1 :" + ex.getMessage() + "\n\n" + ex.getStackTrace());
}
}
public static void main(String[] args) {
String filename = "input.txt";
long t1= System.currentTimeMillis();
FreqItemset obj = new FreqItemset();
obj.pass1(filename);
long t2= System.currentTimeMillis();
System.out.println("Time mili "+(t2-t1));
}
}
При реализации алгоритма PCY с использованием техники Multihash для майнинга Frquent itemset .. в первом проходе мне нужно было создать массив 1-itemsets и их количество. Теперь мне нужно рассмотреть каждую пару из каждой корзины и хэшировать ее в корзину, используя хэш-функцию. Мне нужно создать 2 таблицы в Pass 1 (мультихеш PCY).
Я не могу придумать способ: учитывая пару элементов i, j, насколько я реализую хеш-таблицу, используя свою собственную функцию has, например, например. (i * j)% 51 и другой подобный для второй хэш-таблицы.
Я много читал о хеш-таблицах, но не нашел выхода.