Bag of Word (BoW)
Bag of Words (BoW) adalah metode dasar dalam Natural Language Processing (NLP) yang digunakan untuk mengubah teks menjadi bentuk numerik (vektor). BoW akan membuat representasi vektor berdasarkan frekuensi kemunculan kata dalam teks tanpa mempertimbangkan urutan kata.
Misal kita mempunyai koleksi dokumen seperti berikut ini
Dokumen tersebut akan di convert ke dalam suatu dataframe (kita sebut Bag) yang isinya frekuensi token (Word) tersebut. BoW pada dasarnya hanya mengubah dokumen menjadi matrix frekuensi kata. Sehingga, analisis selanjutnya bisa dipadukan sesuai tujuannya misalnya dilanjutkan dengan naive bayes, pencarian keyword terkait, analisis topik.
Kegunaan
kegunaan utama dari Bag of Words:
1. Klasifikasi Teks
BoW banyak digunakan dalam klasifikasi teks, di mana dokumen atau kalimat dikategorikan ke dalam kelas atau label tertentu. Misalnya, dalam analisis sentimen, kita dapat menggunakan BoW untuk mengklasifikasikan kalimat atau ulasan sebagai positif atau negatif.
Contoh penggunaan:
- Spam Filtering: Menggunakan BoW untuk mendeteksi apakah sebuah email termasuk spam atau bukan berdasarkan kata-kata yang terkandung dalam email tersebut.
- Sentiment Analysis: Menggunakan BoW untuk menentukan apakah teks memiliki sentimen positif, negatif, atau netral.
2. Pencarian Dokumen (Information Retrieval)
BoW dapat digunakan dalam sistem pencarian untuk mencari dokumen yang relevan berdasarkan query tertentu. Dengan mengubah dokumen dan query ke dalam format vektor, kita bisa mencari kemiripan antara query dan dokumen.
Contoh:
- Sistem Pencarian (Search Engines): BoW dapat digunakan untuk mencocokkan kata-kata dalam query dengan dokumen yang relevan di dalam korpus besar dokumen.
3. Pembuatan Fitur untuk Model Machine Learning
BoW digunakan untuk mengonversi teks menjadi fitur numerik yang dapat digunakan oleh algoritma machine learning, seperti regresi logistik, Naive Bayes, atau model klasifikasi lainnya.
Contoh:
- Klasifikasi Teks: Dalam tugas seperti klasifikasi berita, kita bisa menggunakan BoW untuk mengubah teks berita menjadi vektor fitur yang kemudian digunakan oleh model untuk mengklasifikasikan berita ke dalam kategori yang sesuai (misalnya olahraga, politik, ekonomi, dll).
4. Analisis Topik
BoW dapat digunakan dalam teknik analisis topik seperti Latent Dirichlet Allocation (LDA) untuk menemukan topik-topik yang tersembunyi dalam koleksi dokumen.
Contoh:
- Modeling Topic: Dengan BoW, kita dapat mendeteksi topik umum di dalam kumpulan dokumen dengan mengidentifikasi kata-kata yang sering muncul bersama-sama dan kelompok kata-kata tersebut dalam satu topik.
5. Pengelompokan Dokumen (Document Clustering)
BoW juga digunakan dalam clustering, di mana dokumen dikelompokkan berdasarkan kesamaan kata yang terkandung di dalamnya.
Contoh:
- Clustering Berita: Menggunakan BoW untuk mengelompokkan artikel berita yang memiliki topik yang sama (misalnya, artikel-artikel yang berkaitan dengan ekonomi dikelompokkan bersama).
6. Word Association (Asosiasi Kata)
Dengan menggunakan BoW, kita bisa menganalisis hubungan antara kata-kata dalam korpus teks berdasarkan frekuensi kemunculannya bersama-sama.
Contoh:
- Pencarian Kata Terkait: Jika kita ingin mengetahui kata-kata yang sering muncul bersama kata “hotel”, BoW akan memberi kita frekuensi kemunculan kata “hotel” bersama dengan kata lain dalam dokumen untuk mengetahui kata-kata terkait.
7. Pengurangan Dimensi
Meskipun Bag of Words cenderung menghasilkan representasi dengan dimensi tinggi, ini memungkinkan kita untuk mengidentifikasi kata-kata yang paling sering muncul di dataset dan menghapus kata-kata yang jarang digunakan, yang dapat memperbaiki performa model.
Kelebihan BoW:
- Sederhana dan Mudah Digunakan: BoW adalah teknik yang sangat mudah untuk diimplementasikan, dan sering digunakan dalam banyak aplikasi NLP dasar.
- Efektif untuk Tugas Klasifikasi Sederhana: Cocok untuk aplikasi seperti klasifikasi teks, analisis sentimen, dan pencarian dokumen.
- Menghasilkan Representasi yang Mudah Dipahami: Vektor yang dihasilkan dari BoW mudah dimengerti, dan dapat dengan mudah diintegrasikan dengan algoritma machine learning.
Kekurangan BoW:
- Dimensi Tinggi: BoW menghasilkan vektor yang sangat besar karena harus membuat fitur untuk setiap kata unik dalam korpus, yang dapat menyebabkan dimensi tinggi pada dataset besar.
- Tidak Mempertimbangkan Urutan Kata: BoW tidak mempertimbangkan urutan kata dalam dokumen, sehingga kehilangan informasi konteks kata.
- Tidak Menangkap Hubungan Semantik: Kata-kata yang memiliki makna serupa (seperti sinonim) tidak memiliki representasi yang serupa dalam BoW.
- Sparse Matrix: BoW menghasilkan sparse matrix, yang dapat memakan banyak memori dan menyebabkan computational inefficiency.