Buku TA 113080129_Rian Agustama Susilo
Post on 26-Nov-2015
149 Views
Preview:
DESCRIPTION
Transcript
i
Implementasi Metode Support Vector Machine dalam
Pendeteksian Spam Opinion (Junk Post dalam Forum)
Implementation of Support Vector Machine Method to
Detect Spam Opinion (Junk Post in The Forum)
Tugas Akhir
Diajukan untuk memenuhi sebagian dari syarat
untuk memperoleh gelar Sarjana Teknik
Fakultas Informatika
IT TELKOM
Rian Agustama Susilo
113080129
Fakultas Informatika
Institut Teknologi Telkom
Bandung
2012
ii
Lembar Pernyataan
Dengan ini saya menyatakan bahwa Tugas Akhir dengan judul Implementasi Metode Support Vector Machine dalam Pendeteksian Spam Opinion (Junk Post
dalam Forum) beserta seluruh isinya adalah benar-benar karya saya sendiri dan saya tidak melakukan penjiplakan atau pengutipan dengan cara-cara yang tidak
sesuai dengan etika keilmuan yang berlaku dalam masyarakat keilmuan. Atas
pernyataan ini, saya siap menanggung resiko/sanksi yang dijatuhkan kepada saya
apabila kemudian ditemukan adanya pelanggaran terhadap etika keilmuan dalam
karya saya ini, atau ada klaim dari pihak lain terhadap keaslian karya saya ini.
Bandung, 4 Mei 2012
Yang membuat pernyataan,
Rian Agustama Susilo
iii
Lembar Pengesahan
Implementasi Metode Support Vector Machine dalam
Pendeteksian Spam Opinion (Junk Post dalam Forum)
Implementation of Support Vector Machine Method to
Detect Spam Opinion (Junk Post in The Forum)
Rian Agustama Susilo
113080129
Tugas Akhir ini telah diterima dan disahkan untuk memenuhi sebagian dari syarat
untuk memperoleh gelar Sarjana Teknik Fakultas Informatika
Institut Teknologi Telkom
Bandung, 14 Mei 2012
Menyetujui
Pembimbing I
Warih Maharani, S.T, M.T
NIP: 01780256-1
Pembimbing II
Intan Nurma Yulita, S.T, M.T
NIP: 10850715-3
iv
Abstrak
Seiring dengan penggunaan internet sebagai media untuk bertukar informasi,
bertukar dan berbagi opini juga dapat dilakukan. Dari opini-opini yang ada di
internet, tidak semua opini tersebut berguna sehingga terkadang menyulitkan
pihak-pihak yang membutuhkan informasi yang terkait. Opini yang tidak
diperlukan tersebut dapat disebut juga dengan opinion spam. Spam opinion dalam
dunia internet dapat terjadi dalam hal apapun, salah satunya dalam forum. Spam
opinion dalam forum dapat berupa opini-opini sampah yang tidak berguna dalam
suatu topik permasalahan yang sedang dibahas.
Text Classification merupakan salah satu solusi yang dapat mengatasi
permasalahan tersebut. Salah satu metode pada Text Classification adalah Support
Vector Machine. Klasifikasi berfokus pada penentuan postingan yang termasuk
junk post atau tidak. Dalam Tugas Akhir ini, proses pembobotan dataset dengan
memanfaatkan nilai TF dan juga nilai TF-IDF. Pembobotan dengan TF-IDF
menghasilkan hasil yang lebih baik jika dibandingkan dengan TF saja. Kedua
pembobotan tersebut digunakan untuk menghitung nilai similarity dari masing-
masing postingan dan dikaitkan dengan topik yang sedang dibahas pada forum
dengan menggunakan cosine similarity. Hasil evaluasi menunjukkan metode
Support Vector Machine mampu menyelesaikan permasalahan spam opinion ini.
Proses preprocessing data seperti penghilangan stopword dapat menurunkan hasil
akurasi klasifikasi, sedangkan nilai parameter C tidak dapat mempengaruhi hasil
klasifikasi secara signifikan.
Kata kunci: text classification, opinion spam, Support Vector Machine, TF,TF-
IDF, cosine similarity
v
Abstract
Along with the use of the internet as tools to share information, exchange and
share opinions can also be perfomed. The opinions that exist on the internet, not
all opinions are useful so that sometimes complicate the parties who need the
related information. The opinions that are not useful can be describe as Spam
Opinion. Spam opinion in internet can occur in any case, one of them in the
forum. Spam opinion in the forum can be the junk opinions that useless in a topic
being discussed.
Text Classification is one of the solution that can solve these problems. One
of Text Classification method is the Support Vector Machine (SVM). The
classification focused on determining a post that junk post or not. In practice,
carried out weighting the data set by using the TF and TF-IDF. The TF-IDF
weighting is produced better results when compared to TF alone. Both weighting
was used to calculate the similarity of the existing posts which are associated with
the topic being discussed on the forum using the cosine similarity. The evaluation
result shows that Support Vector Machine method is able to soleve the junk post
problems. The process of data preprocessing such as stopword removal may affect
the classification results, while the value of the parameter C can not affect the
classification results significantly.
Keywords: text classification, opinion spam, Support Vector Machine, TF,TF-
IDF, cosine similarity
vi
Lembar Persembahan
Pada kesempatan ini Penulis ingin menyampaikan terima kasih kepada semua
pihak yang telah membantu dalam penyelesaian Tugas Akhir ini:
1. Allah SWT, atas segala rahmat dan karunia-Nya yang tak terkira yang telah memberikan Penulis kesempatan untuk dapat menyelesaikan Tugas Akhir ini.
2. Rasulullah SAW, sebagai panutan, inspirasi dan motivasi hidup dan juga dalam penyelesaian Tugas Akhir ini.
3. Kedua orang tuaku tercinta, terimakasih kepada Mama dan Papa yang selalu memberikan motivasi, semangat,dukungan moril maupun materiil dan selalu
mendoakan Penulis dalam pengerjaan Tugas Akhir ini dan selama kuliah yang selalu memberikan dukungan yang tak dapat tersebutkan.
4. Adik-adikku tercinta, Dwijanesya dan Ridho, semoga kalian lebih baik yah dari kakak kalian ini. Tidak lupa juga kepada keluarga besar yang selalu
memberikan dukungan dan motivasi dalam pengerjaan Tugas Akhir ini.
5. Ibu Warih Maharani, S.T, M.T selaku pembimbing I yang sudah mencurahkan waktunya untuk mendengarkan keluh kesah penulis,
memberikan semua ilmunya untuk penulis, pengalaman dan juga pengarahan
yang sangat berarti dalam penyusunan Tugas Akhir ini. Ibu Intan Nurma
Yulita, S.T, M.T selaku pembimbing II atas segala bimbingan, waktu,
pengarahan, dan tidak lupa pula omelannya yang diberikan selama
penyusunan Tugas Akhir ini. Semoga atas semua keikhlasan dalam
membimbing penulis, dapat diberikan ganjaran yang setimpal dari Allah
SWT.
6. Ibu Vera Suryani, S.T selaku dosen wali yang telah banyak mempermudah jalan penulis hingga saat ini dan juga dosen-dosen IT Telkom yang pernah
menjadi dosen dalam perkuliahan yang membimbing serta memberikan
ilmunya kepada Penulis.
7. Orang-orang terdekat penulis, Awalia Windarsari P yang banyak banget membantu penulis dalam penulisan buku Tugas Akhir ini. Motivasi dan
omelannya yang selalu melekat dan terus memacu semangat penulis. Terima
kasih semuanya.
8. Teman-teman Asisten Laboratorium IF Lab, Damar, Aim, Arga, Faris, Oku yang sudah rela menemani penulis dalam penulisan buku ini. Pengen
menggila lagi bareng kalian, cepet kelarin Tugas Akhir ya semua. Tidak lupa
juga kepada asisten praktikum yang memberikan keceriaan dengan
kenyamanan kalian di lab tercinta ini, makasih untuk semangat dan motivasi
yang diberikan kepada Penulis.
9. Teman-teman Lab DMC yang menemani perjalanan penulis semenjak semester 2. Makasih buat tempat pinjeman komputernya, pinjeman kasurnya,
dan lain-lain yang tidak bisa disebutkan dengan kata-kata.
10. Teman seperjuangan pengerjaan Tugas Akhir, Ika, Rebecca, Tetty, Zizah, Aul, dan lain-lain yang secara tidak langsung memberikan semangat untuk
penulis dalam pengerjaan Tugas Akhir ini. Semangat semua.
11. Teman-teman awal perjuangan di kampus ini, Prima, Chandra, Kinur. Terima kasih telah menemani hari-hari penulis di kampus ini.
vii
12. Teman-teman IF 32-02, terima kasih atas pertemanannya selama ini. Kalian is the best.
13. Temen kostan villazone tempat penulis menghabiskan masa-masa awal semester, Risky, Luqman dan Ateng yang sudah rela direpotin oleh penulis.
Terima kasih banyak.
14. Teman teman angkatan 2008 lainnya, sebagai teman seperjuangan selama Penulis kuliah di IT Telkom. Banyak sekali yang tidak bisa disebutkan disini.
Terima kasih semua.
15. Teman-teman IT Telkom, kakak-kakak kelas yang telah memberikan pengalaman yang berharga dalam memotivasi pengerjaan Tugas Akhir dan
juga untuk adik-adik kelas yang Penulis tidak dapat sebutkan satu persatu.
Semoga kalian bisa sampai ke tahapan ini. Tetap semangat dan terus
berjuang.
viii
Kata Pengantar
Puji Syukur kehadirat Allah SWT atas segala rahmat dan karunia-Nya
sehingga Tugas Akhir yang berjudul Implementasi Metode Support Vector Machine dalam Pendeteksian Spam Opinion (Junk Post dalam Forum) dapat Penulis selesaikan. Tugas Akhir ini disusun sebagai salah satu syarat untuk
mendapatkan gelar Sarjana Teknik Fakultas Teknik Informatika Institut Teknologi
Telkom.
Dalam Tugas Akhir yang Penulis susun ini, Penulis menyadari bahwa masih
banyak kekurangan. Oleh sebab itu, Penulis mengharapkan kritik dan saran guna
memperbaiki Tugas Akhir ini. Penulis juga berharap dengan adanya Tugas Akhir
yang Penulis susun ini semoga dapat bermanfaat bagi dunia pendidikan khususnya
untuk civitas keluarga besar IT Telkom dan dapat dikembangkan kemudian.
Bandung, Mei 2012
PENULIS
ix
Daftar Isi
ABSTRAK .................................................................................................................................... IV
ABSTRACT .................................................................................................................................... V
LEMBAR PERSEMBAHAN ...................................................................................................... VI
KATA PENGANTAR ............................................................................................................... VIII
DAFTAR ISI ................................................................................................................................. IX
DAFTAR GAMBAR .................................................................................................................... XI
DAFTAR TABEL........................................................................................................................ XII
DAFTAR ISTILAH .................................................................................................................. XIII
1. PENDAHULUAN .................................................................................................................... 1
1.1 LATAR BELAKANG ............................................................................................................. 1 1.2 PERUMUSAN MASALAH ...................................................................................................... 2 1.3 TUJUAN .............................................................................................................................. 2 1.4 METODOLOGI PENYELESAIAN MASALAH ............................................................................ 3
2. LANDASAN TEORI ............................................................................................................... 4
2.1 TEXT MINING ...................................................................................................................... 4 2.2 OPINION SPAM .................................................................................................................... 5 2.3 TF-IDF .............................................................................................................................. 5 2.4 COSINE SIMILARITY ........................................................................................................... 6 2.5 SCALING DATA .................................................................................................................. 7 2.6 SUPPORT VECTOR MACHINE ................................................................................................ 7 2.7 CROSS VALIDATION ......................................................................................................... 10 2.8 PENGUKURAN EVALUASI ................................................................................................. 10 2.9 KASKUS ........................................................................................................................... 11
3. PERANCANGAN SISTEM ................................................................................................. 12
3.1 DESKRIPSI DAN ANALISIS SISTEM .................................................................................... 12 3.1.1 Gambaran Sistem .................................................................................................... 12 3.1.2 Gambaran Umum Sistem ......................................................................................... 13
3.2 PERANCANGAN SISTEM .................................................................................................... 13 3.2.1 Kebutuhan Fungsional ............................................................................................ 13 3.2.2 Data Flow Diagram (DFD)..................................................................................... 14 3.2.3 Kamus Data ............................................................................................................. 15 3.2.4 Process Spesification ............................................................................................... 16 3.2.5 Entity Relationship Diagram ................................................................................... 20
4. IMPLEMENTASI DAN ANALISIS HASIL PENGUJIAN .............................................. 22
4.1 LINGKUNGAN IMPLEMENTASI SITEM ............................................................................... 22 4.1.1 Spesifikasi Perangkat Lunak ................................................................................... 22 4.1.2 Spesifikasi Perangkat Keras .................................................................................... 22
4.2 PENGUJIAN SISTEM .......................................................................................................... 22 4.2.1 Dataset .................................................................................................................... 22 4.2.2 Tujuan Pengujian .................................................................................................... 23 4.2.3 Skenario Pengujian ................................................................................................. 23
4.3 ANALISIS HASIL PENGUJIAN ............................................................................................ 23 4.3.1 Analisis Skenario 1 .................................................................................................. 23 4.3.2 Analisis Skenario 2 .................................................................................................. 25 4.3.3 Analisis Skenario 3 .................................................................................................. 26 4.3.4 Analisis Skenario 4 .................................................................................................. 28
x
4.3.5 Analisis Keseluruhan Skenario................................................................................ 29
5. KESIMPULAN DAN SARAN ............................................................................................. 31
5.1 KESIMPULAN .................................................................................................................... 31 5.2 SARAN ............................................................................................................................. 31
DAFTAR PUSTAKA .................................................................................................................... 32
LAMPIRAN A: DATA PENGUJIAN ......................................................................................... 34
DATA THREAD ............................................................................................................................. 34 DATA POST (TRAIN) ..................................................................................................................... 35 DATA POST (TEST) ....................................................................................................................... 46
LAMPIRAN B: KAMUS .............................................................................................................. 51
KAMUS STOPWORD ...................................................................................................................... 51
xi
Daftar Gambar
GAMBAR 2-1 REPRESENTASI DOKUMEN DALAM RUANG VEKTOR[9] ................................................ 6 GAMBAR 2-2 SVM BERUSAHA UNTUK MENEMUKAN HYPERPLANE TERBAIK YANG MEMISAHKAN
KEDUA KELAS -1 DAN +1 [14] .................................................................................................... 7 GAMBAR 2-3 HYPERPLANE TERBENTUK DIANTARA KELAS-1 DAN +1[14] ......................................... 8 GAMBAR 3-1 WORKFLOW DIAGRAM ............................................................................................... 12 GAMBAR 3-2 DIAGRAM KONTEKS ................................................................................................... 14 GAMBAR 3-3 DFD LEVEL 1 ............................................................................................................. 14 GAMBAR 3-4 DFD LEVEL 2 KLASIFIKASI SVM ............................................................................... 14 GAMBAR 3-5 DFD LEVEL 2 PENGUJIAN MODEL .............................................................................. 15 GAMBAR 3-6 DFD LEVEL 2 SIMULASI ............................................................................................. 15 GAMBAR 3-7 ENTITY RELATIONSHIP DIAGRAM ............................................................................... 20 GAMBAR 3-8 TABEL RELASI ............................................................................................................ 20 GAMBAR 4-1 GRAFIK PENGARUH PARAMETER C DENGAN AKURASI (TEST) SKENARIO 1 ............... 24 GAMBAR 4-2 GRAFIK PENGARUH PARAMETER C DENGAN AKURASI (TEST) SKENARIO 2 ............... 26 GAMBAR 4-3 GRAFIK PENGARUH PARAMETER C DENGAN AKURASI (TEST) SKENARIO 3 ............... 27 GAMBAR 4-4 GRAFIK PENGARUH PARAMETER C DENGAN AKURASI (TEST) SKENARIO 4 .............. 29 GAMBAR 4-5 GRAFIK AKURASI CV(TRAIN) DAN AKURASI (TEST) KESELURUHAN ........................ 29
xii
Daftar Tabel
TABEL 2-1 CONFUSION TABLE ......................................................................................................... 10 TABEL 3-1 PROCESS SPECIFICATION 1.1 .......................................................................................... 16 TABEL 3-2 PROCESS SPECIFICATION 1.2 .......................................................................................... 16 TABEL 3-3 PROCESS SPECIFICATION 1.3 .......................................................................................... 17 TABEL 3-4 PROCESS SPECIFICATION 1.4 .......................................................................................... 17 TABEL 3-5 PROCESS SPECIFICATION 1.5 .......................................................................................... 17 TABEL 3-6 PROCESS SPECIFICATION 1.6 .......................................................................................... 18 TABEL 3-7 PROCESS SPECIFICATION 2.1 .......................................................................................... 18 TABEL 3-8 PROCESS SPECIFICATION 2.2 .......................................................................................... 18 TABEL 3-9 PROCESS SPECIFICATION 2.3 .......................................................................................... 18 TABEL 3-10 PROCESS SPECIFICATION 2.4 ........................................................................................ 19 TABEL 3-11 PROCESS SPECIFICATION 2.5 ........................................................................................ 19 TABEL 3-12 PROCESS SPECIFICATION 2.6 ........................................................................................ 19 TABEL 3-13 PROCESS SPECIFICATION 3.1 ........................................................................................ 19 TABEL 3-14 PROCESS SPECIFICATION 3.2 ........................................................................................ 20 TABEL 3-15 TABEL ENTITAS THREAD .............................................................................................. 20 TABEL 3-16 TABEL ENTITAS POST ................................................................................................... 21 TABEL 4-1 HASIL PENGUJIAN SKENARIO 1 (TANPA PREPROCESSING, PEMBOBOTAN DENGAN TF) ... 24 TABEL 4-2 HASIL PENGUJIAN SKENARIO 2 (TANPA PREPROCESSING, PEMBOBOTAN DENGAN TF-IDF)
................................................................................................................................................. 25 TABEL 4-3 HASIL PENGUJIAN SKENARIO 3 (PENGHILANGAN STOPWORD, PEMBOBOTAN DENGAN TF)
................................................................................................................................................. 26 TABEL 4-4 HASIL PENGUJIAN SKENARIO 4 (PENGHILANGAN STOPWORD, PEMBOBOTAN DENGAN TF-
IDF) ......................................................................................................................................... 28
xiii
Daftar Istilah
Dataset Sekumpulan data mentah yang akan diolah, diuji, dan
dianalisis.
DFD Data Flow Diagram yang menggambarkan aliran data
pada suatu sistem informasi.
Entity
RelationshipDiagram
suatu pemodelan data sistem yang
menggunakan beberapa notasi untuk menggambarkan
data dalam artian entitas-entitas dan
hubungan relasi yang didiskripsikan oleh data tersebut.
ERD merupakan salah satu teknik
untuk mengorganisir dan mendokumentasi data sistem.
Feature Vector Ruang dimensi yang berisi kumpulan vector dari suatu
feature yang merepresentasikan suatu objek
Forum Suatu wadah diskusi yang membahas suatu topik antar
sesama anggota
Hyperplane Garis pemisah antar dua kelas
Input Space Ruang masukan data
Internet sistem global dari seluruh jaringan komputer yang saling
terhubung menggunakan standar Internet Protocol Suite
(TCP/IP) untuk melayani miliaran pengguna di seluruh
dunia
Junk Post Postingan sampah dalam forum yang biasanya tidak
berguna dan tidak berkaitan dengan topic yang sedang
dibahas
Machine Learning Disiplin ilmu yang mempelajari bagaimana membuat
computer/mesin mempunyai sebuah kecerdasan dan
dapat belajar
Process Spesification Deskripsi rinci setiap proses yang muncul pada DFD
yang sudah tidak dapat didekomposisi lagi
Stopword kata umum (common words) yang biasanya muncul
dalam jumlah besar dan dianggap tidak memiliki makna.
Term Sekumpulan kata hasil pemecahan dokumen atau teks
Workflow otomatisasi proses bisnis yang meliputi perpindahan
dokumen melalui suatu prosedur kerja
1
1. Pendahuluan
1.1 Latar belakang
Perkembangan internet sampai saat ini sudah benar-benar menarik banyak minat
dari segala bidang, mulai dari bidang pendidikan, bisnis, sosial, dan lain-lain.
Internet sebagai sarana pemersatu orang untuk berkumpul di dunia maya sudah
dirasakan memiliki banyak sekali manfaat untuk kehidupan, salah satunya
informasi. Informasi yang beredar di internet sudah sangat up-to-date dan sering
kali informasi tersebut lebih cepat sampai ketimbang melalui media lainnya,
seperti koran, televisi, dan sarana komunikasi informasi lainnya.
Fitur unik dari internet lainnya yang bisa menggabungkan pemikiran maupun
opini-opini seseorang ialah forum. Forum dalam internet tidak jauh berbeda
dengan forum dalam dunia nyata. Kegiatan utama dalam forum ialah saling
berinteraksi satu sama lain dalam mengomentari kejadian ataupun kasus yang
disajikan dalam forum itu. Setiap orang bebas memilih topik yang paling digemari
dan disukai untuk terlibat aktif dalam forum tersebut.
Adanya suatu wadah diskusi seperti forum ini bukan berarti tidak ada masalah
dan selalu memberikan dampak positif untuk penggunanya. Banyak masalah yang
harus dialami dalam forum. Salah satu yang menjadi bahasan dalam penelitian ini
ialah mengenai masalah junk post (opini sampah) yang tidak berguna dan tidak
ada keterkaitan antara opini tersebut dengan topik yang sedang dibahas.
Analisis spam opinion bisa diterapkan untuk menangani postingan-potingan
yang ada dalam forum[18], salah satunya mengenai masalah junk post ini. Junk
post atau opini sampah ialah opini yang diberikan oleh seseorang terhadap suatu
kasus, namun tidak memiliki bobot terhadap kasus tersebut. Postingan seperti ini
dibuat oleh seseorang agar jumlah postingan orang tersebut semakin bertambah
dan berharap bisa mendapat reputasi yang baik karena telah aktif dalam forum itu.
Aktif disini bukan berarti orang tersebut benar-benar terlibat dalam setiap
permasalahan yang ada pada forum, namun karena jumlah postingan yang
didapatnya bukan dari pemikiran, melainkan hanya untuk mendapat reputasi yang
baik dilihat dari jumlah postingan, tidak melihat dari sisi bagaimana opini tersebut
kritis terhadap masalah yang ada.
Masalah junk post ini hampir dirasakan di semua forum-forum yang beredar
luas di internet. Hal ini dirasakan mengganggu mengingat dalam suatu forum
yang seharusnya menjadi lahan diskusi untuk suatu topik, hanya dipakai sebagai
sarana untuk menambah jumlah postingan dan mencari reputasi. Oleh karena itu,
dirasakan perlu adanya suatu penanganan agar masalah junk post ini tidak
berlarut-larut sehingga lebih mewujudkan forum yang benar-benar sebagai lahan
diskusi.
Pada penelitian ini, penulis ingin mengklasifikasikan bagaimana postingan atau
opini yang termasuk junk atau tidak, sehingga ke depannya postingan seperti ini
bisa lebih dikurangi dalam sebuah forum. Metode yang digunakan dalam masalah
ini yaitu Support Vector Machine (SVM) untuk pengklasifikasian. Pemilihan
metode ini dikarenakan SVM bisa diterapkan dalam hal kategorisasi teks[5] dan
juga memberikan performansi yang lebih baik jika dibandingkan dengan metode-
metode learning lainnya, seperti Nive Bayes, Bayesian network, atau Decision
2
Trees[8]. Selain itu juga, penerapan SVM pada kasus ini benar-benar linear
classifier[14] karena menerapkan linier kernel untuk menentukan apakah
postingan termasuk junk atau tidak. Metode SVM tidak memanfaatkan data yang
banyak untuk bisa melakukan learning, sehingga metode ini cocok untuk kasus ini
karena data dari forum bersifat private menyangkut kepentingan user masing-
masing dan terbatas. Dalam penerapannya, dilakukan juga pembobotan postingan
memanfaatkan nilai tf-idf karena dari penelitian yang ada, mengukur dimensi dari
feature vector dengan Inverse Document frequency (IDF)-nya dapat
meningkatkan performansi[12][17] dan menggunakan cosine similarity untuk
menghitung nilai similarity dari postingan yang ada yang dikaitkan dengan topik
yang sedang dibahas pada forum.
1.2 Perumusan masalah
Dengan mengacu latar belakang di atas, maka permasalahan yang dibahas dan
diteliti adalah :
1. Bagaimana mengklasifikasikan suatu postingan/opini termasuk junk post atau tidak?
2. Bagaimana mengimplementasikan metode Support Vector Machine (SVM) dalam penanganan masalah ini?
3. Bagaimana akurasi prediksi yang dihasilkan dari metode Support Vector Machine (SVM)?
Sedangkan batasan masalah dalam tugas akhir ini adalah :
1. Forum yang digunakan ialah forum Indonesia, sehingga pengklasifikasian junk atau tidak hanya untuk opini dalam bahasa indonesia
2. Data yang digunakan sebagai data training untuk melakukan pemodelan berasal dari forum-forum yang ada di indonesia, untuk yang paling sederhana
penulis memakai dataset dari kaskus sebagai forum terbesar di Indonesia
3. Penelitian ini berfokus pada pengklasifikasian opini seperti apa yang termasuk junk atau tidak
4. Jumlah dataset yang digunakan bergantung kepada setiap forum dan atribut yang dipakai dalam masalah ini bergantung data dari forum tersebut dan akan
disesuaikan untuk melakukan pengklasifikasiannya
5. Tidak membahas sistem data mining secara keseluruhan 6. Tidak online learning
1.3 Tujuan
Tujuan yang ingin dicapai dalam tugas akhir ini, yaitu:
a. Mengklasifikasikan postingan yang termasuk junk atau tidak menggunakan metode Support Vector Machine (SVM)
b. Menganalisis akurasi prediksi yang dihasilkan metode Support Vector Machine dalam penanganan kasus junk post ini.
3
1.4 Metodologi penyelesaian masalah
Metodologi yang digunakan dalam memecahkan masalah di atas adalah dengan
menggunakan langkah-langkah berikut:
1. Studi literatur Pencarian literatur yang berhubungan dengan web mining, opinion spam,
teori Support Vector Machine, teori tf-idf, teori cosine similarity. Literatur
didapat dari perpustakaan IT Telkom, perpustakaan Lab DMC, jurnal-
jurnal online gratis di internet maupun jurnal online berlangganan yang
dimiliki IT Telkom atau dari sumber-sumber lain.
2. Pengumpulan data Data Training yang dibutuhkan berasal dari forum kaskus sebagai forum
terbesar di Indonesia
3. Analisis dan perancangan sistem Melakukan analisis dan perancangan terhadap sistem yang dibangun,
menganalisis metode yang akan digunakan untuk penyelesaian masalah,
termasuk dalam menentukan bahasa pemrograman yang digunakan,
arsitektur, fungsionalitas, dan antarmuka sistem
4. Implementasi dan pembangunan sistem Secara umum prosedur yang dilakukan pada penelitian ini adalah:
- Melihat secara keseluruhan bagaimana dataset yang ada, apakah perlu dilakukan feature selection untuk menentukan feature apa saja yang
akan terpakai dalam penelitian ini
- Melakukan analisis terhadap topik yang sedang dibicarakan dengan metode tf-idf
- Melakukan pembobotan terhadap opini dalam dataset dibandingkan dengan topik yang sedang dibahas menggunakan metode tf-idf
- Menghitung similarity antara opini denga topik yang ada dengan menggunakan cosine similarity
- Melakukan proses klasifikasi dengan menggunakan metode SVM - Melakukan analisis hasil klasifikasi dengan data sebenarnya untuk
menyesuaikan apakah opini termasuk junk atau tidak
5. Pengujian dan analisis Pengujian dan analisis meliputi:
a. Pengujian untuk menentukan seberapa baik metode tf-idf dan cosine similarity digunakan
b. Pengujian untuk menentukan hasil klasifikasi dari metode SVM c. Pengujian untuk menentukan lama proses klasifikasi sesuai dengan
jumlah data yang ada
d. Menganalisis penerapan metode SVM dengan tf e. Menganalisis penerapan metode SVM dengan tf-idf f. Pengambilan kesimpulan dan penyusunan laporan Tugas Akhir
4
2. Landasan Teori
2.1 Text Mining
Text mining sudah banyak didefinisikan oleh ahli riset dan praktisi[1][2] . Text
mining memiliki definisi menambang data yang berupa teks di mana sumber data
biasanya didapatkan dari dokumen, dan tujuannya adalah mencari kata - kata yang
dapat mewakili isi dari dokumen sehingga dapat dilakukan analisis keterhubungan
antar dokumen. Text mining juga merupakan proses penemuan akan informasi
atau trend baru yang sebelumnya tidak terungkap dengan memproses dan
menganalisis data dalam jumlah besar.
Text mining merupakan subjek riset yang tergolong baru. Text mining dapat
memberikan solusi dari permasalahan seperti pemrosesan, pengorganisasian /
pengelompokkan dan menganalisis unstructured text dalam jumlah besar.
Sistem text mining terdiri dari komponen text preprocessing, feature selection,
dan komponen data mining. Komponen text preprocessing berfungsi untuk
mengubah data tekstual yang tidak terstruktur seperti dokumen, kedalam data
terstruktur dan disimpan ke dalam basis data. Feature selection akan memilih kata
yang tepat dan berpengaruh pada proses klasifikasi. Komponen terakhir akan
menjalankan teknik data mining pada output dari komponen sebelumnya.
Dalam memberikan solusi, text mining mengadopsi dan mengembangkan
banyak teknik dari bidang lain, seperti Data mining, Information Retrieval,
Statistik dan Matematik, Machine Learning, Linguistic, Natural Languange
Processing, dan Visualization. Dalam menganalisis sebagian atau keseluruhan
unstructured text, text mining mencoba untuk mengasosiasikan satu bagian text
dengan yang lainnya berdasarkan aturan-aturan tertentu. Hasil yang di harapkan
adalah informasi baru atau insight yang tidak terungkap jelas sebelumnya. Permasalahan yang dihadapi pada text mining sama dengan permasalahan yang
terdapat pada data mining, yaitu jumlah data yang besar, dimensi yang tinggi, data
dan struktur yang terus berubah, dan data noise. Perbedaan di antara keduanya
adalah pada data yang digunakan. Pada data mining, data yang digunakan adalah
structured data, sedangkan pada text mining, data yang digunakan text mining
pada umumnya adalah unstructured data, atau minimal semistructured. Hal ini
menyebabkan adanya tantangan tambahan pada text mining yaitu struktur text
yang kompleks dan tidak lengkap, arti yang tidak jelas dan tidak standar, dan
bahasa yang berbeda ditambah translasi yang tidak akurat.
Struktur data yang baik dapat memudahkan proses komputerisasi secara
otomatis. Sehingga text mining perlu melakukan preprocessing yang lebih
kompeks daripada data mining karena data yang diolah berbentuk unstructured.
Aplikasi text mining bisa dibagi berdasarkan tipe unstructured text yang
diproses. Untuk Unstructured text dalam bentuk emails, instant messages dan
blogs, pada umumnya pengguna ingin melakukan mining untuk mencari informasi
mengenai orang (email pengirim, alamat, nama lengkap), perusahaan (nama
lengkap dan lokasi), organisasi dan kejadian kejadian baru (penemuan baru, pengumuman penting). Untuk buku dan artikel sains, text mining bisa digunakan
untuk mendeteksi trend di bidang riset tertentu. Salah satu cara yang bisa
dilakukan adalah dengan memonitor jumlah publikasi untuk bidang riset tertentu
5
dalam jangka waktu tertentu. Hasil hasil untuk bidang riset yang berbeda bisa dibandingkan dan dianalisis guna memberikan hasil trend yang berarti.
Untuk technical working paper, dokumentasi, dan software spesifikasi
dokumen, text mining bisa di gunakan untuk mengekstrak software requirement
dari spesifikasi dokumen secara otomatis atau mendeteksi ke kurangan antara
source code dan documentasinya secara otomatis.
2.2 Opinion Spam
Salah satu hal mendasar adanya opinion spam ialah nilai ekonomi dan publikasi
dari posisi ranking sebuah page yang diberikan oleh search engine[18]. Dalam
konteks opini dalam web, permasalahannya sama. Ini menjadi hal yang sangat
wajar jika seseorang mencari dan membaca opini dari suatu web dengan tujuan
tertentu. Contohnya dalam pembelian barang, review suatu barang, dan lain-lain.
Berdasarkan hal ini, spam opinion ada karena perilaku manusia yang mencoba
memberikan opini yang semata-mata hanya ingin menarik minat dari masyarakat
umum saja. Tidak jarang juga opini yang berbeda-beda tersebut dapat
mempromosikan sesuatu yang salah yang bertujuan untuk merusak reputasi.
Salah satu kemungkinan kombinasi metode yang digunakan dalam spam
opinion yaitu mengklasifikasikan masalah dalam penentuan spam.
Pengkategorisasian spam atau tidak dapat dilihat dari indikator yang menandakan
hal tersebut termasuk spam atau tidak. Proses dimulai dengan memberikan label
manual kepada data untuk dilakukan learning dengan metode klasifikasi. Hasilnya
dapat digunakan untuk mengklasifikasikan setiap opini yang termasuk spam atau
tidak.
Sepanjang seseorang atau organisasi menggunakan opini dalam menentukan
suatu keputusan, pembuat spam memiliki ruang gerak yang tidak terbatas seperti
pada suatu review, diskusi maupun pada blog.
2.3 TF-IDF
Term Frequency (TF) merupakan frekuensi kemunculan term pada dokumen. TF
suatu dokumen dengan dokumen yang lain akan berbeda, bergantung pada tingkat
kepentingan sebuah term dalam dokumen. [7] Inverse Document Frequency (IDF)
merupakan sebuah perhitungan dari bagaimana term didistribusikan secara luas
pada koleksi dokumen yang bersangkutan. Semakin sedikit dokumen yang
mengandung term yang dimaksud, maka nilai idf semakin besar. Jika setiap
dokumen dalam koleksi mengandung term yang bersangkutan, maka nilai dari idf
dari term tersebut adalah nol. Hal ini menunjukkan bahwa sebuah term yang
muncul pada setiap dokumen dalam koleksi tidak berguna untuk membedakan
dokumen berdasarkan topik tertentu. Nilai IDF sebuah term t dirumuskan dalam
persamaan berikut:
IDF(t) = log (N/df(t)) (2.1)
N adalah jumlah dokumen dan df(t) adalah jumlah dokumen yang mengandung
term yang bersangkutan.
6
Dengan menggunakan tf-idf maka dapat diketahui deskripsi terbaik dari
dokumen adalah term yang banyak muncul dalam dokumen tersebut dan sangat
sedikt kemunculannya pada dokumen yang lain. Bobot terendah akan diberikan
pada term yang muncul sangat jarang pada beberapa dokumen (low-frequency
documents) dan term yang muncul pada hampir atau seluruh dokumen (high-
frequency documents. Penelitian belakangan ini [16] telah mengkombinasikan TF
dan IDF untuk menghitung bobot term dan menunjukkan bahwa gabungan
keduanya menghasilkan performansi yang lebih baik. Kombinasi bobot dari
sebuah term t pada text d didefinisikan sebagai berikut :
TFIDF(d.t)=TF(d.t).IDF(t) (2.2)
Faktor TF dan IDF dapat berkontribusi untuk memperbaiki nilai akurasi, recall
dan precision.
2.4 Cosine Similarity
Salah satu ukuran kemiripan teks yang paling populer adalah cosine similarity.
Cosime Similarity dapat juga digunakan untuk mencari suatu kesamaan
(similarity) antar dokumen. Pengertian dokumen dalam Tugas Akhir ini yaitu
thread dan juga postingan dalam thread tersebut di suatu forum. Cosine similarity
termasuk dalam metode vector space, yaitu mencari kesamaan antar dokumen
melalui penggambaran vektor sebagai suatu dokumen. Representasi dua dokumen
dalam ruang vector tiga dimensi sebagai berikut :
Gambar 2-1 Representasi Dokumen dalam Ruang Vektor[9]
Cara menghitung similarity dengan menggunakan cosine similarity ialah
dengan menghitung nilai cosinus sudut antara dua vektor. Jika terdapat dua vektor
dokumen dj dan query q, serta t term diekstrak dari koleksi dokumen maka nilai
cosinus antara dj dan q didefinisikan sebagai berikut [4]:
( )
| | | |
( )
(2.3)
7
2.5 Scaling Data
Scaling data sebelum diterapkan dalam klasifikasi data dengan menggunakan
Support Vector Machine (SVM) sangat penting dikarenakan data yang ada dalam
kasus, menyebar dengan range kontinu yang sangat beragam, sehingga agar data
seragam, dilakukan scaling terlebih dahulu. Keuntungan digunakan scaling ialah
untuk menghindari atribut dengan range yang besar mendominasi atribut dengan
range kecil dan juga dengan dilakukan scaling, akan mempermudah pada saat
komputasi program.[11]
2.6 Support Vector Machine
Support Vector Machine (SVM) pertama kali diperkenalkan oleh Vapnik pada
tahun 1992 sebagai rangkaian harmonis konsep-konsep unggulan dalam bidang
pattern recognition[14]. Sebagai salah satu metode pattern recognition, usia SVM
terbilang masih relatif muda, namun menempatkannya sebagai state of the art
dalam pattern recognition.
SVM adalah metode learning machine yang bekerja atas prinsip Structural
Risk Minimization (SRM) dengan tujuan menemukan hyperplane terbaik yang
memisahkan dua buah kelas pada input space. Gambar 2-2 memperlihatkan
beberapa pattern yang merupakan anggota dari dua buah kelas : +1 dan 1. Pattern yang tergabung pada class 1 disimbolkan dengan warna merah (kotak), sedangkan pattern pada kelas +1, disimbolkan dengan warna kuning (lingkaran).
Problem klasifikasi dapat diterjemahkan dengan usaha menemukan garis
(hyperplane) yang memisahkan antara kedua kelompok tersebut.[14]
Gambar 2-2 SVM berusaha untuk menemukan hyperplane terbaik yang
memisahkan kedua kelas -1 dan +1 [14]
8
Gambar 2-3 Hyperplane terbentuk diantara kelas-1 dan +1[14]
Hyperplane pemisah terbaik antara kedua kelas dapat ditemukan dengan
mengukur margin hyperplane tersebut dan mencari titik maksimalnya. Margin
adalah jarak antara hyperplane tersebut dengan pattern terdekat dari masing-
masing kelas. Pattern yang paling dekat ini disebut sebagai support vector. Garis
solid pada gambar 2-3 menunjukkan hyperplane yang terbaik, yaitu yang terletak
tepat pada tengah-tengah kedua kelas, sedangkan titik merah dan kuning yang
berada dalam lingkaran hitam adalah support vector. Usaha untuk mencari lokasi
hyperplane ini merupakan inti dari proses pembelajaran pada SVM.
Penerapan kernel pada Tugas Akhir ini menggunakan Linear Kernel. Linier
Kernel merupakan kernel yang paling sederhana dalam SVM. Input pada
pelatihan SVM terdiri dari poin-poin yang merupakan vektor dari angka-angka ril.
Data yang tersedia dinotasikan sebagai i d sedangkan label masing-masing
dinotasikan sebagai yi {-1,+1} untuk i = 1,2,,l, dimana l adalah banyaknya data. Diasumsikan kedua kelas -1 dan +1 dapat terpisah secara sempurna oleh
hyperplane berdimensi d, yang didefinisikan [14] :
. + b = 0 (2.4)
Sebuah pattern i yang termasuk kelas -1 (sampel negative) dapat dirumuskan sebagai pattern yang memenuhi pertidaksamaan :
i + b -1 (2.5)
sedangkan pattern i yang termasuk kelas +1(sampel positif) :
i + b +1 (2.6)
Margin terbesar dapat ditemukan dengan memaksimalkan nilai jarak antara
hyperplane dan titik terdekatnya, yaitu 1/ . Hal ini dapat dirumuskan sebagai Quadratic Programming (QP) problem, yaitu mencari titik minimal persamaan
(2.7), dengan memperhatikan batasan persamaan (2.8).
9
2 (2.7)
(2.8)
Permasalahan ini dapat dipecahkan dengan berbagai teknik komputasi, di
antaranya Lagrange Multiplier sebagaimana ditunjukkan pada persamaan (2.9).
(2.9)
i adalah Lagrange multipliers, yang bernilai nol atau positif. Nilai optimal dari
persamaan (2.9) dapat dihitung dengan meminimalkan L terhadap dan b , dan memaksimalkan L terhadap i. Dengan meperhatikan sifat bahwa pada tiik optial gradient L=0, persamaan (2.9) dapat dimodfikasi sebagai maksimalisasi yang
hanya mengandung i saja, yaitu
(2.10)
yang memenuhi,
(2.11)
Dari hasil perhitungan diatas didapatlah yang kebanyakan bernilai positif. Data yang berkorelasi dengan yang positif inilah yang disebut sebagai support vector. Setelah menemukan support vector, maka hyperplane pun dapat
ditentukan.
Penjelasan SVM di atas berlaku jika kedua buah kelas dapat dipisahkan
secara sempurna oleh hyperplane. Akan tetapi, pada umumnya input space tidak
dapat dipisahkan secara sempurna sehingga menyebabkan batasan pada
persamaan (2.8) tidak dapat terpenuhi, sehingga optimisasi tidak dapat dilakukan.
Untuk mengatasi permasalahan ini, maka SVM dirumus ulang dengan
menggunakan teknik soft margin. Dengan menggunakan teknik soft margin,
persamaan (2.8) dimodifikasi dengan memasukan slack variabel dan sebuah fungsi penalty sebagai berikut [13] :
(2.12)
dimana dan dengan demikian persamaan (2.7)
(2.13)
Parameter C dipilih untuk mengatur trade off antara margin dan error
klasifikasi . Nilai C yang besar berarti akan memberikan penalty yang lebih besar terhadap error klasifikasi tersebut.
10
2.7 Cross Validation
Cross validation merupakan suatu teknik untuk menguji performansi dari model
pada sebuah data yang independen. Mekanisme pengujian pada cross validation
ialah dengan melakukan pengecekan terhadap data itu sendiri (independen).
Pengecekan tersebut melibatkan beberapa subset data dengan cara membagi data
tersebut ke dalam satu subset (training set) dan memvalidasi analisis pada subset
lainnya.
Cross Validation dilakukan secara berulang dengan partisi yang berbeda-beda
dan hasilnya dirata-ratakan sampai pratisi habis. Fold (k) ialah parameter dalam
cross validation yang akan membagi data ke dalam k subset data. Perulangan akan
dilakukan terhadap satu subset yang diuji sampai k-1 subset. Cross Validation
dapat mencegah terjadinya overfitting.
Dalam sistem penanganan junk post ini, teknik cross validation digunakan
untuk menentukan parameter C terbaik dalam SVM dengan melihat hasil
pengujian yang berupa akurasi yang dihasilkan[11].
2.8 Pengukuran Evaluasi
Pengujian keefektifan atau kualitas hasil suatu klasifikasi dibutuhkan suatu
pengukuran yang disebut evaluation measure. Skenario pengukuran dapat dibagi
menjadi dua, yaitu macro-averaging dan micro-averaging [15] :
a. Micro-averaging Diberikan sebuah set confusion table. Dibangun sebuah tabel baru dimana
setiap sel pada tabel merepresentasikan jumlah dari dokumen yang
bersesuaian dengan kolom maupun baris pada tabel tersebut.
b. Macro-averaging Diberikan sebuah confusion table. Dibangun sebuah tabel baru dimana
setiap sel pada tabel merepresentasikan nilai presisi atau recall dari setiap
kategori.
Tabel 2-1 Confusion Table
Machine Says
Positif Negatif
Human
says
Positif True Positif (TP) False Negative (FN)
Negatif False Positif (FP) True Negative (TN)
Dalam Tugas Akhir ini, micro-averaging dipilih karena berdasarkan [13],
micro-averaging memiliki performansi yang lebih baik jika dbandingkan dengan
macro-averaging. Dengan menggunakan micro-averaging, perhitungan akurasi
bisa didapatkan dengan menggunakan rumus:
(2.14)
11
2.9 Kaskus
Penelitian pada Tugas Akhir ini menggunakan data dari forum Kaskus. Kaskus
berdiri pada tanggal 6 November 2000 di Amerika Serikat (Washington) oleh tiga
mahasiswa Indonesia. Kaskus merupakan gabungan dari kata KASAK &
KUSUK. Tujuan awal dari didirikannya komunitas ini adalah untuk
mempersatukan manusia-manusia Indonesia dalam / luar negeri dalam satu
Komunitas. Kaskus selalu berusaha memberikan kebebasan berbicara & berfikir
bagi anggota, karena kami menganut asas "Freedom Of Speech" dimana
merupakan salah satu basic dari Human Rights.
Pada bulan Agustus 2005, situs Kaskus mendapatkan penghargaan sebagai
"The Best Indonesian Community" oleh PC Magazine Indonesia, pada saat itu
member Kaskus sudah mencapai 110.000 anggota.
Klasifikasi postingan yang termasuk junk atau tidak ialah sebagai berikut (dikutip
dari situs kaskus.com) :
One liner postingan seperti: nice info gan, mantap gan, menyimak dulu gan, keren gan, mungkin bawah ane tau gan, dan sebagainya ( tidak ada
komentar spesifik yang sesuai dengan topik ).
Tulisan pertamax, keduax, ketigax, page one, gagal pertamax, atas ane cepet banget gan,dsb tanpa disertai komentar lain yang sesuai dengan
topik, termasuk disini gambar-gambar pertamax, dsb yang diposting tanpa
komentar lain yang sesuai dengan topik. Gambar-gambar yang terlalu
besar dan tidak senonoh juga termasuk akan didelete.
Mantra: asfdggfh, fjfkflsl, dsb
Copy paste postingan.
Memosting hanya berupa emoticon ( ilovekaskus,sup,maho, dsb ).
Spam berupa promosi/ngiklan/link ke lapak dalam setiap postingan.
Spamming yang mengganggu kenyamanan forum dan user lain, bersifat merusak trid seperti spamming gambar yang menghina SARA, gambar
BB17/porno, gambar DP/disturbing pictures, longcat/bandwith killer
images, flash/video/lagu yang mengganggu, dan sebagainya.
Postingan ngobrol/chatting di trid yang sudah Out Of Topic, tanpa multiquote.
Postingan yang bersifat trolling/flaming ( menghina, kasar, dan sebagainya).
Postingan double, tripple, dan seterusnya.
Menyundul trid secara berlebihan. Dalam forum kaskus, dikenal adanya suatu thread dan juga post. Thread ialah
topik yang dibahasa oleh pembuat topik dengan tujuan ingin menyampaikan
bahasan maupun pendapatnya kepada forum. Sedangkan post ialah komentar-
komentar yang disampaikan oleh pengguna aktif forum untuk menanggapi topik
yang sedang dibahas.
Data forum pada umumnya merupakan data yang berbeda dengan artikel
Bahasa Indonesia lainnya. Dalam data ini tidak semua struktur kalimat disajikan
secara baku dan juga penulisan untuk tiap kata tidak selalu sesuai dengan ejaan
pada umumnya. Dalam kata-kata ini juga terdapat penyingkatan untuk kata yang
dianggap umum digunakan dalam proses komunikasi sehari-hari.
12
3. Perancangan Sistem
3.1 Deskripsi dan Analisis Sistem
3.1.1 Gambaran Sistem
Data
Forum
Data thread or
post?
Processing
Data
thread
Preprocessing
Data
post
Train/test?
Tokenisasi
Stopword
indexing
Tokenisasi
Stopword
Indexing
Pembobotan
Data Dengan TF
Dengan TF-IDF
train
test
Pembobotan
Data
Dengan TF
Dengan TF-IDF
Similarity
Pemodelan
dengan SVMSimilarity
Cross Validation untuk
penentuan parameter C
Model Data Hasil Pengujian Akurasi
Gambar 3-1 Workflow Diagram
13
3.1.2 Gambaran Umum Sistem
1. Sistem yang dibuat berbentuk halaman web pada umumnya dengan beberapa menu tampilan, seperti Home, Data, Preprocessing, Training, Testing dan
juga Simulasi.
2. Tampilan Home berisi halaman pembuka web yang berisi informasi mengenai forum yang turut terlibat dalam pembuatan tugas akhir ini.
3. Tampilan Data berisi informasi mengenai data yang digunakan dalam pengujian tugas akhir ini. Data yang digunakan dalam sistem ini yaitu data
suatu topik beserta postingan dalam suatu forum.
4. Tampilan Preprocessing merupakan tampilan untuk melakukan pre-processing terhadap data. Preprocessing dapat dilakukan jika data terpilih
terlebih dahulu. Jika data tidak terpilih, maka proses ini tidak dapat
dijalankan. Output dari proses ini ialah menghasilkan file yang akan
dipergunakan untuk training dan testing sesuai scenario masing-masing.
5. Tampilan Training digunakan untuk melakukan training terhadap data yang dihasilkan oleh proses preprocessing sebelumnya. Dalam proses ini, training
dilakukan berdasarkan scenario yang terdapat pada sistem ini dan melakukan
penentuan parameter C yang paling tepat untuk masing-masing scenario. User
memilih scenario apa yang akan digunakan dalam proses training dan juga
menentukan nilai parameter C yang paling sesuai. Parameter dapat dikatakan
baik dilihat dari hasil akurasi cross validation data training tersebut dengan
parameter C yang ditentukan sebelumnya.
6. Tampilan Testing digunakan untuk melakukan testing terhadap data testing
yang sudah dilakukan preprocessing sebelumnya. Testing dilakukan
berdasarkan model yang telah dibuat dalam proses training. Hasil output
proses ini yaitu nilai akurasi untuk masing-masing scenario. Tampilan
Simulasi digunakan untuk mensimulasikan keadaan suatu forum dimana ada
suatu topic pembahasan yang bisa dikomentari oleh anggota forum. User
bebas menentukan postingan yang ingin disampaikan namun dalam prosesnya
akan dilakukan pengecekan terhadap model yang telah dibuat sebelumnya,
sehingga sistem bisa menilai apakah komentar yang disampaikan termasuk
komentar junk atau tidak.
3.2 Perancangan Sistem
3.2.1 Kebutuhan Fungsional
Kemampuan yang harus dimiliki oleh sistem:
1. Sistem mampu melakukan text preprocessing meliputi tokenisasi teks, stopword removal, dan indexing.
2. Sistem mampu melakukan pembobotan dengan tf saja dan juga tf-idf. 3. Sistem mampu melakukan validasi dengan cross validation dalam penentuan
parameter C dalam SVM
4. Sistem mampu menghasilkan data training dan juga testing yang siap diterima oleh SVM
5. Sistem mampu menghasilkan model dari proses training data 6. Sistem mampu menampilkan performansi dari SVM dalam bentuk akurasi
14
3.2.2 Data Flow Diagram (DFD)
User
Sistem filter
spam opinion
forum
parameter_svm, posting_komentar
hasil_prediksi, akurasi
Gambar 3-2 Diagram Konteks
user
1.0
Klasifikasi
SVM
3.0 Simulasi
2.0
Pengujian
Model
parameter_svm model_svm
model_svm
posting_komentar
model_svm
akurasi
model
hasil_prediksi
Gambar 3-3 DFD Level 1
thread
1.1
Preprocessing
Data
1.2
Pembobotan
TF
1.3
Pembobotan
TF-IDF
1.4
Cosine
Similarity
1.5
Scaling
1.6
Klasifikasi
SVM
data_thread Data_hasil bobot_data_TF
data_olah
data_scale
Data_hasil
Parameter_svm
Model_svm
Bobot_data_TFIDF
post
data_train
Gambar 3-4 DFD Level 2 Klasifikasi SVM
15
post
2.1
Preprocessing
Data
2.2
Pembobotan
TF
2.3
Pembobotan
TF-IDF
2.4
Cosine
Similarity
2.5
Scaling
2.6
Pengujian
data_testdata_hasil bobot_data_TF
data_olah
data_scale
data_hasil
model_svm
akurasi
bobot_data_TFIDF
model
Gambar 3-5 DFD Level 2 Pengujian Model
model
3.2
Simulasi dengan
model hasil
klasifikasi SVM
3.1
Olah Sesuai
format sistemmodel_svmdata_hasil_simmulasi
hasil_prediksi
Posting_komentar
Gambar 3-6 DFD Level 2 Simulasi
3.2.3 Kamus Data
Data store
thread = array
post = array
model = array
data_train = array
data_test = array
model_svm = array
Arus Data
parameter_svm = number
posting_komentar = string
hasil_prediksi = number
akurasi = number
16
bobot_data_TF = number
bobot_data_TFIDF = number
data_olah = number
data_scale = number
data_hasil = string
data_hasil_simulasi = number
number = [0-9]
string = [a-z][A-Z][1-9]
3.2.4 Process Spesification
Tabel 3-1 Process Specification 1.1
No. Proses 1.1
Nama Proses Preprocessing data
Input data_train, data_thread
Output data_hasil
Logika Proses
For i=1 sampai jumlah data_thread
Lakukan tokenisasi terhadap teks
Penghilangan stopword dan tanda baca
end for
For i=1 sampai jumlah data_train yang termasuk thread
Lakukan tokenisasi terhadap teks
Penghilangan stopword dan tanda baca
end for
Tabel 3-2 Process Specification 1.2
No. Proses 1.2
Nama Proses Pembobotan TF
Input data_hasil
Output bobot_data_TF
Logika Proses
For i=1 sampai jumlah data_thread
Lakukan indexing terhadap data dengan thread
Hitung frequensi kata yang ada dalam data_thread
Hitung banyaknya term untuk mencari lenght data_thread
end for
For i=1 sampai jumlah data_train
Lakukan indexing terhadap data dengan thread
Hitung frequensi kata yang ada dalam data_thread dan juga data_train
Hitung banyaknya term untuk mencari lenght data_train
end for
17
Tabel 3-3 Process Specification 1.3
No. Proses 1.3
Nama Proses Pembobotan TF-IDF
Input data_hasil
Output bobot_data_TFIDF
Logika Proses
For i=1 sampai jumlah data_thread
Lakukan indexing terhadap data dengan thread
Hitung frequensi jumlah kata yang muncul di semua data_thread (IDF)
Hitung frequensi kata yang ada dalam data_thread
Hitung banyaknya term untuk mencari lenght data_thread
Kalikan nilai IDF dengan frequensi kata
Kalikan nilai IDF dengan jumlah term
end for
For i=1 sampai jumlah data_train
Lakukan indexing terhadap data dengan thread
Hitung frequensi jumlah kata yang muncul di semua data_thread (IDF)
Hitung frequensi kata yang ada dalam data_thread dan juga data_train
Hitung banyaknya term untuk mencari lenght data_train
Kalikan nilai IDF dengan frequensi kata
Kalikan nilai IDF dengan jumlah term
end for
Tabel 3-4 Process Specification 1.4
No. Proses 1.4
Nama Proses Perhitungan Cosine Similarity
Input bobot_data_TF, bobot_data_TFIDF
Output data_olah
Logika Proses
For i=1 sampai jumlah data_train
Hitung nilai similarity berdasarkan jumlah frequensi dan length data dengan
melibatkan bobot data sebelumnya
end for
Tabel 3-5 Process Specification 1.5
No. Proses 1.5
Nama Proses Scaling data
Input data_olah
Output data_scale
Logika Proses
For i=1 sampai jumlah data_train
Scale data ke dalam range [0-1]
end for
18
Tabel 3-6 Process Specification 1.6
No. Proses 1.6
Nama Proses Klasifikasi SVM
Input data_scale, parameter_svm
Output model_svm
Logika Proses
For j=1 sesuai keinginan user
Lakukan perubahan nilai parameter_svm berdasarkan inputan manual
For i=1 sampai jumlah data_scale
Cek akurasi cross validation
end for
end for
Tabel 3-7 Process Specification 2.1
No. Proses 2.1
Nama Proses Preprocessing data
Input data_test
Output data_hasil
Logika Proses
For i=1 sampai jumlah data_test
Lakukan tokenisasi terhadap teks
Penghilangan stopword dan tanda baca
end for
Tabel 3-8 Process Specification 2.2
No. Proses 2.2
Nama Proses Pembobotan TF
Input data_hasil
Output bobot_data_TF
Logika Proses
For i=1 sampai jumlah data_hasil
Lakukan indexing terhadap data dengan thread
Hitung frequensi kata yang ada dalam data_test
Hitung banyaknya term untuk mencari lenght data_test
end for
Tabel 3-9 Process Specification 2.3
No. Proses 2.3
Nama Proses Pembobotan TF-IDF
Input data_hasil
Output bobot_data_TFIDF
Logika Proses
For i=1 sampai jumlah data_test
Lakukan indexing terhadap data dengan test
Hitung frequensi jumlah kata yang muncul di semua data_test (IDF)
Hitung frequensi kata yang ada dalam data_test
Hitung banyaknya term untuk mencari lenght data_test
19
Kalikan nilai IDF dengan frequensi kata
Kalikan nilai IDF dengan jumlah term
end for
Tabel 3-10 Process Specification 2.4
No. Proses 2.4
Nama Proses Perhitungan Cosine Similarity
Input bobot_data_TF, bobot_data_TFIDF
Output data_olah
Logika Proses
For i=1 sampai jumlah data_train
Hitung nilai similarity berdasarkan jumlah frequensi dan length data dengan
melibatkan bobot data sebelumnya
end for
Tabel 3-11 Process Specification 2.5
No. Proses 2.5
Nama Proses Scaling data
Input data_olah
Output data_scale
Logika Proses
For i=1 sampai jumlah data_test
Scale data ke dalam range [0-1]
end for
Tabel 3-12 Process Specification 2.6
No. Proses 2.6
Nama Proses Pengujian sistem
Input data_test, model_svm
Output akurasi
Logika Proses
For i=1 sampai jumlah data_test
Cek model_svm terhadap data_test
end for
Tabel 3-13 Process Specification 3.1
No. Proses 3.1
Nama Proses Penyesuaian format sistem
Input posting_komentar
Output data_hasil_simulasi
Logika Proses
For i=1 (sekali memasukkan postingan)
Lakukan tokenisasi terhadap teks
Penghilangan stopword dan tanda baca
Lakukan indexing
Hitung frequensi kata
Hitung banyaknya term untuk mencari lenght postingan_komentar
20
Hitung nilai cosine similarity
end for
Tabel 3-14 Process Specification 3.2
No. Proses 3.2
Nama Proses Simulasi Sistem
Input data_hasil_simulasi, model_svm
Output hasil_prediksi
Logika Proses
For i=1 (sekali memasukkan postingan)
Cek model_svm terhadap data_hasil_simulasi
end for
3.2.5 Entity Relationship Diagram
Thread memiliki Post
Id_thread Judul
isi status
Id_post posting
tipe kelas
1 N
Gambar 3-7 Entity Relationship Diagram
Thread
PK id_thread
judul
isi
status
post
PK id_post
posting
tipe
kelas
FK1 id_thread
Gambar 3-8 Tabel Relasi
Tabel 3-15 Tabel Entitas Thread Atribut Tipe Data Keterangan
Id_thread Integer Id thread
Judul Varchar Judul suatu topik
Isi Varchar Isi topik
status Integer Status terpilih data
21
Tabel 3-16 Tabel Entitas Post Atribut Tipe Data Keterangan
Id_post Integer Id post
posting Varchar Isi postingan
Tipe Varchar Tipe data
Kelas Integer Kelas postingan
Id_thread Integer Id thread suatu post
22
4. Implementasi dan Analisis Hasil Pengujian
4.1 Lingkungan Implementasi Sitem
4.1.1 Spesifikasi Perangkat Lunak Perangkat lunak yang digunakan untuk membangun aplikasi antara lain:
1. Sistem Operasi: Windows 7 2. XAMPP 1.7.7 VC9 3. Text Editor : Notepad++ dan Aptana Studio 4. Web browser : Mozilla Firefox 11
4.1.2 Spesifikasi Perangkat Keras Perangkat keras yang digunakan untuk membangun aplikasi antara lain:
1. Processor : Intel Core i3 2. Memory : 4GB 3. Hardisk : 500GB 4. Monitor dengan resolusi 1360x768 pixel
4.2 Pengujian Sistem
4.2.1 Dataset
Dataset yang digunakan dalam pengujian sistem ini adalah data forum yang
berupa thread atau topik pembahasan dalam suatu forum dan juga postingan
komentar dari anggota forum lainnya. Data didapat dari forum terbesar di
Indonesia yaitu Kaskus.
Dalam data ini, dipisahkan menjadi dua bagian data, yaitu data thread dan juga
data postingan. Data thread ini berisi tentang topik pembahasan yang disajikan
dalam forum. Sedangkan data postingan berisi komentar-komentar terhadap topik
tersebut.
Data postingan dipisahkan kembali menjadi dua bagian, yaitu data training dan
testing yang memiliki fungsi yang berbeda. Data training digunakan sebagai data
yang akan digunakan dalam proses learning, sedangkan data testing digunakan
sebagai data pengujian hasil learning sebelumnya. Pembagian untuk data training
dan juga testing yaitu 70% data postingan sebagai data training dan 30% sebagai
data testing.
Data training berjumlah 280 data yang terdiri dari dua kelas yang berbeda yaitu
-1 untuk data yang termasuk junk dan juga 1 untuk data yang termasuk non-junk.
Perbandingan untuk dua kelas tersebut ialah data junk ada sebanyak 158 data
sedangkan data non-junk sebanyak 122 data.
Tidak jauh berbeda dengan data training, data testing terdiri dari dua kelas pula
namun dengan jumlah data yang lebih sedikit. Data testing berjumlah 120 data
dengan perbandingan untuk dua kelas dalam data testing yaitu data junk ada
sebanyak 68 data dan data non-junk sebanyak 52 data.
Penentuan kelas data termasuk junk atau tidak dilakukan secara manual untuk
kedua data, data training dan data test. Penentuan ini menggunakan informasi
klasifikasi postingan yang termasuk junk atau tidak berdasarkan aturan dari situs
penyedia, yaitu Kaskus. Dikarenakan dilakukan secara manual, bisa saja terjadi
23
human error dalam proses pelabelan data yang menyebabkan karakteristik antara
data training dan juga data testing berbeda.
4.2.2 Tujuan Pengujian
Tujuan dilakukannya pengujian ini adalah sebagai berikut :
a. Mengetahui pengaruh preprocessing data dalam pembentukan model Support Vector Machine.
b. Mengetahui preprocessing data terbaik yang dapat diterapkan dalam kasus penanganan spam opinion khususnya untuk filter junk post forum.
c. Mengetahui pengaruh parameter C pada performansi Support Vector Machine.
4.2.3 Skenario Pengujian
Pengujian sistem ini dilakukan dengan beberapa percobaan. Percobaan-percobaan
ini dilakukan untuk mengetahui pengaruh tiap-tiap parameter pada tiap-tiap
dataset terhadap performansi sistem. Berikut ini adalah percobaan-percobaan yang
dilakukan :
1. Pengolahan data tanpa preprocessing (pembobotan menggunakan tf) 2. Pengolahan data tanpa preprocessing (pembobotan menggunakan tf-idf) 3. Pengolahan data dengan stopword removal (pembobotan menggunakan tf) 4. Pengolahan data dengan stopword removal (pembobotan menggunakan tf-idf)
Keempat skenario pengujian di atas mampu menjawab hal-hal yang menjadi
tujuan pengujian pada sistem ini. Dalam keempat skenario di atas, yang menjadi
pembanding untuk masing-masing skenario pengujian yaitu data hasil
preprocessing. Preprocessing yang diterapkan dalam pengujian ini berbeda-beda
dan dapat mempengaruhi hasil pemodelan yang dilakukan oleh sistem. Dari
keempat skenario tersebut dapat ditarik kesimpulan manakah preprocessing yang
paling tepat dalam penanganan kasus junk post ini. Semakin banyak
preprocessing yang dilakukan terhadap data, akan mempengaruhi performansi
data tersebut dalam sistem. Begitu pula dengan pengaruh parameter C ketika data
hasil preprocessing berbeda-beda dilakukan pengujian, dapat ditarik kesimpulan
juga bahwa seberapa pengaruhnya parameter C ini terhadap performansi sistem.
4.3 Analisis Hasil Pengujian 4.3.1 Analisis Skenario 1 Pengujian yang dilakukan pada skenario ini adalah membandingkan pengaruh
parameter C dalam SVM terhadap performansi dataset jika tanpa dilakukan
preprocessing. Pembobotan yang digunakan dalam skenario ini hanya
menggunakan TF saja. Penentuan parameter C yang baik dapat dilihat dari hasil
akurasi cross validation pada data train tersebut. Berikut hasil pengujian pada
skenario 1 :
24
Tabel 4-1 Hasil Pengujian Skenario 1 (tanpa preprocessing, pembobotan dengan
TF)
Skenario Parameter C Akurasi CV (train) Akurasi (Test)
1
1 77.14% 79.17%
5 79.29% 69.17%
10 82.86% 66.67%
15 80.36% 64.17%
20 80.71% 63.33%
25 81.43% 63.33%
30 81.07% 63.33%
35 81.43% 63.33%
40 81.79% 63.33%
45 81.07% 62.50%
50 81.79% 62.50%
Rata-rata 80.81% 65.53%
Dari tabel 4-1, pemilihan parameter C dapat mempengaruhi dalam penentuan
model hasil klasifikasi. Pengujian skenario 1 menunjukkan bahwa rata-rata
akurasi cross validation yang dihasilkan saat training data ialah 80.81%. Akurasi
cross validation berfungsi untuk menentukan parameter C terbaik dari
serangkaian percobaan. Dari hasil di atas, parameter C terbaik yaitu 10. Namun
ketika model diuji coba terhadap data testing, nilai C=10 menghasilkan akurasi
yang lebih buruk dibandingkan C=1. Hal ini terjadi karena karakteristik data yang
digunakan dalam proses training berbeda dengan testing. Hal ini berdampak
kepada akurasi yang diberikan oleh model yang telah dibuat sebelumnya tidak
terlalu baik dalam melakukan klasifikasi data sehingga ketika data dengan
toleransi tradeoff yang rendah (C=1), memberikan hasil yang baik terhadap data
testing.
Gambar 4-1 Grafik Pengaruh Parameter C dengan Akurasi (Test) Skenario 1
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
1 5 10 15 20 25 30 35 40 45 50parameter C
Akurasi (Test)
Akurasi
25
Berdasarkan grafik di atas, nilai akurasi menunjukkan penurunan jika parameter C
terus dinaikkan. Hal ini menandakan parameter C yang berfungsi sebagai
parameter untuk mengatur trade off kesalahan memiliki peranan dalam penentuan
akurasi. Semakin besar nilai C, akan memberikan penalty yang lebih besar
terhadap error klasifikasi yang berakibat akurasi data saat dilakukan testing
menjadi menurun.
4.3.2 Analisis Skenario 2
Pengujian yang dilakukan pada skenario ini adalah membandingkan pengaruh
parameter C dalam SVM terhadap performansi dataset jika tanpa dilakukan
preprocessing. Pembobotan yang digunakan dalam skenario ini hanya
menggunakan TF-IDF. Penentuan parameter C yang baik dapat dilihat dari hasil
akurasi cross validation pada data train tersebut. Berikut hasil pengujian pada
skenario 2 :
Tabel 4-2 Hasil Pengujian Skenario 2 (tanpa preprocessing, pembobotan dengan
TF-IDF)
Skenario Parameter C Akurasi CV (train) Akurasi (Test)
2
1 79.64% 80.83%
5 83.93% 79.17%
10 84.29% 77.50%
15 84.64% 78.33%
20 84.29% 77.50%
25 84.29% 78.33%
30 83.93% 78.33%
35 82.86% 78.33%
40 84.64% 78.33%
45 84.29% 78.33%
50 84.29% 78.33%
Rata-rata 83.83% 78.48%
Dari tabel 4-2, nilai akurasi cross validation menunjukkan hasil yang lebih baik
jika dibandingkan dengan skenario 1. Hal ini membuktikan bahwa penerapan
preprocessing dengan TF-IDF lebih baik jika dibandingkan dengan preprocessing
dengan menggunakan TF saja. Pengujian skenario 2 menunjukkan bahwa rata-
rata akurasi cross validation yang dihasilkan saat training data ialah 83.83%.
Hasil ini lebih baik dibanding akurasi cross validation skenario 1 yang hasilnya
80.81%. Dari hasil di atas, parameter C terbaik yaitu nilai C sama dengan 15 dan
40. Penetuan parameter C berguna dalam memberikan tradeoff kesalahan terhadap
error klasifikasi. Dalam skenario ini, parameter C terlihat hampir merata untuk
keseluruhan percobaan, berkisar antara 79,64% hingga 84,64%. Perbedaan antara
akurasi data training maupun testing sekitar 5% saja. Hal ini membuktikan bahwa
model yang dihasilkan dari proses training mampu mengklasifikasikan data
testing dengan baik, dengan hasil rata-rata akurasi mencapai 78,48%.
26
Gambar 4-2 Grafik Pengaruh Parameter C dengan Akurasi (Test) Skenario 2
Grafik akurasi testing di atas berbeda dengan skenario 1 yang menunjukkan hasil
penurunan jika parameter C dinaikkan. Dalam skenario 2 ini, parameter C
menunjukkan penurunan hasil akurasi, namun pada saat C=15 menunjukkan hasil
akurasi yang lebih baik dibandingkan C=10. Berdasarkan hasil ini, C yang terbaik
untuk skenario 2 saat C=15. Dibuktikan juga dengan hasil akurasi cross validation
yang baik saat C=15. Akurasi testing terbaik saat C=1 atau saat C rendah. Hal ini
terjadi karena jika semakin besar C yang digunakan dalam proses klasifikasi akan
memberikan trade off kesalahan yang lebih besar, sehingga akurasi dapat
menurun.
4.3.3 Analisis Skenario 3
Pengujian yang dilakukan pada skenario ini adalah membandingkan pengaruh
parameter C dalam SVM terhadap performansi dataset dengan melakukan
penghilangan stopword terhadap dataset. Penghilangan stopword memberikan
hasil yang berbeda jika dibandingkan dengan skenario-skenario sebelumnya.
Pembobotan yang digunakan dalam skenario ini yaitu menggunakan TF saja.
Penentuan parameter C yang baik dapat dilihat dari hasil akurasi cross validation
pada data train tersebut. Berikut hasil pengujian pada skenario 3 :
Tabel 4-3 Hasil Pengujian Skenario 3 (penghilangan stopword, pembobotan
dengan TF)
Skenario Parameter C
Akurasi CV
(train)
Akurasi
(Test)
3
1 68.21% 66.67%
5 75.36% 60%
10 76.43% 58.33%
15 78.93% 58.33%
20 79.29% 58.33%
25 77.86% 58.33%
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
1 5 10 15 20 25 30 35 40 45 50
parameter C
Akurasi (Test)
Akurasi (Test)
27
30 78.21% 58.33%
35 77.50% 58.33%
40 78.93% 58.33%
45 80% 58.33%
50 78.21% 58.33%
Rata-rata 77.18% 59.24%
Hasil tabel 4-3 menunjukkan penurunan dalam akurasi, baik akurasi
menggunakan cross validation, maupun akurasi saat testing. Perbedaan antara
skenario 3 dan 1 yaitu hanya terletak pada proses penghilangan stopword saja.
Rata-rata akurasi cross validation pada skenario 1 yaitu 80.81%, sedangkan pada
skenario 3 ini 77.18%. Penurunan disebabkan oleh kamus stopword yang
digunakan dalam skenario ini yang umumnya kamus tersebut digunakan saat
pengklasifikasian kasus lain, sehingga apabila diterapkan dalam kasus junk post
ini menunjukkan hasil yang tidak terlalu baik. Nilai parameter C yang terbaik
berdasarkan tabel di atas yaitu C=45. Nilai parameter ini memberikan perubahan
yang berbeda dengan skenario sebelumnya karena nilai C dalam skenario-
skenario sebelumnya tidak sebesar nilai C ketika dilakukan preprocessing. Hal ini
menunjukkan SVM memberikan threshold penalty yang cukup besar jika
dilakukan preprocessing pada data.
Gambar 4-3 Grafik Pengaruh Parameter C dengan Akurasi (Test) Skenario 3
Grafik di atas menunjukkan penurunan untuk setiap parameter C yang terus naik.
Hasil ini sama dengan hasil pada skenario 1 dimana hasilnya pun menurun untuk
setiap parameter C yang dinaikkan. Tidak jauh berbeda dengan scenario 1, grafik
menurun dikarenakan semakin besar nilai C, akan memberikan penalty yang lebih
besar terhadap error klasifikasi yang berakibat akurasi data saat dilakukan testing
menjadi menurun.
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
1 5 10 15 20 25 30 35 40 45 50
parameter C
Akurasi (Test)
Akurasi (Test)
28
4.3.4 Analisis Skenario 4
Pengujian yang dilakukan pada skenario ini adalah membandingkan pengaruh
parameter C dalam SVM terhadap performansi dataset dengan melakukan
penghilangan stopword terhadap dataset. Penghilangan stopword memberikan
hasil yang berbeda jika dibandingkan dengan skenario-skenario sebelumnya.
Pembobotan yang digunakan dalam skenario ini yaitu menggunakan TF-IDF.
Penentuan parameter C yang baik dapat dilihat dari hasil akurasi cross validation
pada data train tersebut. Berikut hasil pengujian pada skenario 4 :
Tabel 4-4 Hasil Pengujian Skenario 4 (penghilangan stopword, pembobotan
dengan TF-IDF)
Skenario Parameter C Akurasi CV (train) Akurasi (Test)
4
1 70.36% 70.83%
5 77.86% 67.50%
10 76.43% 66.67%
15 76.79% 66.67%
20 77.50% 66.67%
25 77.86% 66.67%
30 77.86% 66.67%
35 77.14% 66.67%
40 76.43% 66.67%
45 76.43% 66.67%
50 78.57% 67.50%
Rata-rata 76.66% 67.20%
Hasil tabel di atas menunjukkan penurunan dalam akurasi cross validation jika
dibandingkan dengan skenario 3. Namun berbeda ketika dilakukan testing
terhadap data. Akurasi lebih tinggi jika dibandingkan dengan skenario 3. Nilai
parameter C dalam kasus ini cukup besar, yaitu C=50 yang memberikan akurasi
cross validation paling besar. Proses penghilangan stopword mengakibatkan SVM
menghasilkan nilai parameter C=50 yang besar. Parameter C yang besar berarti
SVM memberikan tradeoff yang cukup besar terhadap error yang dihasilkan.
Jika dibandingkan dengan skenario 2, perbedaan terletak pada penghilangan
stepword saja. Hasil training antara skenario 2 dan 4 yaitu 83.83% dan 76.66%.
Penghilangan stopword mengakibatkan akurasi menurun 6% dari sebelumnya.
Karakteristik data ketika dilakukan penghilangan stopword menghasilkan data
yang berisi kata-kata yang tidak terlalu umum digunakan, sehingga memberikan
data yang tidak sebaik data tanpa penghilangan stopword. Data postingan pada
forum ketika dilakukan penghilangan stopword akan menghilangkan kata-kata
yang sangat umum digunakan dalam diskusi forum. Semakin banyak kata yang
dihilangkan, maka nilai urgensitas dari suatu postingan bisa hilang, sehingga data
menjadi buruk untuk dilakukan klasifikasi.
29
Gambar 4-4 Grafik Pengaruh Parameter C dengan Akurasi (Test) Skenario 4
Grafik diatas menunjukkan penurunan akurasi testing di setiap parameter C yang
dinaikkan. Namun ketika C=50, grafik naik karena hasil parameter C yang terbaik
saat C=50 sehingga pada proses testing data, memberikan hasil grafik yang naik
dibanding parameter C sebelumnya. Walaupun hasil akurasi naik pada C=50,
namun hasil terbesar tetap ketika C=1.
4.3.5 Analisis Keseluruhan Skenario
Gambar 4-5 Grafik Akurasi CV(Train) dan Akurasi (Test) Keseluruhan
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
1 5 10 15 20 25 30 35 40 45 50
parameter C
Akurasi (Test)
Akurasi (Test)
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
1 2 3 4
skenario
Perbandingan Skenario Keseluruhan
Akurasi CV (train)
Akurasi (Test)
30
Berdasarkan analisis grafik 4-5, skenario yang terbaik dalam pemecahan masalah
junk post ini yaitu skenario 2. Dalam skenario ini, data tidak dilakukan
penghilangan stopword dan dilakukan pembobotan dengan menggunakan TF-IDF.
Akurasi training maupun testing menghasilkan hasil yang terbaik jika
dibandingkan skenario lainnya. Selain itu juga, skenario 2 ini lebih baik
dibandingkan skenario lain yang dilakukan penghilangan stopword terlebih
dahulu. Penerapan preprocessing dalam kasus ini akan menghilangkan kata-kata
yang tidak dianggap penting dalam suatu postingan forum. Data postingan pada
forum ketika dilakukan penghilangan stopword akan menghilangkan kata-kata
yang sangat umum digunakan dalam diskusi forum. Semakin banyak kata yang
dihilangkan, maka nilai urgensitas dari suatu postingan bisa hilang, sehingga data
menjadi buruk untuk dilakukan klasifikasi. Dalam kasus penerapan junk post
forum ini, kata-kata dalam forum tidak sebaku artikel bahasa indonesia pada
umumnya, sehingga apabila diterapkan proses penghilangan stopword ini,
memberikan hasil yang tidak baik berdasarkan hasil pengujian ini.
31
5. Kesimpulan dan Saran
5.1 Kesimpulan Berdasarkan pengujian yang dilakukan dalam Tugas Akhir ini, dapat disimpulkan
bahwa :
a. Semakin banyak proses preprocessing yang dilakukan dalam penanganan junk post ini, akan berdampak buruk kepada sistem penanganan junk post
forum.
b. Proses penghilangan stopword berpengaruh terhadap hasil klasifikasi SVM. Klasifikasi dengan penghilangan stopword memiliki akurasi Cross
Validation yang lebih rendah jika dibandingkan pengolahan tanpa
preprocessing. Terbukti juga dengan akurasi testing yang dilakukan
terhadap data test.
c. Perubahan nilai parameter C dalam metode SVM tidak berpengaruh secara signifikan. Namun pemilihan parameter C yang terlalu kecil menurunkan
nilai akurasi cross validation dalam kasus penanganan junk post ini.
d. Proses preprocessing yang tepat berdasarkan hasil pengujian Tugas Akhir ini yaitu tidak dilakukan preprocessing pada data dan dengan pembobotan
TF-IDF. Hal ini karena karakteristik data forum yang berbeda dengan
proses text mining lainnya.
e. Dilihat dari nilai akurasi dari proses pengujian di atas, metode SVM dapat menentukan postingan yang termasuk junk atau tidak.
5.2 Saran Saran yang diperlukan untuk pengembangan sistem lebih lanjut adalah sebagai
berikut :
a. Melakukan analisis lebih lanjut mengenai proses preprocessing pada data, seperti melakukan stemming atau penanganan thesaurus dalam sistem.
b. Melakukan penambahan data terhadap sistem, baik data thread maupun juga keberagaman data dari forum-forum lain
c. Melakukan analisis spam opinion dengan menggunakan metode klasifikasi lainnya seperti nave bayes, neural network atau maximum entrophy.
32
Daftar Pustaka
[1] Adiwijaya, Igg. 2006. Text Mining dan Knowledge Discovery. Komunitas Data mining Indonesia & Soft-computing Indonesia.
[2] Chen Jinxiu, Ji,Tan. 2005. Unsupervised Feature Selection for Relation Extraction. Singapore: National University of Singapore.
[3] Chen Rung-Ching & Chen Su-Ping. 2007. Intrusion Detection Using A Hybrid Support Vector Machine Based on Entropy and TF-IDF. Taiwan: Chaoyang University of Technology.
[4] Cios, Krzystof J., dkk. 2007. Data Mining A Knowledge Discovery Approach, New York: Springer.
[5]
Cristianini Nello & John Shawe-Taylor. 2000. An Introduction to Support Vector Machines and Other Kernel-Bases Learning Methods. UK: Cambridge Press.
[6] Dewi Rani Charisma. 2005. Pengelompokan Berita Berbahasa Indonesia menggunakan Clustering. Bandung:STT Telkom.
[7] DigilibITTelkom. 2012. TFIDF. Diakses pada 2 April 2012 di http://digilib.ittelkom.ac.id/index.php?option=com_content&view=articl
e&id=996:tfidf&catid=6:internet&Itemid=14.
[8] Dumais, S., J. Platt, D. Heckman, and M. Sahami. 1998. Inductive Learning Algorithms and Representations for Text Categorization. 7th International Conference on Information and Knowledge Management.
[9] Firdaus, Yanuar. 2008. Vector Methods. Bandung: IT Telkom
[10] Forman George. 2006. BNS Feature Scaling: An Improved Representation over TFIDF for SVM Text Classification. Hewlett-Packard Labs Tech Report
[11] Hsu, Chih-Wei, Chih-Chung Chang, dan Chih-Jen Lin. 2010. A Practical Guide to Support Vector Classification. Taiwan: National Taiwan University
[12] Joachims Thorsten. 1997. Text Categorization with Support Vector Machines: Learning with Many relevant Features. Dortmund: Universitt Dortmund.
[13] Nugroho. A. N. (2008). Support Vector Machine: Paradigma Baru dalam Softcomputing. KNSI 2008; Bali.
33
[14] Nugroho Satriyo Anto, Arief Budi Witarto, dan Dwi Handoko. 2003. Support Vector Machine-Teori dan Aplikasinya dalam Bioinformatika dari http://ilmukomputer.com
[15] Prabowo, Rudy and Thelwall, Mike. Sentiment Analysis: A Combined Approach. United Kingdom: School of Computing and Information Technology.
[16] Salton, G. 1989. Automatic Text Processing: The Transformation, Analysis, and Retrieval of Information by Computer. Addison-wesley, Reading, Pennsylvania
[17] Sari Khrisna Dini Yunita. 2006. Kategorisasi Teks dengan Metode Klasifikasi Support Vector Machine (SVM). Bandung: STTTelkom.
[18] Xu Guandong, Yanchun Zhang, and Lin Li. 2011. Web Mining and Social Networking, Victoria: Springer.
34
Lampiran A: Data Pengujian
Data Thread
Dewasa ini, semakin banyak inovator-inovator handal yang lahir, begitu pun
dengan para kreator. Tapi sayangnya siklus ini juga dibarengi dengan timbulnya
para plagiator dan follower. Berarti ada kemajuan juga ada kekurangan. Di satu
sisi kita bangga dengan lahirnya para inovator juga kreator, sisi lain, mengundang
miris melihat lebih banyak yang menjadi plagiator ato malah berpuas sebagai
follower.
Kalo menurut saya sih sangat disayangkan ketika kita hanya mampu memplagiat
atau hanya diam bertepuk tangan sebagai follower sementara banyak hal yang
bisa kita lakukan. Oiya, sebelum lanjut, mendukung suatu karya itu beda lho
dengan menjadi follower. Pun berinovasi karena pans melihat orang sukses juga
beda dengan plagiator, apalagi di Indonesia.
Saya pernah baca kalo daya tampung otak manusia itu lebih besar daripada hard
disk berukuran tetabyte. Dan katanya, sampai manusia mati, daya yang di pakai
otak untuk menyimpan memori dan bekerja itu tidak sampe seperempatnya.
Einstein saja yang katanya manusia terpintar "cuma" menggunakan sepertiga
kemampuan memori otaknya. Simpel kata, ketika mati, otak kita masih banyak
menyisakan space yang belum terpakai. Dan sangat disayangkan sekali, dengan
daya tampung otak yang sebesar itu, kita hanya mampu menjadi
plagiator/follower.
Lalu bagaimana dengan saya?
Dari dulu saya mencoba menekankan pada diri sendiri untuk lebih menekan otak
pada titik batas tertinggi. Mencoba lebih kreatif dan inovatif. Meyakinkan diri
saya untuk bisa dan bisa. Kalau orang lain bisa kreatif, kenapa kita ga? Toh otak
manusia dimana-mana sama kok, baik ukurannya, bahan dasarnya, juga
posisinya. Yang membedakan hanya cara kita untuk menggunakannya. Juga
mindset kita kepada otak.
Saya suka mencontoh konsep orang, tapi bukan untuk di pakai mentah-mentah.
Saya coba sederhanakan atau malah saya buat lebih besar jika mampu. Saya suka
mencari referen
top related