• Tidak ada hasil yang ditemukan

ANALISIS DAN PERANCANGAN

3.2. Arsitektur Umum

Sistem peringkasan ini dibangun atas tiga modul utama, yaitu sentence removal untuk memilih kandidat kalimat ringkasan, sentence labelling untuk memisahkan kalimat-kalimat sehingga dapat disusun secara terstruktur, dan sentence ranking untuk mengambil sebagian kecil kalimat yang telah melalui dua tahap sebelumnya sehingga keluaran sistem memenuhi kriteria abstrak yang hanya memuat 150 hingga 350 kata.

Sentence removal dilakukan lewat klasifikasi biner menggunakan metode Support Vector Machine (SVM). Kalimat-kalimat dipisahkan ke dalam kelas 0 jika tidak cocok dimasukkan ke dalam ringkasan dan kelas 1 jika cocok untuk dijadikan kandidat kalimat ringkasan. Dilanjutkan dengan sentence labelling lewat klasifikasi multiclass menggunakan SVM. Kalimat dipisahkan ke dalam beberapa kelas meniru sebagian skema anotasi Liakata et al. (2013), yaitu Background, Topic, Method, Dataset, Result, Conclusion, dan Suggestion. Pada bagian terakhir, yaitu sentence ranking menggunakan Textrank dan kemudian disusun sesuai urutan kemunculannya dalam artikel input.

Keluaran dari sistem ini berupa paragraf yang berisi kalimat berlabel seperti yang telah disebutkan. Gambaran keseluruhan rancangan sistem dapat dilihat pada Gambar 3.1.

3.2.1. Input

Data yang dikumpukan untuk penelitian ini berupa file PDF artikel ilmiah berbahasa Indonesia. File-file tersebut kemudian melalui proses persiapan data hingga menjadi beberapa file csv yang disimpan dalam sebuah folder. Pada sistem, file-file csv hasil konversi tersebut yang akan dipilih melalui file selector untuk dijadikan input.

3.2.2. Persiapan Data

Dalam persiapan data, tahap pertama setelah pengumpulan data adalah mengonversi file PDF yang telah dikumpulkan ke dalam format .txt seperti Gambar 3.2. dengan memanfaatkan library PDFMiner yang mampu memetakan teks dalam PDF berkolom lebih dari satu.

Setelah file telah berekstensi .txt, bagian-bagian seperti headers, daftar pustaka, dan kata kunci pada bagian abstrak dikumpulkan dengan regex lalu dihapus. Intervensi manual masih dibutuhkan untuk merapikan bagian-bagian yang tidak diproses

Gambar 3.1. Arsitektur Umum

18

sempurna oleh kode, seperti kata-kata yang bersambung tanpa spasi, kalimat yang seharusnya menjadi satu namun terpisah, dll.

Kalimat-kalimat yang telah diproses kemudian dipindahkan ke csv lewat program.

Header tiap kalimat juga disimpan di sebelah kolom kalimat karena akan berguna sebagai fitur dalam klasifikasi berikutnya. Setelah tahap tersebut barulah dilakukan pelabelan kalimat secara manual ke dalam kategori Background, Topic, Method, Dataset, Result, Conclusion, Suggestion, dan Others. Setelah pelabelan, dataset lengkapnya akan terlihat seperti Gambar 3.3.

Gambar 3.3. Data dalam Format CSV Gambar 3.2. Contoh Konversi File PDF ke .txt

Background adalah label untuk kalimat yang memaparkan latar belakang permasalahan penelitian. Topic adalah label untuk kalimat yang menerangkan penelitian apa yang diangkat dalam penelitian tersebut. Method memaparkan metode yang dgunakan. Dataset adalah label untuk kalimat yang menyebutkan dataset penelitian. Result memaparkan hasil. Conclusion berisi kesimpulan. Suggestion memaparkan saran. Others merupakan label yang diisi kalimat-kalimat yang akan disisihkan karena dianggap tidak cocok dijadikan kandidat ringkasan.

Gambar 3.4. Contoh Kalimat dan Pelabelannya

Kalimat-kalimat yang telah diberi label Rhetorical Role yang sesuai kemudian diberi label biner yang menandai apakah kalimat tersebut layak dijadikan kalimat ringkasan (label 1) atau tidak (label 0). Seperti terlihat pada Gambar 3.4., semua kalimat diberi nilai summary-worthy sebesar 1 selain yang berlabel OTHERS. Setelah proses pelabelan, 80% data disimpan sebagai data latih, kemudian 20% data digunakan untuk data uji.

3.2.3. Preprocessing

Setelah data dipisah menjadi data latih dan data uji, tiap data melewati tahap preprocessing yang terdiri atas lowercasing, noise removal, dan vektorisasi TF-IDF secara terpisah. Noise yang dimaksud dalam ini berupa angka romawi, angka, tanda baca, dan beberapa stopwords yang tidak digunakan dalam proses selanjutnya.

20

Setelah kalimat-kalimat telah dibersihkan hingga tampak seperti kalimat-kalimat pada kolom sentence_x pada Gambar 3.5., data akan masuk ke Pipeline dimana data akan dihitung bobotnya dengan TF-IDF vectorizer. Kolom yang akan diproses adalah kolom kalimat serta kolom heading. Proses ini menghasilkan matriks vektor bobot yang kemudian digunakan untuk klasifikasi.

3.2.4. Klasifikasi Kalimat

Tahap berikutnya dalam pipeline adalah klasifikasi biner dengan algoritma Support Vector Machine untuk memisahkan kalimat ke dalam dua kelas, yaitu kelas 1 untuk kalimat yang berpotensi menjadi bahas ringkasan dan kelas 0 untuk kalimat-kalimat yang akan disisihkan. Contoh kalimat-kalimat dan label biner yang menentukan kalimat-kalimat yang disimpan atau dihapus ditunjukkan pada Gambar 3.6.

Gambar 3.5. Kalimat Orisinal dan Kalimat Setelah Pembersihan

Gambar 3.6. Contoh Kalimat dan Label Biner Summary-worthy 3.2.5. Pelabelan Rhetorical Role Kalimat

Setelah program berhasil memilih kalimat-kalimat yang diinginkan untuk hasil ringkasan, kalimat-kalimat tersebut melalui klasifikasi kedua yang akan menghasilkan label-label rhetorical roles tiap kalimat. Klasifikasi multiclass ini dilakukan dengan Support Vector Machine (SVM) one-vs-rest. Model untuk klasifikasi ini dibangun dari dataset untuk klasifikasi sebelumnya yang telah dimodifikasi untuk hanya mengambil kalimat-kalimat yang summary-worthy-nya berlabel 1. Contoh hasil pelabelan kalimat dapat dilihat pada Gambar 3.7.

Gambar 3.7. Dataframe Berisi Contoh Hasil Pelabelan Kalimat

22

3.2.6. Pemeringkatan dan Penyusunan Kalimat

Walaupun banyak kalimat yang sudah disisihkan pada tahap klasifikasi pertama (klasifikasi biner kalimat), hasil ringkasan hingga tahap ini masih terlalu panjang untuk ditampilkan sebagai hasil akhir. Oleh karena itu, pada tahap ini kalimat-kalimat dari tiap kategori rhetorical roles dipangkas lagi hingga hanya tersisa 150 – 350 total kata saja. Pemangkasan paragraf ini dilakukan dengan Textrank dan difflib.

Langkah ini diawali dengan tokenisasi kalimat menjadi kata-kata. Lalu hitung cosine similarity untuk membangun matriks kesamaan yang kemudian akan berperan sebagai adjacency matrix untuk grafik kesamaan dimana kalimat sebagai vertices, dan nilai kesamaan sebagai edges. Dari graf yang telah dibuat, hitung nilai Pagerank dengan fungsi pagerank() dari library networkx dan urutkan dari nilai tertinggi hingga terendah.

Beberapa kalimat teratas dari hasil pemeringkatan Textrank pada tiap kategori diambil kemudian diurutkan sesuai kemunculan untuk menghasilkan ringkasan akhir.

Jika jumlah kalimat dalam suatu kategori berjumlah sama dengan atau lebih dari 10, Tabel 3.1. Contoh Hasil Pemeringkatan dengan Textrank

maka diambil 40% kalimat teratas. Jika jumlah kalimat dalam suatu kategori berjumlah sama dengan atau lebih dari 10, maka diambil 50% kalimat teratas. Sisa kalimat-kalimat yang mirip namun tidak tersaring oleh Textrank akan dibuang oleh fungsi get_close_matches() dari difflib, sebuah library python yang dapat digunakan untuk membandingkan rangkaian kalimat.

3.2.7. Keluaran

Hasil dari sistem ini berupa ringkasan artikel ilmiah dengan kisaran kata sebanyak 100-350 kata yang ditandai dengan kategori rhetorical role masing-masing dan ditampilkan di halaman ringkasan dengan format seperti terlihat pada Gambar 3.8.

Gambar 3.8. Contoh Keluaran Akhir

24

Dokumen terkait