              label = 0
          elif '-' in name:
              move_str, label_str = name.split('-', 1)
              label = self.strings[label_str]
          else:
              move_str = name
              label = 0
          move = MOVE_NAMES.index(move_str)
 
</s> remove                         for move_str in ('B', 'I', 'L', 'U'):
                            actions[moves.index(move_str)][label] = True
 </s> add                         if label not in seen_entities:
                            seen_entities.add(label)
                            for move_str in ('B', 'I', 'L', 'U'):
                                actions[moves.index(move_str)].append(label) </s> remove             for label_str in sorted(label_strs):
 </s> add             for label_str in label_strs: </s> remove                             actions[RIGHT][label] = True
 </s> add                             if (RIGHT, label) not in seen_actions:
                                actions[RIGHT].append(label) </s> remove         # Super hacky :(
 </s> add 
            # Hacky way to denote 'not this entity'
            if label_str.startswith('!'):
                label_str = label_str[1:]
                move_str = 'x'
              label = 0
          elif '-' in name:
              move_str, label_str = name.split('-', 1)
            # Hacky way to denote 'not this entity'
            if label_str.startswith('!'):
                label_str = label_str[1:]
                move_str = 'x'
              label = self.strings[label_str]
          else:
              move_str = name
              label = 0
          move = MOVE_NAMES.index(move_str)
keep keep add keep keep keep keep keep
 WIP on add_label bug during NER training

Currently when a new label is introduced to NER during training,
it causes the labels to be read in in an unexpected order. This
invalidates the model. 
spacy/syntax/ner.pyx