Пунктуация, числа и токены
В конце предыдущей главы вы загрузили набор данных SMS-сообщений, размеченных как «спам» (метка 1) или «не спам» (метка 0). Теперь вы будете использовать эти данные для построения классификационной модели.
Но сначала нужно подготовить SMS-сообщения. Вот что предстоит сделать:
- удалить пунктуацию и числа
- токенизировать (разбить на отдельные слова)
- удалить стоп-слова
- применить хэш-трюк
- преобразовать в представление TF-IDF.
В этом упражнении вы удалите пунктуацию и числа, а затем токенизируете сообщения.
Данные SMS доступны в переменной sms.
Это упражнение является частью курса
Машинное обучение с PySpark
Инструкции к упражнению
- Импортируйте функцию для замены по регулярным выражениям и инструмент для токенизации.
- Замените все знаки пунктуации в столбце
textна пробел. Сделайте то же самое для всех чисел в столбцеtext. - Разбейте столбец
textна токены. Назовите выходной столбецwords.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Import the necessary functions
from pyspark.sql.functions import ____
from pyspark.ml.feature import ____
# Remove punctuation (REGEX provided) and numbers
wrangled = sms.withColumn('text', ____(sms.text, '[_():;,.!?\\-]', ____))
wrangled = wrangled.withColumn(____, ____(____, ____, ____))
# Merge multiple spaces
wrangled = wrangled.withColumn('text', regexp_replace(wrangled.text, ' +', ' '))
# Split the text into words
wrangled = ____(inputCol='text', outputCol=____).____(wrangled)
wrangled.show(4, truncate=False)