|
|
# **Perbandingan Ekstraksi Fitur Level Karakter dengan Kata pada Klasifikasi Teks Berita Bahasa Indonesia**
|
|
|
|
|
|
## Pendekatan Eksraksi Fitur Level Karakter
|
|
|
Pendekatan klasifikasi teks berita Bahasa Indonesia dengan level karakter dapat dilakukan pada file **char_cnn_classification**
|
|
|
|
|
|
### **Requirement** :
|
|
|
Sistem yang dibutuhkan agar menjalankan program ini dengan baik :
|
|
|
1. Python 3.6.
|
|
|
2. Tensorflow 1.4.0.
|
|
|
3. Numpy 1.14
|
|
|
|
|
|
### **Running** :
|
|
|
|
|
|
##### **training.py**
|
|
|
Untuk melakukan *running* pada program dapat dilakukan dengan pada file ***training.py***. Apabila pada folder data terdapat data yang sudah *clean* . Maka akan ada *option* seperti gambar dibawah ini, untuk melihat proses yang akan dijalankan
|
|
|
|
|
|

|
|
|
|
|
|
Jika tidak ada data *clean* atau data yang telah di *preprocessing*, maka akan langsung melakukan *modeling* dengan data tanpa *preprocessing*
|
|
|
|
|
|
Saat file *training.py* dijalankan maka akan menghasilkan beberapa file yang muncul berupa sebuah *timestamp* agar unik (contoh:1525118595) sehingga ketika program dijalankan tidak ada *overlapping*. Didalam folder *timestamp* akan berisi Seperti,
|
|
|
* Summaries : yang akan menangkap event-event dari hasil tensorflow.
|
|
|
* test_per_class.txt : yang akan menangkap hasil evaluasi klasifikasi per kelas. Seperti Akurasi, Presisi, Recall dan F1-Score
|
|
|
* test_res.txt : yang akan menangkap hasil evaluasi klasifikasi secara agregat. Seperti *loss*, akurasi, presisi, recall dan F1-Score
|
|
|
* train_per_class.txt : yang akan menangkap hasil pergerakan saat training dalam klasifikasi per kelas. Seperti Akurasi, Presisi, Recall dan F1-Score
|
|
|
* test_res.txt : yang akan menangkap hasil hasil pergerakan saat training dalam klasifikasi secara agregat. Seperti *loss*, akurasi, presisi, recall dan F1-Score
|
|
|
|
|
|
### **File Pendukung** :
|
|
|
|
|
|
##### **config.py**
|
|
|
Pada file ini berisi mengenai pengaturan-pengaturan umum dalam pemodelan seperti jumlah *batch*, jumlah *epoch*, saat evaluasi, jumlah kelas, jumlah karakter yang diambil, sumber data *training *dan data *testing *hingga aristektur yang akan digunakan dalam pemodelan CNN. Karakter yang didefinisikan juga ada pada pengaturan ini. Karakter yang didefinisikan adalah sebagai berikut
|
|
|
|
|
|
*abcdefghijklmnopqrstuvwxyz0123456789-,;.!?:'"/\\|_@#$%^&*~`+-=<>()[]{}*
|
|
|
|
|
|
##### **data_helper.py**
|
|
|
File ini bertugas untuk merubah teks menjadi sebuah input yang dapat dikenali oleh sebuah model CNN. Teks-teks akan digunakan akan dikuantisasi berdasarkan karakter yang telah didefinisikan pada *config.py*. Kemudian akan dilakukan perubahan menjadi 0 atau 1 dalam bentuk *array*. Misalkan kata "ada ada" jika dikuantisasi akan diubah menjadi "1 4 1 0 1 4 1" yang kemudian dibentuk sebuah array berdimensi 69 x 1014 untuk sebuah berita. Dimana 69 merupakan karakter yang didefinisikan dan 1014 karakter merupakan jumlah karakter yang diambil. Jika diilustrasikan hasil secara gambar apabila 0 diartikan sebagai putih dan ketika semakin mendekati 1 akan hitam maka hasilnya adalah sebagai berikut
|
|
|
|
|
|

|
|
|
|
|
|
##### **charCNN.py**
|
|
|
Pada file ini berisi akan melakukan proses *modelling* dan perhitungan dari model model yang telah disusun sehingga akan mennghasilkan kelas yang dapat mengklasifikasikan sebuah berita. Alur yang dihasilkan dalam charCNN adalah sebagai berikut
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
___
|
|
|
## Pendekatan Ekstraksi Fitur Level kata
|
|
|
Pendekatan klasifikasi teks berita Bahasa Indonesia dengan level karakter dapat dilakukan pada file **word_svm_classification**
|
|
|
|
|
|
### **Requirement** :
|
|
|
Sistem yang dibutuhkan agar menjalankan program ini dengan baik :
|
|
|
1. Python 3.6.
|
|
|
2. sckit-sklearn 0.19.1
|
|
|
3. nltk 3.2.5
|
|
|
|
|
|
### **Running** :
|
|
|
|
|
|
##### **word.py**
|
|
|
Dalam melakukan klasifikasi level kata yang dilakukan cukup dengan melakukan *running* pada file **word.py** . Ketika file tersebut dijalankan, maka akan dideteksi apakah pada folder data ada data yang sudah dilakukan *preprocessing* atau belum. Jika belum, maka otomatis akan diambil data tanpa *preprocessing*. Jika ada data yang sudah di *preprocessing* maka akan menampilkan tampilan sebagai berikut
|
|
|
|
|
|

|
|
|
|
|
|
Jika tidak ada data *clean* atau data yang telah di *preprocessing*, maka akan langsung melakukan *modeling* dengan data tanpa *preprocessing*. Setelah memilih data yang telah ataupun yang belum dilakukan *preprocessing*, maka akan muncul pilihan ekstraksi fitur sebagai berikut
|
|
|
|
|
|

|
|
|
|
|
|
Saat *word.py* dijalankan maka akan menghasilkan beberapa *file* hasil ataupun penunjang seperti sebagai berikut.
|
|
|
|
|
|
**Keterangan** :
|
|
|
|
|
|
(tipe) : bisa berisikan tulisan "clean" atau "raw". "clean" jika data yang di-*running* merupakan data dengan *preprocessing*. "raw" jika data yang di-*running* merupakan data tanpa *preprocessing*.
|
|
|
|
|
|
(file) : merupakan nama file yang diambil
|
|
|
|
|
|
* (tipe).txt : berisikan hasil-hasil yang dihasilkan setelah pemodelan seperti akurasi, presisi, recall, f1-score, waktu , memori dan lain sebagainya.
|
|
|
* temp_tagger_(tipe)_(file).csv : berisikan back-up apabila terjadi kendala dalam melakukan proses *tagging*. Pengguna hanya tinggal melanjutkan proses *tagging* yang sudah ada dan tidak perlu mengulangi prosesnya dari awal.
|
|
|
* time_tagger_(tipe)_(file).txt: berisikan catatan waktu dalam proses *tagging*.
|
|
|
* (tipe)_(file).csv: berisikan file yang sudah dilakukan proses *tagging* dan siap untuk dilakukan *modelling*
|
|
|
|
|
|
### **File Pendukung** :
|
|
|
|
|
|
##### **all_indo_man_tag_corpus_model.crf.tagger**
|
|
|
File ini merupakan sebuah *corpus tagger* yang didapat dari Yudi Wibisono (Dosen Univeristas Pendidikan Indonesia) dan telah dilakukan *training* dengan data jurnal dari [Fam Rashel](https://github.com/famrashel/idn-tagged-corpus)
|
|
|
|
|
|
|
|
|
___
|
|
|
|
|
|
## Tahapan *Preprocessing* Data
|
|
|
Tahapan ini data akan dilakukan tahapan *preprocessing* pada file **preprocessing**. Preprocessing akan dilakukan dengan menggunakan metode *stemming* dan juga *stop-words removal*
|
|
|
|
|
|
### **Requirement** :
|
|
|
Sistem yang dibutuhkan agar menjalankan program ini dengan baik :
|
|
|
1. Python 3.6.
|
|
|
2. Sastrawi 1.0.1
|
|
|
|
|
|
### **Running** :
|
|
|
|
|
|
##### **preprocessing.py**
|
|
|
Untuk melakukan *running* pada program dapat dilakukan dengan pada file ***preprocessing.py***. Pastikan data yang ingin di-*preprocessing* sudah ada pada folder **data**. Setelah dilakukan *running* pada file **preprocessing.py** kemudian akan muncul file baru pada folder **data** dengan format clean_(file).csv
|
|
|
|
|
|
Selain itu ada pula file lain yang akan dihasilkan dalam tahapan *preprocessing* ini diantaranya adalah
|
|
|
* time_preprocessing_(file).txt : yang bertujuan untuk menghitung waktu yang dibutuhkan dalam *preprocessing*
|
|
|
1. temp_preprocessing_(file).csv : yang bertujuan untuk melakukan proses back-up selama proses *preprocessing* berlangsung.
|
|
|
|
|
|
### **File Pendukung** :
|
|
|
|
|
|
##### **stop_list_indo.txt**
|
|
|
File ini merupakan sebuah *stop list* yang didapatkan berdasarkan penelitian yang dilakukan [Tala A.Z.](https://github.com/masdevid/ID-Stopwords)
|
|
|
|
|
|
|
|
|
|
|
|
___
|
|
|
## Tahapan Pengumpulan Data
|
|
|
Tahapan ini data akan dilakukan pengumpulan data dengan *scrapping* pada file **preprocessing**. Preprocessing akan dilakukan dengan menggunakan metode *stemming* dan juga *stop-words removal*
|
|
|
|
|
|
### **Requirement** :
|
|
|
Sistem yang dibutuhkan agar menjalankan program ini dengan baik :
|
|
|
1. Python 3.6.
|
|
|
2. Sastrawi 1.0.1
|
|
|
|
|
|
### **Running** :
|
|
|
|
|
|
##### **preprocessing.py**
|
|
|
Untuk melakukan *running* pada program dapat dilakukan dengan pada file ***preprocessing.py***. Pastikan data yang ingin di-*preprocessing* sudah ada pada folder **data**. Setelah dilakukan *running* pada file **preprocessing.py** kemudian akan muncul file baru pada folder **data** dengan format clean_(file).csv
|
|
|
|
|
|
Selain itu ada pula file lain yang akan dihasilkan dalam tahapan *preprocessing* ini diantaranya adalah
|
|
|
* time_preprocessing_(file).txt : yang bertujuan untuk menghitung waktu yang dibutuhkan dalam *preprocessing*
|
|
|
1. temp_preprocessing_(file).csv : yang bertujuan untuk melakukan proses back-up selama proses *preprocessing* berlangsung.
|
|
|
|
|
|
### **File Pendukung** :
|
|
|
|
|
|
##### **stop_list_indo.txt**
|
|
|
File ini merupakan sebuah *stop list* yang didapatkan berdasarkan penelitian yang dilakukan [Tala A.Z.](https://github.com/masdevid/ID-Stopwords) |
|
|
\ No newline at end of file |