【问题标题】:Python remove punctuation from textPython从文本中删除标点符号
【发布时间】:2013-11-19 07:00:09
【问题描述】:

我正在阅读一千行意大利语文本并创建一个独特单词的字典。 我尝试了两种删除标点符号的方法: 使用字符串

for p in string.punctuation:
     word = word.replace(p, str())

或:

for line in f:
    for word in line.split():
        stripped_text =""
        for char in word:
            if char in '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~>><<<<?>>?123456789':
               char = ''
               stripped_text += char

我的问题是这仍然包含标点符号:

{'<<Dicerolti': 1,'piage>>.': 1,'succia?>>.': 1,…}

有什么想法吗?

【问题讨论】:

  • 抱歉返回的字典没有正确输出:{'>.': 1, 'Nacqui': 1, 'angelo': 1, 'condotta.': 1, 'i': 258, 'voi': 91, 'digiunto.': 1, 'quei:': 1, 'porta.': 2, 'porta,': 5, 'via.': 2, ' consorto': 1, 'via,': 14, 'fosca,': 1, 'vince': 10, 'Lancialotto': 1, 'fosca!': 1, 'vinci': 2, 'voi?>>; ':1,
  • 您可以edit您的问题更新信息。
  • 谢谢你。我已经查看了您参考中的解决方案,但我有些迷茫。我想知道未删除的特定标点符号对意大利语来说是否“特殊”,尤其是>。这些替换英文中的“和”。我试过 word.translate(None, string.punctuation),但得到一个类型错误。接受一个论点,给出两个。同样在porta上面的字典中返回四次,一次porta;然后是门:门。和门,。所以我的论点反而落空了。如果可能需要更多帮助,请

标签: python python-3.x


【解决方案1】:

您可以为此使用 re 模块和一点 printf 风格的技巧来构建一个正则表达式来标记任何要替换的标点符号。

import string
import re
a = '>>some_crazy_string..!'
print re.sub('[%s]' % string.punctuation,'',a)

打印出来

一些疯狂的字符串

我已经多次使用这个技巧来“匿名”日志文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-07
    • 2011-05-21
    • 2019-08-04
    相关资源
    最近更新 更多