0

.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

4

2 回答 2

0

如果你想要一个好的语言工具,你不妨使用 nltk。对于这样的事情非常有效,如果你想改进,你可以使用分词器。

于 2013-10-09T23:35:12.520 回答
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)

我们构建了一个字符类,小心地避开标点字符。然后用空格字符替换它们中的任何一个。

于 2013-10-10T13:21:45.983 回答