      def __init__(self, Vocab vocab, model):
          self.vocab = vocab
          
          # TODO: Move this to tag map
          self.freqs = {TAG: defaultdict(int)}
          for tag in self.tag_names:
 
</s> remove         cdef int n_tags = self.vocab.morphology.n_tags + 1

        self.model = Model(n_tags, templates)
 </s> add         # TODO: Move this to tag map </s> remove     def __init__(self, Vocab vocab, templates):
        self.mem = Pool()
 </s> add     @classmethod
    def from_dir(cls, data_dir, vocab):
        if path.exists(path.join(data_dir, 'templates.json')):
            templates = json.loads(open(path.join(data_dir, 'templates.json')))
        else:
            templates = cls.default_templates()
        model = Model(vocab.morphology.n_tags, templates, data_dir)
        return cls(vocab, model)

    def __init__(self, Vocab vocab, model): </s> remove     def make_lemmatizer(self):
        return None
 </s> add     @classmethod
    def blank(cls, vocab, templates):
        model = Model(vocab.morphology.n_tags, templates, model_loc=None)
        return cls(vocab, model) </s> remove     @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:
 </s> add     cdef int assign_tag(self, StringStore strings, TokenC* token, int tag) except -1:
        # TODO Caching </s> remove     ADV
 </s> add 
        self.model = model
      def __init__(self, Vocab vocab, model):
          self.vocab = vocab
        self.model = model
          
          # TODO: Move this to tag map
          self.freqs = {TAG: defaultdict(int)}
          for tag in self.tag_names:
keep add keep keep keep keep
 * Tagger training now working. Still need to test load/save of model. Morphology still broken. 
spacy/tagger.pyx