code: def __init__(
      self,
      actions_vocab,
      channels: List[Channel],
      text_column_name: str = Config.text_column_name,
      tokenizer: Tokenizer = None,
  ) -> None:
      super().__init__(channels)
      self.actions_vocab = actions_vocab
      self.text_column_name = text_column_name
      self.tokenizer = tokenizer or Tokenizer()
      self.pred_target_trees = None
  
imports: from typing import Dict, List, Set, Union
  from pytext.common.constants import BatchContext, DatasetFieldName, Stage
  from pytext.data import CommonMetadata
  from pytext.data.data_structures.annotation import Intent, REDUCE, SHIFT, Slot, Token, Tree, TreeBuilder
  from pytext.data.tensorizers import Tensorizer
  from pytext.data.tokenizers import Tokenizer
  from pytext.metrics.intent_slot_metrics import compute_all_metrics, FramePredictionPair, Node, Span
  from .channel import Channel, ConsoleChannel, FileChannel
  from .metric_reporter import MetricReporter
label_desc: Use image node_id 1 to create a new CompositionalMetricReporter object from inherited base classes: MetricReporter with example: obj = CompositionalMetricReporter(actions_vocab, channels, text_column_name, tokenizer)