Dấu câu, chữ số và token
Cuối chương trước, bạn đã nạp một tập dữ liệu tin nhắn SMS được gán nhãn là "spam" (nhãn 1) hoặc "ham" (nhãn 0). Giờ bạn sẽ dùng dữ liệu đó để xây dựng một mô hình phân loại.
Nhưng trước hết, bạn cần chuẩn bị các tin nhắn SMS như sau:
- loại bỏ dấu câu và chữ số
- tokenize (tách thành từng từ riêng lẻ)
- loại bỏ stop words
- áp dụng hashing trick
- chuyển sang biểu diễn TF-IDF.
Trong bài này, bạn sẽ loại bỏ dấu câu và chữ số, rồi tokenize các tin nhắn.
Dữ liệu SMS có sẵn dưới tên sms.
Bài tập này là một phần của khóa học
Machine Learning với PySpark
Hướng dẫn bài tập
- Import hàm thay thế bằng biểu thức chính quy và công cụ tokenize đặc trưng.
- Thay tất cả ký tự dấu câu trong cột
textbằng một khoảng trắng. Làm tương tự với tất cả chữ số trong cộttext. - Tách cột
textthành các token. Đặt tên cột đầu ra làwords.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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)