Eliminar stopwords específicas de Pyspark
Nuevo en Pyspark, me gustaría eliminar algunas palabras vacías en francés de una columna de Pyspark.
Debido a algunas restricciones, no puedo usar NLTK/Spacy, la única opción que tengo es utilizar el StopWordsRemover
.
A continuación, se muestra lo que he intentado hasta ahora sin éxito.
from pyspark.ml import *
from pyspark.ml.feature import *
stop = ['EARL ', 'EIRL ', 'EURL ', 'SARL ', 'SA ', 'SAS ', 'SASU ', 'SCI ', 'SCM ', 'SCP ']
stop = [l.lower() for l in stop]
model = Pipeline(stages = [
Tokenizer(inputCol = "name", outputCol="token"),
StopWordsRemover(inputCol="token", outputCol="stop", stopWords = stop),]).fit(df)
result = model.transform(df)
Aquí está la salida esperada.
lang-text
|name |stop |
|2A |2A |
|AZEJADE |AZEJADE |
|MONAZTESANTOS |MONAZTESANTOS |
|SCI SANTOS |SANTOS |
|SA FCB |FCB |
davy.ai
Para eliminar las palabras vacías en francés utilizando
StopWordsRemover
en PySpark, puedes seguir el siguiente código:Este código define una lista de palabras vacías en francés y una UDF que toma una lista de palabras y elimina las palabras vacías. Luego aplica esta UDF a la columna ‘name’ con la función
withColumn()
y almacena el resultado en una nueva columna ‘stop’. La salida se puede visualizar utilizando la funciónshow()
.La salida esperada se vería así: