Я пытаюсь сгенерировать все временные варианты данного слова с кодом ниже:
public TensePOJO tensify(String originalWord)
{
XMLLexicon lexicon = new XMLLexicon(); // "path\\to\\default-lexicon.xml"
WordElement word = new XMLLexicon().getWordFromVariant(originalWord);
InflectedWordElement pastInfl = new InflectedWordElement(word);
pastInfl.setFeature(Feature.TENSE, Tense.PAST);
InflectedWordElement futureInfl = new InflectedWordElement(word);
futureInfl.setFeature(Feature.TENSE, Tense.FUTURE);
InflectedWordElement presentInfl = new InflectedWordElement(word);
presentInfl.setFeature(Feature.TENSE, Tense.PRESENT);
List<InflectedWordElement> inflectedWordElementList = new ArrayList<InflectedWordElement>();
inflectedWordElementList.add(pastInfl);
inflectedWordElementList.add(futureInfl);
inflectedWordElementList.add(presentInfl);
Realiser realiser = new Realiser(lexicon);
ArrayList<String> tenseList = new ArrayList<String>();
for (InflectedWordElement inflectedWordElement : inflectedWordElementList) {
String tense = realiser.realise(inflectedWordElement).getRealisation();
if (!tenseList.contains(tense) && !originalWord.equalsIgnoreCase(tense)) {
tenseList.add(tense);
}
}
TensePOJO tensePOJO = new TensePOJO(originalWord, tenseList);
System.out.println("WORD: " + tensePOJO.getOriginalKeyword() + " TENSES: " + tensePOJO.getTenseList().toString());
return tensePOJO;
}
Когда я запускаю код выше (без каламбура) со словом: run
Я получаю пустой результат. Когда я запускаю приведенный выше код со словом: ran
, я получаю времена: run, runs
, но не running
. Единственное слово, которое производит желаемый результат: running
(которое производит вывод: [ran, run, runs]
)
Как я могу получить все времена слова? Поддерживает ли SimpleNLG эти требования?
Спасибо!