class_docstr: Dataset for training a NLI model for zero shot intent recognition. Similar to GLUE/MNLI
  dataset, but allows the user to specify which columns in the data files contain the
  premise, hypothesis, and gold label.
docstr: Args:
      dataset_split: dataset split
      dialogues_processor: Data generator for dialogues
      tokenizer: tokenizer to split text into sub-word tokens
      cfg: config dict for dataset
          num_classes: number of classes in the data (should be either 2 or 3, corresponding to
          labels ['entailment', 'not_entailment'] or ["contradiction", "entailment", "neutral"])
docstr_tok: ["Args",":","dataset_split",":","dataset","split","dialogues_processor",":","Data","generator","for","dialogues","tokenizer",":","tokenizer","to","split","text","into","sub-word","tokens","cfg",":","config","dict","for","dataset","num_classes",":","number","of","classes","in","the","data","(","should","be","either","2","or","3",",","corresponding","to","labels","[","'entailment","'",",","'not_entailment","'","]","or","[","``","contradiction","''",",","``","entailment","''",",","``","neutral","''","]",")"]
code: def __init__(
      self,
      dataset_split: str,
      dialogues_processor: object,
      tokenizer,
      cfg,
  ):
      """
      Args:
          dataset_split: dataset split
          dialogues_processor: Data generator for dialogues
          tokenizer: tokenizer to split text into sub-word tokens
          cfg: config dict for dataset
              num_classes: number of classes in the data (should be either 2 or 3, corresponding to
              labels ['entailment', 'not_entailment'] or ["contradiction", "entailment", "neutral"])
      """
      self.cfg = cfg
      self.tokenizer = tokenizer
      if self.cfg.num_classes not in [2, 3]:
          raise ValueError("num_classes must be either 2 or 3!")
      self.label_list = (
          ["contradiction", "entailment", "neutral"]
          if self.cfg.num_classes == 3
          else ["not_entailment", "entailment"]
      )
      token_params = {
          "bos_token": None,
          "eos_token": tokenizer.eos_token,
          "pad_token": tokenizer.pad_token,
          "cls_token": tokenizer.cls_token,
          "sep_token_extra": tokenizer.eos_token
          if hasattr(tokenizer, "name")
          and "roberta" in tokenizer.name.lower()
          else None,
      }
  
      self.raw_features = dialogues_processor.get_dialog_examples(
          dataset_split
      )
      self.examples = self._create_examples(
          self.raw_features, dataset_split
      )
      self.features = self.convert_examples_to_features(
          self.examples,
          [0, 1, 2, 3],
          self.cfg.max_seq_length,
          tokenizer,
          output_mode="classification",
          **token_params,
      )
  
file_path: NeMo/nemo/collections/nlp/data/dialogue/dataset/dialogue_zero_shot_intent_dataset.py
imports: from typing import Dict, List, Optional, Union
  import numpy
  from nemo.collections.common.tokenizers.tokenizer_spec import TokenizerSpec
  from nemo.collections.nlp.data.glue_benchmark.data_processors import InputExample
  from nemo.collections.nlp.data.glue_benchmark.glue_benchmark_dataset import GLUEDataset
  from nemo.core.neural_types import CategoricalValuesType, ChannelType, MaskType, NeuralType
  from nemo.utils import logging
label_desc: Use image node_id 2 to create a new DialogueZeroShotIntentDataset object from inherited base classes: GLUEDataset with example: obj = DialogueZeroShotIntentDataset(dataset_split, dialogues_processor, tokenizer, cfg)