| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. 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 shallow np-chunking based parses. |
| */ |
| public class ShallowParseMentionFinder extends AbstractMentionFinder { |
| |
| private static ShallowParseMentionFinder instance; |
| |
| private ShallowParseMentionFinder(HeadFinder hf) { |
| headFinder = hf; |
| collectPrenominalNamedEntities = true; |
| collectCoordinatedNounPhrases = true; |
| } |
| |
| /** |
| * Retrieves the one and only existing instance. |
| * |
| * @param hf |
| * @return one and only existing instance |
| */ |
| public static ShallowParseMentionFinder getInstance(HeadFinder hf) { |
| if (instance == null) { |
| instance = new ShallowParseMentionFinder(hf); |
| } |
| else if (instance.headFinder != hf) { |
| instance = new ShallowParseMentionFinder(hf); |
| } |
| return instance; |
| } |
| |
| /* |
| protected final List getNounPhrases(Parse p) { |
| List nps = p.getNounPhrases(); |
| List basals = new ArrayList(); |
| for (int ni=0,ns=nps.size();ni<ns;ni++) { |
| Parse np = (Parse) nps.get(ni); |
| //System.err.println("getNounPhrases: np="+np); |
| if (isBasalNounPhrase(np)) { |
| //System.err.println("basal"); |
| basals.add(np); |
| } |
| else if (isPossessive(np)) { |
| //System.err.println("pos np"); |
| basals.add(np); |
| basals.addAll(getNounPhrases(np)); |
| } |
| else if (isOfPrepPhrase(np)) { |
| //System.err.println("of np"); |
| basals.add(np); |
| basals.addAll(getNounPhrases(np)); |
| } |
| else { |
| //System.err.println("big np"); |
| basals.addAll(getNounPhrases(np)); |
| } |
| } |
| return(basals); |
| } |
| */ |
| } |