Examples of NLGElement


Examples of simplenlg.framework.NLGElement

   * @param phrase
   *            the element to be realised
   * @return the realised element.
   */
  private NLGElement realisePhraseElement(PhraseElement phrase) {
    NLGElement realisedElement = null;

    if (phrase != null) {
      ElementCategory category = phrase.getCategory();

      if (category instanceof PhraseCategory) {
View Full Code Here

Examples of simplenlg.framework.NLGElement

   */
  public static boolean sameVPHead(NLGElement... sentences) {
    boolean equal = sentences.length >= 2;

    for (int i = 1; i < sentences.length && equal; i++) {
      NLGElement vp1 = sentences[i - 1]
          .getFeatureAsElement(InternalFeature.VERB_PHRASE);
      NLGElement vp2 = sentences[i]
          .getFeatureAsElement(InternalFeature.VERB_PHRASE);

      if (vp1 != null && vp2 != null) {
        NLGElement h1 = vp1.getFeatureAsElement(InternalFeature.HEAD);
        NLGElement h2 = vp2.getFeatureAsElement(InternalFeature.HEAD);
        equal = h1 != null && h2 != null ? h1.equals(h2) : false;

      } else {
        equal = false;
      }
View Full Code Here

Examples of simplenlg.framework.NLGElement

   */
  public static boolean sameVPArgs(NLGElement... sentences) {
    boolean equal = sentences.length >= 2;

    for (int i = 1; i < sentences.length && equal; i++) {
      NLGElement vp1 = sentences[i - 1]
          .getFeatureAsElement(InternalFeature.VERB_PHRASE);
      NLGElement vp2 = sentences[i]
          .getFeatureAsElement(InternalFeature.VERB_PHRASE);

      equal = vp1
          .getFeatureAsElementList(InternalFeature.COMPLEMENTS)
          .equals(
              vp2
                  .getFeatureAsElementList(InternalFeature.COMPLEMENTS));
    }

    return equal;
  }
View Full Code Here

Examples of simplenlg.framework.NLGElement

   */
  public static boolean sameVPModifiers(NLGElement... sentences) {
    boolean equal = sentences.length >= 2;

    for (int i = 1; i < sentences.length && equal; i++) {
      NLGElement vp1 = sentences[i - 1]
          .getFeatureAsElement(InternalFeature.VERB_PHRASE);
      NLGElement vp2 = sentences[i]
          .getFeatureAsElement(InternalFeature.VERB_PHRASE);

      equal = vp1
          .getFeatureAsElementList(InternalFeature.POSTMODIFIERS)
          .equals(
              vp2
                  .getFeatureAsElementList(InternalFeature.POSTMODIFIERS))
          && vp1
              .getFeatureAsElementList(
                  InternalFeature.PREMODIFIERS)
              .equals(
                  vp2
                      .getFeatureAsElementList(InternalFeature.PREMODIFIERS));
    }

    return equal;
  }
View Full Code Here

Examples of simplenlg.framework.NLGElement

    PhraseSet comps = new PhraseSet(DiscourseFunction.OBJECT);
    // new PhraseSet(DiscourseFunction.INDIRECT_OBJECT);
    PhraseSet pmods = new PhraseSet(DiscourseFunction.POST_MODIFIER);   
   
    for (NLGElement s : sentences) {
      NLGElement vp = s.getFeatureAsElement(InternalFeature.VERB_PHRASE);

      if (vp != null) {
        if (vp.hasFeature(InternalFeature.COMPLEMENTS)) {
          comps
              .addPhrases(vp
                  .getFeatureAsElementList(InternalFeature.COMPLEMENTS));
        }

        if (vp.hasFeature(InternalFeature.POSTMODIFIERS)) {
          pmods
              .addPhrases(vp
                  .getFeatureAsElementList(InternalFeature.POSTMODIFIERS));
        }
      }
     
      if (s.hasFeature(InternalFeature.POSTMODIFIERS)) {
View Full Code Here

Examples of simplenlg.framework.NLGElement

   * are clauses (that is, e1.getCategory() == e2.getCategory ==
   * {@link simplenlg.framework.PhraseCategory#CLAUSE}).
   */
  @Override
  public NLGElement apply(NLGElement previous, NLGElement next) {
    NLGElement aggregated = null;

    if (previous.getCategory() == PhraseCategory.CLAUSE
        && next.getCategory() == PhraseCategory.CLAUSE
        && PhraseChecker.nonePassive(previous, next)
        && !PhraseChecker.expletiveSubjects(previous, next)) {

      // case 1: identical sentences: remove the current
      if (PhraseChecker.sameSentences(previous, next)) {
        aggregated = previous;

        // case 2: subjects identical: coordinate VPs
      } else if (PhraseChecker.sameFrontMods(previous, next)
          && PhraseChecker.sameSubjects(previous, next)
          && PhraseChecker.samePostMods(previous, next)) {
        aggregated = this.factory.createClause();
        aggregated.setFeature(InternalFeature.SUBJECTS, previous
            .getFeatureAsElementList(InternalFeature.SUBJECTS));
        aggregated.setFeature(InternalFeature.FRONT_MODIFIERS, previous
            .getFeatureAsElement(InternalFeature.FRONT_MODIFIERS));
        aggregated.setFeature(Feature.CUE_PHRASE, previous
            .getFeatureAsElement(Feature.CUE_PHRASE));
        aggregated
            .setFeature(
                InternalFeature.POSTMODIFIERS,
                previous
                    .getFeatureAsElementList(InternalFeature.POSTMODIFIERS));
        NLGElement vp;

        // case 2.1: VPs have different arguments but same
        // head & mods
        if (!PhraseChecker.sameVPArgs(previous, next)
            && PhraseChecker.sameVPHead(previous, next)
            && PhraseChecker.sameVPModifiers(previous, next)) {

          NLGElement vp1 = previous
              .getFeatureAsElement(InternalFeature.VERB_PHRASE);
          vp = this.factory.createVerbPhrase();
          vp.setFeature(InternalFeature.HEAD, vp1
              .getFeatureAsElement(InternalFeature.HEAD));
          vp
              .setFeature(
                  InternalFeature.COMPLEMENTS,
                  vp1
                      .getFeatureAsElementList(InternalFeature.COMPLEMENTS));
          vp
              .setFeature(
                  InternalFeature.PREMODIFIERS,
                  vp1
                      .getFeatureAsElementList(InternalFeature.PREMODIFIERS));
          vp
              .setFeature(
                  InternalFeature.POSTMODIFIERS,
                  vp1
                      .getFeatureAsElementList(InternalFeature.POSTMODIFIERS));

          // case 2.2: just create a coordinate vP
        } else {
          NLGElement vp1 = previous
              .getFeatureAsElement(InternalFeature.VERB_PHRASE);
          NLGElement vp2 = next
              .getFeatureAsElement(InternalFeature.VERB_PHRASE);
          vp = this.factory.createCoordinatedPhrase(vp1, vp2);

          // case 2.3: expletive subjects
        }
View Full Code Here

Examples of simplenlg.framework.NLGElement

   */
  private static void realiseComplements(SyntaxProcessor parent,
      PhraseElement phrase, ListElement realisedElement) {

    boolean firstProcessed = false;
    NLGElement currentElement = null;

    for (NLGElement complement : phrase
        .getFeatureAsElementList(InternalFeature.COMPLEMENTS)) {
      currentElement = parent.realise(complement);
      if (currentElement != null) {
        currentElement.setFeature(InternalFeature.DISCOURSE_FUNCTION,
            DiscourseFunction.COMPLEMENT);
        if (firstProcessed) {
          realisedElement.addComponent(new InflectedWordElement(
              "and", LexicalCategory.CONJUNCTION)); //$NON-NLS-1$
        } else {
View Full Code Here

Examples of simplenlg.framework.NLGElement

   *            the current realisation of the noun phrase.
   */
  private static void realiseHead(SyntaxProcessor parent,
      PhraseElement phrase, ListElement realisedElement) {

    NLGElement head = phrase.getHead();
    if (head != null) {
      if (phrase.hasFeature(Feature.IS_COMPARATIVE)) {
        head.setFeature(Feature.IS_COMPARATIVE, phrase
            .getFeature(Feature.IS_COMPARATIVE));
      } else if (phrase.hasFeature(Feature.IS_SUPERLATIVE)) {
        head.setFeature(Feature.IS_SUPERLATIVE, phrase
            .getFeature(Feature.IS_SUPERLATIVE));
      }
      head = parent.realise(head);
      head.setFeature(InternalFeature.DISCOURSE_FUNCTION,
          DiscourseFunction.HEAD);
      realisedElement.addComponent(head);
    }
  }
View Full Code Here

Examples of simplenlg.framework.NLGElement

    // than taking the elements of the list and putting them in the realised
    // element, we now add the realised elements to a new list and put that
    // in the realised element list. This preserves constituency for
    // orthography and morphology processing later.
    ListElement realisedList = new ListElement();
    NLGElement currentElement = null;
    for (NLGElement eachElement : elementList) {
      currentElement = parent.realise(eachElement);

      if (currentElement != null) {
        currentElement.setFeature(InternalFeature.DISCOURSE_FUNCTION,
            function);
        // realisedElement.addComponent(currentElement);
        realisedList.addComponent(currentElement);
      }
    }
View Full Code Here

Examples of simplenlg.framework.NLGElement

    List<NLGElement> subjects = phrase
        .getFeatureAsElementList(InternalFeature.SUBJECTS);
    boolean expletive = false;

    if (subjects.size() == 1) {
      NLGElement subjectNP = subjects.get(0);

      if (subjectNP.isA(PhraseCategory.NOUN_PHRASE)) {
        expletive = subjectNP.getFeatureAsBoolean(
            LexicalFeature.EXPLETIVE_SUBJECT).booleanValue();
      } else if (subjectNP.isA(PhraseCategory.CANNED_TEXT)) {
        expletive = "there".equalsIgnoreCase(subjectNP.getRealisation()); //$NON-NLS-1$
      }
    }
    return expletive;
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.