Elimina la punteggiatura da una stringa in Python

Hassan Saeed 30 gennaio 2023
  1. Usa i metodi di classe string per rimuovere la punteggiatura da una stringa in Python
  2. Usa regex per rimuovere la punteggiatura da una stringa in Python
  3. Usa string.punctuation per rimuovere la punteggiatura da una stringa in Python
  4. Usa replace() per rimuovere la punteggiatura da una stringa in Python
Elimina la punteggiatura da una stringa in Python

Questo tutorial discute i metodi per rimuovere la punteggiatura da una stringa in Python. È un passaggio particolarmente utile nella preelaborazione e nella pulizia dei dati testuali per la PNL.

Usa i metodi di classe string per rimuovere la punteggiatura da una stringa in Python

Possiamo usare le funzioni integrate fornite nella classe String per rimuovere la punteggiatura da una stringa in Python.

str.maketrans crea una tabella di traduzione contenente la mappatura tra due caratteri. In questo caso, vogliamo rimuovere tutti i segni di punteggiatura, quindi str.maketrans('', '', string.punctuation) crea la mappatura da una stringa vuota a una stringa vuota e la punteggiatura a Nessuno.

Il metodo translate applica queste mappature alla stringa data rimuovendo così i segni di punteggiatura. L’esempio seguente lo illustra.

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

Produzione:

'string With Punctuations'

Il metodo precedente rimuove tutti i segni di punteggiatura da una data stringa di input.

Usa regex per rimuovere la punteggiatura da una stringa in Python

Possiamo anche usare regex per rimuovere la punteggiatura da una stringa in Python. Il pattern regex [^\w\s] cattura tutto ciò che non è una parola o uno spazio bianco (cioè i segni di punteggiatura) e lo sostituisce con una stringa vuota. L’esempio seguente lo illustra.

import re

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

Produzione:

'string With Punctuations'

Usa string.punctuation per rimuovere la punteggiatura da una stringa in Python

È simile al primo metodo discusso. string.punctuation contiene tutti i caratteri considerati punteggiatura in inglese. Possiamo usare questo lista ed escludere tutti i segni di punteggiatura da una stringa. L’esempio seguente lo illustra.

s = "string. With. Punctuation?"

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

Produzione:

'string With Punctuations'

Usa replace() per rimuovere la punteggiatura da una stringa in Python

Possiamo anche usare replace() per rimuovere la punteggiatura da una stringa in Python. Ancora una volta, usiamo string.punctuation per definire una lista di punteggiatura e poi sostituiamo tutte le punteggiatura con una stringa vuota per eliminare i segni di punteggiatura. L’esempio seguente lo illustra.

s = "string. With. Punctuation?"

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

Produzione:

'string With Punctuations'

Articolo correlato - Python String