def make_words(text):
    """
    make a list of words from a large bunch of text

    Strips all the punctuation and other stuff from a
    large string, and returns a list of words
    """
    replace_punc = [('-', ' '),
                    (',', ''),
                    (',', ''),
                    ('.', ''),
                    (')', ''),
                    ('(', ''),
                    ('"', '')]

    # make a translation table for str.translate
    table = {}
    for orig, replace in replace_punc:
        table[ord(orig)] = replace
    text = text.translate(table)
    # lower-case everything to remove that complication:
    text = text.lower()

    # split into words
    words = text.split()

    # remove the bare single quotes: "'" is both a quote and an apostrophe
    # and capitalize "i"
    words2 = []
    for word in words:
        word = "" if word == "'" else word  # remove quote by itself
        word = "I" if word == 'i' else word
        word = word[1:] if word.startswith("'") else word
        word = word[:-1] if word.endswith("'") else word
        words2.append(word)
    return words2