有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

javasimplenlg:我们如何指定数量?

我的问题是如何在名词短语中指定数量? 例如:

NPPhraseSpec np = nlgFactory.createNounPhrase("", "apple");

例如,如何生成“5个苹果”? 一个解决方案是放置一个预修改器,代码是:

    Lexicon lexicon = Lexicon.getDefaultLexicon();
    NLGFactory nlgFactory = new NLGFactory(lexicon);
    Realiser realiser = new Realiser();
    NPPhraseSpec np = nlgFactory.createNounPhrase("", "apple");
    np.addPreModifier("5");
    np.setPlural(true);
    System.out.println(realiser.realiseSentence(np));

但是,难道没有另一种解决方案可以处理数字并自动将名词复数吗


共 (1) 个答案

  1. # 1 楼答案

    恐怕没有内置的功能来实现这一点

    然而,如果您要将SimpleLg插入一个更大的管道,您可以通过在SimpleLg之前计算数量来实现自动化。例如,假设你通过计算NP的头(苹果、香蕉、梨等)的数字n得到“5”:如果n大于1,将NP的复数设为真;否则什么也不做,因为复数=false是默认值。您甚至可以将其增加到更高级的值,例如:如果n等于0,则添加“no”作为说明符