class_docstr: Augmenter that generate character error by random values. For example, people may type i as o incorrectly.
  
  :param str action: Possible values are 'insert', 'substitute', 'swap' and 'delete'. If value is 'insert', a new
      character will be injected to randomly. If value is 'substitute', a random character will be replaced
      original character randomly. If value is 'swap', adjacent characters within sample word will be swapped
      randomly. If value is 'delete', character will be removed randomly.
  :param float aug_char_p: Percentage of character (per token) will be augmented.
  :param int aug_char_min: Minimum number of character will be augmented.
  :param int aug_char_max: Maximum number of character will be augmented. If None is passed, number of augmentation is
      calculated via aup_char_p. If calculated result from aug_char_p is smaller than aug_char_max, will use calculated result
      from aup_char_p. Otherwise, using aug_max.
  :param float aug_word_p: Percentage of word will be augmented.
  :param int aug_word_min: Minimum number of word will be augmented.
  :param int aug_word_max: Maximum number of word will be augmented. If None is passed, number of augmentation is
      calculated via aup_word_p. If calculated result from aug_word_p is smaller than aug_word_max, will use calculated result
      from aug_word_p. Otherwise, using aug_max.
  :param bool include_upper_case: If True, upper case character may be included in augmented data. If `candidates'
      value is provided, this param will be ignored.
  :param bool include_lower_case: If True, lower case character may be included in augmented data. If `candidates'
      value is provided, this param will be ignored.
  :param bool include_numeric: If True, numeric character may be included in augmented data. If `candidates'
      value is provided, this param will be ignored.
  :param int min_char: If word less than this value, do not draw word for augmentation
  :param swap_mode: When action is 'swap', you may pass 'adjacent', 'middle' or 'random'. 'adjacent' means swap action
      only consider adjacent character (within same word). 'middle' means swap action consider adjacent character but
      not the first and last character of word. 'random' means swap action will be executed without constraint.
  :param str spec_char: Special character may be included in augmented data. If `candidates'
      value is provided, this param will be ignored.
  :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 List candidates: List of string for augmentation. E.g. ['AAA', '11', '===']. If values is provided,
      `include_upper_case`, `include_lower_case`, `include_numeric` and `spec_char` will be ignored.
  :param str name: Name of this augmenter.
  
  >>> import nlpaug.augmenter.char as nac
  >>> aug = nac.RandomCharAug()
code: def delete(self, data):
      if not data or not data.strip():
          return data
  
      change_seq = 0
  
      doc = Doc(data, self.tokenizer(data))
      aug_word_idxes = self._get_aug_idxes(
          doc.get_original_tokens(),
          self.aug_word_min,
          self.aug_word_max,
          self.aug_word_p,
          Method.WORD,
      )
  
      if aug_word_idxes is None:
          return data
  
      for token_i, token in enumerate(doc.get_original_tokens()):
          if token_i not in aug_word_idxes:
              continue
  
          chars = self.token2char(token)
          aug_char_idxes = self._get_aug_idxes(
              chars,
              self.aug_char_min,
              self.aug_char_max,
              self.aug_char_p,
              Method.CHAR,
          )
          if aug_char_idxes is None or len(aug_char_idxes) < 1:
              continue
  
          aug_char_idxes.sort(reverse=True)
          for i in aug_char_idxes:
              del chars[i]
  
          # No capitalization alignment as this augmenter try to simulate random error
  
          delete_token = "".join(chars)
          change_seq += 1
          doc.add_change_log(
              token_i,
              new_token=delete_token,
              action=Action.DELETE,
              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/char/random.py
imports: import string
  from nlpaug.augmenter.char import CharAugmenter
  from nlpaug.util import Action, Method, Doc
label_desc: Use image node_id 5 for calling the RandomCharAug obj's underlying member method code with example usage: obj.delete(data) and returns: data, data, self,  doc, self