我正在尝试在python中实现一个tokeniser(不使用NLTK库),它使用空格将字符串拆分为单词。示例用法是:
>> tokens = tokenise1(“A (small, simple) example”)
>> tokens
[‘A’, ‘(small,’, ‘simple)’, ‘example’]
我可以使用正则表达式,但我的返回值包括我不想要的空格。如何根据示例用法获得正确的返回值?
到目前为止我所拥有的是:
def tokenise1(string):
return re.split(r'(\S+)', string)
然后它返回:
['', 'A', ' ', '(small,', ' ', 'simple)', ' ', 'example', '']
所以我需要摆脱回报中的空白区域
答案 0 :(得分:-1)
输出有空格,因为您使用()
捕获它们。相反,你可以像
re.split(r'\s+', string)
['A', '(small,', 'simple)', 'example']
\s+
匹配一个或多个空格。