code: def _build(self):
      if self.UNK_TOKEN not in self.word_list:
          self.word_list = [self.UNK_TOKEN] + self.word_list
  
      self.word2idx_dict = {
          w: n_w for n_w, w in enumerate(self.word_list)
      }
  
      # String (word) to integer (index) dict mapping
      self.stoi = self.word2idx_dict
      # Integer to string (word) reverse mapping
      self.itos = self.word_list
      self.num_vocab = len(self.word_list)
  
      self.UNK_INDEX = (
          self.word2idx_dict[self.UNK_TOKEN]
          if self.UNK_TOKEN in self.word2idx_dict
          else None
      )
  
      self.PAD_INDEX = (
          self.word2idx_dict[self.PAD_TOKEN]
          if self.PAD_TOKEN in self.word2idx_dict
          else None
      )
  
imports: import os
  import re
  from collections import Counter
  from itertools import chain
  import torch
  from mmf.common.registry import registry
  from mmf.utils.file_io import PathManager
  from mmf.utils.general import get_absolute_path
label_desc: Use image node_id 2 for calling the VocabDict obj's underlying member method code with example usage: obj._build() without return types