Пунктуація, числа й токени
Наприкінці попереднього розділу ви завантажили набір даних із SMS‑повідомленнями, які було позначено як «spam» (мітка 1) або «ham» (мітка 0). Тепер ви використаєте ці дані, щоб побудувати модель класифікації.
Але спершу потрібно підготувати SMS‑повідомлення так:
- вилучити пунктуацію та числа
- токенізувати (розбити на окремі слова)
- вилучити стоп-слова
- застосувати hashing trick
- перетворити у представлення TF‑IDF.
У цій вправі ви вилучите пунктуацію та числа, а потім виконаєте токенізацію повідомлень.
Дані SMS доступні як sms.
Ця вправа є частиною курсу
Machine Learning з 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)