          cdef const weight_t* scores
          for i in range(tokens.length):
              if tokens.data[i].pos == 0:
                  guess = self.predict(i, tokens.data)
                  self.vocab.morphology.assign_tag(&tokens.data[i], guess)
          tokens.is_tagged = True
          tokens._py_tokens = [None] * tokens.length
  
      def tag_from_strings(self, Doc tokens, object tag_strs):
          cdef int i
 
</s> remove             self.vocab.morphology.assign_tag(&tokens.data[i], tag_strs[i])
 </s> add             self.vocab.morphology.assign_tag(self.vocab.strings, &tokens.data[i], tag_strs[i]) </s> remove         golds = [self.tag_names.index(g) if g is not None else -1
                 for g in gold_tag_strs]
 </s> add         golds = [self.tag_names.index(g) if g is not None else -1 for g in gold_tag_strs] </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) </s> remove     cdef readonly int n_tags

 </s> add 
                self.vocab.morphology.assign_tag(self.vocab.strings, &tokens.data[i], guess)
          cdef const weight_t* scores
          for i in range(tokens.length):
              if tokens.data[i].pos == 0:
                  guess = self.predict(i, tokens.data)
                self.vocab.morphology.assign_tag(self.vocab.strings, &tokens.data[i], guess)
          tokens.is_tagged = True
          tokens._py_tokens = [None] * tokens.length
  
      def tag_from_strings(self, Doc tokens, object tag_strs):
          cdef int i
keep keep keep keep replace keep keep keep keep keep
 * Tagger training now working. Still need to test load/save of model. Morphology still broken. 
spacy/tagger.pyx