Membuat Fancy Workcloud Detective Conan Menggunakan Python

Monika Sembiring
3 min readOct 13, 2020

Beberapa waktu ini, saya kerap kali menghadiri sesi ataupun meeting yang menggunakan menti.com dalam proses penyampaian materi ataupun gathering feedback. Mulai dari meeting terkait pekerjaan saya di kantor sampai sesi belajar antara siswa dan guru pun banyak yang menggunakan tools tersebut. Mengapa menti.com bisa menjadi se-populer itu? Ya, kalau dipikir-pikir, alasannya karena menti.com menghasilkan word cloud dari data-data yang diinput oleh usernya sehingga baik pemateri ataupun peserta bisa gathering instant feedback dan mendapatkan gambaran terkait proporsi data dalam suatu kelompok. Walaupun word cloud bukan visualisasi data yang didasarkan teori statistik misal seperti bar chart, pilihan ini memang dapat dikatakan cukup mumpuni untuk menampilkan proporsi modus data dalam satu dataset.

Pada dasarnya, banyak tools di luar sana yang menyediakan service untuk membuat world cloud dengan mudah. Salah satunya yang dulu pernah saya gunakan adalah wordle.net. Nah, tetapi berhubung saya sedang berusaha mempelajari Python, saya lantas mencoba mencari tahu apakah Python bisa digunakan untuk membuat work cloud. Hasilnya, ternyata terdapat sebuah package yang dibuat oleh Andreas Mueller. Dokumentasi lengkapnya dapat ditemukan pada link ini.

Malam itu, saya tengah membaca chapter terbaru komik Detective Conan yaitu chapter 1061. Plot cerita yang diangkat kali ini sungguh membuatku excited karena melibatkan hampir seluruh karakter penting yaitu Black Organization, FBI, bahkan kedua orang tua Shinichi. Membaca chapter ini sangat membuat saya benar-benar senang sampai saya mengingat kembali plot terakhir yang sebelumnya membuat saya se-excited ini. Ya, tentu saja (pencinta Detective Conan pasti mengetahui hal ini) yang saya maksud adalah kasus The Jet-Black Mystery Train. Jujur, terlalu banyak plot twist di kasus itu dan melibatku all-stars tentu saja.

Sneak peek Detective Conan chapter 1061; lihatlah ekspresi semua agen FBI tersebut. I can’t wait the next chapter.

Akhirnya saya pun memutuskan untuk membuat work cloud dari summary case tersebut yang ada di Detective Conan World page. Hasilnya pun membuat saya sungguh senang karena saya berhasil membuat word cloud yang fancy dalam beberapa versi berikut.

Word cloud default

Ada beberapa hal yang menurut saya patut dimention terkait word cloud yang dihasilkan:

  1. Word cloud yang di mask ke PNG Conan
# save mask to conan_mask
conan_mask = np.array(Image.open('data/mask/conan.png'))
# instantiate a word cloud object
conan_wc = WordCloud(background_color='white', max_words=2000, mask=conan_mask, stopwords=stopwords, colormap='twilight')
# generate the word cloud
conan_wc.generate(conan_text)
# display the word cloud
fig = plt.figure()
fig.set_figwidth(14) # set width
fig.set_figheight(18) # set height
plt.imshow(conan_wc, interpolation='bilinear')
plt.axis('off')
plt.show()
Word cloud yang di mask di gambar Conan

2. Memakai warna gambar untuk digunakan pada word cloud

# create coloring from image
image_colors = ImageColorGenerator(conan_color)
wc.recolor(color_func=image_colors)
Gambar asli
Word cloud yang dengan warna dari gambar asli di atas

Ada beberapa hal menarik lainnya yang dapat dilakukan seperti mengubah font atau bahkan mengubah warna. Untuk code lengkapnya bisa ditemukan di Github saya disini dengan penjelasan detail langkahnya saya cantumkan di Jupyter Notebook. Siapa tahu ada yang mau mencobanya juga.

Semoga masih bisa mencoba hal-hal menarik lainnya di kemudian hari. Terima kasih.

--

--