      @classmethod
      def get_actions(cls, **kwargs):
          actions = kwargs.get('actions',
                      {
                          MISSING: {'': True},
                          BEGIN: {},
                          IN: {},
                          LAST: {},
                          UNIT: {},
                          OUT: {'': True}
                      })
          for entity_type in kwargs.get('entity_types', []):
              for action in (BEGIN, IN, LAST, UNIT):
                  actions[action][entity_type] = True
          moves = ('M', 'B', 'I', 'L', 'U')
 
</s> remove                         SHIFT: {'': True},
                        REDUCE: {'': True},
                        RIGHT: {},
                        LEFT: {},
                        BREAK: {'ROOT': True}})
 </s> add                         SHIFT: [''],
                        REDUCE: [''],
                        RIGHT: [],
                        LEFT: [],
                        BREAK: ['ROOT']})
        seen_actions = set() </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)
                        MISSING: [''],
                        BEGIN: [],
                        IN: [],
                        LAST: [],
                        UNIT: [],
                        OUT: ['']
      @classmethod
      def get_actions(cls, **kwargs):
          actions = kwargs.get('actions',
                      {
                        MISSING: [''],
                        BEGIN: [],
                        IN: [],
                        LAST: [],
                        UNIT: [],
                        OUT: ['']
                        MISSING: [''],
                        BEGIN: [],
                        IN: [],
                        LAST: [],
                        UNIT: [],
                        OUT: ['']
                        MISSING: [''],
                        BEGIN: [],
                        IN: [],
                        LAST: [],
                        UNIT: [],
                        OUT: ['']
                        MISSING: [''],
                        BEGIN: [],
                        IN: [],
                        LAST: [],
                        UNIT: [],
                        OUT: ['']
                        MISSING: [''],
                        BEGIN: [],
                        IN: [],
                        LAST: [],
                        UNIT: [],
                        OUT: ['']
                        MISSING: [''],
                        BEGIN: [],
                        IN: [],
                        LAST: [],
                        UNIT: [],
                        OUT: ['']
                      })
          for entity_type in kwargs.get('entity_types', []):
              for action in (BEGIN, IN, LAST, UNIT):
                  actions[action][entity_type] = True
          moves = ('M', 'B', 'I', 'L', 'U')
keep keep keep keep replace replace replace replace 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