pyspark - 一个关于 tf-idf 使用 pyspark 的概念问题
问题描述
在 pyspark 的官方文档中,他们有一个 tf-idf 的示例。
hashingTF = HashingTF()
tf = hashingTF.transform(documents)
tf.cache()
idf = IDF().fit(tf)
tfidf = idf.transform(tf)
我也准备好在其他来源中使用类似的代码。问题是:为什么该数据框的名称是 tfidf?结果是否等于 tf * idf 还是仅存储 idf?如果是这样,如何计算 tf*idf?
解决方案
如文档HashingTF
中所述,Transformer
它采用一组标记并生成词频向量。TF 包含在此步骤中。
hashingTF = HashingTF(inputCol="words", outputCol="rawFeatures", numFeatures=20)
featurizedData = hashingTF.transform(wordsData)
Next -IDF
是Estimator
适合数据集并生成IDFModel
. IDF 被纳入此步骤,以IDFModel
降低频繁出现的令牌的权重。
idf = IDF(inputCol="rawFeatures", outputCol="features")
idf
估计器必须适合生产变压器。因此,最后的步骤是:
idfModel = idf.fit(featurizedData)
rescaledData = idfModel.transform(featurizedData)
推荐阅读
- java - 如何在列表视图中为每个列表项添加三个点菜单?
- java - 在java中获取可选类型列表
- c# - 从 Datagridview 数据更新 SQL 数据库:不支持为 UpdateCommand 生成动态 SQL
- mysql - MYSQL 从子查询中插入排序值
- android - 如何在Android Studio 3.4 中修改Image Asset Studio 创建的Lanucher Icons?
- python - 我想获得 Entrybox 和 Checkbutton 的值,但我什么也没得到,为什么?(我是 tkinter 的新手)
- php - 如何保存最小值价格?
- hdf5 - HDFql 获取组的大小
- c++ - 使(剥离的)DLL 无法与 C++ 控制台应用程序一起使用
- c++ - 数组变量周围的堆栈损坏