new Object [] { contentPart.getKey(),ci.getUri().getUnicodeString(),
language, StringUtils.abbreviate(text, 100) });
//first get the models
Tokenizer tokenizer = initTokenizer(language);
SentenceDetector sentenceDetector = initSentence(language);
POSTaggerME posTagger;
if(sentenceDetector != null){ //sentence detection is requirement
posTagger = initTagger(language);
} else {
posTagger = null;
}
ChunkerME chunker;
if(posTagger != null && useChunker ){ //pos tags requirement
chunker = initChunker(language);
} else {
chunker = null;
}
Map<String,Suggestion> suggestionCache = new TreeMap<String,Suggestion>();
if(sentenceDetector != null){
//add dots for multiple line breaks
text = text.replaceAll("\\n\\n", ".\n");
Span[] sentenceSpans = sentenceDetector.sentPosDetect(text);
for (int i = 0; i < sentenceSpans.length; i++) {
String sentence = sentenceSpans[i].getCoveredText(text).toString();
Span[] tokenSpans = tokenizer.tokenizePos(sentence);
String[] tokens = getTokensForSpans(sentence, tokenSpans);
String[] pos;