code: def generate_by_transformations(self, dataset, **kwargs):
      self.prepare(dataset)
  
      for trans_obj in self._get_flint_objs(
          self.transform_methods,
          TASK_TRANSFORMATION_PATH,
          ALLOWED_TRANSFORMATIONS,
      ):
          # initialize current index of dataset
          dataset.init_iter()
  
          logger.info("******Start {0}!******".format(trans_obj))
          generated_samples = dataset.new_dataset()
          original_samples = dataset.new_dataset()
  
          for sample in tqdm(dataset):
              # default return list of samples
              trans_rst = trans_obj.transform(
                  sample,
                  n=self.max_trans,
                  field=self.fields,
                  nearby_word_dict=self.nearby_word_dict,
                  pos_tag_dict=self.pos_tag_dict,
              )
              if trans_rst:
                  generated_samples.extend(trans_rst)
                  original_samples.append(sample)
  
          yield original_samples, generated_samples, trans_obj.__repr__()
          logger.info("******Finish {0}!******".format(trans_obj))
  
file_path: textflint/textflint/generation/generator/mrc_generator.py
imports: from .generator import Generator
  from tqdm import tqdm
  from ...common.utils.logger import logger
  from ...common.utils import load_supporting_file
  from ...common.settings import NEAR_DICT_PATH, POS_DICT_PATH
  from ...common.utils.install import download_if_needed
  from ...common.settings import TASK_TRANSFORMATION_PATH, ALLOWED_TRANSFORMATIONS, TASK_SUBPOPULATION_PATH, ALLOWED_SUBPOPULATIONS
label_desc: Use image node_id 2 for calling the MRCGenerator obj's underlying member method code with example usage: obj.generate_by_transformations(dataset) without return types