class_docstr: The class generates a dictionary for recognition. It pre-defines four
  special tokens: ``start_token``, ``end_token``, ``pad_token``, and
  ``unknown_token``, which will be sequentially placed at the end of the
  dictionary when their corresponding flags are True.
  
  Args:
      dict_file (str): The path of Character dict file which a single
          character must occupies a line.
      num_bins (int): Number of bins dividing the image, which is used to
          shift the character indexes. Defaults to 1000.
      with_start (bool): The flag to control whether to include the start
          token. Defaults to False.
      with_end (bool): The flag to control whether to include the end token.
          Defaults to False.
      with_seq end (bool): The flag to control whether to include the
          sequence end token. Defaults to False.
      same_start_end (bool): The flag to control whether the start token and
          end token are the same. It only works when both ``with_start`` and
          ``with_end`` are True. Defaults to False.
      with_padding (bool):The padding token may represent more than a
          padding. It can also represent tokens like the blank token in CTC
          or the background token in SegOCR. Defaults to False.
      with_unknown (bool): The flag to control whether to include the
          unknown token. Defaults to False.
      start_token (str): The start token as a string. Defaults to '<BOS>'.
      end_token (str): The end token as a string. Defaults to '<EOS>'.
      seq_end_token (str): The sequence end token as a string. Defaults to
          '<SEQEOS>'.
      start_end_token (str): The start/end token as a string. if start and
          end is the same. Defaults to '<BOS/EOS>'.
      padding_token (str): The padding token as a string.
          Defaults to '<PAD>'.
      unknown_token (str, optional): The unknown token as a string. If it's
          set to None and ``with_unknown`` is True, the unknown token will be
          skipped when converting string to index. Defaults to '<UKN>'.
code: def __init__(
      self,
      dict_file: str,
      num_bins: int = 1000,
      with_start: bool = False,
      with_end: bool = False,
      with_seq_end: bool = False,
      same_start_end: bool = False,
      with_padding: bool = False,
      with_unknown: bool = False,
      start_token: str = "<BOS>",
      end_token: str = "<EOS>",
      seq_end_token: str = "<SEQEOS>",
      start_end_token: str = "<BOS/EOS>",
      padding_token: str = "<PAD>",
      unknown_token: str = "<UKN>",
  ) -> None:
      self.with_seq_end = with_seq_end
      self.seq_end_token = seq_end_token
  
      super().__init__(
          dict_file=dict_file,
          with_start=with_start,
          with_end=with_end,
          same_start_end=same_start_end,
          with_padding=with_padding,
          with_unknown=with_unknown,
          start_token=start_token,
          end_token=end_token,
          start_end_token=start_end_token,
          padding_token=padding_token,
          unknown_token=unknown_token,
      )
  
      self.num_bins = num_bins
      self._shift_idx()
  
file_path: mmocr/projects/SPTS/spts/model/spts_dictionary.py
imports: from typing import Sequence
  from mmocr.models.common.dictionary import Dictionary
  from mmocr.registry import TASK_UTILS
label_desc: Use image node_id 1 to create a new SPTSDictionary object from inherited base classes: Dictionary with example: obj = SPTSDictionary(dict_file, num_bins, with_start, with_end, with_seq_end, same_start_end, with_padding, with_unknown, start_token, end_token, seq_end_token, start_end_token, padding_token, unknown_token)