## edu.stanford.nlp.trees
Class ModCollinsHeadFinder

    java.lang.Object
      edu.stanford.nlp.trees.AbstractCollinsHeadFinder
          edu.stanford.nlp.trees.CollinsHeadFinder
              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)
10. Added a sensible-ish rule for X.
11. Added NML head rules, which are the same as for NP.
12. NP head rule: NP and NML are treated almost identically (NP has precedence)
13. NAC head rule: NML comes after NN/NNS but after NNP/NNPS
14. PP head rule: JJ added
15. Added JJP (appearing in David Vadas's annotation), which seems to play the same role as ADJP.

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, Michel Galley
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, 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