def intensity_0(line): if line[0]: # If change value is 1 correct_line = line[1].split(" ") len_sen = len(correct_line) line = copy.copy(correct_line) int_range = [i for i in range(2, len_sen - 2)] if random.randint(0, 1): # choose adjacent if 1 or one word apart if len_sen > 20: changed = swap_adjacent(line, 5, int_range) elif 20 >= len_sen >= 10: changed = swap_adjacent(line, 3, int_range) elif 10 > len_sen >= 5: changed = swap_adjacent(line, 2, int_range) else: print(line) changed = swap_adjacent(line, 1, int_range) else: int_range[0] += 1 int_range[-1] -= 1 if len_sen > 30: changed = swap_apart(line, 3, int_range) elif 30 >= len_sen > 15: changed = swap_apart(line, 2, int_range) else: changed = swap_apart(line, 1, int_range) label = Label(False) label.assign(" ".join(correct_line), " ".join(changed)) return label
def intensity_1(line): if line[0]: correct_line = line[1].split(" ")[1:-1] # remove <START> and <END> len_sen = len(correct_line) line = copy.copy(correct_line) correct_line.insert(0, '<START>') correct_line.append('<END>') if len_sen > 40: changed = three_words_swap(line[:len_sen // 2], 2) changed.append(three_words_swap(line[len_sen // 2:], 2)) elif 40 >= len_sen > 20: changed = three_words_swap(line[:len_sen // 3], 1) changed.append( three_words_swap(line[len_sen // 3:2 * len_sen // 3], 1)) changed.append(three_words_swap(line[2 * len_sen // 3:], 1)) elif 20 >= len_sen > 10: changed = three_words_swap(line[:len_sen // 2], 1) changed.append(three_words_swap(line[len_sen // 2:], 1)) else: changed = three_words_swap(line, 1) changed.insert(0, '<START>') changed.append('<END>') answer = "" for value in changed: try: answer = answer + " " + value except: answer = answer + " " + " ".join(value) label = Label(False) label.assign(" ".join(correct_line), answer) return label
def convert_to_label(lines): label_list = [] for line in lines: if not line[0]: label = Label(True) label.assign(line[1]) label_list.append(label) return label_list
def intensity_4(line): if line[0]: correct_line = line[1].split(" ")[1:-1] len_sen = len(correct_line) line = copy.copy(correct_line) init_range = [i for i in range(len_sen)] correct_line.insert(0, '<START>') correct_line.append('<END>') num_words_random = round(len_sen * 0.75) choices = random.choices(init_range, k=num_words_random) for i in range(len(choices) // 2): line[choices[-(i + 1)]], line[choices[i]] = line[choices[i]], line[ choices[-(i + 1)]] line.insert(0, '<START>') line.append('<END>') label = Label(False) label.assign(" ".join(correct_line), " ".join(line)) return label