class_docstr: Transforms an input by replacing its words with synonyms in the stored
  synonyms bank generated by the OpenHowNet.
code: def __init__(self, max_candidates=-1, **kwargs):
      super().__init__(**kwargs)
      self.max_candidates = max_candidates
  
      # Download synonym candidates bank if they're not cached.
      cache_path = utils.download_from_s3(
          "{}/{}".format(
              WordSwapHowNet.PATH, "word_candidates_sense.pkl"
          )
      )
  
      # Actually load the files from disk.
      with open(cache_path, "rb") as fp:
          self.candidates_bank = pickle.load(fp)
  
      self.pos_dict = {
          "ADJ": "adj",
          "NOUN": "noun",
          "ADV": "adv",
          "VERB": "verb",
      }
  
file_path: TextAttack/textattack/transformations/word_swaps/word_swap_hownet.py
imports: import pickle
  from textattack.shared import utils
  from .word_swap import WordSwap
label_desc: Use image node_id 1 to create a new WordSwapHowNet object from inherited base classes: WordSwap with example: obj = WordSwapHowNet(max_candidates)