class_docstr: `UnexpecTEDIntentPolicy` has the same model architecture as `TEDPolicy`.
  
  The difference is at a task level.
  Instead of predicting the next probable action, this policy
  predicts whether the last predicted intent is a likely intent
  according to the training stories and conversation context.
class_docstr_tok: ["`","UnexpecTEDIntentPolicy","`","has","the","same","model","architecture","as","`","TEDPolicy","`",".","The","difference","is","at","a","task","level",".","Instead","of","predicting","the","next","probable","action",",","this","policy","predicts","whether","the","last","predicted","intent","is","a","likely","intent","according","to","the","training","stories","and","conversation","context","."]
docstr: Checks if the query intent is probable according to model's predictions.
  
  If the similarity prediction for the intent
  is lower than the threshold calculated for that
  intent during training, the corresponding user
  intent is unlikely.
  
  Args:
      domain: Domain of the assistant.
      similarities: Predicted similarities for all intents.
      query_intent: Intent to be queried.
  
  Returns:
      Whether query intent is likely or not.
docstr_tok: ["Checks","if","the","query","intent","is","probable","according","to","model","'s","predictions",".","If","the","similarity","prediction","for","the","intent","is","lower","than","the","threshold","calculated","for","that","intent","during","training",",","the","corresponding","user","intent","is","unlikely",".","Args",":","domain",":","Domain","of","the","assistant",".","similarities",":","Predicted","similarities","for","all","intents",".","query_intent",":","Intent","to","be","queried",".","Returns",":","Whether","query","intent","is","likely","or","not","."]
code: def _check_unlikely_intent(
      self, domain: Domain, similarities: np.ndarray, query_intent: Text
  ) -> bool:
      """Checks if the query intent is probable according to model's predictions.
  
      If the similarity prediction for the intent
      is lower than the threshold calculated for that
      intent during training, the corresponding user
      intent is unlikely.
  
      Args:
          domain: Domain of the assistant.
          similarities: Predicted similarities for all intents.
          query_intent: Intent to be queried.
  
      Returns:
          Whether query intent is likely or not.
      """
      logger.debug(f"Querying for intent `{query_intent}`.")
  
      if not self._should_check_for_intent(query_intent, domain):
          return False
  
      predicted_intent_scores = {
          index: similarities[0][index]
          for index, intent in enumerate(domain.intents)
      }
      sorted_intent_scores = sorted(
          [
              (domain.intents[label_index], score)
              for label_index, score in predicted_intent_scores.items()
          ],
          key=lambda x: x[1],
      )
      query_intent_id = domain.intents.index(query_intent)
      query_intent_similarity = similarities[0][query_intent_id]
      highest_likely_intent_id = domain.intents.index(
          sorted_intent_scores[-1][0]
      )
  
      logger.debug(
          f"Score for intent `{query_intent}` is "
          f"`{query_intent_similarity}`, while "
          f"threshold is `{self.label_thresholds[query_intent_id]}`."
      )
      logger.debug(
          f"Top 5 intents (in ascending order) that "
          f"are likely here are: `{sorted_intent_scores[-5:]}`."
      )
  
      # If score for query intent is below threshold and
      # the query intent is not the top likely intent
      if (
          query_intent_similarity
          < self.label_thresholds[query_intent_id]
          and query_intent_id != highest_likely_intent_id
      ):
          logger.debug(
              f"Intent `{query_intent}-{query_intent_id}` unlikely to occur here."
          )
          return True
  
      return False
  
imports: import dataclasses
  import logging
  from pathlib import Path
  from typing import Any, List, Optional, Text, Dict, Type, Union
  import numpy
  import tensorflow
  import rasa.utils.common
  from rasa.engine.graph import ExecutionContext
  from rasa.engine.recipes.default_recipe import DefaultV1Recipe
  from rasa.engine.storage.resource import Resource
  from rasa.engine.storage.storage import ModelStorage
  from rasa.nlu.classifiers import LABEL_RANKING_LENGTH
  from rasa.shared.nlu.training_data.features import Features
  from rasa.shared.core.domain import Domain
  from rasa.shared.core.trackers import DialogueStateTracker
  from rasa.shared.core.constants import SLOTS, ACTIVE_LOOP, ACTION_UNLIKELY_INTENT_NAME
  from rasa.shared.core.events import UserUttered, ActionExecuted
  from rasa.shared.nlu.constants import INTENT, TEXT, ENTITIES, ACTION_NAME, SPLIT_ENTITIES_BY_COMMA, SPLIT_ENTITIES_BY_COMMA_DEFAULT_VALUE
  from rasa.nlu.extractors.extractor import EntityTagSpec
  from rasa.core.featurizers.precomputation import MessageContainerForCoreFeaturization
  from rasa.core.featurizers.tracker_featurizers import TrackerFeaturizer
  from rasa.core.featurizers.tracker_featurizers import IntentMaxHistoryTrackerFeaturizer
  from rasa.core.featurizers.single_state_featurizer import IntentTokenizerSingleStateFeaturizer
  from rasa.shared.core.generator import TrackerWithCachedStates
  from rasa.core.constants import DIALOGUE, POLICY_MAX_HISTORY, POLICY_PRIORITY, UNLIKELY_INTENT_POLICY_PRIORITY
  from rasa.core.policies.policy import PolicyPrediction
  from rasa.core.policies.ted_policy import LABEL_KEY, LABEL_SUB_KEY, TEDPolicy, TED, SEQUENCE_LENGTH, SEQUENCE, PREDICTION_FEATURES
  from rasa.utils import train_utils
  from rasa.utils.tensorflow.models import RasaModel
  from rasa.utils.tensorflow.constants import LABEL, DENSE_DIMENSION, ENCODING_DIMENSION, UNIDIRECTIONAL_ENCODER, TRANSFORMER_SIZE, NUM_TRANSFORMER_LAYERS, NUM_HEADS, BATCH_SIZES, BATCH_STRATEGY, EPOCHS, RANDOM_SEED, RANKING_LENGTH, LOSS_TYPE, SIMILARITY_TYPE, NUM_NEG, EVAL_NUM_EXAMPLES, EVAL_NUM_EPOCHS, REGULARIZATION_CONSTANT, SCALE_LOSS, EMBEDDING_DIMENSION, DROP_RATE_DIALOGUE, DROP_RATE_LABEL, DROP_RATE, DROP_RATE_ATTENTION, CONNECTION_DENSITY, KEY_RELATIVE_ATTENTION, VALUE_RELATIVE_ATTENTION, MAX_RELATIVE_POSITION, INNER, BALANCED, TENSORBOARD_LOG_DIR, TENSORBOARD_LOG_LEVEL, CHECKPOINT_MODEL, FEATURIZERS, ENTITY_RECOGNITION, IGNORE_INTENTS_LIST, BILOU_FLAG, LEARNING_RATE, CROSS_ENTROPY, SPARSE_INPUT_DROPOUT, DENSE_INPUT_DROPOUT, MASKED_LM, HIDDEN_LAYERS_SIZES, CONCAT_DIMENSION, TOLERANCE, LABEL_PAD_ID, POSITIVE_SCORES_KEY, NEGATIVE_SCORES_KEY, USE_GPU
  from rasa.utils.tensorflow import layers
  from rasa.utils.tensorflow.model_data import RasaModelData, FeatureArray, Data
  import rasa.utils.io
  from rasa.core.exceptions import RasaCoreException
  from rasa.shared.utils import common
label_desc: Use image node_id 16 for calling the UnexpecTEDIntentPolicy obj's underlying member method code with example usage: obj._check_unlikely_intent(domain, similarities, query_intent) and returns: False, False, True