1. 학습
  2. /
  3. 강의
  4. /
  5. Khai phá văn bản với Bag-of-Words trong R

Connected

연습 문제

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é!

지침

100 XP

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_doc và complete_doc có đúng như bạn kỳ vọng không?