You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ctakes.apache.org by st...@apache.org on 2013/06/07 23:30:36 UTC
svn commit: r1490838 - in
/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/eval:
EvaluationOfEventSpans.java EvaluationOfTimeSpans.java
Author: stevenbethard
Date: Fri Jun 7 21:30:36 2013
New Revision: 1490838
URL: http://svn.apache.org/r1490838
Log:
Switches ctakes-temporal over to LIBLINEAR instead of LIBSVM
Modified:
ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/eval/EvaluationOfEventSpans.java
ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/eval/EvaluationOfTimeSpans.java
Modified: ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/eval/EvaluationOfEventSpans.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/eval/EvaluationOfEventSpans.java?rev=1490838&r1=1490837&r2=1490838&view=diff
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/eval/EvaluationOfEventSpans.java (original)
+++ ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/eval/EvaluationOfEventSpans.java Fri Jun 7 21:30:36 2013
@@ -34,7 +34,7 @@ import org.cleartk.classifier.Instance;
import org.cleartk.classifier.feature.transform.InstanceDataWriter;
import org.cleartk.classifier.feature.transform.InstanceStream;
import org.cleartk.classifier.jar.JarClassifierBuilder;
-import org.cleartk.classifier.libsvm.LIBSVMStringOutcomeDataWriter;
+import org.cleartk.classifier.liblinear.LIBLINEARStringOutcomeDataWriter;
import org.cleartk.eval.AnnotationStatistics;
import com.lexicalscope.jewel.cli.CliFactory;
@@ -98,7 +98,7 @@ public class EvaluationOfEventSpans exte
throws ResourceInitializationException {
Class<?> dataWriterClass = this.featureSelectionThreshold > 0f
? InstanceDataWriter.class
- : LIBSVMStringOutcomeDataWriter.class;
+ : LIBLINEARStringOutcomeDataWriter.class;
return EventAnnotator.createDataWriterDescription(
dataWriterClass,
directory,
@@ -117,14 +117,14 @@ public class EvaluationOfEventSpans exte
featureSelection.train(instances);
featureSelection.save(EventAnnotator.createFeatureSelectionURI(directory));
// now write in the libsvm format
- LIBSVMStringOutcomeDataWriter dataWriter = new LIBSVMStringOutcomeDataWriter(directory);
+ LIBLINEARStringOutcomeDataWriter dataWriter = new LIBLINEARStringOutcomeDataWriter(directory);
for (Instance<String> instance : instances) {
dataWriter.write(featureSelection.transform(instance));
}
dataWriter.finish();
}
- JarClassifierBuilder.trainAndPackage(directory, "-c", "10000");
+ JarClassifierBuilder.trainAndPackage(directory, "-c", "0.05");
}
@Override
Modified: ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/eval/EvaluationOfTimeSpans.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/eval/EvaluationOfTimeSpans.java?rev=1490838&r1=1490837&r2=1490838&view=diff
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/eval/EvaluationOfTimeSpans.java (original)
+++ ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/eval/EvaluationOfTimeSpans.java Fri Jun 7 21:30:36 2013
@@ -36,7 +36,7 @@ import org.cleartk.classifier.jar.Defaul
import org.cleartk.classifier.jar.DirectoryDataWriterFactory;
import org.cleartk.classifier.jar.GenericJarClassifierFactory;
import org.cleartk.classifier.jar.JarClassifierBuilder;
-import org.cleartk.classifier.libsvm.LIBSVMStringOutcomeDataWriter;
+import org.cleartk.classifier.liblinear.LIBLINEARStringOutcomeDataWriter;
import org.cleartk.eval.AnnotationStatistics;
import org.uimafit.factory.AnalysisEngineFactory;
@@ -58,6 +58,9 @@ public class EvaluationOfTimeSpans exten
List<Class<? extends CleartkAnnotator<String>>> annotatorClasses = Lists.newArrayList();
annotatorClasses.add(TimeAnnotator.class);
annotatorClasses.add(ConstituencyBasedTimeAnnotator.class);
+ Map<Class<? extends CleartkAnnotator<String>>, String[]> annotatorTrainingArguments = Maps.newHashMap();
+ annotatorTrainingArguments.put(TimeAnnotator.class, new String[]{"-c", "0.1"});
+ annotatorTrainingArguments.put(ConstituencyBasedTimeAnnotator.class, new String[]{"-c", "1"});
// run one evaluation per annotator class
final Map<Class<?>, AnnotationStatistics<?>> annotatorStats = Maps.newHashMap();
@@ -68,7 +71,8 @@ public class EvaluationOfTimeSpans exten
options.getKnowtatorXMLDirectory(),
options.getXMIDirectory(),
options.getTreebankDirectory(),
- annotatorClass);
+ annotatorClass,
+ annotatorTrainingArguments.get(annotatorClass));
evaluation.prepareXMIsFor(patientSets);
String name = String.format("%s.errors", annotatorClass.getSimpleName());
evaluation.setLogging(Level.FINE, new File("target/eval", name));
@@ -95,15 +99,19 @@ public class EvaluationOfTimeSpans exten
private Class<? extends CleartkAnnotator<String>> annotatorClass;
+ private String[] trainingArguments;
+
public EvaluationOfTimeSpans(
File baseDirectory,
File rawTextDirectory,
File knowtatorXMLDirectory,
File xmiDirectory,
File treebankDirectory,
- Class<? extends CleartkAnnotator<String>> annotatorClass) {
+ Class<? extends CleartkAnnotator<String>> annotatorClass,
+ String[] trainingArguments) {
super(baseDirectory, rawTextDirectory, knowtatorXMLDirectory, xmiDirectory, treebankDirectory, TimeMention.class);
this.annotatorClass = annotatorClass;
+ this.trainingArguments = trainingArguments;
}
@Override
@@ -114,14 +122,14 @@ public class EvaluationOfTimeSpans exten
CleartkAnnotator.PARAM_IS_TRAINING,
true,
DefaultDataWriterFactory.PARAM_DATA_WRITER_CLASS_NAME,
- LIBSVMStringOutcomeDataWriter.class,
+ LIBLINEARStringOutcomeDataWriter.class,
DirectoryDataWriterFactory.PARAM_OUTPUT_DIRECTORY,
this.getModelDirectory(directory));
}
@Override
protected void trainAndPackage(File directory) throws Exception {
- JarClassifierBuilder.trainAndPackage(this.getModelDirectory(directory), "-c", "10000");
+ JarClassifierBuilder.trainAndPackage(this.getModelDirectory(directory), this.trainingArguments);
}
@Override