НачатьНачать бесплатно

Стоп-слова и хеширование

Следующие шаги — удалить stopwords и применить технику хеширования, преобразовав результаты в TF-IDF.

Краткое напоминание об этих концепциях:

  • Техника хеширования обеспечивает быстрый и экономичный по памяти способ отображения очень большого (потенциально бесконечного) множества элементов (в данном случае — всех слов из SMS-сообщений) в меньшее, конечное число значений.
  • Матрица TF-IDF отражает, насколько важно то или иное слово для каждого документа. При этом учитывается как частота слова внутри конкретного документа, так и его частота по всей коллекции документов.

Токенизированные SMS-данные хранятся в 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)
Редактировать и запускать код