class_docstr: Component that uses statistics based error model to find best candidates in a static dictionary.
  Based on An Improved Error Model for Noisy Channel Spelling Correction by Eric Brill and Robert C. Moore
  
  Args:
      dictionary: a :class:`~deeppavlov.vocabs.typos.StaticDictionary` object
      window: maximum context window size
      candidates_count: maximum number of replacement candidates to return for every token in the input
  
  Attributes:
      costs: logarithmic probabilities of character sequences replacements
      dictionary: a :class:`~deeppavlov.vocabs.typos.StaticDictionary` object
      window: maximum context window size
      candidates_count: maximum number of replacement candidates to return for every token in the input
docstr: Propose candidates for tokens in sentences
  
  Args:
      data: batch of tokenized sentences
  
  Returns:
      batch of lists of probabilities and candidates for every token
docstr_tok: ["Propose","candidates","for","tokens","in","sentences","Args",":","data",":","batch","of","tokenized","sentences","Returns",":","batch","of","lists","of","probabilities","and","candidates","for","every","token"]
code: def __call__(
      self, data: Iterable[Iterable[str]], *args, **kwargs
  ) -> List[List[List[Tuple[float, str]]]]:
      """Propose candidates for tokens in sentences
  
      Args:
          data: batch of tokenized sentences
  
      Returns:
          batch of lists of probabilities and candidates for every token
      """
      data = list(data)
      if len(data) > 1:
          data = tqdm(
              data,
              desc="Infering a batch with the error model",
              leave=False,
          )
      return [self._infer_instance(instance) for instance in data]
  
imports: import csv
  import itertools
  from collections import defaultdict, Counter
  from heapq import heappop, heappushpop, heappush
  from logging import getLogger
  from math import log, exp
  from typing import List, Iterable, Tuple
  from tqdm import tqdm
  from deeppavlov.core.common.errors import ConfigError
  from deeppavlov.core.common.registry import register
  from deeppavlov.core.models.estimator import Estimator
  from deeppavlov.vocabs.typos import StaticDictionary
label_desc: Use image node_id 5 for calling the ErrorModel obj's underlying member method code with example usage: obj.__call__(data) and returns: unknown