class_docstr: This class is an implementation of the original AEDA algorithm (2021) [1].
  
  [1] Karimi et al., 2021, November. AEDA: An Easier Data Augmentation Technique for Text Classification.
  In Findings of the Association for Computational Linguistics: EMNLP 2021 (pp. 2748-2754).
  https://aclanthology.org/2021.findings-emnlp.234.pdf
  
  Example usage: ::
      >>> from textaugment import AEDA
      >>> t = AEDA()
      >>> t.punct_insertion("John is going to town")
      ! John is going to town
class_docstr_tok: ["This","class","is","an","implementation","of","the","original","AEDA","algorithm","(","2021",")","[","1","]",".","[","1","]","Karimi","et","al.",",","2021",",","November",".","AEDA",":","An","Easier","Data","Augmentation","Technique","for","Text","Classification",".","In","Findings","of","the","Association","for","Computational","Linguistics",":","EMNLP","2021","(","pp",".","2748-2754",")",".","https",":","\/\/aclanthology.org\/2021.findings-emnlp.234.pdf","Example","usage",":",":",":",">",">",">","from","textaugment","import","AEDA",">",">",">","t","=","AEDA","(",")",">",">",">","t.punct_insertion","(","``","John","is","going","to","town","''",")","!","John","is","going","to","town"]
docstr: Insert random punctuations to the sentence
  
  :type sentence: str
  :param sentence: Sentence
  
  :rtype:   str
  :return:  Augmented sentence
docstr_tok: ["Insert","random","punctuations","to","the","sentence",":","type","sentence",":","str",":","param","sentence",":","Sentence",":","rtype",":","str",":","return",":","Augmented","sentence"]
code: def punct_insertion(self, sentence: str):
      """Insert random punctuations to the sentence
  
      :type sentence: str
      :param sentence: Sentence
  
      :rtype:   str
      :return:  Augmented sentence
      """
      self.validate(sentence=sentence)
  
      sentence = sentence.strip().split(" ")
      len_sentence = len(sentence)
      # Get random number of punctuations to be inserted
      # The number of punctuations to be inserted is between 1 and 1/3 of the length of the sentence
      num_punctuations = random.randint(1, len_sentence // 3)
      augmented_sentence = sentence.copy()
  
      # Insert random punctuations in random positions
      for _ in range(num_punctuations):
          punct = random.choice(
              self.punctuations
          )  # Select punctuation to be inserted
          pos = random.randint(
              0, len(augmented_sentence) - 1
          )  # Select position to insert punctuation
          augmented_sentence = (
              augmented_sentence[:pos]
              + [punct]
              + augmented_sentence[pos:]
          )  # Insert punctuation
      augmented_sentence = " ".join(augmented_sentence)
  
      return augmented_sentence
  
imports: import random
label_desc: Use image node_id 3 for calling the AEDA obj's underlying member method code with example usage: obj.punct_insertion(sentence) and returns: augmented_sentence