Apa itu TF-IDF?
TF-IDF (term frequency dikali inverse document frequency) adalah skor yang mengukur seberapa penting sebuah kata bagi satu dokumen dalam sebuah koleksi. Skornya naik ketika kata itu sering muncul di dokumen tersebut dan turun ketika kata itu muncul di banyak dokumen. Kata seperti "the" berakhir mendekati nol, sedangkan kata topik seperti "whale" atau "rocket" menonjol.
TF-IDF mengubah setiap dokumen menjadi vector berisi weight kata, sehingga teks bisa dipakai oleh metode apa pun yang bekerja dengan angka. Selama puluhan tahun, TF-IDF menggerakkan mesin pencari berbasis kata kunci, dan turunannya, BM25, masih menjadi fungsi peringkat bawaan di Lucene dan Elasticsearch. TF-IDF juga menjadi baseline yang kuat untuk penyaringan spam, klasifikasi topik, clustering dokumen, dan ekstraksi kata kunci, serta menangani sisi kata kunci pada hybrid search dalam retrieval-augmented generation (RAG).
Ide utama
- TF mengukur seberapa sering sebuah term muncul di satu dokumen, biasanya dibagi panjang dokumen.
- IDF = log(N / df) tinggi untuk term yang ada di sedikit dokumen dan nol untuk term yang ada di semua dokumen.
- TF-IDF mengalikan keduanya, jadi skor tinggi butuh term yang sering muncul secara lokal dan jarang secara global.
- Setiap dokumen menjadi sparse vector dengan satu dimensi per term kosakata.
- Cosine similarity antar-vector TF-IDF memberi peringkat pada dokumen terkait dan hasil pencarian.
- TF-IDF hanya mencocokkan kata yang persis sama, jadi sinonim terlewat dan makna berbeda dari satu kata tercampur.
Pertanyaan umum
Apa bedanya TF-IDF dan word embedding?
TF-IDF memberi setiap kata dimensinya sendiri dan menentukan weight dari jumlah kemunculan, jadi "car" dan "automobile" sama tidak berhubungannya seperti "car" dan "banana". Word embedding seperti word2vec mempelajari dense vector yang menempatkan kata-kata terkait berdekatan. TF-IDF tidak butuh training dan mudah ditafsirkan; embedding menangkap makna tetapi butuh model yang sudah dilatih.
Apakah TF-IDF masih dipakai?
Ya. TF-IDF adalah baseline yang cepat dan kuat untuk klasifikasi teks dan clustering, dan BM25, bentuk yang lebih matang, masih menjalankan retrieval tahap pertama di banyak sistem pencarian. Hybrid search sering menggabungkan skor BM25 dengan skor dense embedding, karena pencocokan kata kunci menangkap nama, kode, dan term langka yang bisa dikaburkan embedding.
Bagaimana cara menghitung TF-IDF di Python?
TfidfVectorizer dari scikit-learn melakukan tokenization pada teks, membangun kosakata, menghitung weight IDF yang dihaluskan, dan mengembalikan matriks sparse yang sudah L2-normalized dengan satu baris per dokumen. Memanggil fit_transform pada dokumen training dan transform pada dokumen baru menjaga nilai IDF tetap mengikuti korpus training.
Bisakah TF-IDF memakai frasa, bukan hanya satu kata?
Bisa. Memperlakukan n-gram seperti "new york" atau "not good" sebagai term tambahan membuat TF-IDF bisa mempertahankan sebagian urutan kata dan negasi. Kosakatanya cepat membesar, jadi feature n-gram biasanya dibatasi dengan document frequency minimum atau jumlah feature maksimum.
Penjelasan terkait
- Bag of Words · Mengubah teks menjadi angka: hitung kemunculan kata untuk membuat representasi dokumen paling sederhana di NLP
- Tokenization & BPE · Cara teks menjadi angka, dari karakter sampai subword token lewat byte-pair encoding
- Text Classification & Sentiment · Latih model untuk memberi label pada teks, dari deteksi spam sampai sentiment analysis
- Norm dan Metrik Jarak · L1, L2, cosine similarity: cara mengukur kedekatan di ruang vector
- Word2Vec & Word Embedding · Mempelajari representasi dense vector, dengan kata yang mirip saling berdekatan di dalam ruang
- Retrieval-Augmented Generation · Mendasarkan output model bahasa pada dokumen yang diambil untuk mengurangi halusinasi
Referensi
- Spärck Jones (1972), "A Statistical Interpretation of Term Specificity and Its Application in Retrieval", Journal of Documentation
- Salton, Wong & Yang (1975), "A Vector Space Model for Automatic Indexing", Communications of the ACM
- Robertson & Zaragoza (2009), "The Probabilistic Relevance Framework: BM25 and Beyond"
- Jurafsky & Martin, "Speech and Language Processing" (3rd ed. draft)
Terakhir diperbarui