Beranda Topics Bag of words Apa itu bag of words?
Jelajahi solusi pemrosesan bahasa alami Daftar untuk mendapatkan pembaruan AI
Poin data yang terkandung dalam kotak

Diterbitkan: 19 Januari 2024
Kontributor: Jacob Murel Ph.D., Eda Kavlakoglu

Fitur bag of words mengkuantifikasi frekuensi kata dalam dokumen teks untuk diproses dalam model machine learning. Variasinya TF-IDF menghasilkan model yang selanjutnya memperhitungkan frekuensi kata di seluruh kumpulan dokumen.

Bag of words (BoW; juga ditulis sebagai bag-of-words) adalah teknik ekstraksi fitur yang memodelkan data teks untuk diproses dalam pencarian informasi dan algoritme machine learning. Lebih khusus lagi, model BoW adalah kumpulan tidak terstruktur dari semua kata yang dikenal dalam dokumen teks yang ditentukan hanya berdasarkan frekuensi sambil mengabaikan urutan kata dan konteks.1 Bag of words adalah salah satu dari beberapa langkah dalam banyak pipeline penambangan teks.

Sebagian besar paket pemrosesan bahasa alami (NLP) dilengkapi dengan fungsi untuk membuat model bag of words seperti fungsi CountVectorizer dari scikit-learn.

Ikuti tur IBM watsonx

Jelajahi IBM watsonx dan pelajari cara membuat model machine learning menggunakan kumpulan data statistik.

Konten terkait

Berlangganan buletin Think

Cara kerja model bag of words

Fitur bag of words dapat, kadang-kadang, dianggap sebagai bentuk pemrosesan teks tingkat pemula, mengingat kesederhanaan konseptualnya yang seolah-olah sederhana dalam menghitung kata-kata di seluruh rangkaian teks yang diberikan. Namun, model bag of words lebih terlibat.

Memahami fiturisasi sekantong kata menuntut pemahaman, setidaknya pemula, tentang ruang vektor. Ruang vektor adalah ruang multi-dimensi di mana titik-titik diplot. Dalam pendekatan bag of words, setiap kata individu menjadi dimensi (atau sumbu) terpisah dari ruang vektor. Jika sebuah kumpulan teks memiliki n jumlah kata, ruang vektor yang dihasilkan memiliki dimensi n, satu dimensi untuk setiap kata unik dalam kumpulan teks. Model kemudian memplot setiap dokumen teks terpisah sebagai titik di ruang vektor. Posisi titik di sepanjang dimensi tertentu ditentukan oleh berapa kali kata dimensi tersebut muncul di dalam dokumen titik tersebut.

Misalnya, asumsikan kita memiliki kumpulan teks di mana isi dari dua dokumen terpisah masing-masing adalah:

Dokumen 1: Mawar berwarna merah, ungu berwarna biru

Dokumen 2: Cintaku merah, seperti mawar merah

Karena sulit membayangkan sesuatu di luar ruang tiga dimensi, kita akan membatasi diri hanya pada itu. Ruang vektor untuk korpus yang berisi dua dokumen ini akan memiliki dimensi yang terpisah untuk warna merah, mawar, dan ungu. Ruang vektor tiga dimensi untuk kata-kata ini mungkin terlihat seperti:

Karena merah, mawar, dan ungu semuanya muncul satu kali di Dokumen 1, vektor untuk dokumen tersebut di ruang ini adalah (1,1,1). Dalam Dokumen 2, merah muncul dua kali, mawar sekali, dan ungu tidak sama sekali. Jadi, titik vektor untuk Dokumen 2 adalah (2,1,0). Kedua titik dokumen ini akan dipetakan dalam ruang vektor tiga dimensi sebagai:

Perhatikan bahwa gambar ini memvisualisasikan dokumen teks sebagai vektor data dalam ruang fitur tiga dimensi. Tetapi sekantong kata juga dapat mewakili kata-kata sebagai vektor fitur dalam ruang data. Vektor fitur menandakan nilai (kejadian) dari fitur tertentu (kata) dalam titik data tertentu (dokumen). Jadi vektor fitur untuk merah, mawar, dan ungu dalam Dokumen 1 dan 2 akan terlihat seperti:2

Perhatikan bahwa urutan kata-kata dalam dokumen asli tidak relevan. Untuk sekantong model kata, yang penting adalah jumlah kemunculan setiap kata di seluruh kumpulan teks.

Mengapa menggunakan model bag of words

Karena model bag of words hanya mengukur frekuensi kata dalam dokumen tertentu, bag of words sering digambarkan sebagai teknik pemodelan yang sederhana. Tetapi sekantong kata-kata membantu dalam banyak tugas NLP, terutama klasifikasi dokumen. Memang, literatur sering membahas bag of words bersama dengan pengklasifikasi statistik seperti Naïve Bayes.3

Tugas klasifikasi teks menafsirkan kata-kata dengan frekuensi tinggi dalam sebuah dokumen sebagai mewakili gagasan utama dokumen tersebut.4 Ini bukan asumsi yang tidak masuk akal. Sebagai contoh, jika beberapa kata yang paling sering muncul dalam sebuah dokumen adalah presiden, pemilih, dan pemilu, ada kemungkinan besar dokumen tersebut adalah teks politik, yang secara khusus membahas pemilihan presiden. Klasifikasi teks dengan bag of words kemudian mengekstrapolasi bahwa dokumen dengan konten serupa memiliki jenis yang serupa.

Keterbatasan model bag of words

Meskipun pengklasifikasi probabilistik yang menggunakan pendekatan bag of words terbukti sangat efektif, bag of words memiliki beberapa kelemahan.

Korelasi kata. Bag of words mengasumsikan kata-kata tidak tergantung satu sama lain dalam dokumen atau korpus. Pemilu lebih mungkin muncul dalam konteks bersama dengan presiden daripada penyair. Dalam mengukur frekuensi istilah individu, kantong kata tidak memperhitungkan korelasi dalam penggunaan antar kata. Karena sekantong kata mengekstrak setiap kata dalam dokumen sebagai fitur model kantong kata, dengan frekuensi istilah menjadi bobot fitur itu, dua kata atau lebih yang berkorelasi secara teoritis dapat menginduksi multikolinearitas dalam pengklasifikasi statistik menggunakan model itu. Namun demikian, asumsi penyederhanaan Naïve Bayes telah terbukti menghasilkan model yang kuat meskipun terdapat kekurangan potensial.5

Kata majemuk. Korelasi kata meluas ke representasi kumpulan kata dari frasa majemuk, di mana dua kata atau lebih beroperasi sebagai satu unit semantik. Sebagai contoh, model Bag of words yang sederhana dapat merepresentasikan Mr. Darcy sebagai dua kata yang unik dan tidak berhubungan meskipun keduanya berfungsi bersamaan. Kantong representasi kata seperti itu gagal mencerminkan sifat semantik dan sintaksis dari konsep multi-kata.

Kata-kata polisemus. Banyak kata memiliki banyak arti yang sangat berbeda. Sebagai contoh, bat dapat berarti alat olahraga atau hewan, dan makna ini biasanya muncul dalam konteks yang sangat berbeda. Demikian pula, kata-kata dapat berubah makna tergantung pada penempatan tekanannya dalam bahasa lisan, misalnya CON-tent versus con-TENT. Karena bag of words tidak memperhatikan konteks dan makna saat memodelkan kata, bag of words menggabungkan semua makna yang berbeda ini ke dalam satu kata, sehingga menghilangkan informasi yang berpotensi signifikan pada subjek teks (dan juga potensi klasifikasi).

Sparsitas. Dalam sekantong model kata, setiap kata adalah fitur, atau dimensi, dari model, dan setiap dokumen yang disebut adalah vektor. Karena sebuah dokumen tidak menggunakan semua kata dalam kosakata model yang dihasilkan, banyak nilai fitur untuk vektor yang diberikan bisa jadi nol. Ketika sebagian besar nilai vektor adalah nol, modelnya adalah sparse (jika merepresentasikan vektor sebagai matriks, ini disebut matriks sparse). Sparsitas model menghasilkan dimensi yang tinggi, yang pada gilirannya menyebabkan overfitting pada data pelatihan.6

Modifikasi

Bag of n-gram. Mengadopsi n-gram daripada kata-kata dapat memperbaiki sejumlah kelemahan yang melekat pada model kantong kata. Alih-alih membuat model di mana setiap kata adalah fitur, seseorang dapat menggunakan n-gram sebagai fitur vektor. Dalam konteks ini, n mengacu pada jumlah kata yang diperlakukan sebagai satu unit semantik, mungkin yang paling umum dalam kantong n-gram adalah bigram (yaitu, dua kata). Kata-bigram berguna karena dapat memperhitungkan kata majemuk, seperti New York atau Menara Eiffel. Tentu saja, tidak semua kata-bigram informatif, misalnya on the atau of the. Namun demikian, ini adalah salah satu cara untuk memperhitungkan masalah seperti kata majemuk dan korelasi kata.7

Teknik normalisasi teks. Data teks mentah mungkin perlu dinormalisasi untuk meningkatkan struktur dan fungsi model tas kata. Saat membuat Bag of words, atau bag of n-grams, model, kata-kata seperti artikel (misalnya, a, the, dll.) dan preposisi (misalnya, from, of, on, dll.) mungkin memiliki jumlah kemunculan tertinggi. Kata-kata ini tidak memberikan banyak informasi tentang isi atau jenis dokumen, sehingga tidak berguna dalam tugas klasifikasi. Teknik prapemrosesan teks seperti penghapusan kata berhenti (sering digunakan dalam stemming) dapat membantu menghapus kata-kata yang tidak relevan dari kumpulan data teks untuk membantu meningkatkan struktur model kantong kata. Untungnya, banyak pustaka dan paket python, seperti NLTK atau sklearn yang dilengkapi dengan fungsi-fungsi untuk melakukan teknik-teknik prapemrosesan yang umum.

Hashing. Fitur hashing pada dasarnya mengubah kata-kata individu dari data teks input ke set numerik ukuran tetap. Rentang angka tetap ini kemudian digunakan untuk membangun ruang vektor untuk model kantong kata. Membatasi kisaran angka, dan juga dimensi model, ke ukuran yang tetap, membantu mencegah kerapatan dan dimensi yang tinggi. Kerugian utama dari hashing adalah apa yang disebut tabrakan. Tabrakan hashing terjadi ketika dua token yang tidak terkait dipetakan ke bilangan bulat yang sama. Kerugian lain dengan hashing adalah tidak memperhitungkan kata-kata polisemus.8

TF-IDF

Dengan model kantong kata standar, kata-kata yang secara semantik tidak relevan (misalnya, the, some, dan lain-lain) dapat memiliki frekuensi term tertinggi, dan karenanya memiliki bobot terbesar dalam model. Istilah frekuensi terbalik dokumen frekuensi (TF-IDF) bertujuan untuk mengoreksi ini. Sementara kantong kata hanya menghitung berapa kali sebuah kata muncul dalam satu dokumen, TF-IDF memperhitungkan prevalensi kata tersebut di setiap dokumen dalam kumpulan teks. TF-IDF diwakili dalam persamaan:

Dalam persamaan ini, suku pertama adalah nilai yang dihitung oleh model kantong kata, yaitu frekuensi istilah. Istilah kedua melambangkan frekuensi dokumen terbalik. N sama dengan jumlah total dokumen dalam kumpulan teks, dan n sama dengan jumlah dokumen di mana kata tertentu muncul. Semakin banyak dokumen di mana kata tertentu muncul, semakin besar TF-IDF mengurangi bobot kata itu. Dengan cara ini, TF-IDF adalah contoh penskalaan fitur dalam model machine learning.9

Sama seperti model bag of words pada umumnya, paket NLP sering kali memiliki fungsi yang sudah ada sebelumnya untuk mengimplementasikan TF-IDF, seperti fungsi tfidfvectorizer dari scikit-learn.

Penelitian terbaru

Variasi model tas kata digunakan dalam berbagai tugas NLP. Misalnya, Neural Networks word2vec menggunakan rangkaian kata yang berkelanjutan untuk menghasilkan model penyematan kata.10 Analisis dan klasifikasi sentimen juga dapat menggunakan model bag of words.11

Bahasa

Penelitian awal untuk sejumlah besar teknik NLP berfokus pada bahasa Inggris atau bahasa aksara Latin lainnya, seperti Spanyol atau Prancis. Baru-baru ini, para peneliti telah beralih ke bahasa lain, seperti bahasa Arab. Studi terbaru telah meneliti keampuhan model bag of words bersama dengan alat NLP lainnya seperti word2vec untuk analisis sentimen dan klasifikasi teks bahasa Arab dengan hasil yang menjanjikan.12 Studi lain menunjukkan potensi pengklasifikasi Naïve Bayes berdasarkan model bag of words untuk disambiguasi arti kata pada teks bahasa Sansekerta.13

Ujaran kebencian

Pendekatan bag of words telah diuji dalam algoritme untuk mendeteksi ujaran kebencian di platform media sosial dengan tingkat keberhasilan yang berbeda. Sebuah penelitian membandingkan bag of words dengan word2vec dan pengklasifikasi deep learning seperti BERT, dan menyatakan bahwa BERT mengungguli bag of words dan TF-IDF tidak secara signifikan meningkatkan prediksi dari model bag of words.14 Sebaliknya, sebuah penelitian lain menyajikan algoritma yang menggunakan bag of words dan Naïve Bayes untuk mendeteksi ujaran kebencian dengan akurasi sekitar 99%.15 Perbedaan dalam ukuran dan pengambilan sampel data, serta prapemrosesan teks, mungkin berkontribusi pada kesenjangan dalam temuan tersebut. Memang, penelitian lain menunjukkan kinerja komparatif antara BERT dan pengklasifikasi yang menggunakan bag of words tergantung pada ukuran kategori klasifikasi kumpulan data.16

Visi komputer

Baru-baru ini, komunitas visi komputer telah mengadopsi variasi bag of words mereka sendiri untuk ekstraksi fitur dalam tugas klasifikasi dan pengambilan gambar. Pendekatan ini mendeteksi dan mengekstrak fitur gambar dan mengelompokkan patch serupa bersama-sama sebagai “kata kode”. Banyak tantangan yang mengganggu pendekatan bag of words untuk klasifikasi gambar sama dengan yang ada di tugas-tugas visi komputer lainnya: misalnya objek dengan warna atau latar belakang yang mirip, objek yang tertutup dan tumpang tindih, variasi intra-kelas, dan sebagainya.17

Sumber daya terkait Manfaatkan konten media sosial dengan penambangan teks

Pelajari langkah-langkah umum untuk penambangan teks menggunakan alat seperti bag of words.

Mengklasifikasikan data menggunakan algoritma Naive Bayes

Buat model kumpulan kata menggunakan scikit-learn untuk menyiapkan data untuk penyaringan spam dengan pengklasifikasi Naive Bayes.

Penilaian tingkat keparahan skala otomatis pada gambar kulit

Peneliti IBM menggunakan model bag-of-visual words untuk ekstraksi fitur pada gambar kulit psoriasis.

Ambil langkah selanjutnya

Bangun strategi AI untuk bisnis Anda pada satu platform AI dan data kolaboratif—IBM watsonx. Melatih, memvalidasi, menyetel, dan menerapkan model AI untuk membantu Anda meningkatkan dan mempercepat dampak AI dengan data tepercaya di seluruh bisnis Anda.

Jelajahi watsonx Pesan demo langsung
Catatan kaki

1 Ruslan Mitkov (ed.), Oxford Handbook of Computational Linguistics, edisi ke-2, Oxford University Press, 2014.

2 Alice Zheng dan Amanda Casari, Feature Engineering for Machine Learning, O'Reilly, 2018.

3 Daniel Jurafsky dan James Martin, Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition, edisi ke- 3, 2023, https://web.stanford.edu/~jurafsky/slp3/ (tautan berada di luar ibm.com). Christopher Manning dan Hinrich Schütze, Foundations of Statistical Natural Language Processing, MIT Press, 2000.

4 Dongyang Yan, Keping Li, Shuang Gu, dan Liu Yang, “Network-Based Bag-of-Words Model for Text Classification”, IEEE Access, Vol. 8, 2020, pp. 82641-82652, https://ieeexplore.ieee.org/document/9079815 (tautan berada di luar ibm.com).

5 Christopher Manning dan Hinrich Schütze, Foundations of Statistical Natural Language Processing, MIT Press, 2000.

6 Dani Yogatama, “Sparse Models of Natural Language Text”, tesis doktoral, Carnegie Mellon University, 2015, https://lti.cmu.edu/people/alumni/alumni-thesis/yogatama-dani-thesis.pdf (tautan berada di luar ibm.com).

7 Yoav Goldberg, Neural Network Methods for Natural Language Processing, Springer, 2022.

8 Alice Zheng dan Amanda Casari, Feature Engineering for Machine Learning, O'Reilly, 2018.

9 Alice Zheng dan Amanda Casari, Feature Engineering for Machine Learning, O'Reilly, 2018.

10 Tomas Mikolov, Kai Chen, Greg Corrado, dan Jeffrey Dean, “Efficient Estimation of Word Representations in Vector Space”, Workshop Track Proceedings of 1st International Conference on Learning Representations (ICLR), 2013, https://arxiv.org/abs /1301.3781 (tautan berada di luar ibm.com).

11 Tan Thongtan dan Tanasanee Phienthrakul, “Sentiment Classification Using Document Embeddings Trained with Cosine Similarity”, Pengantar Pertemuan Tahunan ke-57 Association for Computational Linguistics: Student Research Workshop, 2019, pp. 407-414, https://aclanthology.org/P19-2057/ (tautan berada di luar ibm.com).

12 Huda Abdulrahman Almuzaini dan Aqil M. Azmi, “Impact of Stemming and Word Embedding on Deep Learning-Based Arabic Text Categorization”, IEEE Access, Vol. 8, 2020, pp. 127913-127928, https://ieeexplore.ieee.org/abstract/document/9139948 (tautan berada di luar ibm.com). Mohammed Kasri, Marouane Birjali, dan Abderrahim Beni-Hssane, “A comparison of features extraction methods for Arabic sentiment analysis” ,Pengantar International Conference on Big Data and Internet of Things (BDIoT '19) ke-4, 2019, https://dl.acm.org/doi/abs/10.1145/3372938.3372998 (link resides outside ibm.com).

13 Archana Sachindeo Maurya, Promila Bahadur, dan Srishti Garg, “Approach Toward Word Sense Disambiguation for the English-To-Sanskrit Language Using Naïve Bayesian Classification”, Pengantar Simposium Doktoral Ketiga tentang Kecerdasan Komputasional, 2023, pp. 477–491, https://link.springer.com/chapter/10.1007/978-981-19-3148-2_40 (tautan berada di luar ibm.com).

14 Joni Salminen, Maximilian Hopf, Shammur A. Chowdhury, Soon-gyo Jung, Hind Almerekhi, dan Bernard J. Jansen, “Developing an online hate classifier for multiple social media platforms”, Human-centric Computing and Information Sciences, Vol. 10, 2020, https://hcis-journal.springeropen.com/articles/10.1186/s13673-019-0205-6 (tautan berada di luar ibm.com).

15 Yogesh Pandey, Monika Sharma, Mohammad Kashaf Siddiqui, dan Sudeept Singh Yadav, “Hate Speech Detection Model Using Bag of Words and Naïve Bayes”, Advances in Data and Information Sciences, 2020, hal. 457–470, https://link.springer.com/chapter/10.1007/978-981-16-5689-7_40 (tautan berada di luar ibm.com).

16 Paula Fortuna, Juan Soler-Company, dan Leo Wanner, “How well do hate speech, toxicity, abusive and offensive languageclassification models generalize across datasets?”, Information Processing and Management, Vol. 58, 2021, https://www.sciencedirect.com/science/article/pii/S0306457321000339 (tautan berada di luar ibm.com).

17 Wisam A. Qader, Musa M. Ameen, dan Bilal I. Ahmed, “An Overview of Bag of Words: Importance, Implementation, Applications, and Challenges," Pengantar International Engineering Conference on Developments in Civil & Computer Engineering Applications (IEC2019) ke-5, 2019, pp. 200-204, https://ieeexplore.ieee.org/document/8950616 (tautan berada di luar ibm.com).