Функция, которая преобразует дерево зависимостей в последовательность переходов, называется оракулом.Это необходимый компонент статистического парсера.Описанные вами переходы (сдвиг, уменьшение-l, уменьшение-r) ¹ относятся к переходной системе стандартная дуга (не к системе arc-eager , то есть: сдвиг,левая дуга, правая дуга, уменьшение).
Псевдокод для стандартного дуги оракула:
stack = [] # stack[0] is the top of the stack
buffer = [w1, w2, ..., wn]
while len(buffer) > 0 or len(stack) != 1:
if stack[0] is the head of stack[1]:
apply left-arc
if stack[1] is the head of stack[0]:
if there is a token in the buffer whose head is stack[0]
# (i.e not all children of stack[1] have been attached to it)
apply shift
else:
apply right-arc
Эти слайды представляют два алгоритма синтаксического анализа иих оракулы.
ed Редукция-влево, редукция-вправо часто называется правой дугой и левой дугой в контексте разбора зависимости.