RegEx Tokenizer: Text in Wörter, Ziffern, Interpunktion und Abstand aufteilen (nichts löschen)

Ich fand fast die Antwort auf diese Frage in diesem Thread (Beispielbias 'Antwort); Ich muss jedoch eine Phrase in Wörter, Ziffern, Satzzeichen und Leerzeichen / Tabulatoren aufteilen. Ich brauche dies auch, um die Reihenfolge beizubehalten, in der jedes dieser Dinge vorkommt (was der Code in diesem Thread bereits tut).

Also, was ich gefunden habe, ist ungefähr so:

    from nltk.tokenize import *
    txt = "Today it's   07.May 2011. Or 2.999."
    regexp_tokenize(txt, pattern=r'\w+([.,]\w+)*|\S+')
    ['Today', 'it', "'s", '07.May', '2011', '.', 'Or', '2.999', '.']

Aber das ist die Art von Liste, die ich nachgeben muss:

    ['Today', ' ', 'it', "'s", ' ', '\t', '07.May', ' ', '2011', '.', ' ', 'Or', ' ', '2.999', '.']

Regex war schon immer eine meiner Schwachstellen, daher bin ich nach ein paar Stunden Recherche immer noch ratlos. Vielen Dank !!

8
задан Community 23 May 2017 в 12:33
поделиться