ПочатиПочніть безкоштовно

Стоп-слова та хешування

Далі потрібно вилучити stopwords, а потім застосувати трюк хешування, перетворивши результати на TF-IDF.

Коротке нагадування про ці поняття:

  • Трюк хешування забезпечує швидкий та ощадний за пам'яттю спосіб відображення дуже великої (можливо, нескінченної) множини елементів (у нашому випадку всіх слів із SMS) на меншу, скінченну кількість значень.
  • Матриця TF-IDF відображає, наскільки важливе слово для кожного документа. Вона враховує як частоту слова в межах кожного документа, так і частоту цього слова в усіх документах колекції.

Токенізовані дані SMS збережено в sms у стовпці words. Ви впорядкували пробіли в даних, тож токенізований текст став акуратнішим.

Ця вправа є частиною курсу

Machine Learning з 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)
Редагувати та запускати код