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

opennlp.tools.coref.mention.PTBMentionFinder Maven / Gradle / Ivy

There is a newer version: 2.5.3
Show newest version
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreemnets.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package opennlp.tools.coref.mention;

/**
 * Finds mentions from Penn Treebank style parses.
 */
public class PTBMentionFinder extends AbstractMentionFinder {

  private static PTBMentionFinder instance = null;

  /**
   * Creates a new mention finder with the specified head finder.
   * @param hf The head finder.
   */
  private PTBMentionFinder(HeadFinder hf) {
    collectPrenominalNamedEntities = false;
    collectCoordinatedNounPhrases = true;
    headFinder = hf;
  }

  /**
   * Retrives the one and only existing instance.
   *
   * @param hf
   * @return the one and only existing instance
   */
  public static PTBMentionFinder getInstance(HeadFinder hf) {
    if (instance == null) {
      instance = new PTBMentionFinder(hf);
    }
    else if (instance.headFinder != hf) {
      instance = new PTBMentionFinder(hf);
    }
    return instance;
  }




  /*
  private boolean isTraceNp(Parse np){
    List sc = np.getSyntacticChildren();
    return (sc.size() == 0);
  }

  protected List getNounPhrases(Parse p) {
    List nps = new ArrayList(p.getNounPhrases());
    for (int npi = 0; npi < nps.size(); npi++) {
      Parse np = (Parse) nps.get(npi);
      if (!isTraceNp(np)) {
        if (np.getSyntacticChildren().size()!=0) {
          List snps = np.getNounPhrases();
          for (int snpi=0,snpl=snps.size();snpi




© 2015 - 2025 Weber Informatics LLC | Privacy Policy