              lemmatizer = Lemmatizer.from_dir(data_dir)
          return cls(tag_map, {}, lemmatizer)
  
      def __init__(self, tag_map, fused_tokens, lemmatizer):
          self.tag_map = tag_map
          self.n_tags = len(tag_map)
          self.tag_names = tuple(sorted(tag_map.keys()))
          self.tag_ids = {}
 
</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     def __init__(self, wn_dict_dir, noun_id, verb_id, adj_id):
        self.noun_id = noun_id
        self.verb_id = verb_id
        self.adj_id = adj_id
        self.index = {}
        self.exc = {}
 </s> add     @classmethod
    def from_dir(cls, data_dir):
        index = {}
        exc = {} </s> remove             self.index[pos] = read_index(path.join(wn_dict_dir, 'index.%s' % pos))
            self.exc[pos] = read_exc(path.join(wn_dict_dir, '%s.exc' % pos))
 </s> add             index[pos] = read_index(path.join(data_dir, 'index.%s' % pos))
            exc[pos] = read_exc(path.join(data_dir, '%s.exc' % pos))
        rules = json.load(open(path.join(data_dir, 'lemma_rules.json')))
        return cls(index, exc, rules) </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):
        self.lemmatizer = lemmatizer
              lemmatizer = Lemmatizer.from_dir(data_dir)
          return cls(tag_map, {}, lemmatizer)
  
      def __init__(self, tag_map, fused_tokens, lemmatizer):
        self.lemmatizer = lemmatizer
          self.tag_map = tag_map
          self.n_tags = len(tag_map)
          self.tag_names = tuple(sorted(tag_map.keys()))
          self.tag_ids = {}
keep keep keep add keep keep keep keep
 * Tagger training now working. Still need to test load/save of model. Morphology still broken. 
spacy/morphology.pyx