docstr: Change integers to other integers within 20% of the original integer
  Does not change '2' or '4' to avoid abbreviations (this is 4 you, etc)
  
  Parameters
  ----------
  doc : spacy.token.Doc
      input
  meta : bool
      if True, will return list of (orig_number, new_number) as meta
  seed : int
      random seed
  n : int
      number of numbers to replace original locations with
  
  Returns
  -------
  list(str)
      if meta=True, returns (list(str), list(tuple))
      Strings with numbers replaced.
docstr_tok: ["Change","integers","to","other","integers","within","20","%","of","the","original","integer","Does","not","change","'","2","'","or","'","4","'","to","avoid","abbreviations","(","this","is","4","you",",","etc",")","Parameters","--","--","--","--","--","doc",":","spacy.token.Doc","input","meta",":","bool","if","True",",","will","return","list","of","(","orig_number",",","new_number",")","as","meta","seed",":","int","random","seed","n",":","int","number","of","numbers","to","replace","original","locations","with","Returns","--","--","--","-","list","(","str",")","if","meta=True",",","returns","(","list","(","str",")",",","list","(","tuple",")",")","Strings","with","numbers","replaced","."]
code: def change_number(doc, meta=False, seed=None, n=10):
      """Change integers to other integers within 20% of the original integer
      Does not change '2' or '4' to avoid abbreviations (this is 4 you, etc)
  
      Parameters
      ----------
      doc : spacy.token.Doc
          input
      meta : bool
          if True, will return list of (orig_number, new_number) as meta
      seed : int
          random seed
      n : int
          number of numbers to replace original locations with
  
      Returns
      -------
      list(str)
          if meta=True, returns (list(str), list(tuple))
          Strings with numbers replaced.
  
      """
      if seed is not None:
          np.random.seed(seed)
      nums = [x.text for x in doc if x.text.isdigit()]
      ret = []
      ret_m = []
      for x in nums:
          # e.g. this is 4 you
          if x == "2" or x == "4":
              continue
          sub_re = re.compile(r"\b%s\b" % x)
          try:
              change = int(int(x) * 0.2) + 1
          except:
              continue
          to_sub = np.random.randint(
              -min(change, int(x) - 1), change + 1, n * 3
          )
          to_sub = [
              "%s" % str(int(x) + t)
              for t in to_sub
              if str(int(x) + t) != x
          ][:n]
          ret.extend([sub_re.sub(n, doc.text) for n in to_sub])
          ret_m.extend([(x, n) for n in to_sub])
      return process_ret(ret, ret_m=ret_m, n=n, meta=meta)
  
imports: import numpy
  import collections
  import re
  import os
  import json
  import pattern
  from pattern.en import tenses
  from .editor import recursive_apply, MunchWithAdd
label_desc: Use image node_id 12 for calling the Perturb obj's underlying member method code with example usage: obj.change_number(doc, meta, seed, n) and returns: process_ret