  
  cdef bint arc_is_gold(const GoldParseC* gold, int head, int child) nogil:
      if gold.labels[child] == -1:
          return True
      elif _is_gold_root(gold, head) and _is_gold_root(gold, child):
          return True
      elif gold.heads[child] == head:
          return True
      else:
          return False
 
</s> remove         cdef int root_label = self.strings['ROOT']
 </s> add         cdef int root_label = self.strings['root'] </s> remove         # Label Shift moves with the best Right-Arc label, for non-monotonic
        # actions
        if best.move == SHIFT:
            score = MIN_SCORE
            for i in range(self.n_moves):
                if self.c[i].move == RIGHT and scores[i] > score:
                    best.label = self.c[i].label
                    score = scores[i]
 </s> add 
    elif USE_ROOT_ARC_SEGMENT and _is_gold_root(gold, head) and _is_gold_root(gold, child):
  
  cdef bint arc_is_gold(const GoldParseC* gold, int head, int child) nogil:
      if gold.labels[child] == -1:
          return True
    elif USE_ROOT_ARC_SEGMENT and _is_gold_root(gold, head) and _is_gold_root(gold, child):
          return True
      elif gold.heads[child] == head:
          return True
      else:
          return False
keep keep keep keep replace keep keep keep keep keep
 * Add flag to toggle handling of multi-root inputs without the Break transition. Clear up now unused best_valid stuff. 
spacy/syntax/arc_eager.pyx