edu.stanford.nlp.trees
Class SemanticHeadFinder

java.lang.Object
  extended by edu.stanford.nlp.trees.AbstractCollinsHeadFinder
      extended by edu.stanford.nlp.trees.CollinsHeadFinder
          extended by edu.stanford.nlp.trees.ModCollinsHeadFinder
              extended by edu.stanford.nlp.trees.SemanticHeadFinder
All Implemented Interfaces:
HeadFinder, Serializable

public class SemanticHeadFinder
extends ModCollinsHeadFinder

Implements a 'semantic head' variant of the the HeadFinder found in Michael Collins' 1999 thesis. This version chooses the semantic head verb rather than the verb form for cases with verbs. Should remember auxiliaries to differentiate past and passive, though.

Author:
John Rappaport, Marie-Catherine de Marneffe, Anna Rafferty
See Also:
Serialized Form

Field Summary
 
Fields inherited from class edu.stanford.nlp.trees.AbstractCollinsHeadFinder
defaultRule, nonTerminalInfo, tlp
 
Constructor Summary
SemanticHeadFinder()
           
SemanticHeadFinder(boolean cop)
           
SemanticHeadFinder(TreebankLanguagePack tlp, boolean cop)
           
 
Method Summary
protected  Tree determineNonTrivialHead(Tree t)
          Determine which daughter of the current parse tree is the head.
 boolean isVerbalAuxiliary(Tree t)
          Reinserted so samples.GetSubcats compiles ...
protected  int postOperationFix(int headIdx, Tree[] daughterTrees)
          Overwrite the postOperationFix method: a, b and c -> we want a to be the head
 
Methods inherited from class edu.stanford.nlp.trees.CollinsHeadFinder
main
 
Methods inherited from class edu.stanford.nlp.trees.AbstractCollinsHeadFinder
determineHead, findMarkedHead, traverseLocate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SemanticHeadFinder

public SemanticHeadFinder()

SemanticHeadFinder

public SemanticHeadFinder(boolean cop)

SemanticHeadFinder

public SemanticHeadFinder(TreebankLanguagePack tlp,
                          boolean cop)
Method Detail

postOperationFix

protected int postOperationFix(int headIdx,
                               Tree[] daughterTrees)
Overwrite the postOperationFix method: a, b and c -> we want a to be the head

Overrides:
postOperationFix in class CollinsHeadFinder
Parameters:
headIdx - the index of the proposed head
daughterTrees - the array of daughter trees
Returns:
the new headIndex

determineNonTrivialHead

protected Tree determineNonTrivialHead(Tree t)
Determine which daughter of the current parse tree is the head. It assumes that the daughters already have had their heads determined. Uses special rule for VPheads

Overrides:
determineNonTrivialHead in class AbstractCollinsHeadFinder
Parameters:
t - The parse tree to examine the daughters of. This is assumed to never be a leaf
Returns:
The parse tree that is the head

isVerbalAuxiliary

public boolean isVerbalAuxiliary(Tree t)
Reinserted so samples.GetSubcats compiles ... should rework if this is going to stay.

Parameters:
t - A tree to examine for being an auxiliary.
Returns:
Whether it is a verbal auxiliary (be, do, have, get)


Stanford NLP Group