Skip to content

Commit

Permalink
Fix for command line training. Train from arff and delete arff on exit.
Browse files Browse the repository at this point in the history
  • Loading branch information
dagansandler committed Jul 7, 2013
1 parent f6be2f3 commit 5733f0b
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 4 deletions.
11 changes: 8 additions & 3 deletions lipreading-core/src/main/java/edu/lipreading/LipReading.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,15 @@ public static void main(String... args) throws Exception {
fe.setOutput(argsAsList.contains("-output"));
XStream.write(sampleName.split("\\.")[0] + ".xml", cn.normalize(fe.extract(sampleName)));
} else if (argsAsList.contains("-train")) {
List<Sample> trainingSet = Utils.getTrainingSetFromZip(args[argsAsList.lastIndexOf("-arff") + 1]);
List<Sample> trainingSet = Utils.getTrainingSetFromZip(args[argsAsList.lastIndexOf("-train") + 1]);

WekaClassifier svmc = new SVMClassifier();
svmc.train(trainingSet);
svmc.saveToFile(args[argsAsList.lastIndexOf("-arff") + 2]);
String tmpArff = args[argsAsList.lastIndexOf("-train") + 2] + "tmp.arff";
Utils.dataSetToARFF(trainingSet, tmpArff);
svmc.trainFromFile(tmpArff);
svmc.saveToFile(args[argsAsList.lastIndexOf("-train") + 2]);
testModel(trainingSet, svmc);
new File(tmpArff).deleteOnExit();
} else if (argsAsList.contains("-dataset")) {
dataset(fe, args[argsAsList.lastIndexOf("-dataset") + 1]);
} else if (argsAsList.contains("-test") && argsAsList.size() > argsAsList.lastIndexOf("-test") + 2) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import weka.core.*;
import weka.core.converters.ArffLoader;

import java.io.File;
import java.io.InputStream;
import java.net.URL;
import java.util.ArrayList;
Expand Down Expand Up @@ -63,7 +64,7 @@ protected Instance sampleToInstance(Sample sample) {

public void trainFromFile(String arffFilePath) throws Exception {
ArffLoader loader = new ArffLoader();
loader.setSource(new URL(arffFilePath));
loader.setSource(new File(arffFilePath).toURI().toURL());
Instances dataSet = loader.getDataSet();
dataSet.setClassIndex(0);
AbstractClassifier c = getNewClassifierInstance();
Expand Down

0 comments on commit 5733f0b

Please sign in to comment.