Mengubah n-gram
Sejauh ini, kita hanya membuat TDM dan DTM menggunakan kata tunggal. Bawaan (default)-nya adalah membuatnya dengan unigram, tetapi Anda juga dapat berfokus pada token yang berisi dua kata atau lebih. Ini dapat membantu mengekstrak frasa yang berguna yang menghasilkan wawasan tambahan atau memberikan atribut prediktif yang lebih baik untuk algoritma machine learning.
Fungsi di bawah ini menggunakan paket RWeka untuk membuat token trigram (tiga kata): min dan max keduanya disetel ke 3.
tokenizer <- function(x) {
NGramTokenizer(x, Weka_control(min = 3, max = 3))
}
Kemudian fungsi tokenizer() yang dikustomisasi dapat diteruskan ke fungsi TermDocumentMatrix atau DocumentTermMatrix sebagai parameter tambahan:
tdm <- TermDocumentMatrix(
corpus,
control = list(tokenize = tokenizer)
)
Latihan ini adalah bagian dari kursus
Text Mining dengan Bag-of-Words di R
Petunjuk latihan
Sebuah corpus telah dipraproses seperti sebelumnya menggunakan tweet tentang chardonnay. Objek hasilnya, text_corp, tersedia di workspace Anda.
- Buat fungsi
tokenizerseperti di atas yang menghasilkan bigram 2-kata. - Buat
unigram_dtmdengan memanggilDocumentTermMatrix()padatext_corptanpa menggunakan fungsitokenizer(). - Buat
bigram_dtmmenggunakanDocumentTermMatrix()padatext_corpdengan fungsitokenizer()yang baru Anda buat. - Periksa
unigram_dtmdanbigram_dtm. Yang manakah yang memiliki lebih banyak term?
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Make tokenizer function
___ <- function(x) {
___(___, ___(___, ___))
}
# Create unigram_dtm
___ <- ___(___)
# Create bigram_dtm
___ <- ___(
___,
___
)
# Print unigram_dtm
___
# Print bigram_dtm
___