oh wait, apparently with constituency parsing, you just sorta... take your best guess about what the head is. e.g. pattern: https://github.com/clips/pattern/blob/53245196139c6ef26dc9c34873dda8a16f236d23/pattern/text/tree.py#L394 even the latest edition of jurafsky's _Speech and Language Processing_ just says to use a rule-driven approach found in a paper from 1999 https://www.mitpressjournals.org/doi/abs/10.1162/089120103322753356
@aparrish holy shit that's the same Jurafsky whose book on food I love