public String[] lemmatize(String[] words, String[] postags) {String[] lemmas = null;String[] maxEntLemmas = null;if (dictionaryLemmatizer != null) {lemmas = dictionaryLemmatizer.lemmatize(words, postags);for (int i = 0; i < lemmas.length; ++i) {if (lemmas[i].equals("O")) {   if (lemmatizerME != null) {  if (maxEntLemmas == null) {maxEntLemmas = lemmatizerME.lemmatize(words, postags);}if ("_".equals(maxEntLemmas[i])) {lemmas[i] = words[i];    } else {lemmas[i] = maxEntLemmas[i];}} else {                     lemmas[i] = words[i];      }}}} else {                           maxEntLemmas = lemmatizerME.lemmatize(words, postags);for (int i = 0 ; i < maxEntLemmas.length ; ++i) {if ("_".equals(maxEntLemmas[i])) {maxEntLemmas[i] = words[i];  }}lemmas = maxEntLemmas;}return lemmas;}

public virtual string[] Lemmatize(string[] words, string[] postags){string[] lemmas = null;string[] maxEntLemmas = null;if (dictionaryLemmatizer != null){lemmas = dictionaryLemmatizer.lemmatize(words, postags);for (int i = 0; i < lemmas.Length; ++i){if (lemmas[i].Equals("O")){   if (lemmatizerME != null){  if (maxEntLemmas == null){maxEntLemmas = lemmatizerME.lemmatize(words, postags);}if ("_".Equals(maxEntLemmas[i])){lemmas[i] = words[i];    }else{lemmas[i] = maxEntLemmas[i];}}else{                     lemmas[i] = words[i];      }}}}else{                           maxEntLemmas = lemmatizerME.lemmatize(words, postags);for (int i = 0; i < maxEntLemmas.Length; ++i){if ("_".Equals(maxEntLemmas[i])){maxEntLemmas[i] = words[i];  }}lemmas = maxEntLemmas;}return lemmas;}
