'A list of words, where punctuation marks are split from words.'

def __init__(self, string='', token=['word']):

    s = RE_PUNCTUATION.sub('    \\1    ', string)
    s = re.sub('\\s+', '    ', s)
    s = re.sub("    '    (d|m|s|ll|re|ve)", "    '\\1", s)
    s = s.replace("n    '    t", "    n't")
    s = s.split('    ')
    list.__init__(self, (Word(self, w, index=i) for (i, w) in enumerate(s)))
