Stack-Pointer Networks for Dependency Parsing
About
We introduce a novel architecture for dependency parsing: \emph{stack-pointer networks} (\textbf{\textsc{StackPtr}}). Combining pointer networks~\citep{vinyals2015pointer} with an internal stack, the proposed model first reads and encodes the whole sentence, then builds the dependency tree top-down (from root-to-leaf) in a depth-first fashion. The stack tracks the status of the depth-first search and the pointer networks select one child for the word at the top of the stack at each step. The \textsc{StackPtr} parser benefits from the information of the whole sentence and all previously derived subtree structures, and removes the left-to-right restriction in classical transition-based parsers. Yet, the number of steps for building any (including non-projective) parse tree is linear in the length of the sentence just as other transition-based parsers, yielding an efficient decoding algorithm with $O(n^2)$ time complexity. We evaluate our model on 29 treebanks spanning 20 languages and different dependency annotation schemas, and achieve state-of-the-art performance on 21 of them.
Related benchmarks
| Task | Dataset | Result | Rank | |
|---|---|---|---|---|
| Dependency Parsing | Chinese Treebank (CTB) (test) | UAS92.58 | 99 | |
| Dependency Parsing | Penn Treebank (PTB) (test) | LAS95.34 | 80 | |
| Dependency Parsing | English PTB Stanford Dependencies (test) | UAS95.87 | 76 | |
| Dependency Parsing | UD 2.2 (test) | bg93.04 | 31 | |
| Dependency Parsing | CoNLL German 2009 (test) | UAS94.77 | 25 | |
| Dependency Parsing | PTB | UAS95.87 | 24 | |
| Dependency Parsing | Dep. Parse (test) | UAS95.9 | 23 | |
| Dependency Parsing | CoNLL Spanish 2009 (test) | UAS90.87 | 14 | |
| Dependency Parsing | CoNLL English 2009 (test) | UAS93.25 | 13 | |
| Dependency Parsing | CoNLL Czech 2009 (test) | UAS92.83 | 12 |