Skip to content

Sección VIII – Adición de adxectivos mediante

andrea.cascallar edited this page Jul 11, 2018 · 1 revision

Sabemos que María é boa correndo, polo tanto podemos asignarlle un adxectivo adecuado como "rápida". Isto pode ser xerado en SimpleNLG-gl usando o concepto modificador.

Sen embargo, para considerala «rápida», non poderemos referirnos a ela como «suxeito» da oración. En lugar de eso, debemos definir o seu nome como unha frase nominal. Desta forma, podemos atribuir o adxectivo «rápida» a María utilizando a función de modificador.

    NPPhraseSpec subject = nlgFactory.createNounPhrase("a", "corredora");
	subject.setFeature(LexicalFeature.GENDER, Gender.FEMININE);

Además, imos definir tamén o complemento directo como unha frase nominal e o verbo como unha frase verbal. Isto permitiranos facer outras cousas máis adiante, como engadir un modificador a cada un.

    NPPhraseSpec object = nlgFactory.createNounPhrase("un mono");
    VPPhraseSpec verb = nlgFactory.createVerbPhrase("perseguir");

Agora, podemos aplicar o adxectivo 'rápido' á corredora escribindo:

    subject.addModifier("rápida");

A continuación, establecemos o suxeito, o complemento directo e o verbo no SPhraseSpec p que definimos anteriormente:

    p.setSubject(subject);
    p.setObject(object);
    p.setVerb(verb);

    String output3 = realiser.realiseSentence(p); // Realiser created earlier.
    System.out.println(output3);

A saída será:

    A rápida corredora persegue un mono.

Da mesmo xeito, podemos deixar que o mundo sepa que María está perseguindo ao mono rapidamente. O adverbio 'rapidamente' tamén pode ser engadido usando a función addModifier, pero sendo esta vez modificado o verbo:

    verb.addModifier("rapidamente"); 

A saída será:

    A rápida corredora persegue un mono rapidamente.  

→ Para ver máis exemplos de frases nominais, ver testsrc/NounPhraseTest.java.

→ Para ver máis exemplos sobre modificadores, ver testsrc/AdjectivePhraseTest.java.