Bắt đầu ngayBắt đầu miễn phí

Pipeline cho SMS spam

Bạn đã không xem dữ liệu SMS một thời gian rồi. Lần trước chúng ta đã thực hiện các bước sau:

  • tách văn bản thành các token
  • loại bỏ stop words
  • áp dụng hashing trick
  • chuyển đổi dữ liệu từ số đếm sang IDF và
  • huấn luyện một mô hình logistic regression.

Mỗi bước trên đều được thực hiện riêng lẻ. Đây rõ ràng là một ứng dụng tuyệt vời cho pipeline!

Các lớp PipelineLogisticRegression đã được nhập sẵn trong phiên, nên bạn không cần lo về phần đó!

Bài tập này là một phần của khóa học

Machine Learning với PySpark

Xem khóa học

Hướng dẫn bài tập

  • Tạo một đối tượng để tách văn bản thành các token.
  • Tạo một đối tượng để loại bỏ stop words. Thay vì chỉ rõ tên cột đầu vào, hãy dùng phương thức getOutputCol() trên đối tượng trước đó.
  • Tạo các đối tượng để áp dụng hashing trick và biến đổi dữ liệu sang TF-IDF. Tiếp tục dùng phương thức getOutputCol().
  • Tạo một pipeline bao gồm tất cả các bước trên cũng như một đối tượng để tạo mô hình Logistic Regression.

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.

from pyspark.ml.feature import Tokenizer, StopWordsRemover, HashingTF, IDF

# Break text into tokens at non-word characters
tokenizer = ____(inputCol='text', outputCol='words')

# Remove stop words
remover = ____(inputCol=____, outputCol='terms')

# Apply the hashing trick and transform to TF-IDF
hasher = ____(inputCol=____, outputCol="hash")
idf = ____(inputCol=____, outputCol="features")

# Create a logistic regression object and add everything to a pipeline
logistic = LogisticRegression()
pipeline = Pipeline(stages=[____, ____, ____, ____, logistic])
Chỉnh sửa và Chạy Mã