class_docstr: Transformation that simulate typo error by random values.
  
  https://arxiv.org/pdf/1711.02173.pdf
  
  For example, people may type i as o incorrectly.\
  One keyboard distance is leveraged to replace character by possible
  keyboard error.
class_docstr_tok: ["Transformation","that","simulate","typo","error","by","random","values",".","https",":","\/\/arxiv.org\/pdf\/1711.02173.pdf","For","example",",","people","may","type","i","as","o","incorrectly.\\","One","keyboard","distance","is","leveraged","to","replace","character","by","possible","keyboard","error","."]
code: def get_rules(
      cls,
      special_char=True,
      numeric=True,
      upper_case=True,
      lang="en",
      rules_path=None,
  ):
      return KeyboardRules(
          special_char=special_char,
          numeric=numeric,
          upper_case=upper_case,
          lang=lang,
          rules_path=rules_path,
      )
  
file_path: textflint/textflint/generation/transformation/UT/keyboard.py
imports: import os
  import re
  import random
  from ....common.settings import KEYBOARD_RULES
  from ...transformation import WordSubstitute
  from ....common.utils.install import download_if_needed
  from ....common.utils.load import json_loader
label_desc: Use image node_id 5 for calling the Keyboard obj's underlying member method code with example usage: obj.get_rules(cls, special_char, numeric, upper_case, lang, rules_path) and returns: KeyboardRules