谁能给我几句话关于依赖解析器何时失败以及为什么失败以及解决方法是什么?
1 回答
考虑下面的句子:
沙子已经开始滴入底部。
树: (ROOT (S (NP (NNP Sands))) (VP (VBD 有) (ADVP (RB 已经)) (VP (VBN 开始) (S (VP (TO to) (VP (VB trile)) (PP (IN成)(NP(DT)(NN底部)))))))(..)))
依赖解析器:[nsubj(begun-4, Sands-1), nsubj:xsubj(trickle-6, Sands-1), aux(begun-4, had-2), advmod(begun-4, already-3), root(ROOT-0,begin-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)]
依赖解析器失败可能有两个原因。
1)这里的“Sands”这个词是一个专有名词复数(NNPS),但是 POS 标记器输出给出的 NNP 是专有名词,所以标记器中有一个错误,它反过来传播到依赖解析器,因为它使用 POS 生成依赖”。要处理这种情况,您可以使用它失败的句子来训练 POS 标注器。
2)句子的上下文对于依赖解析器来说可能是全新的,因为像 spacy 、 stanford 、 nltk 等大多数解析器都是经过训练的 ML 模型,因此为了处理这种情况,您可以使用新句子单独训练依赖解析器。
您可以参考此链接以了解如何训练 POS 标记器和依赖项解析器: https ://spacy.io/usage/training#section-tagger-parser
希望它能回答你的问题。