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ả min và max đề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
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
tokenizernhư trên để tạo bigram 2 từ. - Tạo
unigram_dtmbằng cách gọiDocumentTermMatrix()trêntext_corpmà không dùng hàmtokenizer(). - Tạo
bigram_dtmbằngDocumentTermMatrix()trêntext_corpvới hàmtokenizer()bạn vừa tạo. - Kiểm tra
unigram_dtmvàbigram_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
___