Can anyone give me few sentences on when the dependency parser fails and why they failed and what is the fix for it?
Consider the below sentence :
Sands had already begun to trickle into the bottom.
Tree: (ROOT (S (NP (NNP Sands)) (VP (VBD had) (ADVP (RB already)) (VP (VBN begun) (S (VP (TO to) (VP (VB trickle) (PP (IN into) (NP (DT the) (NN bottom)))))))) (. .)))
dependency parser: [nsubj(begun-4, Sands-1), nsubj:xsubj(trickle-6, Sands-1), aux(begun-4, had-2), advmod(begun-4, already-3), root(ROOT-0, begun-4), mark(trickle-6, to-5), xcomp(begun-4, trickle-6), case(bottom-9, into-7), det(bottom-9, the-8), nmod:into(trickle-6, bottom-9), punct(begun-4, .-10)]
There can be two reasons why dependency parser fails.
1)Here the word "Sands" is a Proper noun plural(NNPS) but the POS tagger output gives NNP which is proper noun, so there is an error in the tagger which in turn propagates to the dependency parser as it uses POS to generate dependencies". To handle this case you can train the POS tagger with the sentences it fails on.
2)The context of the sentence may be completely new to dependency parser, as most of the parsers like spacy , stanford , nltk etc are trained ML models so in order to handle this case you can train the dependency parser separately with new sentences.
you can refer this link to understand how to train POS tagger and Dependency parser: https://spacy.io/usage/training#section-tagger-parser
Hope it answers your questions.