停用词与哈希
接下来要移除 stopwords,然后应用哈希技巧,并将结果转换为 TF-IDF。
先快速回顾这些概念:
- 哈希技巧能以快速且节省空间的方式,将一个非常大(甚至可能是无限大)的集合(此处为所有短信中的单词)映射到较小、有限的取值范围。
- TF-IDF 矩阵反映一个词对每个文档的重要性。它同时考虑该词在每个文档中的出现频率,以及该词在整个文档集合中的出现频率。
分词后的短信数据存放在 sms 的 words 列中。您已经清理了数据中的空格处理,使分词文本更整洁。
本练习是课程的一部分
使用 PySpark 进行机器学习
练习说明
- 导入
StopWordsRemover、HashingTF和IDF类。 - 创建一个
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)