1
0
mirror of https://github.com/QData/TextAttack.git synced 2021-10-13 00:05:06 +03:00

textfooler recipe working

This commit is contained in:
uvafan
2020-05-17 18:23:07 -04:00
parent 5c0584acd7
commit b94684971e
22 changed files with 140 additions and 89 deletions

View File

@@ -6,7 +6,7 @@ import random
from textattack.shared import utils
from textattack.constraints import Constraint, ModificationConstraint
from textattack.shared import TokenizedText
from textattack.attack_results import SkippedAttackResult, SuccessfulAttackResult, FailedAtttackResult
from textattack.attack_results import SkippedAttackResult, SuccessfulAttackResult, FailedAttackResult
class Attack:
"""
@@ -39,11 +39,7 @@ class Attack:
else:
raise NameError('Cannot instantiate attack without tokenizer')
self.transformation = transformation
self.is_black_box = True
for transformation in transformations:
if not transformation.is_black_box:
self.is_black_box = False
break
self.is_black_box = getattr(transformation, 'is_black_box', True)
if not self.search_method.check_transformation_compatibility(self.transformation):
raise ValueError('SearchMethod {self.search_method} incompatible with transformation {self.transformation}')
@@ -51,7 +47,7 @@ class Attack:
self.constraints = []
self.modification_constraints = []
for constraint in constraints:
is isinstance(constraint, ModiifcationConstraint):
if isinstance(constraint, ModificationConstraint):
self.modification_constraints.append(constraint)
else:
self.constraints.append(constraint)
@@ -138,7 +134,7 @@ class Attack:
"""
Perturbs `tokenized_text` from initial_result until goal is reached.
"""
final_result = search_method(initial_result)
final_result = self.search_method(initial_result)
if final_result.succeeded:
return SuccessfulAttackResult(initial_result, final_result)
else: