From 40343c05ee01607d564f628cb6a08e0aa3f6ac75 Mon Sep 17 00:00:00 2001 From: jstzwj <1103870790@qq.com> Date: Tue, 21 Nov 2023 15:42:12 +0800 Subject: [PATCH] word_swap_qwerty random_one bug fix --- .../transformations/word_swaps/word_swap_qwerty.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/textattack/transformations/word_swaps/word_swap_qwerty.py b/textattack/transformations/word_swaps/word_swap_qwerty.py index 1bdec2a9e..34a1a8530 100644 --- a/textattack/transformations/word_swaps/word_swap_qwerty.py +++ b/textattack/transformations/word_swaps/word_swap_qwerty.py @@ -90,10 +90,12 @@ def _get_replacement_words(self, word): if self.random_one: i = random.randrange(start_idx, end_idx + 1) - candidate_word = ( - word[:i] + random.choice(self._get_adjacent(word[i])) + word[i + 1 :] - ) - candidate_words.append(candidate_word) + adjacent_chars = self._get_adjacent(word[i]) + if len(adjacent_chars) > 0: + candidate_word = ( + word[:i] + random.choice(adjacent_chars) + word[i + 1 :] + ) + candidate_words.append(candidate_word) else: for i in range(start_idx, end_idx + 1): for swap_key in self._get_adjacent(word[i]):