Delta Sierra
4 min readFeb 13, 2019

Algoritma TF — IDF

Tulisan ini adalah bagian dari project iseng iseng saya yang nantinya bermuara pada implementasi Cosine Simialirity ke dalam JavaScript yang bertujuan untuk melihat secara asik cara kerja algoritma ini dalam web-based application.

Term Frequency — Inverse Document Frequency atau TF — IDF adalah suatu metode algoritma yang berguna untuk menghitung bobot setiap kata yang umum digunakan. Metode ini juga terkenal efisien, mudah dan memiliki hasil yang akurat. Metode ini akan menghitung nilai Term Frequency (TF) dan Inverse Document Frequency (IDF) pada setiap token (kata) di setiap dokumen dalam korpus. Secara sederhana, metode TF-IDF digunakan untuk mengetahui berapa sering suatu kata muncul di dalam dokumen.

Pada tulisan kali ini, saya akan mencoba untuk mempraktekan metode algoritma TF — IDF dalam JavaScript yang kemudian akan kita gabungkan kedalam metode Cosine Similarity. Jadi hasil akhir dari project tulisan ini adalah; membuat sebuah program berbasis JavaScript yang bisa menghitung tingkat kemiripan dua buah dokumen.

Oke, langsung saja kita bahas tentang TF — IDF. Pertama, kita bahas soal TF atau Term Frequency. Untuk menentukan berapa seringnya kata tsb muncul dalam sebuah dokumen. Jadi, semakin banyak frekuensi kemunculan dari kata tsb, semakin besar pula nanti nilainya.

Pada Term Frequency (TF), terdapat beberapa jenis formula yang dapat digunakan :

  1. TF biner (binary TF), hanya memperhatikan apakah suatu kata atau term ada atau tidak dalam dokumen, jika ada diberi nilai satu (1), jika tidak diberi nilai nol (0).
  2. TF murni (raw TF), nilai TF diberikan berdasarkan jumlah kemunculan suatu term di dokumen. Contohnya, jika muncul lima (5) kali maka kata tersebut akan bernilai lima (5).
  3. TF normalisasi, menggunakan perbandingan antara frekuensi sebuah term dengan nilai maksimum dari keseluruhan atau kumpulan frekuensi term yang ada pada suatu dokumen.
  4. TF logaritmik, hal ini untuk menghindari dominansi dokumen yang mengandung sedikit term dalam query, namun mempunyai frekuensi yang tinggi.
Rumus TF logaritmik

Dimana nilai ft,d adalah frekuensi term (t) pada document (d).
Jadi jika suatu kata atau term terdapat dalam suatu dokumen sebanyak 5 kali maka diperoleh bobot = 1 + log (5) = 1.699. Tetapi jika term tidak terdapat dalam dokumen tersebut, bobotnya adalah nol (0).

Lalu, yang berikutnya atau yang kedua adalah IDF (Inverse Document Frequency). Metode IDF merupakan sebuah perhitungan dari bagaimana term didistribusikan secara luas pada koleksi dokumen yang bersangkutan.

Berbeda dengan TF yang semakin sering frekuensi kata muncul maka nilai semakin besar, dalam IDF, semakin sedikit frekuensi kata muncul dalam dokumen, maka makin besar nilainya.

Untuk menentukan besaran nilai IDF, kita menggunakan rumus :

Rumus IDF

Dimana D adalah jumlah semua dokumen dalam koleksi sedangkan dfj adalah jumlah dokumen yang mengandung term (tj).

Jenis formula TF yang biasa digunakan untuk perhitungan adalah TF murni (raw TF). Dengan demikian rumus umum untuk Term Weighting TF-IDF adalah penggabungan dari formula perhitungan raw TF dengan formula IDF dengan cara mengalikan nilai TF dengan nilai IDF:

Rumus TF-IDF

Dimana Wij adalah bobot term (tj) terhadap dokumen (di). Sedangkan tfij adalah jumlah kemunculan term (tj) dalam dokumen (di). D adalah adalah jumlah semua dokumen yang ada dalam database dan dfj adalah jumlah dokumen yang mengandung term (tj) (minimal ada satu kata yaitu term (tj)).

Berapapun besarnya nilai tfij, apabila D = dfj, maka akan didapatkan hasil 0 (nol), dikarenakan hasil dari log 1, untuk perhitungan IDF. Untuk itu dapat ditambahkan nilai 1 pada sisi IDF, sehingga perhitungan bobotnya menjadi sebagai berikut :

Rumus TF-IDF + 1

Oke, sampai disini kita pause dulu ya. Berikutnya kita akan membahas Term Weighting TF — IDF (menghitung besaran nilai bobot kata terhadap query), lalu juga membahas tentang Stopwords, dan yang terakhir adalah Cosine Simialirity sebelum nantinya kita akan coba implementasikan dalam JavaScript untuk melihat cara kerjanya secara komputerisasi.

Refrensi : Pembobotan Kata atau Term Weighting TF-IDF https://informatikalogi.com/term-weighting-tf-idf/

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

No responses yet

Write a response