      cdef weight_t cost(StateClass s, const GoldParseC* gold, int label) nogil:
          cdef int g_act = gold.ner[s.B(0)].move
          cdef int g_tag = gold.ner[s.B(0)].label
  
          if g_act == MISSING:
              return 0
          elif g_act == BEGIN:
              # O, Gold B --> False
              return 1
          elif g_act == IN:
 
</s> remove                         MISSING: {'': True},
                        BEGIN: {},
                        IN: {},
                        LAST: {},
                        UNIT: {},
                        OUT: {'': True}
 </s> add                         MISSING: [''],
                        BEGIN: [],
                        IN: [],
                        LAST: [],
                        UNIT: [],
                        OUT: [''] </s> remove         # Super hacky :(
 </s> add 
        if g_act == MISSING or g_act == ISNT:
      cdef weight_t cost(StateClass s, const GoldParseC* gold, int label) nogil:
          cdef int g_act = gold.ner[s.B(0)].move
          cdef int g_tag = gold.ner[s.B(0)].label
  
        if g_act == MISSING or g_act == ISNT:
              return 0
          elif g_act == BEGIN:
              # O, Gold B --> False
              return 1
          elif g_act == IN:
keep keep keep keep 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