Log in Help
Print
HomewikiTrainingCourseAug2010track2-files 〉 CorpusStats.java
 
package module7;

import gate.*;
import gate.creole.*;
import gate.creole.metadata.CreoleResource;

@CreoleResource(name = "Corpus statistics")
public class CorpusStats extends AbstractLanguageAnalyser implements ControllerAwarePR {

  private int totalTokens;

  public void execute() throws ExecutionException {
    int tokens = document.getAnnotations().get("Token").size(); 
    document.getFeatures().put("token_count", tokens);
    totalTokens += tokens;
  }
    
  public void controllerExecutionStarted(Controller c) {
    System.out.println("Executing " + this.getName() + " in controller " +
        c.getName());
    totalTokens = 0;
  }

  public void controllerExecutionFinished(Controller c) {
    if(c instanceof CorpusController) {
      FeatureMap corpusFeatures = ((CorpusController)c).getCorpus().getFeatures();
      corpusFeatures.put("token_count", totalTokens);
    }
  }

  public void controllerExecutionAborted(Controller c, Throwable t) {
    System.out.println("Controller execution aborted with a " + t);
  }

}