  
  cdef class ArcEager(TransitionSystem):
      @classmethod
      def get_labels(cls, gold_parses):
          move_labels = {SHIFT: {'': True}, REDUCE: {'': True}, RIGHT: {},
                         LEFT: {'ROOT': True}, BREAK: {'ROOT': True}}
          for raw_text, sents in gold_parses:
              for (ids, words, tags, heads, labels, iob), ctnts in sents:
                  for child, head, label in zip(ids, heads, labels):
                      if label != 'ROOT':
                          if head < child:
 
</s> remove                     if label != 'ROOT':
 </s> add                     if label != 'root': </s> remove             #print stcls.print_state(words)
 </s> add  </s> remove         # When we break, we can't reach any arcs between stack and buffer
        # So cost is number of deps between S0...Sn and B0...Nn
        cdef int cost = 0
        cdef int i, j, B_i, S_i
        for i in range(s.buffer_length()):
            B_i = s.B(i)
            for j in range(s.stack_depth()):
                S_i = s.S(j)
                cost += gold.heads[B_i] == S_i
                cost += gold.heads[S_i] == B_i
        return cost
 </s> add         # Check for sentence boundary --- if it's here, we can't have any deps
        # between stack and buffer, so rest of action is irrelevant.
        s0_root = _get_root(s.S(0), gold)
        b0_root = _get_root(s.B(0), gold)
        if s0_root == -1 or b0_root == -1 or s0_root != b0_root:
            return 0
        else:
            return 1
        move_labels = {SHIFT: {'': True}, REDUCE: {'': True}, RIGHT: {'root': True},
                       LEFT: {'root': True}, BREAK: {'root': True}}
  
  cdef class ArcEager(TransitionSystem):
      @classmethod
      def get_labels(cls, gold_parses):
        move_labels = {SHIFT: {'': True}, REDUCE: {'': True}, RIGHT: {'root': True},
                       LEFT: {'root': True}, BREAK: {'root': True}}
        move_labels = {SHIFT: {'': True}, REDUCE: {'': True}, RIGHT: {'root': True},
                       LEFT: {'root': True}, BREAK: {'root': True}}
          for raw_text, sents in gold_parses:
              for (ids, words, tags, heads, labels, iob), ctnts in sents:
                  for child, head, label in zip(ids, heads, labels):
                      if label != 'ROOT':
                          if head < child:
keep keep keep keep replace replace keep keep keep keep keep
 * Fixes to unshift/fast-forward strategy. Getting 91.55 greedy on NW dev, gold preproc 
spacy/syntax/arc_eager.pyx