code: def ee_post_process3(self, text, result):
      def get_span(text, template):
          match = re.findall(template, text)
          try:
              match = match[0]
          except IndexError:
              match = ""
          return match.strip()
  
      rst = self.replace_nomiss(result)
      matches = re.findall(EE_triple3, rst)
      new_record = []
  
      for m in matches:
          trigger = get_span(m, EE_triple3_trigger)
          event_type = get_span(m, EE_triple3_type)
          arg_matches = re.search(EE_triple3_arg, m)
          args = []
          if arg_matches:
              arg_strings = re.findall(
                  re.compile("(\{[^\{\}]*\}?)"), arg_matches.group(1)
              )
              for arg_string in arg_strings:
                  name = get_span(arg_string, EE_triple3_arg_argument)
                  role = get_span(arg_string, EE_triple3_arg_role)
                  if role == "" or name == "":
                      continue
                  if role == self.NAN or name == self.NAN:
                      continue
                  args.append((name, role))
          if trigger == "" or event_type == "":
              continue
          if trigger == self.NAN or event_type == self.NAN:
              continue
          new_record.append((event_type, trigger, tuple(args)))
      return new_record
  
file_path: DeepKE/example/llm/InstructKGC/kg2instruction/eval/extracter/ee_extractor.py
imports: import re
label_desc: Use image node_id 8 for calling the EEExtractor obj's underlying member method code with example usage: obj.ee_post_process3(text, result) and returns: new_record, match