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

Rút gọn từ (stemming) và hoàn thiện gốc từ (stem completion) trên một câu

Hãy coi câu sau là tài liệu (document) cho bài tập này:

"In a complicated haste, Tom rushed to fix a new complication, too complicatedly."

Câu này chứa cùng ba biến thể của từ "complicate" mà bạn đã thấy ở bài trước. Điểm khác biệt ở đây là ngay cả khi bạn gọi stemDocument() trên câu này, hàm sẽ trả về nguyên câu mà không rút gọn bất kỳ từ nào. Hãy thử chạy trong console. Nhớ giữ nguyên các dấu câu.

Điều này xảy ra vì stemDocument() coi cả câu là một từ duy nhất. Nói cách khác, tài liệu của chúng ta là một vector ký tự có độ dài 1, thay vì độ dài n, trong đó n là số từ trong tài liệu. Để giải quyết, trước tiên ta loại bỏ dấu câu với hàm removePunctuation() mà bạn đã học ở vài bài trước. Sau đó, ta strsplit() vector ký tự độ dài 1 này thành độ dài n, unlist(), rồi tiến hành stemming và hoàn thiện lại gốc từ.

Đừng lo nếu điều này còn rối. Hãy đi qua từng bước nhé!

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

Khai phá văn bản với Bag-of-Words trong R

Xem khóa học

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

Tài liệu text_data và từ điển hoàn thiện comp_dict đã được nạp sẵn trong không gian làm việc của bạn.

  • Loại bỏ dấu câu trong text_data bằng removePunctuation(), gán vào rm_punc.
  • Gọi strsplit() trên rm_punc với đối số split đặt bằng " ". Lồng lời gọi này trong unlist(), gán vào n_char_vec.
  • Dùng stemDocument() để thực hiện stemming trên n_char_vec, gán vào stem_doc.
  • Tạo complete_doc bằng cách hoàn thiện lại tài liệu đã stemming với stemCompletion() và dùng comp_dict làm corpus tham chiếu.

stem_doccomplete_doc có đúng như bạn kỳ vọng không?

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.

# Remove punctuation: rm_punc
rm_punc <- ____

# Create character vector: n_char_vec
n_char_vec <- unlist(___(___, split = " "))

# Perform word stemming: stem_doc
stem_doc <- ___

# Print stem_doc
stem_doc

# Re-complete stemmed document: complete_doc
complete_doc <- ___

# Print complete_doc
complete_doc
Chỉnh sửa và Chạy Mã