如何将自定义停用词列表添加到 StopWordsRemover
How to add custom stop word list to StopWordsRemover
我在我的 pyspark 数据帧上使用 pyspark.ml.feature.StopWordsRemover class。它有 ID 和 Text 列。除了提供的默认停用词列表外,我还想添加自己的自定义列表以从字符串中删除所有数值。
我看到有一个方法可以为此 class 添加 setStopWords。我想我正在努力寻找使用此方法的正确语法。
from pyspark.sql.functions import *
from pyspark.ml.feature import *
a = StopWordsRemover(inputCol="words", outputCol="filtered")
b = a.transform(df)
上面的代码在过滤列中给出了预期的结果,但它只删除/停止了标准词。我正在寻找一种方法来添加我自己的自定义列表,其中包含我希望过滤的更多单词和数值。
你可以这样指定它:
stopwordList = ["word1","word2","word3"]
StopWordsRemover(inputCol="words", outputCol="filtered" ,stopWords=stopwordList)
小记:
上述解决方案将原来的停用词列表替换为我们提供的列表。
如果除了 existing/predefined 停用词之外还想添加自己的停用词,那么我们需要在将列表作为参数传递给 StopWordsRemover() 之前附加原始列表。我们转换为设置以删除任何重复项。
stopwordList = ["word1","word2","word3"]
stopwordList.extend(StopWordsRemover().getStopWords())
stopwordList = list(set(stopwordList))#optionnal
StopWordsRemover(inputCol="words", outputCol="filtered" ,stopWords=stopwordList)
我在我的 pyspark 数据帧上使用 pyspark.ml.feature.StopWordsRemover class。它有 ID 和 Text 列。除了提供的默认停用词列表外,我还想添加自己的自定义列表以从字符串中删除所有数值。
我看到有一个方法可以为此 class 添加 setStopWords。我想我正在努力寻找使用此方法的正确语法。
from pyspark.sql.functions import *
from pyspark.ml.feature import *
a = StopWordsRemover(inputCol="words", outputCol="filtered")
b = a.transform(df)
上面的代码在过滤列中给出了预期的结果,但它只删除/停止了标准词。我正在寻找一种方法来添加我自己的自定义列表,其中包含我希望过滤的更多单词和数值。
你可以这样指定它:
stopwordList = ["word1","word2","word3"]
StopWordsRemover(inputCol="words", outputCol="filtered" ,stopWords=stopwordList)
小记:
上述解决方案将原来的停用词列表替换为我们提供的列表。
如果除了 existing/predefined 停用词之外还想添加自己的停用词,那么我们需要在将列表作为参数传递给 StopWordsRemover() 之前附加原始列表。我们转换为设置以删除任何重复项。
stopwordList = ["word1","word2","word3"]
stopwordList.extend(StopWordsRemover().getStopWords())
stopwordList = list(set(stopwordList))#optionnal
StopWordsRemover(inputCol="words", outputCol="filtered" ,stopWords=stopwordList)