You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ctakes.apache.org by dl...@apache.org on 2016/09/27 15:47:16 UTC
svn commit: r1762507 - in
/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn:
ae/EventTimeHybridAnnotator.java ae/EventTimeTokenAndPosBasedAnnotator.java
eval/EventTimeNeuralEvaluation.java
Author: dligach
Date: Tue Sep 27 15:47:16 2016
New Revision: 1762507
URL: http://svn.apache.org/viewvc?rev=1762507&view=rev
Log:
now testing token/pos model
Added:
ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/ae/EventTimeTokenAndPosBasedAnnotator.java
- copied, changed from r1762506, ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/ae/EventTimeHybridAnnotator.java
Removed:
ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/ae/EventTimeHybridAnnotator.java
Modified:
ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/eval/EventTimeNeuralEvaluation.java
Copied: ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/ae/EventTimeTokenAndPosBasedAnnotator.java (from r1762506, ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/ae/EventTimeHybridAnnotator.java)
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/ae/EventTimeTokenAndPosBasedAnnotator.java?p2=ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/ae/EventTimeTokenAndPosBasedAnnotator.java&p1=ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/ae/EventTimeHybridAnnotator.java&r1=1762506&r2=1762507&rev=1762507&view=diff
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/ae/EventTimeHybridAnnotator.java (original)
+++ ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/ae/EventTimeTokenAndPosBasedAnnotator.java Tue Sep 27 15:47:16 2016
@@ -28,11 +28,11 @@ import org.cleartk.util.ViewUriUtil;
import com.google.common.collect.Lists;
-public class EventTimeHybridAnnotator extends CleartkAnnotator<String> {
+public class EventTimeTokenAndPosBasedAnnotator extends CleartkAnnotator<String> {
public static final String NO_RELATION_CATEGORY = "none";
- public EventTimeHybridAnnotator() {
+ public EventTimeTokenAndPosBasedAnnotator() {
// TODO Auto-generated constructor stub
}
@@ -42,9 +42,9 @@ public class EventTimeHybridAnnotator ex
//get all gold relation lookup
Map<List<Annotation>, BinaryTextRelation> relationLookup;
relationLookup = new HashMap<>();
- if (this.isTraining()) {
+ if(this.isTraining()) {
relationLookup = new HashMap<>();
- for (BinaryTextRelation relation : JCasUtil.select(jCas, BinaryTextRelation.class)) {
+ for(BinaryTextRelation relation : JCasUtil.select(jCas, BinaryTextRelation.class)) {
Annotation arg1 = relation.getArg1().getArgument();
Annotation arg2 = relation.getArg2().getArgument();
// The key is a list of args so we can do bi-directional lookup
@@ -53,7 +53,7 @@ public class EventTimeHybridAnnotator ex
String reln = relationLookup.get(key).getCategory();
System.err.println("Error in: "+ ViewUriUtil.getURI(jCas).toString());
System.err.println("Error! This attempted relation " + relation.getCategory() + " already has a relation " + reln + " at this span: " + arg1.getCoveredText() + " -- " + arg2.getCoveredText());
- }else{
+ } else{
relationLookup.put(key, relation);
}
}
@@ -66,7 +66,7 @@ public class EventTimeHybridAnnotator ex
getCandidateRelationArgumentPairs(jCas, sentence);
// walk through the pairs of annotations
- for (IdentifiedAnnotationPair pair : candidatePairs) {
+ for(IdentifiedAnnotationPair pair : candidatePairs) {
IdentifiedAnnotation arg1 = pair.getArg1();
IdentifiedAnnotation arg2 = pair.getArg2();
@@ -85,16 +85,16 @@ public class EventTimeHybridAnnotator ex
//derive features based on context:
List<Feature> features = new ArrayList<>();
String[] tokens = (tokenContext + "|" + posContext).split(" ");
- for (String token: tokens){
+ for(String token: tokens){
features.add(new Feature(token.toLowerCase()));
}
// during training, feed the features to the data writer
- if (this.isTraining()) {
+ if(this.isTraining()) {
String category = getRelationCategory(relationLookup, arg1, arg2);
- if (category == null) {
+ if(category == null) {
category = NO_RELATION_CATEGORY;
- } else{
+ } else {
category = category.toLowerCase();
}
this.dataWriter.write(new Instance<>(category, features));
@@ -104,29 +104,28 @@ public class EventTimeHybridAnnotator ex
String predictedCategory = this.classifier.classify(features);
// add a relation annotation if a true relation was predicted
- if (predictedCategory != null && !predictedCategory.equals(NO_RELATION_CATEGORY)) {
+ if(predictedCategory != null && !predictedCategory.equals(NO_RELATION_CATEGORY)) {
// if we predict an inverted relation, reverse the order of the arguments
- if (predictedCategory.endsWith("-1")) {
+ if(predictedCategory.endsWith("-1")) {
predictedCategory = predictedCategory.substring(0, predictedCategory.length() - 2);
if(arg1 instanceof TimeMention){
IdentifiedAnnotation temp = arg1;
arg1 = arg2;
arg2 = temp;
}
- }else{
+ } else {
if(arg1 instanceof EventMention){
IdentifiedAnnotation temp = arg1;
arg1 = arg2;
arg2 = temp;
}
}
-
+
createRelation(jCas, arg1, arg2, predictedCategory.toUpperCase(), 0.0);
}
}
}
-
}
}
Modified: ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/eval/EventTimeNeuralEvaluation.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/eval/EventTimeNeuralEvaluation.java?rev=1762507&r1=1762506&r2=1762507&view=diff
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/eval/EventTimeNeuralEvaluation.java (original)
+++ ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/eval/EventTimeNeuralEvaluation.java Tue Sep 27 15:47:16 2016
@@ -43,8 +43,7 @@ import org.apache.ctakes.temporal.eval.I
import org.apache.ctakes.temporal.eval.THYMEData;
import org.apache.ctakes.temporal.keras.KerasStringOutcomeDataWriter;
import org.apache.ctakes.temporal.keras.ScriptStringFeatureDataWriter;
-import org.apache.ctakes.temporal.nn.ae.EventTimePosBasedAnnotator;
-import org.apache.ctakes.temporal.nn.ae.EventTimeTokenBasedAnnotator;
+import org.apache.ctakes.temporal.nn.ae.EventTimeTokenAndPosBasedAnnotator;
import org.apache.ctakes.temporal.utils.AnnotationIdCollection;
import org.apache.ctakes.temporal.utils.TLinkTypeArray2;
import org.apache.ctakes.typesystem.type.relation.BinaryTextRelation;
@@ -291,7 +290,7 @@ EvaluationOfTemporalRelations_ImplBase{
aggregateBuilder.add(AnalysisEngineFactory.createEngineDescription(Overlap2Contains.class));
aggregateBuilder.add(
- AnalysisEngineFactory.createEngineDescription(EventTimeTokenBasedAnnotator.class,
+ AnalysisEngineFactory.createEngineDescription(EventTimeTokenAndPosBasedAnnotator.class,
CleartkAnnotator.PARAM_IS_TRAINING,
true,
DefaultDataWriterFactory.PARAM_DATA_WRITER_CLASS_NAME,
@@ -342,7 +341,7 @@ EvaluationOfTemporalRelations_ImplBase{
aggregateBuilder.add(AnalysisEngineFactory.createEngineDescription(RemoveRelations.class));
aggregateBuilder.add(this.baseline ? RecallBaselineEventTimeRelationAnnotator.createAnnotatorDescription(directory) :
- AnalysisEngineFactory.createEngineDescription(EventTimeTokenBasedAnnotator.class,
+ AnalysisEngineFactory.createEngineDescription(EventTimeTokenAndPosBasedAnnotator.class,
CleartkAnnotator.PARAM_IS_TRAINING,
false,
GenericJarClassifierFactory.PARAM_CLASSIFIER_JAR_PATH,