code: def init_vocab(self, data):
      assert self.eval == False  # for eval vocab must exist
      charvocab = CharVocab(data, self.args["shorthand"])
      wordvocab = WordVocab(
          data, self.args["shorthand"], cutoff=7, lower=True
      )
      uposvocab = WordVocab(data, self.args["shorthand"], idx=1)
      xposvocab = xpos_vocab_factory(data, self.args["shorthand"])
      featsvocab = FeatureVocab(data, self.args["shorthand"], idx=3)
      lemmavocab = WordVocab(
          data, self.args["shorthand"], cutoff=7, idx=4, lower=True
      )
      deprelvocab = WordVocab(data, self.args["shorthand"], idx=6)
      vocab = MultiVocab(
          {
              "char": charvocab,
              "word": wordvocab,
              "upos": uposvocab,
              "xpos": xposvocab,
              "feats": featsvocab,
              "lemma": lemmavocab,
              "deprel": deprelvocab,
          }
      )
      return vocab
  
imports: import random
  import logging
  import torch
  from stanza.models.common.bert_embedding import filter_data
  from stanza.models.common.data import map_to_ids, get_long_tensor, get_float_tensor, sort_all
  from stanza.models.common.vocab import PAD_ID, VOCAB_PREFIX, ROOT_ID, CompositeVocab, CharVocab
  from stanza.models.pos.vocab import WordVocab, XPOSVocab, FeatureVocab, MultiVocab
  from stanza.models.pos.xpos_vocab_factory import xpos_vocab_factory
  from stanza.models.common.doc import *
label_desc: Use image node_id 2 for calling the DataLoader obj's underlying member method code with example usage: obj.init_vocab(data) and returns: vocab