You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ctakes.apache.org by tm...@apache.org on 2013/05/13 13:29:29 UTC
svn commit: r1481792 - in
/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal: ae/
ae/feature/ eval/
Author: tmill
Date: Mon May 13 11:29:28 2013
New Revision: 1481792
URL: http://svn.apache.org/r1481792
Log:
Best-performing configuration of event-event extractor with one new feature and one completed.
Modified:
ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/EventEventRelationAnnotator.java
ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/feature/UmlsFeatureExtractor.java
ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/eval/EvaluationOfEventEventRelations.java
ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/eval/EvaluationOfTemporalRelations_ImplBase.java
Modified: ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/EventEventRelationAnnotator.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/EventEventRelationAnnotator.java?rev=1481792&r1=1481791&r2=1481792&view=diff
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/EventEventRelationAnnotator.java (original)
+++ ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/EventEventRelationAnnotator.java Mon May 13 11:29:28 2013
@@ -10,6 +10,8 @@ import org.apache.ctakes.relationextract
import org.apache.ctakes.relationextractor.ae.features.PartOfSpeechFeaturesExtractor;
import org.apache.ctakes.relationextractor.ae.features.RelationFeaturesExtractor;
import org.apache.ctakes.relationextractor.ae.features.TokenFeaturesExtractor;
+import org.apache.ctakes.temporal.ae.feature.EventArgumentPropertyExtractor;
+import org.apache.ctakes.temporal.ae.feature.UmlsFeatureExtractor;
import org.apache.ctakes.typesystem.type.relation.BinaryTextRelation;
import org.apache.ctakes.typesystem.type.textsem.EventMention;
import org.apache.ctakes.typesystem.type.textsem.IdentifiedAnnotation;
@@ -62,6 +64,11 @@ public class EventEventRelationAnnotator
return Lists.newArrayList(
new TokenFeaturesExtractor()
, new PartOfSpeechFeaturesExtractor()
+ , new EventArgumentPropertyExtractor()
+ , new UmlsFeatureExtractor()
+// , new DependencyTreeFeaturesExtractor()
+// , new DependencyPathFeaturesExtractor()
+
// , new TemporalAttributeFeatureExtractor()
// , new EventTimeFlatTreeFeatureExtractor()
// , new TemporalPETExtractor()
@@ -81,8 +88,10 @@ public class EventEventRelationAnnotator
List<IdentifiedAnnotationPair> pairs = Lists.newArrayList();
List<EventMention> events = new ArrayList<EventMention>(JCasUtil.selectCovered(jCas, EventMention.class, sentence));
for (int i = 0; i < events.size(); i++){
+ if(!events.get(i).getClass().equals(EventMention.class)) continue;
for(int j = i+1; j < events.size(); j++){
- pairs.add(new IdentifiedAnnotationPair(events.get(i), events.get(j)));
+ if(!events.get(j).getClass().equals(EventMention.class)) continue;
+ pairs.add(new IdentifiedAnnotationPair(events.get(i), events.get(j)));
}
}
return pairs;
Modified: ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/feature/UmlsFeatureExtractor.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/feature/UmlsFeatureExtractor.java?rev=1481792&r1=1481791&r2=1481792&view=diff
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/feature/UmlsFeatureExtractor.java (original)
+++ ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/ae/feature/UmlsFeatureExtractor.java Mon May 13 11:29:28 2013
@@ -27,6 +27,7 @@ import org.apache.ctakes.relationextract
import org.apache.ctakes.typesystem.type.textsem.EntityMention;
import org.apache.ctakes.typesystem.type.textsem.EventMention;
import org.apache.ctakes.typesystem.type.textsem.IdentifiedAnnotation;
+import org.apache.ctakes.utils.struct.CounterMap;
import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
import org.apache.uima.cas.CASException;
import org.apache.uima.jcas.JCas;
@@ -48,23 +49,47 @@ public class UmlsFeatureExtractor implem
throw new AnalysisEngineProcessException(e);
}
- // TODO: add the same logic for arg2
if(arg1 instanceof EventMention) {
- List<EntityMention> entityMentions = JCasUtil.selectCovering(systemView, EntityMention.class, arg1.getBegin(), arg1.getEnd());
+// List<EntityMention> entityMentions = JCasUtil.selectCovering(systemView, EntityMention.class, arg1.getBegin(), arg1.getEnd());
+
+ CounterMap<String> typeCounts =
+ getMentionTypes(JCasUtil.selectCovering(systemView, EntityMention.class, arg1.getBegin(), arg1.getEnd()));
- Set<Integer> uniqueTypeIDs = new HashSet<Integer>();
- for(EntityMention entityMention : entityMentions) {
- uniqueTypeIDs.add(entityMention.getTypeID());
- features.add(new Feature("arg1EntityTypeID", String.valueOf(entityMention.getTypeID())));
+ // print out totals:
+ for(String typeId : typeCounts.keySet()){
+ features.add(new Feature("arg1EntityTypeID_"+typeId, typeCounts.get(typeId)));
}
+ // TO print out just the types without counts:
+// for(String typeId : typeCounts.keySet()){
+// features.add(new Feature("arg1EntityTypeID_", typeId));
+// }
+
// TODO: this is the correct implementatino, but it does not perform as well
// for(int typeID : uniqueTypeIDs) {
// features.add(new Feature("arg1EntityTypeID", String.valueOf(typeID)));
// }
}
-
+
+ if(arg2 instanceof EventMention){
+ CounterMap<String> typeCounts =
+ getMentionTypes(JCasUtil.selectCovering(systemView, EntityMention.class, arg2.getBegin(), arg2.getEnd()));
+
+ // print out totals:
+ for(String typeId : typeCounts.keySet()){
+ features.add(new Feature("arg2EntityTypeID_"+typeId, typeCounts.get(typeId)));
+ }
+ }
return features;
}
+
+ private static CounterMap<String> getMentionTypes(List<EntityMention> entities){
+ CounterMap<String> typeCounts = new CounterMap<String>();
+ for(EntityMention entityMention : entities) {
+ typeCounts.add(String.valueOf(entityMention.getTypeID()));
+ }
+ return typeCounts;
+
+ }
}
Modified: ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/eval/EvaluationOfEventEventRelations.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/eval/EvaluationOfEventEventRelations.java?rev=1481792&r1=1481791&r2=1481792&view=diff
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/eval/EvaluationOfEventEventRelations.java (original)
+++ ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/eval/EvaluationOfEventEventRelations.java Mon May 13 11:29:28 2013
@@ -55,8 +55,8 @@ EvaluationOfTemporalRelations_ImplBase {
}
@Override
- protected void train(CollectionReader collectionReader, File directory)
- throws Exception {
+ protected void train(CollectionReader collectionReader, File directory) throws Exception
+ {
AggregateBuilder aggregateBuilder = this.getPreprocessorAggregateBuilder();
aggregateBuilder.add(CopyFromGold.getDescription(EventMention.class, TimeMention.class, BinaryTextRelation.class));
// aggregateBuilder.add(AnalysisEngineFactory.createPrimitiveDescription(MergeContainsOverlap.class));
@@ -69,13 +69,17 @@ EvaluationOfTemporalRelations_ImplBase {
aggregateBuilder.add(AnalysisEngineFactory.createPrimitiveDescription(PreserveEventEventRelations.class));
aggregateBuilder.add(EventEventRelationAnnotator.createDataWriterDescription(
LIBSVMStringOutcomeDataWriter.class,
- // TKSVMlightStringOutcomeDataWriter.class,
+// TKSVMlightStringOutcomeDataWriter.class,
directory,
1.0));
SimplePipeline.runPipeline(collectionReader, aggregateBuilder.createAggregate());
HideOutput hider = new HideOutput();
+ // libsvm:
JarClassifierBuilder.trainAndPackage(directory, "-t", "0", "-c", "10");
+ // tksvmlight with no tk features:
+// JarClassifierBuilder.trainAndPackage(directory, "-t", "0", "-c", "10", "-N", "0");
+// JarClassifierBuilder.trainAndPackage(directory, "-t", "5", "-S", "0", "-N", "3", "-C", "+", "-T", "1.0");
hider.restoreOutput();
hider.close();
}
Modified: ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/eval/EvaluationOfTemporalRelations_ImplBase.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/eval/EvaluationOfTemporalRelations_ImplBase.java?rev=1481792&r1=1481791&r2=1481792&view=diff
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/eval/EvaluationOfTemporalRelations_ImplBase.java (original)
+++ ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/eval/EvaluationOfTemporalRelations_ImplBase.java Mon May 13 11:29:28 2013
@@ -53,7 +53,7 @@ public abstract class EvaluationOfTempor
public EvaluationOfTemporalRelations_ImplBase(File baseDirectory,
File rawTextDirectory, File knowtatorXMLDirectory,
- File xmiDirectory, File treebankDirectory, boolean printRelations, boolean printErrors, ParameterSettings params) {
+ File xmiDirectory, File treebankDirectory, boolean printErrors, boolean printRelations, ParameterSettings params) {
super(baseDirectory, rawTextDirectory, knowtatorXMLDirectory, xmiDirectory,
treebankDirectory);
this.params = params;