Como tirar a pontuação a partir de uma string em Python

Hassan Saeed 30 janeiro 2023
  1. Utilizar métodos de classe string para tirar pontuação a partir de uma string em Python
  2. Utilize regex para tirar pontuação de uma string em Python
  3. Utilize string.punctuation para tirar pontuação de uma string em Python
  4. Use replace() para retirar a pontuação de uma string em Python
Como tirar a pontuação a partir 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'

Artigo relacionado - Python String