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:


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