code: def _extract_noise_model_components(
      noise_eq: str,
  ) -> Tuple[str, dict]:
      noise_model_match = re.match(_NOISE_MODEL_PATTERN, noise_eq)
      if noise_model_match:
          noise_model_name = noise_model_match.group(1)
          args = noise_model_match.group(2)
          parsed_args = _parse_args(args)
          return noise_model_name, parsed_args
      else:
          raise Exception(
              "Unable to recognise the format or function specified"
          )
  
imports: import ast
  import logging
  import re
  from typing import Tuple
  import networkx
  import numpy
  import scipy.stats
  from dowhy.gcm import AdditiveNoiseModel, EmpiricalDistribution, ScipyDistribution, StructuralCausalModel
  from dowhy.gcm.causal_mechanisms import StochasticModel
  from dowhy.gcm.causal_models import PARENTS_DURING_FIT
  from dowhy.gcm.ml.prediction_model import PredictionModel
  from dowhy.gcm.util.general import shape_into_2d
  from dowhy.graph import get_ordered_predecessors
label_desc: Use image node_id 5 for calling a global function with example usage: _extract_noise_model_components(noise_eq) and returns: noise_model_name,  parsed_args