class_docstr: Attempts to reduce the input down to as few words as possible while
  maintaining the same predicted label.
  
  From Feng, Wallace, Grissom, Iyyer, Rodriguez, Boyd-Graber. (2018).
  Pathologies of Neural Models Make Interpretations Difficult.
  https://arxiv.org/abs/1804.07781
code: def _get_score(self, model_output, attacked_text):
      # Give the lowest score possible to inputs which don't maintain the ground truth label.
      if self.ground_truth_output != model_output.argmax():
          return 0
  
      cur_num_words = attacked_text.num_words
      initial_num_words = self.initial_attacked_text.num_words
  
      # The main goal is to reduce the number of words (num_words_score)
      # Higher model score for the ground truth label is used as a tiebreaker (model_score)
      num_words_score = max(
          (initial_num_words - cur_num_words) / initial_num_words, 0
      )
      model_score = model_output[self.ground_truth_output]
      return min(num_words_score + model_score / initial_num_words, 1)
  
file_path: TextAttack/textattack/goal_functions/classification/input_reduction.py
imports: from .classification_goal_function import ClassificationGoalFunction
label_desc: Use image node_id 4 for calling the InputReduction obj's underlying member method code with example usage: obj._get_score(model_output, attacked_text) and returns: min, int