Вы можете сделать раскол на несколько символов с помощью re.split
...
from string import punctuation
import re
puncrx = re.compile(r'[{}\s]'.format(re.escape(punctuation)))
print filter(None, puncrx.split(your_tweet))
Или просто найти слова, которые содержат определенные смежные символы:
print re.findall(re.findall('[\w#@]+', s), your_tweet)
например:
print re.findall(r'[\[email protected]#]+', 'talking about #python with @someone is so much fun! Is there a 140 char limit? So not cool!')
# ['talking', 'about', '#python', 'with', '@someone', 'is', 'so', 'much', 'fun', 'Is', 'there', 'a', '140', 'char', 'limit', 'So', 'not', 'cool']
Вначале у меня был смайлик, но, конечно же, в конечном итоге они получают фильтрацию o ut с этим методом, так что о чем-то следует опасаться.
Любое простое решение, используя 'строку. пунктуация', несомненно, будет беспорядочна с смайликами и другими специальными символьными последовательностями. Если вас это волнует, вам следует подумать об использовании сборки токенизатора для твитов. – Jared