class_docstr: This class parses probabilities of tokens to be a token from the entity substring.
docstr: Args:
      question_tokens_batch: tokenized questions
      tokens_info_batch: list of tags of question tokens
      tokens_probas_probas: list of probabilities of question tokens
  Returns:
      Batch of dicts where keys are tags and values are substrings corresponding to tags
      Batch of substrings which correspond to entity types
      Batch of lists of token indices in the text which correspond to entities
docstr_tok: ["Args",":","question_tokens_batch",":","tokenized","questions","tokens_info_batch",":","list","of","tags","of","question","tokens","tokens_probas_probas",":","list","of","probabilities","of","question","tokens","Returns",":","Batch","of","dicts","where","keys","are","tags","and","values","are","substrings","corresponding","to","tags","Batch","of","substrings","which","correspond","to","entity","types","Batch","of","lists","of","token","indices","in","the","text","which","correspond","to","entities"]
code: def __call__(
      self,
      question_tokens_batch: List[List[str]],
      tokens_info_batch: List[List[List[float]]],
      tokens_probas_batch: np.ndarray,
  ) -> Tuple[List[dict], List[dict], List[dict]]:
      """
      Args:
          question_tokens_batch: tokenized questions
          tokens_info_batch: list of tags of question tokens
          tokens_probas_probas: list of probabilities of question tokens
      Returns:
          Batch of dicts where keys are tags and values are substrings corresponding to tags
          Batch of substrings which correspond to entity types
          Batch of lists of token indices in the text which correspond to entities
      """
      entities_batch = []
      positions_batch = []
      probas_batch = []
      for tokens, tags, probas in zip(
          question_tokens_batch, tokens_info_batch, tokens_probas_batch
      ):
          if self.make_tags_from_probas:
              tags, _ = self.tags_from_probas(tokens, probas)
          tags = self.correct_quotes(tokens, tags, probas)
          tags = self.correct_tags(tokens, tags)
          (
              entities,
              positions,
              entities_probas,
          ) = self.entities_from_tags(tokens, tags, probas)
          entities_batch.append(entities)
          positions_batch.append(positions)
          probas_batch.append(entities_probas)
      return entities_batch, positions_batch, probas_batch
  
imports: import re
  from collections import defaultdict
  from logging import getLogger
  from string import punctuation
  from typing import List, Tuple, Union, Any
  import numpy
  from nltk.corpus import stopwords
  from deeppavlov.core.commands.utils import expand_path
  from deeppavlov.core.common.registry import register
  from deeppavlov.core.models.component import Component
label_desc: Use image node_id 2 for calling the EntityDetectionParser obj's underlying member method code with example usage: obj.__call__(question_tokens_batch, tokens_info_batch, tokens_probas_batch) and returns: entities_batch,  positions_batch,  probas_batch