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/07/26 15:40:51 UTC
svn commit: r1754146 -
/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/eventTimeRelationPrinter.java
Author: dligach
Date: Tue Jul 26 15:40:51 2016
New Revision: 1754146
URL: http://svn.apache.org/viewvc?rev=1754146&view=rev
Log:
added method to print pos sequences
Modified:
ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/eventTimeRelationPrinter.java
Modified: ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/eventTimeRelationPrinter.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/eventTimeRelationPrinter.java?rev=1754146&r1=1754145&r2=1754146&view=diff
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/eventTimeRelationPrinter.java (original)
+++ ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/eventTimeRelationPrinter.java Tue Jul 26 15:40:51 2016
@@ -29,7 +29,6 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Random;
import org.apache.ctakes.temporal.duration.Utils;
import org.apache.ctakes.temporal.eval.CommandLine;
@@ -199,10 +198,10 @@ public class eventTimeRelationPrinter {
String context;
if(time.getBegin() < event.getBegin()) {
// ... time ... event ... scenario
- context = getTokensBetween(systemView, sentence, time, "t", event, "e", 2);
+ context = getTokenContext(systemView, sentence, time, "t", event, "e", 2);
} else {
// ... event ... time ... scenario
- context = getTokensBetween(systemView, sentence, event, "e", time, "t", 2);
+ context = getTokenContext(systemView, sentence, event, "e", time, "t", 2);
}
String text = String.format("%s|%s", label, context);
@@ -220,10 +219,10 @@ public class eventTimeRelationPrinter {
}
/**
- * Print context from left to right.
+ * Print words from left to right.
* @param contextSize number of tokens to include on the left of arg1 and on the right of arg2
*/
- public static String getTokensBetween(
+ public static String getTokenContext(
JCas jCas,
Sentence sent,
Annotation left,
@@ -253,6 +252,47 @@ public class eventTimeRelationPrinter {
}
}
+ return String.join(" ", tokens).replaceAll("[\r\n]", " ");
+ }
+
+ /**
+ * Print POS tags from left to right.
+ * @param contextSize number of tokens to include on the left of arg1 and on the right of arg2
+ */
+ public static String getPosContext(
+ JCas jCas,
+ Sentence sent,
+ Annotation left,
+ String leftType,
+ Annotation right,
+ String rightType,
+ int contextSize) {
+
+ List<String> tokens = new ArrayList<>();
+ for(BaseToken baseToken : JCasUtil.selectPreceding(jCas, BaseToken.class, left, contextSize)) {
+ if(sent.getBegin() <= baseToken.getBegin()) {
+ tokens.add(baseToken.getPartOfSpeech());
+ }
+ }
+ tokens.add("<" + leftType + ">");
+ for(BaseToken baseToken : JCasUtil.selectCovered(jCas, BaseToken.class, left)) {
+ tokens.add(baseToken.getPartOfSpeech());
+ }
+ tokens.add("</" + leftType + ">");
+ for(BaseToken baseToken : JCasUtil.selectBetween(jCas, BaseToken.class, left, right)) {
+ tokens.add(baseToken.getPartOfSpeech());
+ }
+ tokens.add("<" + rightType + ">");
+ for(BaseToken baseToken : JCasUtil.selectCovered(jCas, BaseToken.class, right)) {
+ tokens.add(baseToken.getPartOfSpeech());
+ }
+ tokens.add("</" + rightType + ">");
+ for(BaseToken baseToken : JCasUtil.selectFollowing(jCas, BaseToken.class, right, contextSize)) {
+ if(baseToken.getEnd() <= sent.getEnd()) {
+ tokens.add(baseToken.getPartOfSpeech());
+ }
+ }
+
return String.join(" ", tokens).replaceAll("[\r\n]", " ");
}
}