Python | Extraer palabras de una cadena dada

| | | | | | | | | | | | | | | | | | |

Método # 1: Usando split()
Usando la función split, podemos dividir una cadena en una lista de palabras, y esta es la más común y método recomendado si alguien quiere completar esta tarea específica. Pero la desventaja es que no funciona en los casos en que la cadena contiene signos de puntuación.


# Código de demostración de Python3 < br> # extraer palabras de una cadena
# usando split ()


< clase de código ="comentarios "> # cadena de inicialización

cadena_de_prueba = "Geeksforgeeks es el mejor portal de informática"


# imprime la línea original

imprimir ( "La cadena original es:" + test_string)


# usando split ()
# extraer palabras de la cadena

r es = test_string.split()


# imprimir resultado

print ( "La lista de palabras es:" + str (res) )

Salir:

La cadena original es: Geeksforgeeks es el mejor portal de informática
El lista de palabras es: [`Geeksforgeeks`,` is`, `best`, `Computer`, `Science`, `Portal`]

Método n.° 2: usar regex (findall ())
En los casos que contienen todos los caracteres especiales y signos de puntuación, como se mencionó anteriormente, tr El método tradicional de búsqueda de palabras en una cadena mediante la división puede fallar y por lo tanto, requiere expresiones regulares para realizar esta tarea. La función findall devuelve una lista después de filtrar la cadena y extraer palabras, ignorando los signos de puntuación.


# Python3 demo código
# extraer palabras de una cadena
# usando la expresión regular (findall())

import re


# cadena de inicialización

test_string = "Geeksforgeeks , es el mejor @#Portal de Informática. !!!"


# imprime la línea original

imprime ( "La cadena original es: " + test_string)


# usando la expresión regular (findall()) < /código>
# extraer palabras de la cadena

res = re.findall (r `w +` , cadena_de_prueba)


# imprimir resultado

print < clase de código = "simple"> ( "La lista de palabras es:" + str (res))

Salida:

La cadena original es: Geeksforgeeks, es mejor @ # Computer Science Portal. !!!
La lista de palabras es: [`Geeksforgeeks`, `is`, `best`, `Computer`, `Science`, `Portal`]

Método # 3: Usar regex () + string.punctuation
Este método también usó expresiones regulares, pero la función obtener toda la cadena de puntuación se usa para ignorar toda la puntuación y obtener la cadena de resultado filtrada.


# Código de demostración de Python3
# extraer palabras de la cadena < br> # usando regex () + cadena.puntuación

importar re

importar cadena


< clase de código = "comentarios"> # cadena de inicialización

cadena_de_prueba = " Geeksforgeeks, es el mejor @ # Portal de Ciencias de la Computación. !!! "


# imprime la cadena original

imprime ( " La cadena original es: " + cadena_de_prueba)


# usando regex () + cadena.puntuación
# extraer palabras de la cadena

res = re.sub ( `[` + cadena.puntuación + `] ` ,` `, cadena_de_prueba ) .split ()


# imprimir resultado

imprimir ( "La lista de palabras es:" + str ( res))

Salir:

La cadena original es: Geeksforgeeks, es mejor @ # Portal de Ciencias de la Computación. !!!
La lista de palabras es: [`Geeksforgeeks`, `is`, `best`, `Computer`, `Science`, `Portal`]