下面的 SimpleNLG 代码分别使用“monkeys”、“eat”、“bananas”指定主语、动词和宾语,产生句子“monkey eatsbananas”。因此,您看到它将复数名词转换为单数名词(并确保动词相应地一致)。有没有办法确保 SimpleNLG 检测到它们是复数并保持原样?我已经看到文档提到某些 Lexicon 文件可能会这样做,但我尝试了 NIH Lexicon 并没有帮助。SimpleNLG 根本不支持这一点吗?或者有没有办法使用 SimpleNLG 或其他方式来做到这一点?
Lexicon = new Lexicon.getDefaultLexicon()
nlgFactory = new NLGFactory(lexicon);
Realiser realiser = new Realiser(lexicon);
NPPhraseSpec subject = nlgFactory.createNounPhrase("monkeys");
VPPhraseSpec verb = nlgFactory.createVerbPhrase("eat");
NPPhraseSpec object = nlgFactory.createNounPhrase("bananas");
SPhraseSpec clause = nlgFactory.createClause();
clause.setSubject(subject);
clause.setVerbPhrase(verb);
clause.setObject(object);
System.out.print(realiser.realiseSentence(clause));