Elimina la punteggiatura da una stringa in Python
- 
          
            Usa i metodi di classe stringper rimuovere la punteggiatura da una stringa in Python
- 
          
            Usa regexper rimuovere la punteggiatura da una stringa in Python
- 
          
            Usa string.punctuationper rimuovere la punteggiatura da una stringa in Python
- 
          
            Usa replace()per rimuovere 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
- Come controllare se una stringa è vuota in un modo pythonico
- Converti una stringa in nome variabile in Python
- Come rimuovere gli spazi bianchi in una stringa in Python
- Estrai numeri da una stringa in Python
- Come convertire una stringa in datario in Python
- Come convertire una stringa in minuscola in Python 2 e 3