Dividindo uma string em palavras e pontuação
Estou tentando dividir uma string em palavras e pontuação, adicionando a pontuação à lista produzida pela divisão.
Por exemplo:
>>> c = "help, me"
>>> print c.split()
['help,', 'me']
Eu realmente quero que a lista seja:
['help', ',', 'me']
Então, eu quero que a string seja dividida em espaço em branco com a pontuação dividida das palavras.
Tentei analisar a string primeiro e, em seguida, execute a divisão:
>>> for character in c:
... if character in ".,;!?":
... outputCharacter = " %s" % character
... else:
... outputCharacter = character
... separatedPunctuation += outputCharacter
>>> print separatedPunctuation
help , me
>>> print separatedPunctuation.split()
['help', ',', 'me']
Isso produz o resultado que eu quero, mas é dolorosamente lento em arquivos grandes.
Existe uma maneira de fazer isso com mais eficiência?