Revision: 18461
          http://sourceforge.net/p/gate/code/18461
Author:   ian_roberts
Date:     2014-11-17 17:51:09 +0000 (Mon, 17 Nov 2014)
Log Message:
-----------
Fixed a bug where result importer was annotating each token separately rather 
than creating spanning annotations over runs of tokens, but kept the previously 
buggy behaviour as an option as it is actually quite useful in some situations.

Modified Paths:
--------------
    
gate/trunk/plugins/Crowd_Sourcing/src/gate/crowdsource/ne/EntityAnnotationResultsImporter.java

Modified: 
gate/trunk/plugins/Crowd_Sourcing/src/gate/crowdsource/ne/EntityAnnotationResultsImporter.java
===================================================================
--- 
gate/trunk/plugins/Crowd_Sourcing/src/gate/crowdsource/ne/EntityAnnotationResultsImporter.java
      2014-11-17 02:22:46 UTC (rev 18460)
+++ 
gate/trunk/plugins/Crowd_Sourcing/src/gate/crowdsource/ne/EntityAnnotationResultsImporter.java
      2014-11-17 17:51:09 UTC (rev 18461)
@@ -68,6 +68,8 @@
   
   private String tokenASName;
   
+  private Boolean annotateSpans;
+  
   protected CrowdFlowerClient crowdFlowerClient;
 
   public String getApiKey() {
@@ -155,6 +157,18 @@
     this.tokenASName = tokenASName;
   }
 
+  public Boolean getAnnotateSpans() {
+    return annotateSpans;
+  }
+
+  @RunTime
+  @CreoleParameter(comment = "If true (the default), create one annotation for 
" +
+               "each contiguous run of marked tokens, if false, annotate each 
token " +
+               "separately.", defaultValue = "true")
+  public void setAnnotateSpans(Boolean annotateSpans) {
+    this.annotateSpans = annotateSpans;
+  }
+
   @Override
   public Resource init() throws ResourceInstantiationException {
     if(apiKey == null || "".equals(apiKey)) {
@@ -224,11 +238,12 @@
                 int startTok = 0;
                 int curTok = startTok;
                 while(curTok < answer.size()) {
-                  // we've reached the end of a consecutive sequence if either
-                  // (a) we're on the last element of answer or
-                  // (b) the next element is not this+1
-                  if(curTok == answer.size() - 1
-                          || answer.get(curTok).getAsInt() != 
answer.get(curTok + 1).getAsInt()) {
+                  // we've reached the end of an annotation if either
+                  // (a) we want to annotate each token individually anyway or 
+                  // (b) we're on the last element of answer or
+                  // (c) the next element is not this+1
+                  if(!annotateSpans || curTok == answer.size() - 1
+                          || (answer.get(curTok).getAsInt() + 1) != 
answer.get(curTok + 1).getAsInt()) {
                     Long startOffset = 
snippetTokens.get(answer.get(startTok).getAsInt()).getStartNode().getOffset();
                     Long endOffset = 
snippetTokens.get(answer.get(curTok).getAsInt()).getEndNode().getOffset();
                     startTok = curTok + 1;

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
GATE-cvs mailing list
GATE-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gate-cvs

Reply via email to