class_docstr: Creates full dialogue training data for time distributed architectures.
  
  Creates training data that uses each time output for prediction.
class_docstr_tok: ["Creates","full","dialogue","training","data","for","time","distributed","architectures",".","Creates","training","data","that","uses","each","time","output","for","prediction","."]
docstr: Transforms trackers to states, action labels, and entity data.
  
  Args:
      trackers: The trackers to transform.
      domain: The domain.
      omit_unset_slots: If `True` do not include the initial values of slots.
      ignore_action_unlikely_intent: Whether to remove `action_unlikely_intent`
          from training states.
  
  Returns:
      Trackers as states, action labels, and entity data.
docstr_tok: ["Transforms","trackers","to","states",",","action","labels",",","and","entity","data",".","Args",":","trackers",":","The","trackers","to","transform",".","domain",":","The","domain",".","omit_unset_slots",":","If","`","True","`","do","not","include","the","initial","values","of","slots",".","ignore_action_unlikely_intent",":","Whether","to","remove","`","action_unlikely_intent","`","from","training","states",".","Returns",":","Trackers","as","states",",","action","labels",",","and","entity","data","."]
code: def training_states_labels_and_entities(
      self,
      trackers: List[DialogueStateTracker],
      domain: Domain,
      omit_unset_slots: bool = False,
      ignore_action_unlikely_intent: bool = False,
  ) -> Tuple[
      List[List[State]], List[List[Text]], List[List[Dict[Text, Any]]]
  ]:
      """Transforms trackers to states, action labels, and entity data.
  
      Args:
          trackers: The trackers to transform.
          domain: The domain.
          omit_unset_slots: If `True` do not include the initial values of slots.
          ignore_action_unlikely_intent: Whether to remove `action_unlikely_intent`
              from training states.
  
      Returns:
          Trackers as states, action labels, and entity data.
      """
      trackers_as_states = []
      trackers_as_actions = []
      trackers_as_entities = []
  
      logger.debug(
          "Creating states and action examples from "
          "collected trackers (by {}({}))..."
          "".format(
              type(self).__name__, type(self.state_featurizer).__name__
          )
      )
      pbar = tqdm(
          trackers,
          desc="Processed trackers",
          disable=rasa.shared.utils.io.is_logging_disabled(),
      )
      for tracker in pbar:
          states = self._create_states(
              tracker, domain, omit_unset_slots=omit_unset_slots
          )
          events = tracker.applied_events()
  
          if ignore_action_unlikely_intent:
              states = self._remove_action_unlikely_intent_from_states(
                  states
              )
              events = self._remove_action_unlikely_intent_from_events(
                  events
              )
  
          delete_first_state = False
          actions = []
          entities = []
          entity_data = {}
          for event in events:
              if isinstance(event, UserUttered):
                  entity_data = self._entity_data(event)
  
              if not isinstance(event, ActionExecuted):
                  continue
  
              if not event.unpredictable:
                  # only actions which can be
                  # predicted at a stories start
                  action = event.action_name or event.action_text
                  if action is not None:
                      actions.append(action)
                  entities.append(entity_data)
              else:
                  # unpredictable actions can be
                  # only the first in the story
                  if delete_first_state:
                      raise InvalidStory(
                          f"Found two unpredictable actions in one story "
                          f"'{tracker.sender_id}'. Check your story files."
                      )
                  delete_first_state = True
  
              # reset entity_data for the the next turn
              entity_data = {}
  
          if delete_first_state:
              states = states[1:]
  
          trackers_as_states.append(states[:-1])
          trackers_as_actions.append(actions)
          trackers_as_entities.append(entities)
  
      self._remove_user_text_if_intent(trackers_as_states)
  
      return (
          trackers_as_states,
          trackers_as_actions,
          trackers_as_entities,
      )
  
imports: from __future__ import annotations
  from pathlib import Path
  from collections import defaultdict
  from abc import abstractmethod
  import jsonpickle
  import logging
  from tqdm import tqdm
  from typing import Tuple, List, Optional, Dict, Text, Union, Any, Iterator, Set, DefaultDict, cast
  import numpy
  from rasa.core.featurizers.single_state_featurizer import SingleStateFeaturizer
  from rasa.core.featurizers.precomputation import MessageContainerForCoreFeaturization
  from rasa.core.exceptions import InvalidTrackerFeaturizerUsageError
  import rasa.shared.core.trackers
  import rasa.shared.utils.io
  from rasa.shared.nlu.constants import TEXT, INTENT, ENTITIES, ACTION_NAME
  from rasa.shared.nlu.training_data.features import Features
  from rasa.shared.core.trackers import DialogueStateTracker
  from rasa.shared.core.domain import State, Domain
  from rasa.shared.core.events import Event, ActionExecuted, UserUttered
  from rasa.shared.core.constants import USER, ACTION_UNLIKELY_INTENT_NAME, PREVIOUS_ACTION
  from rasa.shared.exceptions import RasaException
  from rasa.utils.tensorflow.constants import LABEL_PAD_ID
  from rasa.utils.tensorflow.model_data import ragged_array_to_ndarray
label_desc: Use image node_id 1 for calling the FullDialogueTrackerFeaturizer obj's underlying member method code with example usage: obj.training_states_labels_and_entities(trackers, domain, omit_unset_slots, ignore_action_unlikely_intent) and returns: trackers_as_states,  trackers_as_actions,  trackers_as_entities