code: def preprocess(self, data, vocab, args):
      processed = []
      for d in data:
          src = list(d[0])
          src = [constant.SOS] + src + [constant.EOS]
          if self.eval:
              tgt = src  # as a placeholder
          else:
              tgt = list(d[1])
          src = vocab.map(src)
          tgt_in = vocab.map([constant.SOS] + tgt)
          tgt_out = vocab.map(tgt + [constant.EOS])
          processed += [[src, tgt_in, tgt_out]]
      return processed
  
file_path: stanza/stanza/models/mwt/data.py
imports: import random
  import numpy
  import os
  from collections import Counter
  import logging
  import torch
  import stanza.models.common.seq2seq_constant
  from stanza.models.common.data import map_to_ids, get_long_tensor, get_float_tensor, sort_all
  from stanza.models.mwt.vocab import Vocab
  from stanza.models.common.doc import Document
label_desc: Use image node_id 3 for calling the DataLoader obj's underlying member method code with example usage: obj.preprocess(data, vocab, args) and returns: processed