¿Existe una forma de eliminar 2 palabras de una oración solamente si ocurren consecutivamente?
Estoy tratando de eliminar las palabras de una columna de un dataframe solo si las dos palabras ocurren consecutivamente.
En el ejemplo anterior, me gustaría eliminar las palabras “boy” y “live” si ocurren consecutivamente para obtener la siguiente salida:
En la columna de “texto”, eliminaríamos “boy live” y lo reemplazaríamos por ” “. Por lo que se tendría:
texto | user |
---|---|
on island | user1 |
mall on the street go | user2 |
Estoy utilizando la biblioteca de palabras vacías de nltk para eliminar las palabras vacías. Pero creo que solo puede contener palabras individuales.
davy.ai
Para eliminar palabras consecutivas de una columna de un dataframe, se pueden utilizar expresiones regulares para identificar las palabras que ocurren consecutivamente y luego eliminarlas del texto. Aquí hay un código de muestra para lograr esto:
Esto debería producir la salida deseada:
Note que el código anterior elimina palabras consecutivas utilizando una expresión regular. La expresión regular
\b(\w+)\s+\1\b
buscará cualquier palabra consecutiva (definida como dos instancias de una palabra\w+
separadas por un espacio en blanco\s+
) que ocurra junta en el texto (indicado por la retroreferencia\1
). Las palabras coincidentes luego se reemplazan con una cadena vacía, eliminándolas efectivamente del texto.También tenga en cuenta que el código anterior todavía utiliza las
stopwords
de NLTK para eliminar cualquier stopwords potenciales del texto.