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

Thay đổi n-grams

Cho đến giờ, bạn mới chỉ tạo TDM và DTM từ các từ đơn. Mặc định là dùng unigram, nhưng bạn cũng có thể tập trung vào các token gồm hai từ trở lên. Cách này giúp trích xuất các cụm từ hữu ích để có thêm insight hoặc tạo ra thuộc tính dự đoán tốt hơn cho một thuật toán Machine Learning.

Hàm bên dưới dùng gói RWeka để tạo các token trigram (ba từ): cả minmax đều đặt là 3.

tokenizer <- function(x) {
  NGramTokenizer(x, Weka_control(min = 3, max = 3))
}

Sau đó, hàm tokenizer() đã tùy biến có thể được truyền vào các hàm TermDocumentMatrix hoặc DocumentTermMatrix như một tham số bổ sung:

tdm <- TermDocumentMatrix(
  corpus, 
  control = list(tokenize = tokenizer)
)

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

Một corpus đã được tiền xử lý như trước với các tweet về chardonnay. Đối tượng text_corp đã có sẵn trong không gian làm việc của bạn.

  • Tạo hàm tokenizer như trên để tạo bigram 2 từ.
  • Tạo unigram_dtm bằng cách gọi DocumentTermMatrix() trên text_corp mà không dùng hàm tokenizer().
  • Tạo bigram_dtm bằng DocumentTermMatrix() trên text_corp với hàm tokenizer() bạn vừa tạo.
  • Kiểm tra unigram_dtmbigram_dtm. Cái nào có nhiều term hơn?

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.

# Make tokenizer function 
___ <- function(x) {
  ___(___, ___(___, ___))
}

# Create unigram_dtm
___ <- ___(___)

# Create bigram_dtm
___ <- ___(
  ___,
  ___
)

# Print unigram_dtm
___

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