package syntaxLearner;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import syntaxLearner.UI.Console;
import syntaxLearner.corpus.Corpus;
public class LearnerMain {
public static void main (String[] args){
Console.text("Syntactic, Build 53\n****************");
if (args.length>5){
testCorpus(args[0],args[1], args[2], args[3],args[4],args[5]);
} else {
System.out.println("Command structure: [name], [input folder] [output folder] [clusters] [threshold] [epsilon]");
}
}
private static void testCorpus(String name, String inFolder, String outFolder, String clusters, String threshold, String epsilon){
Learner l = new Learner(Integer.parseInt(clusters),Integer.parseInt(threshold),Double.parseDouble(epsilon));
Corpus c = new Corpus(name,l);
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH-mm-ss");
String outName = String.format("%1$s %2$s", name, sdf.format(cal.getTime()));
File f1 = new File(inFolder);
File f2 = new File(outFolder, outName);
f2.mkdir();
System.out.println(f2.getAbsolutePath()+" created");
Recorder r = new Recorder(l,f2,name,true);
l.setRecorder(r);
recursiveAdd(f1,c);
l.setCorpus(c);
l.learn();
}
private static void recursiveAdd(File f, Corpus c) {
File[] files = f.listFiles();
for (File file:files){
if (file.isFile()){
if (file.getName().endsWith(".txt")){
c.addPlainTextFile(file);
}
} else if (file.isDirectory()){
recursiveAdd(file, c);
}
}
}
}