Концептуальный вопрос о tf-idf с использованием pyspark - PullRequest
0 голосов
/ 19 декабря 2018

В официальной документации 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?

1 Ответ

0 голосов
/ 23 декабря 2018

Как упомянуто в документации , HashingTF - это Transformer, который принимает наборы токенов и генерирует векторы частотных векторов.TF включен в этот шаг.

hashingTF = HashingTF(inputCol="words", outputCol="rawFeatures", numFeatures=20)
featurizedData = hashingTF.transform(wordsData)

Далее - IDF - это Estimator, который помещается в набор данных и создает IDFModel.IDF включается в этот шаг как IDFModel токены понижающего веса, которые встречаются часто.

idf = IDF(inputCol="rawFeatures", outputCol="features")

idf Оценщик должен быть пригоден для производства трансформатора.Следовательно, последние шаги:

idfModel = idf.fit(featurizedData)
rescaledData = idfModel.transform(featurizedData)
...