code: @Override
    public String[] synthesize(AnalyzedToken token, String posTag)
        throws IOException {
      String aOrAn = aVsAnRule.suggestAorAn(token.getToken());
      if (ADD_DETERMINER.equals(posTag)) {
        return new String[] { aOrAn, "the " + token.getToken() };
      } else if (ADD_IND_DETERMINER.equals(posTag)) {
        return new String[] { aOrAn };
      }
      IStemmer synthesizer = createStemmer();
      List<WordData> wordData = synthesizer.lookup(token.getLemma() + "|" + posTag);
      List<String> wordForms = new ArrayList<>();
      for (WordData wd : wordData) {
        wordForms.add(wd.getStem().toString());
      }
      return wordForms.toArray(new String[wordForms.size()]);
    }
docs: Get a form of a given AnalyzedToken, where the form is defined by a
  part-of-speech tag.
  
  @param token AnalyzedToken to be inflected.
  @param posTag A desired part-of-speech tag.
  @return String value - inflected word.