Стоп-слова и хеширование
Следующие шаги — удалить 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)