edu.stanford.nlp.trees
Class ModCollinsHeadFinder

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

public class ModCollinsHeadFinder
extends CollinsHeadFinder

Implements a variant on the HeadFinder found in Michael Collins' 1999 thesis. This starts with Collins' head finder. As in CollinsHeadFinder.java, we've added a head rule for NX. Changes:

  1. The PRN rule used to just take the leftmost thing, we now have it choose the leftmost lexical category (not the common punctuation etc.)
  2. Delete IN as a possible head of S, and add FRAG (low priority)
  3. Place NN before QP in ADJP head rules (more to do for ADJP!)
  4. Place PDT before RB and after CD in QP rules. Also prefer CD to DT or RB. And DT to RB.
  5. Add DT, WDT as low priority choice for head of NP. Add PRP before PRN Add RBR as low priority choice of head for NP.
  6. Prefer NP or NX as head of NX, and otherwise default to rightmost not leftmost (NP-like headedness)
  7. VP: add JJ and NNP as low priority heads (many tagging errors) Place JJ above NP in priority, as it is to be preferred to NP object.
  8. PP: add PP as a possible head (rare conjunctions)
  9. Added rule for POSSP (can be introduced by parser)
These rules are suitable for the Penn Treebank.

A case that you apparently just can't handle well in this framework is (NP (NP ... NP)). If this is a conjunction, apposition or similar, then the leftmost NP is the head, but if the first is a measure phrase like (NP $ 38) (NP a share) then the second should probably be the head.

Author:
Christopher Manning
See Also:
Serialized Form

Field Summary
 
Fields inherited from class edu.stanford.nlp.trees.AbstractCollinsHeadFinder
defaultRule, nonTerminalInfo, tlp
 
Constructor Summary
ModCollinsHeadFinder()
           
ModCollinsHeadFinder(TreebankLanguagePack tlp)
           
 
Method Summary
 
Methods inherited from class edu.stanford.nlp.trees.CollinsHeadFinder
main, postOperationFix
 
Methods inherited from class edu.stanford.nlp.trees.AbstractCollinsHeadFinder
determineHead, determineNonTrivialHead, findMarkedHead, traverseLocate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ModCollinsHeadFinder

public ModCollinsHeadFinder()

ModCollinsHeadFinder

public ModCollinsHeadFinder(TreebankLanguagePack tlp)


Stanford NLP Group