2017-04-26 150 views
1

我在我的pyspark数据框上使用了pyspark.ml.feature.StopWordsRemover类。它有ID和文本列。除了提供的默认停止词列表之外,我想添加自己的自定义列表以从字符串中删除所有数值。如何将自定义停用词列表添加到StopWordsRemover

我可以看到有一种方法可以为这个类添加setStopWords。我想我正在努力使用正确的语法来使用这种方法。

from pyspark.sql.functions import * 
from pyspark.ml.feature import * 

a = StopWordsRemover(inputCol="words", outputCol="filtered") 
b = a.transform(df) 

上面的代码给了我在过滤列中的预期结果,但它只会删除/停止标准字。我正在寻找一种方法来添加我自己的自定义列表,该列表将包含更多希望过滤的单词和数字值。

回答

3

您可以使用此指定:

stopwordList = ["word1","word2","word3"] 

StopWordsRemover(inputCol="words", outputCol="filtered" ,stopWords=stopwordList) 
+0

谢谢@ML_TN – user2763088

+0

如何所有数值增加StopWrodList添加此便条:num_list =范围(0,99999) stopwordList =地图(STR ,num_list) – user2763088

+0

我不认为使用这样一个列表是明智的,因为对于每个令牌,它必须遍历列表中的每个元素并将其与令牌进行比较。我会建议使用正则表达式,例如'''re.sub(r“/ d +”,“”,text)'''。它的效率更高 –

相关问题