示例#1
0
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
示例#2
0
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
示例#3
0
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
示例#4
0
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