Cómo quitar la puntuación de una cadena en Python

Hassan Saeed 30 enero 2023
  1. Usar métodos de clase string para quitar la puntuación de una cadena en Python
  2. Use regex para quitar la puntuación de una cadena en Python
  3. Usa string.punctuation para quitar la puntuación de una cadena en Python
  4. Use replace() para quitar la puntuación de una cadena en Python
Cómo quitar la puntuación de una cadena en Python

Este tutorial discute los métodos para quitar la puntuación de una cadena en Python. Es un paso específicamente útil en el preprocesamiento y la limpieza de los datos de texto para la PNL.

Usar métodos de clase string para quitar la puntuación de una cadena en Python

Podemos usar las funciones incorporadas en la clase cadena para quitar la puntuación de una cadena en Python.

String crea una tabla de traducción que contiene el mapeo entre dos caracteres. En este caso, queremos eliminar todos los signos de puntuación, por lo que str.maketrans('', '', string.punctuation) crea un mapeo de una cadena vacía a otra vacía, y los signos de puntuación a Ninguna.

El método translate aplica estos mapeos a la cadena dada, eliminando así los signos de puntuación. El siguiente ejemplo ilustra esto.

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

Resultado:

'string With Punctuations'

El método anterior elimina todos los signos de puntuación de una cadena de entrada dada.

Use regex para quitar la puntuación de una cadena en Python

También podemos usar regex para quitar la puntuación de una cadena en Python. El patrón de expresiones regulares [^\w\s] captura todo lo que no es una palabra o un espacio en blanco (es decir, las puntuaciones) y lo reemplaza con una cadena vacía. El siguiente ejemplo ilustra esto.

import re

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

Resultado:

'string With Punctuations'

Usa string.punctuation para quitar la puntuación de una cadena en Python

Es similar al primer método discutido. string.punctuation contiene todos los caracteres considerados de puntuación en inglés. Podemos usar esta lista y excluir todas las puntuaciones de una cadena. El siguiente ejemplo lo ilustra.

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 quitar la puntuación de una cadena en Python

También podemos usar replace() para quitar la puntuación de una cadena en Python. De nuevo, usamos string.punctuation para definir una lista de puntuaciones y luego reemplazamos todas las puntuaciones con una cadena vacía para eliminarlas. El siguiente ejemplo ilustra esto.

s = "string. With. Punctuation?"

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

Resultado:

'string With Punctuations'

Artículo relacionado - Python String