在Python中拆分文本,但将逗号、句号等视为单独的“单词”

4
我正在尝试将句子分解为单词。通常我会使用textstring.split(' '),但我还想将逗号和句号分开,例如"No, thank you"应该被分成["No", ",", "thank", "you"]而不是["No,", "thank", "you"]
我考虑过这样做:
textstring.replace(",", " ,").replace(".", " .").split(' ')

但这种方法感觉有点不正规。有没有更好的方法来做到这一点?

你有研究过nltk吗? - jonrsharpe
1个回答

5
我们可以用这样的正则表达式将它们分开。
textstring = "No, thank you"
import re
print re.findall(r'\w+|\S+', textstring)
# ['No', ',', 'thank', 'you']

\w+ 将匹配所有连续的字母数字字符和 _\S 将匹配所有连续的非空格字符。而 | 表示匹配 \w+ 或者 \S+ 部分中的任意一个。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接