class_docstr: Entity position swap with paraphrase(birth related)
docstr: generate new sentence
  
  :param int idx: the idx of word "bear" in sentence
  :param list tokens: tokens of the sentence
  :param list pos_tags: pos tagging labels of the sentence
  :param list heads: stanford heads
  :param list deprels: stanford dependency relations
  :return string: transformed sentence
code: def generate_new_sen_for_birth(
      self, idx, tokens, pos_tags, heads, deprels
  ):
      r"""
      generate new sentence
  
      :param int idx: the idx of word "bear" in sentence
      :param list tokens: tokens of the sentence
      :param list pos_tags: pos tagging labels of the sentence
      :param list heads: stanford heads
      :param list deprels: stanford dependency relations
      :return string: transformed sentence
      """
      assert isinstance(
          idx, int
      ), f"the type of 'idx' should be int, got {type(idx)} instead"
      assert isinstance(
          tokens, list
      ), f"the type of 'tokens' should be list, got {type(tokens)} instead"
      assert isinstance(pos_tags, list), (
          f"the type of 'pos_tags' should be list, got "
          f"{type(pos_tags)} instead"
      )
      assert isinstance(
          heads, list
      ), f"the type of 'heads' should be list, got {type(heads)} instead"
      assert isinstance(
          deprels, list
      ), f"the type of 'deprels' should be list, got {type(deprels)} instead"
      assert (
          len(tokens) == len(pos_tags) == len(heads) == len(deprels)
      ), (
          f"the length of the list inputs should be the same, got "
          f"{len(tokens), len(pos_tags), len(heads), len(deprels)} instead"
      )
      assert idx >= 0 and idx < len(
          tokens
      ), f"got invalid value of idx: {idx}"
      assert isinstance(heads[0], int), (
          f"the type of each token in 'heads' "
          f"should be int, got {type(heads[0])} instead"
      )
      assert (
          len([i for i in heads if i < 0 or i >= len(tokens)]) == 0
      ), f"got invalid value of 'heads': {heads}"
      assert "ROOT" in deprels, (
          f"'ROOT' should be " f"included in 'deprels', got {deprels}"
      )
      assert 0 in heads, f"0 should be included in 'heads', got {heads}"
  
      deprel = deprels[idx]
  
      ### if "born" is root of the sent, swap the position of born- and clause
      if deprel == "ROOT":
          new_sen = self.generate_birth_for_root(
              idx, tokens, pos_tags, heads
          )
  
      else:
          new_sen = self.generate_birth_for_clause(idx, tokens, deprels)
  
      return new_sen
  
file_path: textflint/textflint/generation/transformation/RE/swap_birth.py
imports: from ....input.component.sample import RESample
  from ...transformation import Transformation
label_desc: Use image node_id 5 for calling the SwapBirth obj's underlying member method code with example usage: obj.generate_new_sen_for_birth(idx, tokens, pos_tags, heads, deprels) and returns: new_sen