Project otak atik Discourse Network Analysis (DNA) Skala Besar pada Berita Global Coronavirus

DNA digunakan untuk mencari maksud/tujuan, agenda, motivasi, selain juga aktor advokasi, dan koalisi /persekongkolan (bisa yang tertulis pada dokumen, bisa dari debat verbal, dan bisa juga dari pidato). DNA merupakan kombinasi studi kualitatif analisa konten dan studi kuantitatif analisa struktur jejaring sosial (SNA) / aktor. Analisa kualitatif dokumen skala besar sangat sulit dilakukan, maka dari itu dimulai dari analisa kuantitatif dulu untuk menyaring/mereduksi dokumen menjadi topik topik penting menggunakan analisa jejaring teks.

Sumber data : https://blog.aylien.com/free-coronavirus-news-dataset/

Jumlah berita : 550.000 berita bahasa inggris

Durasi : 1 november 2019 – 5 april 2020

Topik / tema : berita yang berkaitan dengan coronavirus

Sumber : 400 media internasional

Ukuran file : 7.6 GB

Dari sumber berita diatas diperoleh jejaring teks sebesar 270.616 kata dan 14.277.297 hubungan antar kata tersebut, wow sangat besar jaringannya. Sepertinya butuh HPC atau pake kekuatan komputer cloud. Berhubung lagi WFH, sehingga ga bisa ke lab kampus, yah udah dikerjain perhitungannya di rumah pake modifan koding setengah inget setengah lupa pas disertasi dulu (python dan neo4J).

Topik 1 (kata dominan china-pandemic-public) : menceritakan bagaimana pandemic diawali di china, kemudian muncul anjuran social-distancing, karena ada isu dengan emergency-healthcare yang overload. yang menarik dari topik ini ada pola dibelakang yang tidak terlihat jelas (non-obvious), yaitu trump-political-law dan necessary-measures-serious-risk menunjukkan berita pernyataan trump menanggapi munculnya pandemic saat itu.

Topik 2 (kata dominan market-global-economy-business ) : isu ekonomi dominan pada topik ini sebagai akibat dari lockdown yang terjadi hampir diseluruh negara di dunia. ada dua klaster berdekatan america-shares-domestic dan investment-interest-expect menunjukan harapan iklim investasi di USA (growing) meskipun ada ancaman pandemic. selain itu terdapat klaster berita negatif, dengan kata decline-reduce aktivitas ekonomi yang berakibat unemployment, sayang kata tersebut tidak mencapai Top50 di topik ini.

Topik 3 (kata dominan coronavirus-medical-health-infected-quarantine) : isu kesehatan dominan pada topik ini, termasuk berita kematian, dan upaya untuk mereduksi penyebarannya government-flight-suspended dan school-hospital-isolation. berita banyak memunculkan kondisi kesehatan pada beberapa kota/negara di dunia, seperti wuhan-london-italy-australia.

Topik 4 (kata dominan provided-mask-food-important) : fokus pada anjuran untuk pencegahan penyebaran virus dan menjaga daya tahan tubuh muncul dari kata kata distance-touch-directly, check-physical-app, keeping-healthy-sense-clean, dan wearing-protective-cover. Akhirnya ketemu 4 topik atau agenda utama yang dominan dari ratusan ribu berita diatas.

Analisa aktornya belum dilakukan, monggo yang berminat silahkan barengan ngulik dataset diatas. kalo dapat cerita menarik, kita jadikan publikasi ilmiah. cara analisanya aktornya bebas, barangkali ada yang mempunyai ide ide brilian untuk data skala besar tersebut, tapi jangan minta saya untuk ngajarin lho ya, biar ketemu cara yang berbeda (bahkan lebih baik mungkin).

Modularity0blacklogoModularity1blacklogoModularity2blacklogoModularity3blacklogo

Ayo Eksplorasi Graph Database

Graph Database adalah model penyimpanan data menggunakan prinsip Teori Graf, dimana entri data dilambangkan sebagai Node dan juga Edge yang menjadi penghubung setiap Node. Contoh Node bisa berupa aktor, tempat, atau kejadian. Setiap Node bisa mempunyai banyak properti, misalkan untuk Node Aktor, saya pilih Andi dengan properti adalah seorang mahasiswa, laki laki, tinggal di Bogor, mempunyai binatang piaraan berupa ikan dan informasi lain lainnnya yang jumlahnya tak terbatas. Untuk Node Tempat misalkan Telkom University, dengan properti jumlah fakultas, Nama Rektor, Jumlah Mahasiswa, Alamat, Nomer Telpon dan lain lainnya. Edge menghubungkan aktor dengan aktor, aktor dengan tempat, aktor dengan kejadian atau kombinasi ketiganya. Edge juga mempunyai properti bermacam macam. Nah, contohnya detailnya seperti pada gambar dibawah ini.  

Query1

Saya mengetahui Graph Database sejak dua tahun lalu setelah membaca buku terbitan O’Reilly ini , akan tetapi tidak pernah benar benar mempunyai waktu untuk eksplorasi, walaupun secara prinsipnya saya mengetahui cara bekerjanya dan apa keunggulannya dibandingkan database biasa. Graph Database termasuk dalam keluarga database NoSQL (Non Relational / Not Only SQL). NoSQL merubah struktur penyimpanan data konvensional dengan tujuan bisa mendukung data data tidak terstruktur, scalable (Big Data), pencarian yang cepat, ekstraksi pola / informasi tersembunyi, konstruksi informasi dari keping keping data. Salah satu implementasi yang paling kita ingat adalah pada Graph API Facebook . Sayangnya perusahaan pendukung / pembuat Graph Database masih sedikit, salah satu yang terkenal adalah Neo4J, karena sistemnya open source, sehingga paling banyak dipakai rujukan untuk belajar dan penelitian.

Kebetulan  salah satu riset terakhir saya mengenai ekstraksi dokumen yang cukup kompleks, maka saya melihat melihat pilihan solusi yang ada dan yang paling sesuai ternyata adalah database berbasis graf ini. Karena jika kita menyimpan semua informasi ke dalam dokumen relasional, maka menjadi tidak praktis dan akan sulit fokus kepada hal hal / hubungan hubungan yang penting dari setiap cerita yang ada di dokumen tersebut, sehingga pada akhirnya high level document abstraction tidak akan tercapai dengan mudah.

Contoh pencarian / query mulai dari yang mudah sampai yang kompleks bisa dilihat sebagai berikut :

  • Mencari orang yang bernama Andi, maka querynya seperti berikut :  MATCH (as:Orang) WHERE as.nama = “Andi” RETURN as;
  • Mencari temen teman dari Andi, maka querynya seperti berikut : MATCH (as:Orang) -[:TEMAN]-(friends)WHERE as.nama = “Andi” RETURN as, friends
  • Mencari teman teman Andi, yang berteman dengan Andi sejak tahun 2006, maka querynya adalah : MATCH (as:Orang) -[:TEMAN]-(friends {since : 2006} ) WHERE as.nama = “Andi” RETURN as, friends
  • Mencari temannya teman teman Agus yang hobi sepakbola, sehingga Agus bisa mempunyai teman baru yang sehobi : MATCH (as:Orang) – [:TEMAN]-()-[:TEMAN] – (Sepakbola)WHERE as.nama = “Agus” AND hobby = “Sepakbola” RETURN DISTINCT Sepakbola
Setelah melihat contoh contoh query untuk pencarian, kita bisa ambil kesimpulan bahwa model ini sangat cocok untuk data data media sosial yang datangnya tidak pernah lengkap, dan properti yang bermacam macam, contohnya seperti data percakapan. Kebutuhan untuk membuat kesimpulan yang cepat dan bahkan kalau perlu secara Real-Time, tentu membutuhkan sistem yang mendukung penyimpanan dan ekstraksi data yang cepat, maka Graph Database adalah salah satu  solusinya.
 
Ayo kita eksplorasi …