为什么.strip()
在使用时不会删除标点符号,translate()
的方式如何?
s = 'Hello world! Good-bye world?'
s = s.strip(string.punctuation + string.whitespace).lower()
给出:'hello world! good-bye world'
s = translate(None, string.punctuation)
给出:hello world goodbye world
答案 0 :(得分:0)
如果你想要一个好的语言工具,你也可以使用nltk。对于这样的事情非常有效,如果你想改进,你可以使用标记器。
答案 1 :(得分:0)
在以下主题中对此主题进行了很好的讨论:Best way to strip punctuation from a string in Python
我找到的一个解决方案是:
re.sub('[%s]'%(re.escape(string.punctuation)),' ', s1)
如果你想替换什么 - 压缩标点,那么:
re.sub('[%s]'%(re.escape(string.punctuation)),'', s1)
我们建立了一个小心类,小心翼翼地逃避标点符号。然后使用空格字符对其中任何一个进行子化。