package com.maalaang.omtwitter.uima.annotator; import org.apache.uima.UimaContext; import org.apache.uima.analysis_component.JCasAnnotator_ImplBase; import org.apache.uima.analysis_engine.AnalysisEngineProcessException; import org.apache.uima.cas.FSIterator; import org.apache.uima.jcas.JCas; import org.apache.uima.jcas.tcas.Annotation; import org.apache.uima.resource.ResourceInitializationException; import org.apache.uima.util.Level; import org.apache.uima.util.Logger; import org.tartarus.snowball.ext.englishStemmer; import com.maalaang.omtwitter.uima.type.TokenAnnotation; public class SnowballStemAnnotator extends JCasAnnotator_ImplBase { private Logger logger; private englishStemmer stemmer = null; @Override public void process(JCas aJCas) throws AnalysisEngineProcessException { FSIterator<Annotation> tokenIterator = aJCas.getAnnotationIndex(TokenAnnotation.type).iterator(); while (tokenIterator.hasNext()) { TokenAnnotation tokenAnn = (TokenAnnotation)tokenIterator.next(); stemmer.setCurrent(tokenAnn.getCoveredText()); stemmer.stem(); tokenAnn.setStem(stemmer.getCurrent()); } } @Override public void initialize(UimaContext aContext) throws ResourceInitializationException { super.initialize(aContext); this.logger = aContext.getLogger(); this.stemmer = new englishStemmer(); this.logger.log(Level.INFO, "snowball stem annotator initialized"); } }