Como tirar a pontuação a partir de uma string em Python
- 
          
            Utilizar métodos de classe stringpara tirar pontuação a partir de uma string em Python
- 
          
            Utilize regexpara tirar pontuação de uma string em Python
- 
          
            Utilize string.punctuationpara tirar pontuação de uma string em Python
- 
          
            Use replace()para retirar a pontuação de uma string em Python
 
Este tutorial discute métodos para tirar a pontuação de um string em Python. É um passo especificamente útil no pré-processamento e limpeza de dados textuais para PNL.
Utilizar métodos de classe string para tirar pontuação a partir de uma string em Python
    
Podemos utilizar as funções embutidas fornecidas na classe String para tirar a pontuação de um string em Python.
str.maketrans cria uma tabela de tradução contendo o mapeamento entre dois caracteres. Neste caso, queremos remover todas as pontuações, portanto str.maketrans('', '', string.punctuation) cria um mapeamento de string vazia para string vazia, e pontuações para Nenhuma.
Método translate aplica estes mapeamentos à string dada, removendo assim as pontuações. O exemplo abaixo ilustra isto.
s = "string. With. Punctuations!?"
out = s.translate(str.maketrans("", "", string.punctuation))
print(out)
Resultado:
'string With Punctuations'
O método acima remove todas as pontuações de uma determinada string de entrada.
Utilize regex para tirar pontuação de uma string em Python
Também podemos utilizar o regex para tirar a pontuação de um string em Python. O padrão regex [^\w\s] captura tudo o que não é uma palavra ou espaço em branco (ou seja, as pontuações) e o substitui por uma string vazia. O exemplo abaixo ilustra isto.
import re
s = "string. With. Punctuation?"
out = re.sub(r"[^\w\s]", "", s)
print(out)
Resultado:
'string With Punctuations'
Utilize string.punctuation para tirar pontuação de uma string em Python
É semelhante ao primeiro método discutido. O string.punctuation contém todos os caracteres considerados pontuação em inglês. Podemos utilizar esta lista e excluir todas as pontuações de uma string. O exemplo abaixo ilustra isto.
s = "string. With. Punctuation?"
out = "".join([i for i in s if i not in string.punctuation])
print(out)
Resultado:
'string With Punctuations'
Use replace() para retirar a pontuação de uma string em Python
Também podemos utilizar replace() para tirar a pontuação de um string em Python. Novamente, utilizamos tring.punctuation para definir uma lista de pontuação e depois substituímos todas as pontuações por uma string vazia para tirar as pontuações. O exemplo abaixo ilustra isso.
s = "string. With. Punctuation?"
punct = string.punctuation
for c in punct:
    s = s.replace(c, "")
print(s)
Resultado:
'string With Punctuations'