from textattack import Attack as TAAttack
from textattack.constraints.pre_transformation import (
RepeatModification,
StopwordModification,
)
from textattack.goal_functions import UntargetedClassification
from textattack.search_methods import GreedyWordSwapWIR
from textattack.transformations import WordSwapWordNet
from abs_text_attack.core.interfaces import Attack
[документация]
class PWWS(Attack):
[документация]
@staticmethod
def build(model_wrapper, kwargs = {}):
transformation = WordSwapWordNet()
constraints = [RepeatModification(), StopwordModification()]
goal_function = UntargetedClassification(model_wrapper)
search_method = GreedyWordSwapWIR("weighted-saliency")
return Attack(goal_function, constraints, transformation, search_method)