开始使用免费开始使用

停用词与哈希

接下来要移除 stopwords,然后应用哈希技巧,并将结果转换为 TF-IDF。

先快速回顾这些概念:

  • 哈希技巧能以快速且节省空间的方式,将一个非常大(甚至可能是无限大)的集合(此处为所有短信中的单词)映射到较小、有限的取值范围。
  • TF-IDF 矩阵反映一个词对每个文档的重要性。它同时考虑该词在每个文档中的出现频率,以及该词在整个文档集合中的出现频率。

分词后的短信数据存放在 smswords 列中。您已经清理了数据中的空格处理,使分词文本更整洁。

本练习是课程的一部分

使用 PySpark 进行机器学习

查看课程

练习说明

  • 导入 StopWordsRemoverHashingTFIDF 类。
  • 创建一个 StopWordsRemover 对象(输入列为 words,输出列为 terms)。应用到 sms
  • 创建一个 HashingTF 对象(输入为上一步的结果,输出列为 hash)。应用到 wrangled
  • 创建一个 IDF 对象(输入为上一步的结果,输出列为 features)。应用到 wrangled

交互式实操练习

通过完成这段示例代码来试试这个练习。

from pyspark.ml.____ import ____, ____, ____

# Remove stopwords
wrangled = ____(inputCol=____, outputCol=____)\
      .____(sms)

# Apply the hashing trick
wrangled = ____(____, ____, numFeatures=1024)\
      .____(wrangled)

# Convert hashed symbols to TF-IDF
tf_idf = ____(____, ____)\
      .____(wrangled).____(wrangled)
      
tf_idf.select('terms', 'features').show(4, truncate=False)
编辑并运行代码