                      if ner_tag != 'O' and ner_tag != '-':
                          if ner_tag.count('-') != 1:
                              raise ValueError(ner_tag)
                          _, label = ner_tag.split('-')
                          for move_str in ('B', 'I', 'L', 'U'):
                              actions[moves.index(move_str)][label] = True
          return actions
  
      property action_types:
          def __get__(self):
              return (BEGIN, IN, LAST, UNIT, OUT)
 
</s> remove                 actions[action][entity_type] = True
 </s> add                 actions[action].append(entity_type) </s> remove                             actions[LEFT][label] = True
 </s> add                             if (LEFT, label) not in seen_actions:
                                actions[LEFT].append(label) </s> remove                             actions[RIGHT][label] = True
 </s> add                             if (RIGHT, label) not in seen_actions:
                                actions[RIGHT].append(label) </s> remove                         MISSING: {'': True},
                        BEGIN: {},
                        IN: {},
                        LAST: {},
                        UNIT: {},
                        OUT: {'': True}
 </s> add                         MISSING: [''],
                        BEGIN: [],
                        IN: [],
                        LAST: [],
                        UNIT: [],
                        OUT: ['']
                        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)
                      if ner_tag != 'O' and ner_tag != '-':
                          if ner_tag.count('-') != 1:
                              raise ValueError(ner_tag)
                          _, label = ner_tag.split('-')
                        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)
                        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)
          return actions
  
      property action_types:
          def __get__(self):
              return (BEGIN, IN, LAST, UNIT, OUT)
keep keep keep keep replace replace 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