Lompat ke konten utama
←

Mengolah Teks dengan Python

Pelajaran 11 dari 16

Menghitung kata: frekuensi, n-gram, dan bag-of-words

Bag-of-words dan CountVectorizer

Setelah pelajaran ini kamu bisa mengubah kumpulan dokumen menjadi matriks hitungan kata dengan CountVectorizer.

±14 menitDiperiksa 27 Sep 2026

Materi

Bag-of-words mengubah setiap dokumen menjadi vektor angka: satu kolom untuk setiap kata di kosakata, dan isinya banyaknya kata itu muncul di dokumen. Dokumentasi scikit-learn menggambarkan langkahnya sebagai tokenisasi, penghitungan, dan normalisasi, dengan korpus disajikan sebagai matriks satu baris per dokumen dan satu kolom per token. Posisi kata di dalam dokumen diabaikan, sehingga "kurir ramah, barang rusak" dan "barang ramah, kurir rusak" menghasilkan vektor yang sama.

from sklearn.feature_extraction.text import CountVectorizer

korpus = ["sabun wangi", "sabun cair wangi sekali", "sampo cair"]
cv = CountVectorizer()
X = cv.fit_transform(korpus)
print(cv.get_feature_names_out())
# ['cair' 'sabun' 'sampo' 'sekali' 'wangi']
print(X.toarray())
# [[0 1 0 0 1]
#  [1 1 0 1 1]
#  [1 0 1 0 0]]

CountVectorizer menyusun kosakata dari seluruh korpus, lalu menghitung setiap kata per dokumen; pada contoh di atas kolomnya urut alfabetis. fit_transform mengembalikan matriks jarang (sparse) karena sebagian besar selnya nol, dan toarray() mengubahnya menjadi array numpy biasa untuk dilihat. Atribut vocabulary_ adalah dict dari kata ke nomor kolomnya.

Setelan bawaannya perlu diketahui. lowercase=True mengubah teks ke huruf kecil lebih dulu, dan token_pattern bawaan (?u)\b\w\w+\b hanya mengambil token dua karakter atau lebih, sehingga angka tunggal seperti 5 dan kata satu huruf dibuang. Parameter stop_words menerima list kata henti buatan sendiri, dan ngram_range=(1, 2) menambahkan bigram sebagai kolom.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 3 dari 3

CountVectorizer() dengan setelan bawaan dipasang pada dua dokumen: "rasa 5 bintang" dan "5 bintang untuk rasa kopi". Berapa kolom yang dihasilkan?

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke