У меня возникают некоторые проблемы, пытающиеся разбить строку пунктуацией. В частности, каждый символ, принадлежащий string.punctuation. Например, для строкиТокенизировать строку, основанную на пунктуации
Вход:
"Hi. How2 are you doing?? "
Я хотел бы вывод:
['Hi', '.', 'How2', 'are', 'you', 'doing', '?', '?')
Для справки string.punctuation является:
'!"#$%&\'()*+,-./:;<=>[email protected][\\]^_`{|}~'
Я хотел бы любой символ в строке, чтобы быть ее собственным токеном.
Я в настоящее время пробовал использовать re.split()
. Тем не менее, все, что мне удалось достичь, - это разделение на основе символов, отличных от слов. Например:
print([i for i in re.split(r'(\W+)', 'hi. how are you doing') if i])
, который дает выход:
['hi', '. ', 'how', ' ', 'are', ' ', 'you', ' ', 'doing', '??']
Кроме того, два '??'
должны быть разделены. Какие-либо предложения?
Просто небольшой комментарий, вам не нужно указывать [i для i в re.split (...), если i] ... " если я "полностью избыточен, и если вы действительно не можете просто сказать print (re.split (...)) <Я не знаю, я не знаком с печатью Python 3() или разделом re-модуля ()> вы можете просто сказать print (list (re.split())) –