Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 5851A200B95 for ; Tue, 27 Sep 2016 17:47:21 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 56DCD160AD2; Tue, 27 Sep 2016 15:47:21 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 6CB38160AB9 for ; Tue, 27 Sep 2016 17:47:20 +0200 (CEST) Received: (qmail 31457 invoked by uid 500); 27 Sep 2016 15:47:19 -0000 Mailing-List: contact commits-help@ctakes.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ctakes.apache.org Delivered-To: mailing list commits@ctakes.apache.org Received: (qmail 31448 invoked by uid 99); 27 Sep 2016 15:47:19 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 27 Sep 2016 15:47:19 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 2F99E1A0164 for ; Tue, 27 Sep 2016 15:47:19 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 0.374 X-Spam-Level: X-Spam-Status: No, score=0.374 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RP_MATCHES_RCVD=-1.426] autolearn=disabled Received: from mx2-lw-us.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id bsHavNOFdeON for ; Tue, 27 Sep 2016 15:47:17 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx2-lw-us.apache.org (ASF Mail Server at mx2-lw-us.apache.org) with ESMTP id A83A65FAF1 for ; Tue, 27 Sep 2016 15:47:17 +0000 (UTC) Received: from svn01-us-west.apache.org (svn.apache.org [10.41.0.6]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id 0A21CE0147 for ; Tue, 27 Sep 2016 15:47:16 +0000 (UTC) Received: from svn01-us-west.apache.org (localhost [127.0.0.1]) by svn01-us-west.apache.org (ASF Mail Server at svn01-us-west.apache.org) with ESMTP id BFDEA3A0A1D for ; Tue, 27 Sep 2016 15:47:16 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: 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 Date: Tue, 27 Sep 2016 15:47:16 -0000 To: commits@ctakes.apache.org From: dligach@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20160927154716.BFDEA3A0A1D@svn01-us-west.apache.org> archived-at: Tue, 27 Sep 2016 15:47:21 -0000 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 { +public class EventTimeTokenAndPosBasedAnnotator extends CleartkAnnotator { 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, 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 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,