Tutorial : Membuat Wordcloud Menggunakan Python
Assalamualaikum Warahmatullahi Wabarakatuh. Hallo, Data Addict! Dikesempatan ini, saya akan berbagi tentang Wordcloud! Yukk langsung aja~
Apa itu Wordcloud ?
Wordcloud merupakan representasi visual dari data teks, biasanya digunakan untuk menggambarkan metadata keywords (tags) pada sebuah website/situs, untuk memvisualisasikan suatu bentuk teks secara bebas (Wikipedia).
Dalam wordcloud kita dapat memperhatikan pada ukuran kata yang akan muncul, besar kecil kata dalam wordcloud akan merepresentasi-kan jumlah kemunculan kata pada suatu teks, jika semakin besar kata maka semakin sering kata itu muncul dalam teks.
Nah, kali ini kita akan mencoba membuat wordcloud dari suatu artikel dengan menggunakan Python.
Sebelumnya, kita akan mengambil data teks pada suatu artikel dengan cara scraping menggunakan library newspaper3k
pada python Google Colab. Silahkan akses Google Colab > Create New Notebook. Akan muncul tampilan seperti berikut,
Mempersiapkan Data
Install terlebih dahulu library yang akan digunakan kemudian import library, copy dan run coding berikut,
Setelah berhasil, tambahkan coding berikut untuk scraping artikel yang akan kita buat wordcloud. Disini saya mencoba menggunakan data berita dari tirto.id dengan judul “Klaster Keluarga Mendominasi Penularan COVID-19 di Kota Yogyakarta”,
Untuk hasil scraping beritanya kurang lebih akan terlihat seperti berikut,
Teks berita: Pasien yang terkonfirmasi positif COVID-19 di Yogyakarta sebagian besar tidak mengetahui dari mana sumber paparannya. "Dari total kasus yang tercatat hingga saat ini, hampir separuhnya adalah kasus penularan di dalam keluarga karena adanya kontak erat. Temuannya dari kontak tracing kasus yang sudah muncul," kata Ketua Harian Satuan Tugas Penanganan COVID-19 Yogyakarta Heroe Poerwadi di Yogyakarta, Kamis (24/12/2020). Menurut dia, jumlah temuan kasus dalam keluarga pada awal pekan lalu mencapai 279 orang yang kemudian ditemukan 732 kontak erat yang diketahui terkonfirmasi positif terpapar COVID-19. Oleh karena itu, Heroe mengingatkan bahwa paparan virus corona jenis baru itu bisa terjadi di mana saja dan kapan saja, bahkan bisa terbawa hingga ke rumah, kemudian menularkan ke anggota keluarga. "Saat bekerja atau sesudah bepergian bisa saja terpapar virus. Jika tidak menerapkan protokol kesehatan secara ketat, maka virus bisa terbawa ke rumah dan menulari keluarga. Ini yang terjadi," katanya. Pada akhir-akhir ini, lanjut Heroe, pasien yang terkonfirmasi positif COVID-19 sebagian besar tidak mengetahui dari mana sumber paparannya. "Yang paling penting protokol kesehatan saat beraktivitas di luar rumah maupun di dalam rumah," katanya. Sementara untuk kapasitas Selter Penanganan COVID-19 Yogyakarta yang diperuntukkan bagi pasien tanpa gejala, lanjut Heroe, masih tersedia cukup banyak karena keterisiannya sekitar 40 persen dari total 84 tempat tidur. "Begitu juga untuk kamar isolasi maupun ICU, masih tersedia," kata dia. Pada Rabu (23/12) terdapat tambahan 52 pasien positif baru dengan 13 pasien dinyatakan sembuh atau selesai menjalani isolasi mandiri. Total kasus COVID-19 di Kota Yogyakarta terdapat 1.516 pasien dengan 346 pasien masih dalam perawatan, 1.109 sembuh, dan 61 pasien meninggal dunia. Heroe yang juga Wakil Wali Kota Yogyakarta ini memastikan akan mengikuti Instruksi Gubernur Nomor 7 Tahun 2020 tentang Penegakan Protokol Kesehatan pada Libur Natal dan Tahun Baru 2021. "Saya kira, apa yang diatur dalam intsruksi tersebut selama ini pun sudah dijalankan oleh pemerintah daerah. Hanya saja memang ada penekanan untuk rapid test antigen. Tentunya, apa yang diinstruksikan akan dijalankan," katanya. Ia menyebut, RT/RW pun masih rutin menyampaikan laporan apabila ada warga dari luar daerah yang datang ke wilayahnya dan menanyakan mengenai identitas kesehatan mereka. "Laporan untuk pendatang masih masuk melalui corona monitoring system (CMS). Tinggal dilanjutkan saja pada libur akhir tahun ini," katanya. Baca juga: Jejak Ketegangan Yaqut Cholil Qoumas, FPI & Ahmad Dhani Corona Indonesia: Terbanyak di ASEAN, Rumah Sakit "Mulai Kolaps" Yang Tersembunyi dalam Selimut: Kasus Corona di Yogyakarta tirto.id - Satuan Tugas Penanganan COVID-19 Yogyakarta menyebut penularan di dalam keluarga masih mendominasi temuan kasus terkonfirmasi positif COVID-19 di kota tersebut. Bahkan hampir separuh kasus positif terkait dengan kontak erat dalam keluarga."Dari total kasus yang tercatat hingga saat ini, hampir separuhnya adalah kasus penularan di dalam keluarga karena adanya kontak erat. Temuannya dari kontak tracing kasus yang sudah muncul," kata Ketua Harian Satuan Tugas Penanganan COVID-19 Yogyakarta Heroe Poerwadi di Yogyakarta, Kamis (24/12/2020).Menurut dia, jumlah temuan kasus dalam keluarga pada awal pekan lalu mencapai 279 orang yang kemudian ditemukan 732 kontak erat yang diketahui terkonfirmasi positif terpapar COVID-19.Oleh karena itu, Heroe mengingatkan bahwa paparan virus corona jenis baru itu bisa terjadi di mana saja dan kapan saja, bahkan bisa terbawa hingga ke rumah, kemudian menularkan ke anggota keluarga."Saat bekerja atau sesudah bepergian bisa saja terpapar virus. Jika tidak menerapkan protokol kesehatan secara ketat, maka virus bisa terbawa ke rumah dan menulari keluarga. Ini yang terjadi," katanya.Pada akhir-akhir ini, lanjut Heroe, pasien yang terkonfirmasi positif COVID-19 sebagian besar tidak mengetahui dari mana sumber paparannya."Yang paling penting protokol kesehatan saat beraktivitas di luar rumah maupun di dalam rumah," katanya.Sementara untuk kapasitas Selter Penanganan COVID-19 Yogyakarta yang diperuntukkan bagi pasien tanpa gejala, lanjut Heroe, masih tersedia cukup banyak karena keterisiannya sekitar 40 persen dari total 84 tempat tidur."Begitu juga untuk kamar isolasi maupun ICU, masih tersedia," kata dia.Pada Rabu (23/12) terdapat tambahan 52 pasien positif baru dengan 13 pasien dinyatakan sembuh atau selesai menjalani isolasi mandiri. Total kasus COVID-19 di Kota Yogyakarta terdapat 1.516 pasien dengan 346 pasien masih dalam perawatan, 1.109 sembuh, dan 61 pasien meninggal dunia.Heroe yang juga Wakil Wali Kota Yogyakarta ini memastikan akan mengikuti Instruksi Gubernur Nomor 7 Tahun 2020 tentang Penegakan Protokol Kesehatan pada Libur Natal dan Tahun Baru 2021."Saya kira, apa yang diatur dalam intsruksi tersebut selama ini pun sudah dijalankan oleh pemerintah daerah. Hanya saja memang ada penekanan untuk rapid test antigen. Tentunya, apa yang diinstruksikan akan dijalankan," katanya.Ia menyebut, RT/RW pun masih rutin menyampaikan laporan apabila ada warga dari luar daerah yang datang ke wilayahnya dan menanyakan mengenai identitas kesehatan mereka."Laporan untuk pendatang masih masuk melalui corona monitoring system (CMS). Tinggal dilanjutkan saja pada libur akhir tahun ini," katanya.
Dengan hasil scraping berita diatas, nampaknya kita akan kesulitan untuk mendapatkan insight dari topik yang diberitakan tanpa harus membaca secara keseluruhan dari berita itu.
Sehingga dengan bantuan wordcloud, kita akan lebih mudah untuk memperoleh insight dari topik yang diberitakan tanpa harus membaca keseluruhan berita.
Setelah mendapatkan data berita, kita lanjut untuk membuat wordcloud-nya. Berikut adalah tahapannya.
Membuat Wordcloud
Lakukan installasi package wordcloud==1.8.0
dengan copy dan run coding berikut,
setelah berhasil, selanjutnya untuk menampilkan visualisasi dari teks berita
yang telah kita dapat sebelumnya, dapat dilakukan dengan bantukan library(matplotlib)
dengan menambah coding berikut,
maka akan muncul hasil wordcloud seperti berikut,
Menambah Custom Mask
Berikutnya, kita akan menambahkan mask untuk wordcloud. Untuk gambar yang digunakan sebagai mask ini harus mempunyai format PNG. Namun, tidak semua gambar dapat dijadikan mask, kita dapat mengeceknya dengan coding yang telah dilampirkan.
Kali ini, saya akan mencoba membuat mask dari gambar wine seperti berikut,
Catatan :
Cara kerja fungsi mask adalah mengharuskan semua bagian putih dari mask harus 255 bukan 0.
Nilai ini mewakili "intensitas" pixel gambar.
Nilai 255 berwarna putih, sedangkan nilai 1 berwarna hitam.
Sebelumnya, upload terlebih dahulu gambar mask kedalam Google Colab, lalu copy dan run coding berikut untuk import library mask
,
akan muncul hasil seperti berikut,
untuk menampilkan hasil mask wordcloud dapat meng-copy dan run coding berikut,
dan hasil untuk wordcloud dengan mask : wine adalah seperti berikut,
KESIMPULAN
Nah, dari artikel ini kita bisa mengetahui cara membuat wordcloud untuk visualisasi dan anlisa topik dalam suatu teks berita, selain itu kita juga menambahkan mask untuk mempercantik tampilan wordcloud yang kita punya. Yang terpenting, dengan wordcloud ini, kita dapat menganalisa sebuah kata dalam teks dengan representasi banyaknya kemunculan kata tersebut dalam teks.
Yeay selesai, sekian dari saya. Semoga dapat membantu temen-temen! Wassalamualaikum Warahmatullahi Wabarakatuh.
REFERENSI :
- Suwega, Tedy. Dapat diakses melalui link berikut: https://medium.com/milooproject/wordcloud-sederhana-menggunakan-python-c26e213678f1
- Salman, Fahmi. Dapat diakses melalui link berikut: https://medium.com/milooproject/membuat-word-cloud-artistik-menggunakan-python-36584e717f7e
- https://www.datacamp.com/community/tutorials/wordcloud-python