textattack.transformations.sentence_transformations package

sentence_transformations package

BackTranslation class

class textattack.transformations.sentence_transformations.back_translation.BackTranslation(src_lang='en', target_lang='es', src_model='Helsinki-NLP/opus-mt-ROMANCE-en', target_model='Helsinki-NLP/opus-mt-en-ROMANCE', chained_back_translation=0)[source]

Bases: textattack.transformations.sentence_transformations.sentence_transformation.SentenceTransformation

A type of sentence level transformation that takes in a text input, translates it into target language and translates it back to source language.

letters_to_insert (string): letters allowed for insertion into words (used by some char-based transformations)

src_lang (string): source language target_lang (string): target language, for the list of supported language check bottom of this page src_model: translation model from huggingface that translates from source language to target language target_model: translation model from huggingface that translates from target language to source language chained_back_translation: run back translation in a chain for more perturbation (for example, en-es-en-fr-en)

Example:

>>> from textattack.transformations.sentence_transformations import BackTranslation
>>> from textattack.constraints.pre_transformation import RepeatModification, StopwordModification
>>> from textattack.augmentation import Augmenter

>>> transformation = BackTranslation
>>> constraints = [RepeatModification(), StopwordModification()]
>>> augmenter = Augmenter(transformation = transformation, constraints = constraints)
>>> s = 'What on earth are you doing here.'

>>> augmenter.augment(s)
translate(input, model, tokenizer, lang='es')[source]

SentenceTransformation class

https://github.com/makcedward/nlpaug

class textattack.transformations.sentence_transformations.sentence_transformation.SentenceTransformation[source]

Bases: textattack.transformations.transformation.Transformation