Apa itu model bag-of-words?
Model bag-of-words (BoW) merepresentasikan dokumen sebagai jumlah kemunculan kata di dalamnya, tanpa memedulikan urutannya. Kosakata yang tetap memberi setiap kata satu posisi, dan setiap dokumen menjadi vector yang mencatat berapa kali tiap kata kosakata muncul. Dua kalimat dengan kata yang sama tetapi urutan berbeda mendapat vector yang sama.
Bag-of-words adalah cara paling sederhana untuk mengubah teks menjadi angka yang bisa dipakai model machine learning. Filter spam, classifier sentimen, topic model seperti LDA, dan mesin pencari generasi awal semuanya dibangun di atasnya, biasanya bersama naive Bayes atau logistic regression. Sampai sekarang pun cara ini masih menjadi baseline yang cepat dan mudah ditafsirkan, dan TF-IDF adalah versi vector yang sama dengan weight berbeda.
Ide utama
- Bag-of-words merepresentasikan dokumen dengan jumlah katanya dan membuang urutan kata.
- Kosakata memetakan setiap kata yang disimpan ke satu indeks tetap di dalam vector.
- Count vector sebuah dokumen adalah jumlah one-hot vector dari token-nya.
- Menumpuk vector itu menghasilkan document-term matrix yang hampir seluruhnya nol.
- Isi sel bisa berupa nilai biner, hitungan mentah, atau hitungan dibagi panjang dokumen.
- N-gram memulihkan sebagian urutan kata lokal, dengan biaya kosakata yang jauh lebih besar.
Pertanyaan umum
Apa bedanya bag of words dan TF-IDF?
Bag-of-words mengisi setiap sel dengan hitungan, jadi kata fungsi yang sering muncul mendapat nilai besar. TF-IDF mulai dari hitungan yang sama, lalu mengalikannya dengan weight inverse document frequency, yang mengecilkan kata yang ada di sebagian besar dokumen dan menaikkan kata langka yang khas untuk suatu topik. Keduanya menghasilkan vector dengan bentuk yang sama.
Kenapa disebut "kantong" kata (bag of words)?
Dalam matematika, bag atau multiset adalah kumpulan yang mencatat berapa kali setiap item muncul, tetapi tidak mencatat urutannya. Gagasan menggambarkan teks lewat distribusi kata berawal dari makalah Zellig Harris tahun 1954, "Distributional Structure", yang memakai frasa "bag of words" saat membahas bahasa.
Bagaimana bag-of-words menangani kata yang belum pernah dilihat?
Kata yang tidak ada di kosakata tidak punya kolom, jadi kata itu dibuang. Hashing trick menghindari kosakata tetap dengan memetakan setiap kata lewat hash ke salah satu dari sejumlah kolom. Cara ini menangani kata apa pun, tetapi kata yang tidak berkaitan bisa bertabrakan di kolom yang sama.
Apakah bag-of-words dipakai di luar teks?
Ya. Model bag-of-visual-words mengelompokkan potongan kecil gambar menjadi codebook berisi "kata visual" dan menggambarkan setiap gambar dengan histogram dari kelompok itu. Sebelum ada convolutional network, cara ini menjadi metode standar klasifikasi gambar, dan ide penghitungan yang sama juga muncul di audio dan genomika.
Penjelasan terkait
- Tokenization & BPE · Cara teks menjadi angka, dari karakter sampai subword token lewat byte-pair encoding
- TF-IDF · Menilai seberapa penting sebuah kata bagi satu dokumen dalam koleksi, dasar mesin pencari dan text retrieval
- Naive Bayes Classifier · Klasifikasi probabilistik dengan aturan Bayes
- Text Classification & Sentiment · Latih model untuk memberi label pada teks, dari deteksi spam sampai sentiment analysis
- Embedding · Mengubah kata dan kategori menjadi vector
- Singular Value Decomposition · Uraikan matriks apa pun menjadi rotasi, skala, dan rotasi: alat serbaguna di aljabar linear
Referensi
- Harris (1954), "Distributional Structure", Word
- Deerwester et al. (1990), "Indexing by Latent Semantic Analysis", Journal of the American Society for Information Science
- Jurafsky & Martin, "Speech and Language Processing" (3rd ed. draft)
Terakhir diperbarui