MEMMTrainer memmt = new MEMMTrainer (memm);
if (testValueAndGradient) {
Optimizable.ByGradientValue minable = memmt.getOptimizableMEMM(lists[0]);
TestOptimizable.testValueAndGradient(minable);
} else {
System.out.println("Training Accuracy before training = " + memm.averageTokenAccuracy(lists[0]));
System.out.println("Testing Accuracy before training = " + memm.averageTokenAccuracy(lists[1]));
System.out.println("Training...");
memmt.train(lists[0], 1);
System.out.println("Training Accuracy after training = " + memm.averageTokenAccuracy(lists[0]));
System.out.println("Testing Accuracy after training = " + memm.averageTokenAccuracy(lists[1]));