Apa itu text classification?
Text classification adalah tugas memberi label pada sepotong teks, misalnya positif atau negatif untuk ulasan, atau spam atau bukan spam untuk email. Classifier mengubah teks menjadi vector berisi angka, menghitung skor untuk setiap label, lalu memilih label dengan skor tertinggi. Cara memberi skor ini dipelajarinya dari contoh yang sudah dilabeli manusia.
Ini salah satu penerapan machine learning pada bahasa yang paling umum. Penyedia email menyaring spam dengannya, tim dukungan mengarahkan tiket berdasarkan topik, chatbot mendeteksi maksud pengguna, platform menandai unggahan beracun, dan perusahaan memantau sentiment di ulasan dan media sosial. Metodenya beragam, dari hitungan kata dengan logistic regression, yang masih menjadi baseline yang kuat, sampai transformer yang di-fine-tune seperti BERT dan zero-shot prompting pada large language model.
Ide utama
- Text classifier memetakan dokumen ke vector, lalu vector ke label.
- Vector bag-of-words dan TF-IDF dengan model linear adalah baseline yang kuat dan cepat.
- Linear classifier memisahkan kelas dengan hyperplane w · x + b = 0.
- Softmax mengubah skor kelas menjadi probabilitas, dan temperature mengatur seberapa yakin hasilnya terlihat.
- Penskoran lexicon tidak butuh training, tetapi gagal pada negasi, sarkasme, dan konteks.
- Tugas multi-class memakai satu softmax atas K kelas, sedangkan tugas multi-label memakai satu sigmoid per label.
Pertanyaan umum
Apa algoritma terbaik untuk text classification?
Tergantung seberapa banyak data berlabel yang kamu punya. Dengan beberapa ribu contoh, TF-IDF dengan logistic regression atau linear SVM cepat dan sulit dikalahkan. Dengan data lebih banyak, atau ketika konteks dan negasi berpengaruh, transformer yang di-fine-tune seperti BERT biasanya lebih akurat. Tanpa data berlabel sama sekali, large language model bisa mengklasifikasikan dari prompt.
Bagaimana cara mengevaluasi text classifier?
Akurasi cocok ketika kelasnya seimbang. Ketika satu kelas jarang muncul, seperti spam atau unggahan beracun, precision, recall, dan F1 untuk kelas itu lebih informatif, karena model yang selalu memprediksi kelas mayoritas pun tetap bisa meraih akurasi tinggi. Confusion matrix menunjukkan kelas mana yang tertukar.
Berapa banyak data berlabel yang dibutuhkan text classification?
Tugas biner sederhana dengan kata-kata yang khas bisa berjalan dengan beberapa ratus contoh berlabel. Fine-tuning model pretrained butuh data jauh lebih sedikit daripada training dari nol, karena model sudah mengenal bahasanya. Tugas dengan banyak kelas atau perbedaan yang halus butuh lebih banyak contoh per kelas.
Apa bedanya sentiment analysis dan text classification?
Sentiment analysis adalah salah satu jenis text classification, dengan label berupa opini seperti positif, negatif, dan netral. Text classification juga mencakup pelabelan topik, deteksi spam, identifikasi bahasa, dan deteksi maksud, yang semuanya memakai metode yang sama dengan label yang berbeda.
Penjelasan terkait
- TF-IDF · Menilai seberapa penting sebuah kata bagi satu dokumen dalam koleksi, dasar mesin pencari dan text retrieval
- Bag of Words · Mengubah teks menjadi angka: hitung kemunculan kata untuk membuat representasi dokumen paling sederhana di NLP
- Naive Bayes Classifier · Klasifikasi probabilistik dengan aturan Bayes
- Softmax, Logit, dan Temperature · Mengubah skor mentah menjadi probabilitas
- BERT dan Masked Language Modeling · Sembunyikan satu kata, prediksi dari dua sisi: cara BERT mempelajari representasi bidirectional yang dalam
- Evaluasi Model dan Metrik · Precision, recall, F1, kurva ROC, dan metrik regresi
Referensi
- Pang, Lee & Vaithyanathan (2002), "Thumbs up? Sentiment Classification using Machine Learning Techniques", EMNLP
- Joulin et al. (2016), "Bag of Tricks for Efficient Text Classification"
- Guo et al. (2017), "On Calibration of Modern Neural Networks", ICML
- Devlin et al. (2019), "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding", NAACL
- Jurafsky & Martin, "Speech and Language Processing" (3rd ed. draft)
Terakhir diperbarui