package ca.pfv.spmf.test;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URL;
import ca.pfv.spmf.algorithms.sequentialpatterns.spam.AlgoCMSPAM;
/**
* Example of how to use the SPAM algorithm in source code.
* @author Philippe Fournier-Viger
*/
public class MainTestCMSPAM_saveToFile {
public static void main(String [] arg) throws IOException{
// Load a sequence database
//String input = fileToPath("D1C20T20N0.5S6I5_SPMF.txt");
String input = fileToPath("contextPrefixSpan.txt");
String output = ".//output.txt";
// Create an instance of the algorithm
AlgoCMSPAM algo = new AlgoCMSPAM();
// This optional parameter allows to specify the minimum pattern length:
// algo.setMinimumPatternLength(0); // optional
// This optional parameter allows to specify the maximum pattern length:
// algo.setMaximumPatternLength(4); // optional
// This optional parameter allows to specify constraints that some
// items MUST appear in the patterns found by TKS
// E.g.: This requires that items 1 and 3 appears in every patterns found
// algo.setMustAppearItems(new int[] {1, 3});
// This optional parameter allows to specify the max gap between two
// itemsets in a pattern. If set to 1, only patterns of contiguous itemsets
// will be found (no gap).
//algo.setMaxGap(1);
// if you set the following parameter to true, the sequence ids of the sequences where
// each pattern appears will be shown in the result
boolean outputSequenceIdentifiers = true;
// execute the algorithm with minsup = 2 sequences (50 %)
algo.runAlgorithm(input, output, 0.5, outputSequenceIdentifiers); // minsup = 106 k = 1000 BMS
algo.printStatistics();
}
public static String fileToPath(String filename) throws UnsupportedEncodingException{
URL url = MainTestCMSPAM_saveToFile.class.getResource(filename);
return java.net.URLDecoder.decode(url.getPath(),"UTF-8");
}
}