删除 RDD、Pyspark 中的停用词

Posted

技术标签:

【中文标题】删除 RDD、Pyspark 中的停用词【英文标题】:Remove Stopwords in a RDD, Pyspark 【发布时间】:2021-09-08 08:53:38 【问题描述】:

我有一个 RDD,其中包含从文本文件中读取的文本。我想删除文本文件中的所有停用词。有一个 pyspark.ml.feature.StopWordsRemover 可以在 Dataframe 上执行相同的功能,但我想在 RDD 上执行此操作。有办法吗?

步骤:

txt = sc.textFile('/Path') 
txt.collect()  

哪个输出:

["23890098\tShlykov, a hard-working taxi driver and Lyosha"]

我想删除 txt RDD 中存在的所有停用词。 期望的输出:

["23890098\tShlykov, hard-working taxi driver Lyosha"]

【问题讨论】:

【参考方案1】:

您可以列出停用词,然后使用 lambda 函数来映射和过滤输出。

stop_words = ['a','and','the','is']

txt = sc.textFile('/Path')

filtered_txt = txt.flatMap(lambda x: x.split()).filter(lambda x: x not in stop_words)

filtered_txt.first()

【讨论】:

以上是关于删除 RDD、Pyspark 中的停用词的主要内容,如果未能解决你的问题,请参考以下文章

从python文件中删除文本文件中的停用词

如何从 R 中的 ngram 标记列表中有效地删除停用词

Bigram 在 weka 中包含停用词?

R tm 文本挖掘中的自冲突停用词

如果行只包含停用词中的任何一行,则从文本文件中删除这些行

如何使用 nltk 或 python 删除停用词