class_docstr: Abstract data loader.
class_docstr_tok: ["Abstract","data","loader","."]
code: def _parse_dialogue_act(self, act, domain):
      act = (
          act.replace("inform(", "")
          .replace("request(", "")
          .replace("multiple_choice(", "")
      )
      act = act[:-1]
  
      args = act.split(";")
      result = {}
      for arg in args:
          params = arg.split("=")
          key = params[0]
          if (
              key == "other"
          ):  # This is all stuff the E2E model should be able to pick up on its own.
              continue
          if (
              len(params) == 1
          ):  # MSR_E2E has this as a "what explicit information do we want" slot, but it's not super consistent
              continue
          result[key] = "=".join(params[1:])
      if len(result) > 0:
          result[tod.STANDARD_API_NAME_SLOT] = domain
      return result
  
imports: from parlai.core.params import ParlaiParser
  import copy
  import os
  import csv
  from collections import Counter
  from parlai.core.opt import Opt
  import parlai.core.tod.tod_core
  from parlai.utils.misc import warn_once
  from typing import Optional
  from parlai.utils.data import DatatypeHelper
  from parlai.utils.io import PathManager
  import parlai.tasks.msr_e2e.build
  import parlai.core.tod.tod_agents
label_desc: Use image node_id 4 for calling the MsrE2EParser obj's underlying member method code with example usage: obj._parse_dialogue_act(act, domain) and returns: result