目录

特征转换 - StopWordsRemover

优质
小牛编辑
125浏览
2023-12-01

  Stop words是那些需要从输入数据中排除掉的词。删除这些词的原因是,
这些词出现频繁,并没有携带太多有意义的信息。

  StopWordsRemover输入一串句子,将这些输入句子中的停用词全部删掉。停用词列表是通过stopWords参数来指定的。
一些语言的默认停用词可以通过调用StopWordsRemover.loadDefaultStopWords(language)来获得。可以用的语言选项有danish, dutch, english, finnish, french, german,
hungarian, italian, norwegian, portuguese, russian, spanish, swedish以及 turkish。参数caseSensitive表示是否对大小写敏感,默认为false

例子

  假设我们有下面的DataFrame,列名为idraw

  1. id | raw
  2. ----|----------
  3. 0 | [I, saw, the, red, baloon]
  4. 1 | [Mary, had, a, little, lamb]

  把raw作为输入列,filtered作为输出列,通过应用StopWordsRemover我们可以得到下面的结果。

  1. id | raw | filtered
  2. ----|-----------------------------|--------------------
  3. 0 | [I, saw, the, red, baloon] | [saw, red, baloon]
  4. 1 | [Mary, had, a, little, lamb]|[Mary, little, lamb]

  下面是代码调用的例子。

  1. import org.apache.spark.ml.feature.StopWordsRemover
  2. val remover = new StopWordsRemover()
  3. .setInputCol("raw")
  4. .setOutputCol("filtered")
  5. val dataSet = spark.createDataFrame(Seq(
  6. (0, Seq("I", "saw", "the", "red", "baloon")),
  7. (1, Seq("Mary", "had", "a", "little", "lamb"))
  8. )).toDF("id", "raw")
  9. remover.transform(dataSet).show()