import re


def remove_non_words(line):
    """
    Takes a string and removes characters that serve no purpose for
    our task. This includes puncuation, digits and special characters.
    """
    non_word = [
        '`', '!', '"', '£', '$', '%', '^', '&', '*', '(', ')',
        '?', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
        '-', '=', '¬', '+', '_', '\\', '|', ',', '.', '/', ';',
        '\'', '#', '[', ']', '{', '}', ':', '@', '~', '<', '>',
    ]

    regex = '[' + re.escape(''.join(non_word)) + ']'

    # replace non-word characters with spaces
    clean = re.sub(regex, ' ', line)

    # replace instances of two or more spaces with a single space
    return re.sub('\s+', ' ', clean).strip()