class_docstr: Augmenter that leverage pre-defined spelling mistake dictionary to simulate spelling mistake.
  
  :param str dict_path: Path of misspelling dictionary
  :param float aug_p: Percentage of word will be augmented.
  :param int aug_min: Minimum number of word will be augmented.
  :param int aug_max: Maximum number of word will be augmented. If None is passed, number of augmentation is
      calculated via aup_p. If calculated result from aug_p is smaller than aug_max, will use calculated result from
      aug_p. Otherwise, using aug_max.
  :param list stopwords: List of words which will be skipped from augment operation.
  :param str stopwords_regex: Regular expression for matching words which will be skipped from augment operation.
  :param func tokenizer: Customize tokenization process
  :param func reverse_tokenizer: Customize reverse of tokenization process
  :param str name: Name of this augmenter
  
  >>> import nlpaug.augmenter.word as naw
  >>> aug = naw.SpellingAug(dict_path='./spelling_en.txt')
code: def substitute(self, data):
      if not data or not data.strip():
          return data
  
      change_seq = 0
      doc = Doc(data, self.tokenizer(data))
  
      aug_idxes = self._get_aug_idxes(doc.get_original_tokens())
  
      if aug_idxes is None or len(aug_idxes) == 0:
          if self.include_detail:
              return data, []
          return data
  
      for aug_idx, original_token in enumerate(
          doc.get_original_tokens()
      ):
          # Skip if no augment for word
          if aug_idx not in aug_idxes:
              continue
  
          candidate_words = self.model.predict(original_token)
          substitute_token = ""
          if candidate_words:
              substitute_token = self.sample(candidate_words, 1)[0]
          else:
              # Unexpected scenario. Adding original token
              substitute_token = original_token
  
          if aug_idx == 0:
              substitute_token = self.align_capitalization(
                  original_token, substitute_token
              )
  
          change_seq += 1
          doc.add_change_log(
              aug_idx,
              new_token=substitute_token,
              action=Action.SUBSTITUTE,
              change_seq=self.parent_change_seq + change_seq,
          )
  
      if self.include_detail:
          return (
              self.reverse_tokenizer(doc.get_augmented_tokens()),
              doc.get_change_logs(),
          )
      else:
          return self.reverse_tokenizer(doc.get_augmented_tokens())
  
file_path: nlpaug/nlpaug/augmenter/word/spelling.py
imports: import os
  import nlpaug
  import nlpaug.model.word_dict
  from nlpaug.augmenter.word import WordAugmenter
  from nlpaug.util import Action, Doc, LibraryUtil
label_desc: Use image node_id 3 for calling the SpellingAug obj's underlying member method code with example usage: obj.substitute(data) and returns: data, data, self,  doc, self, data,  list