2017-04-26 60 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)'''。它的效率更高 –

相關問題