          self.tag_ids = {}
          for i, tag_str in enumerate(self.tag_names):
              self.tag_ids[tag_str] = i
  
      @classmethod
      def from_dir(cls, data_dir):
          tag_map = json.load(open(path.join(data_dir, 'tag_map.json')))
          return cls(tag_map, {}, None)
  
      cdef int assign_tag(self, TokenC* token, int tag) except -1:
          props = self.tag_map[self.tag_names[tag]]
          token.pos = UNIV_POS_NAMES[props['pos'].upper()]
          token.tag = tag
          #token.inflection = # TODO
  
 
</s> remove         token.tag = tag
 </s> add         token.tag = strings[self.tag_names[tag]]
        lemma = self.lemmatizer(strings[token.lex.orth], token.pos)
        token.lemma = strings[lemma] </s> remove     cdef int assign_tag(self, TokenC* token, int tag) except -1
 </s> add     cdef int assign_tag(self, StringStore strings, TokenC* token, int tag) except -1 </s> remove 
            self.vocab.morphology.assign_tag(&tokens.data[i], guess)
 </s> add             self.vocab.morphology.assign_tag(self.vocab.strings, &tokens.data[i], guess)
    cdef int assign_tag(self, StringStore strings, TokenC* token, int tag) except -1:
        # TODO Caching
          self.tag_ids = {}
          for i, tag_str in enumerate(self.tag_names):
              self.tag_ids[tag_str] = i
  
    cdef int assign_tag(self, StringStore strings, TokenC* token, int tag) except -1:
        # TODO Caching
    cdef int assign_tag(self, StringStore strings, TokenC* token, int tag) except -1:
        # TODO Caching
    cdef int assign_tag(self, StringStore strings, TokenC* token, int tag) except -1:
        # TODO Caching
    cdef int assign_tag(self, StringStore strings, TokenC* token, int tag) except -1:
        # TODO Caching
    cdef int assign_tag(self, StringStore strings, TokenC* token, int tag) except -1:
        # TODO Caching
    cdef int assign_tag(self, StringStore strings, TokenC* token, int tag) except -1:
        # TODO Caching
          props = self.tag_map[self.tag_names[tag]]
          token.pos = UNIV_POS_NAMES[props['pos'].upper()]
          token.tag = tag
          #token.inflection = # TODO
  
keep keep keep keep replace replace replace replace replace replace keep keep keep keep keep
 * Tagger training now working. Still need to test load/save of model. Morphology still broken. 
spacy/morphology.pyx