Comment enlever la ponctuation d'une chaîne de caractères en Python

Hassan Saeed 30 janvier 2023
  1. Utiliser les méthodes de classe string pour retirer la ponctuation d’une chaîne de caractères en Python
  2. Utiliser regex pour supprimer les ponctuations d’une chaîne en Python
  3. Utilisez string.punctuation pour supprimer la ponctuation d’une chaîne en Python
  4. Utilisez replace() pour supprimer la ponctuation d’une chaîne en Python
Comment enlever la ponctuation d'une chaîne de caractères en Python

Ce tutoriel traite des méthodes permettant de supprimer la ponctuation d’une chaîne de caractères en Python. Il s’agit d’une étape particulièrement utile pour le prétraitement et le nettoyage des données textuelles pour la PNL.

Utiliser les méthodes de classe string pour retirer la ponctuation d’une chaîne de caractères en Python

Nous pouvons utiliser les fonctions intégrées fournies dans la classe string pour retirer la ponctuation d’une chaîne en Python.

str.maketrans crée une table de traduction contenant la correspondance entre deux caractères. Dans ce cas, nous voulons supprimer toutes les ponctuations, c’est pourquoi str.maketrans('', '', string.punctuation) crée une correspondance entre une chaîne vide et une chaîne vide, et entre les ponctuations et Aucune.

La méthode translate applique ces correspondances à la chaîne donnée, supprimant ainsi les ponctuations. L’exemple ci-dessous illustre ce phénomène.

s = "string. With. Punctuations!?"
out = s.translate(str.maketrans("", "", string.punctuation))
print(out)

Production:

'string With Punctuations'

La méthode ci-dessus supprime toutes les ponctuations d’une chaîne de caractères d’entrée donnée.

Utiliser regex pour supprimer les ponctuations d’une chaîne en Python

Nous pouvons également utiliser le regex pour enlever la ponctuation d’une chaîne en Python. Le modèle de regex [^\w\s] capture tout ce qui n’est pas un mot ou des espaces (c’est-à-dire les ponctuations) et le remplace par une chaîne vide. L’exemple ci-dessous en est une illustration.

import re

s = "string. With. Punctuation?"
out = re.sub(r"[^\w\s]", "", s)
print(out)

Production:

'string With Punctuations'

Utilisez string.punctuation pour supprimer la ponctuation d’une chaîne en Python

Elle est similaire à la première méthode discutée. La string.punctuation contient tous les caractères considérés comme une ponctuation en anglais. Nous pouvons utiliser cette liste et exclure toutes les ponctuations d’une chaîne de caractères. L’exemple ci-dessous en est une illustration.

s = "string. With. Punctuation?"

out = "".join([i for i in s if i not in string.punctuation])
print(out)

Production:

'string With Punctuations'

Utilisez replace() pour supprimer la ponctuation d’une chaîne en Python

Nous pouvons également utiliser replace() pour supprimer la ponctuation d’une chaîne en Python. Encore une fois, nous utilisons string.punctuation pour définir une liste de ponctuations et ensuite remplacer toutes les ponctuations par une chaîne vide pour éliminer les ponctuations. L’exemple ci-dessous illustre ce principe.

s = "string. With. Punctuation?"

punct = string.punctuation
for c in punct:
    s = s.replace(c, "")
print(s)

Production:

'string With Punctuations'

Article connexe - Python String