-
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