Cara menghitung term frequency dan inverse document frequency atau sering disingkat menjadi TF – IDF merupakan nilai yang penting dalam text minning. Nah dalam postingan kali ini, saya akan bahas cara mendapatkan nilai tersebut serta cara menghitung manualnya, tentunya saya anggap kalian sudah baca mengenai document term matrix membuat document term matrix
Belajar Statistik
Contents
Materi statistik yang saling berkaitan satu sama lain, bisa kalian pelajari materi yang lain Belajar Statistik
Apa itu Term Frequency – TF
Term Frequency (TF) yaitu pembobotan/weight setiap kata (term) pada suatu dokumen berdasarkan jumlah kemunculannya dalam dokumen tersebut. Semakin besar jumlah kemunculan suatu kata dalam dokumen, maka semakin besar pula bobot yang diberikan (TF Tinggi) jadi nilai tertinggi merupakan jumlah kemunculan/frekuensi. Biasanya term / kata-kata yang sering muncul merupakan topik yang ingin kita cari, namun demikian kata-kata yang sering muncul malah menjadi menjadi kata umum oleh karena hal tersebut dibutuhkan invers document frequency.
Apa itu Inverse Document Frequency – IDF
Inverse Document Frequency (IDF) bertujuan untuk mengetahui apakah term yang dicari cocok dengan kata kunci yang diinginkan, term yang sering muncul akan memberikan pengaruh yang kecil dalam menentukan keterkaitan kata kunci dokumen.
TF-IDF
Pembobotan TF-IDF adalah hasil perkalian dari pembobotan term frequency dan inverse document frequency dari suatu term. TF-IDF dihitung dengan menggunakan persamaan seperti berikut
dengan masing-masing keterangan yaitu
pembobotan tf-idf untuk term ke-j pada dokumen ke-i
jumlah kemunculan term ke-j pada dokumen ke-i
banyaknya term yang terbentuk
jumlah kemunculan seluruh term pada dokumen ke-i
jumlah keseluruhan dokumen
banyaknya dokumen yang mengandung term ke-j.
Menggunakan Library RTextTools
Library RTextTools menggunakan library tm sebagai base nya, nah cara menghitung Term Frequency cukup mudah.
library(RTextTools) kalimat = c("aku suka makan makan buah", "jambu biji adalah buah", "aku suka makan tomat")
Anggap saja kalimat diatas udah dilakukan pre processing, jadi tidak perlu dilakukan lagi, sehingga False saja semua opsinya.
dtm = RTextTools::create_matrix(kalimat, #fungsi yang diambil dari RTextTools dengan library tm sebagai base nya removeNumbers=FALSE, #sudah dilakukan sebelumnya removePunctuation=FALSE, #sudah dilakukan sebelumnya removeSparseTerms=0, removeStopwords=FALSE, #sudah dilakukan sebelumnya stemWords=FALSE, #sudah dilakukan sebelumnya stripWhitespace=TRUE, toLower=FALSE, #sudah dilakukan sebelumnya weighting=weightTf) #lakukan pembobotan
perhatikan opsi weighting=weightTf
merupakan perintah untuk menghitung TF – term frequency. Untuk menampilkan nilai TF yaitu
View(as.matrix(dtm))
Dari nilai diatas dapat diketahui
- term terbentuk yaitu 8
- jumlah keseluruhan dokumen yaitu 3
Nah untuk menghitung TF-IDF cukup mengubah weighting=weightTf
menjadi weighting=weightTfIdf
. Misalkan saya menggunakan nama variabel dtm2 untuk membedakan dengan sebelumnya
dtm2 = create_matrix(kalimat, #fungsi yang diambil dari RTextTools dengan library tm sebagai base nya removeNumbers=FALSE, #sudah dilakukan sebelumnya removePunctuation=FALSE, #sudah dilakukan sebelumnya removeSparseTerms=0, removeStopwords=FALSE, #sudah dilakukan sebelumnya stemWords=FALSE, #sudah dilakukan sebelumnya stripWhitespace=TRUE, toLower=FALSE, #sudah dilakukan sebelumnya weighting=weightTfIdf) #lakukan pembobotan
perintah untuk menampilkan nilainya yaitu
View(as.matrix(dtm2))
Yuk kita cari nilai dari berikut, berdasarkan rumus diatas
Untuk membaca artikel berikut, kalian wajib login terlebih dahulu, selanjutnya dibawah ini