All Downloads are FREE. Search and download functionalities are using the official Maven repository.

edu.stanford.nlp.trees.LabeledConstituent Maven / Gradle / Ivy

Go to download

Stanford CoreNLP provides a set of natural language analysis tools which can take raw English language text input and give the base forms of words, their parts of speech, whether they are names of companies, people, etc., normalize dates, times, and numeric quantities, mark up the structure of sentences in terms of phrases and word dependencies, and indicate which noun phrases refer to the same entities. It provides the foundational building blocks for higher level text understanding applications.

There is a newer version: 4.5.7
Show newest version
package edu.stanford.nlp.trees;

import edu.stanford.nlp.ling.Label;
import edu.stanford.nlp.ling.LabelFactory;
import edu.stanford.nlp.ling.StringLabel;

/**
 * A LabeledConstituent object represents a single bracketing in
 * a derivation, including start and end points and Label
 * information, but excluding probabilistic information.  It is used
 * to represent the basic information that is accumulated in exploring parses.
 *
 * @author Christopher Manning
 * @version 2002/06/01
 */
public class LabeledConstituent extends SimpleConstituent
        /* implements Label */ {

  /**
   * The Label.
   */
  private Label label;


  /**
   * Create an empty LabeledConstituent object.
   */
  public LabeledConstituent() {
    // implicitly super();
  }


  /**
   * Create a LabeledConstituent object with given
   * values.
   *
   * @param start Start node of edge
   * @param end   End node of edge
   */
  public LabeledConstituent(int start, int end) {
    super(start, end);
  }


  /**
   * Create a LabeledConstituent object with given values.
   *
   * @param start Start node of edge
   * @param end   End node of edge
   * @param label The label of the Constituent
   */
  public LabeledConstituent(int start, int end, Label label) {
    super(start, end);
    this.label = label;
  }


  /**
   * Create a LabeledConstituent object with given values.
   *
   * @param start       Start node of edge
   * @param end         End node of edge
   * @param stringValue The name of the Constituent
   */
  public LabeledConstituent(int start, int end, String stringValue) {
    super(start, end);
    this.label = new StringLabel(stringValue);
  }


  @Override
  public Label label() {
    return label;
  }

  @Override
  public void setLabel(Label label) {
    this.label = label;
  }

  @Override
  public void setFromString(String labelStr) {
    this.label = new StringLabel(labelStr);
  }

  /**
   * A LabeledConstituentLabelFactory object makes a
   * StringLabel LabeledScoredConstituent.
   */
  private static class LabeledConstituentLabelFactory implements LabelFactory {

    /**
     * Make a new LabeledConstituent.
     *
     * @param labelStr A string.
     * @return The created label
     */
    public Label newLabel(final String labelStr) {
      return new LabeledConstituent(0, 0, new StringLabel(labelStr));
    }


    /**
     * Make a new LabeledConstituent.
     *
     * @param labelStr A string.
     * @param options  The options are ignored.
     * @return The created label
     */
    public Label newLabel(final String labelStr, final int options) {
      return newLabel(labelStr);
    }


    /**
     * Make a new LabeledConstituent.
     *
     * @param labelStr A string.
     * @return The created label
     */
    public Label newLabelFromString(final String labelStr) {
      return newLabel(labelStr);
    }


    /**
     * Create a new LabeledConstituent.
     *
     * @param oldLabel A Label.
     * @return A new LabeledConstituent
     */
    public Label newLabel(Label oldLabel) {
      return new LabeledConstituent(0, 0, oldLabel);
    }

  }


  // extra class guarantees correct lazy loading (Bloch p.194)
  private static class LabelFactoryHolder {
    static final LabelFactory lf = new LabeledConstituentLabelFactory();
  }

  /**
   * Return a factory for this kind of label.
   * The factory returned is always the same one (a singleton)
   *
   * @return the label factory
   */
  @Override
  public LabelFactory labelFactory() {
    return LabelFactoryHolder.lf;
  }


  // extra class guarantees correct lazy loading (Bloch p.194)
  private static class ConstituentFactoryHolder {

    /**
     * A LabeledConstituentFactory acts as a factory for
     * creating objects of class LabeledConstituent.
     */
    private static class LabeledConstituentFactory implements ConstituentFactory {

      public Constituent newConstituent(int start, int end) {
        return new LabeledConstituent(start, end);
      }

      public Constituent newConstituent(int start, int end, Label label, double score) {
        return new LabeledConstituent(start, end, label);
      }

    }

    static final ConstituentFactory cf = new LabeledConstituentFactory();
  }


  /**
   * Return a factory for this kind of constituent.
   * The factory returned is always the same one (a singleton).
   *
   * @return The constituent factory
   */
  @Override
  public ConstituentFactory constituentFactory() {
    return ConstituentFactoryHolder.cf;
  }


  /**
   * Return a factory for this kind of constituent.
   * The factory returned is always the same one (a singleton).
   *
   * @return The constituent factory
   */
  public static ConstituentFactory factory() {
    return ConstituentFactoryHolder.cf;
  }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy