code: def __call__(self, text_input_list):
      x_transform = []
      for i, review in enumerate(text_input_list):
          tokens = [x.strip(",") for x in review.split()]
          BoW_array = np.zeros((NUM_WORDS,))
          for word in tokens:
              if word in vocabulary:
                  if vocabulary[word] < len(BoW_array):
                      BoW_array[vocabulary[word]] += 1
          x_transform.append(BoW_array)
      x_transform = np.array(x_transform)
      prediction = self.model.predict(x_transform)
      return prediction
  
file_path: TextAttack/examples/attack/attack_keras_parallel.py
imports: import numpy
  import tensorflow
  from tensorflow.keras.layers import Dense, Dropout
  from tensorflow.keras.models import Model, Sequential
  from tensorflow.keras.utils import to_categorical
  from tensorflow.python.keras.layers import deserialize, serialize
  from tensorflow.python.keras.saving import saving_utils
  import torch
  from textattack import AttackArgs, Attacker
  from textattack.attack_recipes import PWWSRen2019
  from textattack.datasets import HuggingFaceDataset
  from textattack.models.wrappers import ModelWrapper
label_desc: Use image node_id 2 for calling the CustomKerasModelWrapper obj's underlying member method code with example usage: obj.__call__(text_input_list) and returns: prediction