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/08/01 20:17:37 UTC
svn commit: r1754794 -
/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/DtrRelPrinter.java
Author: dligach
Date: Mon Aug 1 20:17:36 2016
New Revision: 1754794
URL: http://svn.apache.org/viewvc?rev=1754794&view=rev
Log:
added a method to print pos sequences
Modified:
ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/DtrRelPrinter.java
Modified: ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/DtrRelPrinter.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/DtrRelPrinter.java?rev=1754794&r1=1754793&r2=1754794&view=diff
==============================================================================
--- ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/DtrRelPrinter.java (original)
+++ ctakes/trunk/ctakes-temporal/src/main/java/org/apache/ctakes/temporal/nn/DtrRelPrinter.java Mon Aug 1 20:17:36 2016
@@ -43,6 +43,7 @@ import org.apache.uima.fit.factory.Analy
import org.apache.uima.fit.pipeline.SimplePipeline;
import org.apache.uima.fit.util.JCasUtil;
import org.apache.uima.jcas.JCas;
+import org.apache.uima.jcas.tcas.Annotation;
import com.lexicalscope.jewel.cli.CliFactory;
import com.lexicalscope.jewel.cli.Option;
@@ -147,7 +148,7 @@ public class DtrRelPrinter {
for(EventMention event : JCasUtil.selectCovered(goldView, EventMention.class, sentence)) {
if(event.getEvent() != null) {
String label = event.getEvent().getProperties().getDocTimeRel();
- String context = getEventContext(systemView, sentence, event, "e", 10);
+ String context = getEventPosContext(systemView, sentence, event, "e", 10);
String text = String.format("%s|%s", label, context);
docTimeRelExamplesInSentence.add(text.toLowerCase());
} else {
@@ -185,6 +186,32 @@ public class DtrRelPrinter {
}
}
+ return String.join(" ", tokens).replaceAll("[\r\n]", " ");
+ }
+
+ /**
+ * Print context 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 getEventPosContext(JCas jCas, Sentence sent, EventMention event, String marker, int contextSize) {
+
+ List<String> tokens = new ArrayList<>();
+ for(BaseToken baseToken : JCasUtil.selectPreceding(jCas, BaseToken.class, event, contextSize)) {
+ if(sent.getBegin() <= baseToken.getBegin()) {
+ tokens.add(baseToken.getPartOfSpeech());
+ }
+ }
+ tokens.add("<" + marker + ">");
+ for(BaseToken baseToken : JCasUtil.selectCovered(jCas, BaseToken.class, event)) {
+ tokens.add(baseToken.getPartOfSpeech());
+ }
+ tokens.add("</" + marker + ">");
+ for(BaseToken baseToken : JCasUtil.selectFollowing(jCas, BaseToken.class, event, contextSize)) {
+ if(baseToken.getEnd() <= sent.getEnd()) {
+ tokens.add(baseToken.getPartOfSpeech());
+ }
+ }
+
return String.join(" ", tokens).replaceAll("[\r\n]", " ");
}
}