FSIterator sentences = jCas.getAnnotationIndex(Sentence.type)
.iterator();
while (sentences.hasNext()) {
Sentence sentence = (Sentence) sentences.next();
tokens.clear();
words.clear();
FSIterator tokenIterator = baseTokenIndex.subiterator(sentence);
while (tokenIterator.hasNext()) {
BaseToken token = (BaseToken) tokenIterator.next();
tokens.add(token);
words.add(token.getCoveredText());
}
List<?> wordTagList = null; // List of BaseToken's
if (words.size() > 0) {
wordTagList = tagger.tag(words);
}
// else {
// logger.info("sentence has no words = '" +
// sentence.getCoveredText()
// + "' at (" +sentence.getBegin() + "," + sentence.getEnd() + ")");
// }
try {
for (int i = 0; i < tokens.size(); i++) {
BaseToken token = (BaseToken) tokens.get(i);
String posTag = (String) wordTagList.get(i);
token.setPartOfSpeech(posTag);
}
} catch (IndexOutOfBoundsException e) {
throw new AnalysisEngineProcessException(
"sentence being tagged is: '"
+ sentence.getCoveredText() + "'", null, e);
}
}
}