Praktikum Visualisasi Data Teks
Dokumen ini membahas berbagai teknik visualisasi data teks menggunakan R — dari word cloud hingga heatmap distribusi kata antar dokumen.
Yang akan dipelajari:
- Word cloud dari frekuensi kata
- Bar plot frekuensi kata (per koleksi dan per kategori)
- Visualisasi jaringan bigram
- Bar plot hasil analisis sentimen
- Heatmap distribusi kata antar dokumen
1. Persiapan: Data dan Tokenisasi
2. Word Cloud
Word cloud menampilkan kata-kata yang paling sering muncul. Ukuran kata proporsional dengan frekuensinya — semakin besar, semakin sering muncul.
Kapan cocok dipakai: presentasi umum dan eksplorasi awal. Hindari untuk laporan formal karena tidak presisi secara numerik.
Word cloud tidak cocok untuk perbandingan atau laporan ilmiah karena:
(1) Mata manusia buruk dalam membandingkan ukuran teks yang tidak sejajar
(2) Tidak menampilkan nilai numerik pasti
(3) Penempatan kata yang acak bisa menyesatkan
Gunakan bar plot jika butuh perbandingan yang presisi.
Pertanyaan: Kata apa yang paling mendominasi word cloud? Apakah itu mencerminkan topik utama data?
3. Bar Plot Frekuensi Kata
3.1 Bar Plot Keseluruhan
3.2 Bar Plot per Kategori
Bar plot lebih baik ketika Anda perlu:
(1) Membandingkan frekuensi antar kata secara tepat
(2) Menyertakan angka dalam laporan atau presentasi formal
(3) Membandingkan distribusi antar kategori/dokumen
Ingat prinsip visualisasi: gunakan grafik yang paling jujur dan mudah dibaca sesuai audiens.
Pertanyaan: Apakah kata-kata dominan berbeda antar kategori? Apa yang itu katakan tentang karakteristik masing-masing kategori?
4. Visualisasi Bigram Network
Bigram (pasangan dua kata) membantu memahami konteks dan frasa yang sering muncul bersama.
Kata tunggal “tidak” ambigu — bisa diikuti kata positif maupun negatif. Bigram “tidak puas” atau “tidak bagus” menangkap sentimen negatif dengan lebih akurat. Begitu pula “luar biasa” lebih bermakna sebagai satu kesatuan frasa daripada kata “luar” dan “biasa” secara terpisah.
Pertanyaan: Bigram apa yang paling berguna untuk membedakan ulasan positif dan negatif?
5. Visualisasi Analisis Sentimen
5.1 Kamus dan Skor Sentimen
5.2 Bar Plot Skor Sentimen
5.3 Kata Positif vs Negatif Terbanyak
Skor 0 terjadi karena kata-kata dalam ulasan tersebut tidak ada di kamus sentimen yang kita gunakan. Ini disebut coverage problem — kamus tidak lengkap. Solusinya: perluas kamus, gunakan kamus pihak ketiga, atau beralih ke pendekatan machine learning.
Pertanyaan: Ada ulasan yang skornya 0 tapi kalimatnya terasa negatif atau positif? Mengapa hal itu bisa terjadi?
6. Heatmap Distribusi Kata
Heatmap menampilkan seberapa sering kata-kata tertentu muncul di berbagai kategori dokumen — berguna untuk melihat pola distribusi sekaligus.
Warna gelap (biru tua) berarti kata tersebut sering muncul di kategori tersebut (relatif terhadap maksimumnya). Warna putih berarti kata itu jarang atau tidak muncul sama sekali. Pola ini membantu mengidentifikasi kata-kata yang menjadi “ciri khas” setiap kategori.
Pertanyaan: Kata apa yang hanya muncul di satu kategori saja? Apa artinya secara analitis?
7. Latihan
Latihan 1 — Mudah: Bar Plot Kata per Kategori
Buat bar plot frekuensi kata khusus kategori “makanan” dari dataset token_bersih, tampilkan 5 kata teratas.
token_makanan <- token_bersih %>%
filter(kategori == "makanan")
frek_makanan <- token_makanan %>%
count(kata, sort = TRUE) %>%
head(5)
par(mar = c(6, 4, 3, 2))
barplot(
frek_makanan$n,
names.arg = frek_makanan$kata,
col = "coral",
main = "Kata Teratas: Kategori Makanan",
ylab = "Frekuensi",
las = 2
)Latihan 2 — Mudah: Visualisasi Skor Sentimen dengan Warna Berbeda
Modifikasi visualisasi skor sentimen di Bagian 5.2 agar: - Ulasan positif berwarna hijau ("forestgreen") - Ulasan negatif berwarna oranye ("darkorange") - Ulasan netral berwarna abu-abu
warna_baru <- ifelse(skor_sentimen$skor > 0, "forestgreen",
ifelse(skor_sentimen$skor < 0, "darkorange", "gray60"))
barplot(
skor_sentimen$skor,
names.arg = paste("U", skor_sentimen$id),
col = warna_baru,
main = "Skor Sentimen (Warna Diubah)",
ylab = "Skor Sentimen"
)
abline(h = 0, lty = 2)Latihan 3 — Sedang: Bigram dari Teks Baru
Buat analisis bigram dari teks berikut dan tampilkan 5 bigram teratas (setelah membuang stop words).
bigram_baru <- teks_baru %>%
unnest_tokens(bigram, teks, token = "ngrams", n = 2)
bigram_baru %>%
count(bigram, sort = TRUE) %>%
separate(bigram, into = c("kata1", "kata2"), sep = " ") %>%
filter(!kata1 %in% stop_b$kata,
!kata2 %in% stop_b$kata) %>%
head(5)Bigram seperti “data science” atau “machine learning” seharusnya muncul karena merupakan frasa teknis yang khas.
Ringkasan: Kapan Menggunakan Visualisasi Apa?
| Visualisasi | Keunggulan | Gunakan Untuk |
|---|---|---|
| Word Cloud | Menarik, cepat dibaca | Eksplorasi awal, presentasi umum |
| Bar Plot Frekuensi | Presisi, mudah dibandingkan | Laporan formal, perbandingan kata |
| Bigram Network | Menampilkan konteks | Analisis frasa dan asosiasi kata |
| Bar Plot Sentimen | Menampilkan polaritas ulasan | Analisis opini, ulasan produk |
| Heatmap | Perbandingan lintas dokumen | Distribusi kata antar kategori |