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 2013/01/08 16:47:18 UTC

svn commit: r1430337 - /incubator/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/data/GoldAnnotationStatsCalculator.java

Author: dligach
Date: Tue Jan  8 15:47:17 2013
New Revision: 1430337

URL: http://svn.apache.org/viewvc?rev=1430337&view=rev
Log:
added calculations for the number of entity pairs in a sentence

Modified:
    incubator/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/data/GoldAnnotationStatsCalculator.java

Modified: incubator/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/data/GoldAnnotationStatsCalculator.java
URL: http://svn.apache.org/viewvc/incubator/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/data/GoldAnnotationStatsCalculator.java?rev=1430337&r1=1430336&r2=1430337&view=diff
==============================================================================
--- incubator/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/data/GoldAnnotationStatsCalculator.java (original)
+++ incubator/ctakes/trunk/ctakes-relation-extractor/src/main/java/org/apache/ctakes/relationextractor/data/GoldAnnotationStatsCalculator.java Tue Jan  8 15:47:17 2013
@@ -19,7 +19,10 @@
 package org.apache.ctakes.relationextractor.data;
 
 import java.util.Collection;
+import java.util.List;
 
+import org.apache.ctakes.relationextractor.ae.EntityMentionPairRelationExtractorAnnotator;
+import org.apache.ctakes.relationextractor.ae.RelationExtractorAnnotator.IdentifiedAnnotationPair;
 import org.apache.ctakes.typesystem.type.relation.BinaryTextRelation;
 import org.apache.ctakes.typesystem.type.syntax.BaseToken;
 import org.apache.ctakes.typesystem.type.textsem.EntityMention;
@@ -48,6 +51,7 @@ public class GoldAnnotationStatsCalculat
 	public int tokenCount;
 	public int sentenceCount;
 	public int entityMentionCount;
+	public int entityMentionPairCount;
 	public Multiset<String> relationTypes;
 	
 	@Override
@@ -56,6 +60,7 @@ public class GoldAnnotationStatsCalculat
 	  tokenCount = 0;
 	  sentenceCount = 0;
 	  entityMentionCount = 0;
+	  entityMentionPairCount = 0;
 	  relationTypes = HashMultiset.create();
 	}
   
@@ -63,11 +68,12 @@ public class GoldAnnotationStatsCalculat
 	public void collectionProcessComplete() throws AnalysisEngineProcessException {
 
 	  System.out.println();
-	  System.out.println("token count: " + tokenCount);
-	  System.out.println("sentence count: " + sentenceCount);
-	  System.out.println("entity mention count: " + entityMentionCount);
-	  System.out.println("location_of count: " + relationTypes.count("location_of"));
-	  System.out.println("degree_of count: " + relationTypes.count("degree_of"));
+	  System.out.format("%-30s%d\n", "token count", tokenCount);
+	  System.out.format("%-30s%d\n", "sentence count", sentenceCount);
+	  System.out.format("%-30s%d\n", "entity mention count", entityMentionCount);
+	  System.out.format("%-30s%d\n", "entity mention pair count", entityMentionPairCount);
+	  System.out.format("%-30s%d\n", "location_of count", relationTypes.count("location_of"));
+	  System.out.format("%-30s%d\n", "degree_of count", relationTypes.count("degree_of"));
   }
   
 	@Override
@@ -79,10 +85,11 @@ public class GoldAnnotationStatsCalculat
     } catch (CASException e) {
       throw new AnalysisEngineProcessException(e);
     }	  
-
+    
     countTokens(jCas); // tokens exist in system view (not in gold)
     countSentences(jCas);
     countEntities(goldView);
+    countEntityMentionPairs(jCas, goldView); // TODO: need gold view?
     countRelationTypes(goldView); 
   }
 	
@@ -96,6 +103,16 @@ public class GoldAnnotationStatsCalculat
 	  Collection<Sentence> sentences = JCasUtil.select(jCas, Sentence.class);
 	  sentenceCount += sentences.size();
 	}
+	
+  private void countEntityMentionPairs(JCas jCas, JCas goldView) {
+    
+    for(Sentence sentence : JCasUtil.select(jCas, Sentence.class)) {
+      EntityMentionPairRelationExtractorAnnotator emPairAnnot = new EntityMentionPairRelationExtractorAnnotator();
+      List<IdentifiedAnnotationPair> pairs = emPairAnnot.getCandidateRelationArgumentPairs(goldView, sentence);
+      entityMentionPairCount += pairs.size();
+    }
+  }
+	
 	private void countRelationTypes(JCas jCas) {
 	  
     for(BinaryTextRelation binaryTextRelation : JCasUtil.select(jCas, BinaryTextRelation.class)) {