code: public AnalyzedSentence getAnalyzedSentence(String sentence) throws IOException {
      SimpleInputSentence cacheKey = new SimpleInputSentence(sentence, language);
      AnalyzedSentence cachedSentence = cache != null ? cache.getIfPresent(cacheKey) : null;
      if (cachedSentence != null) {
        return cachedSentence;
      } else {
        AnalyzedSentence raw = getRawAnalyzedSentence(sentence);
        AnalyzedSentence disambig = language.getDisambiguator().disambiguate(raw);
        AnalyzedSentence analyzedSentence = new AnalyzedSentence(disambig.getTokens(), raw.getTokens());
        if (language.getPostDisambiguationChunker() != null) {
          language.getPostDisambiguationChunker().addChunkTags(Arrays.asList(analyzedSentence.getTokens()));
        }
        if (cache != null) {
          cache.put(cacheKey, analyzedSentence);
        }
        return analyzedSentence;
      }
    }
docs: Tokenizes the given {@code sentence} into words and analyzes it,
  and then disambiguates POS tags.
  @param sentence sentence to be analyzed