BAB 2
LANDASAN TEORI
2.1. Text Mining Text mining, pada proses mengambil informasi dari teks. Informasi biasanya diperoleh melalui peramalan pola dan kecenderungan pembelajaran pola statistik. Text mining yaitu parsing, bersama dengan penambahan beberapa fitur linguistik turunan dan penghilangan beberapa diantaranya, dan penyisipan subsequent ke dalam database, menentukan poladalam data terstruktur, dan akhirnya mengevaluasi dan menginterpretasi output, text mining biasanya mengacu ke beberapa kombinasi relevansi, kebaruan, dan interestingness. Proses text mining yang khas meliputi kategorisasi teks, text clustering, ekstraksi konsep/entitas, produksi taksonomi granular, sentiment analysis, penyimpulan dokumen, dan pemodelan relasi entitas yaitu, pembelajaran hubungan antara entitas (Bridge, 2011). Pendekatan manual text mining secara intensif dalam laboratorium pertama muncul pada pertengahan 1980-an, namun kemajuan teknologi telah memungkinkan ranah tersebut untuk berkembang selama dekade terakhir. Text mining adalah bidang interdisipliner yang mengacu pada pencarian informasi, pertambangan data, pembelajaran mesin, statistik, dan komputasi linguistik. Dikarenakan kebanyakan informasi (perkiraan umum mengatakan lebih dari 80%) saat ini disimpan sebagai teks, text mining diyakini memiliki potensi nilai komersial tinggi (Bridge, 2011). Saat ini, text mining telah mendapat perhatian dalam berbagai bidang (Sumartini, 2011): 1. Aplikasi keamanan. Banyak paket perangkat lunak text mining dipasarkan terhadap aplikasi keamanan, khususnya analisis plaintext seperti berita Internet. Hal ini juga mencakup studi enkripsi teks.
Universitas Sumatera Utara
2. Aplikasi biomedis. Berbagai aplikasi text mining dalam literatur biomedis telah disusun. Salah satu contohnya adalah PubGene 3. Perangkat Lunak dan Aplikasi Departemen riset dan pengembangan perusahaan besar, termasuk IBM dan Microsoft, sedang meneliti teknik text mining dan mengembangkan program untuk lebih mengotomatisasi proses pertambangan dan analisis. Perangkat lunak text mining juga sedang diteliti oleh perusahaan yang berbeda yang bekerja di bidang pencarian dan pengindeksan secara umum sebagai cara untuk meningkatkan performansinya 4. Aplikasi Media Online Text mining sedang digunakan oleh perusahaan media besar, seperti perusahaan Tribune, untuk menghilangkan ambigu informasi dan untuk memberikan pembaca dengan pengalaman pencarian yang lebih baik, yang meningkatkan loyalitas pada site dan pendapatan. Selain itu, editor diuntungkan dengan mampu berbagi, mengasosiasi dan properti paket berita, secara signifikan meningkatkan peluang untuk menguangkan konten. 5. Aplikasi Pemasaran Text mining juga mulai digunakan dalam pemasaran, lebih spesifik dalam analisis manajemen hubungan pelanggan yang menerapkan model analisis prediksi untuk churn pelanggan (pengurangan pelanggan). 6. Sentiment Analysis Sentiment Analysis mungkin melibatkan analisis dari review film untuk memperkirakan berapa baik review untuk sebuah film. Analisis semacam ini mungkin memerlukan kumpulan data berlabel atau label dari efektifitas kata-kata. Sebuah sumber daya untuk efektivitas kata-kata telah dibuat untuk WordNet. 7. Aplikasi Akademik Masalah text mining penting bagi penerbit yang memiliki database besar untuk mendapatkan informasi yang memerlukan pengindeksan untuk pencarian. Hal ini terutama berlaku dalam ilmu sains, di mana informasi yang sangat spesifik sering terkandung dalam teks tertulis. Oleh karena itu, inisiatif telah diambil seperti Nature’s proposal untuk Open Text Mining Interface (OTMI) dan Health’s common Journal Publishing untuk Document Type Definition (DTD) yang akan memberikan isyarat semantik pada mesin untuk menjawab pertanyaan spesifik yang terkandung dalam teks tanpa menghilangkan barrier penerbit untuk akses publik.
Universitas Sumatera Utara
Sebelumnya, website paling sering menggunakan pencarian berbasis teks, yang hanya menemukan dokumen yang berisi kata-kata atau frase spesifik yang ditentukan oleh pengguna. Sekarang, melalui penggunaan web semantik, text mining dapat menemukan konten berdasarkan makna dan konteks (Sumartini, 2011). 2.2. Sentiment Analysis Sentiment analysis atau opinion mining mengacu pada bidang yang luas dari pengolahan bahasa alami, komputasi linguistik dan text mining. Secara umum, bertujuan untuk menentukan attitude pembicara atau penulis berkenaan dengan topik tertentu. Attitude mungkin penilaian atau evaluasi mereka, pernyataan afektif mereka (pernyataan emosional penulis saat menulis) atau komunikasi emosional dimaksud (efek emosional penulis inginkan terhadap pembaca) (Ian et al, 2011). Tugas dasar dalam analisis sentimen adalah mengelompokkan polaritas dari teks yang ada dalam dokumen, kalimat, atau fitur/tingkat aspek – apakah pendapat yang dikemukakan dalam dokumen, kalimat atau fitur entitas/aspek Ekspresi atau sentiment mengacu pada fokus topik tertentu, pernyataan pada satu topik mungkin akan berbeda makna dengan pernyataan yang sama pada subject yang berbeda. Sebagai contoh, adalah hal yang baik untuk mengatakan alur film tidak terprediksi, tapi adalah hal yang tidak baik jika „tidak terprediksi‟ dinyatakan pada kemudi dari kendaraan. Bahkan pada produk tertentu, kata-kata yang sama dapat menggambarkan makna kebalikan, contoh adalah hal yang buruk untuk waktu start-up pada kamera digital jika dinyatakan “lama”, namun jika ”lama” dinyatakan pada usia baterai maka akan menjadi hal positif. Oleh karena itu pada beberapa penelitian, terutama pada review produk, pekerjaan didahului dengan menentukan elemen dari sebuah produk yang sedang dibicarakan sebelum memulai proses opinion mining (Ian et al, 2011). Hal pertama dalam pemrosesan dokumen adalah memecah kumpulan karakter ke dalam kata atau token, sering disebut sebagai tokenisasi. Tokenisasi adalah hal yang kompleks untuk program komputer karena beberapa karakter dapat dapat ditemukan sebagai token delimiters. Delimiter adalah karakter spasi, tab dan baris baru “newline”, sedangkan karakter ( ) <> ! ? “ kadangkala dijadikan delimiter namun kadang kala bukan tergantung pada lingkungannya (Wulandini & Nugroho, 2009). Menemukan model atau fungsi yang menjelaskan atau membedakan konsep atau kelas data dengan tujuan untuk memperkirakan kelas yang tidak diketahui dari suatu objek, yaitu Pengklasifikasian data, yang terdapat dua proses yang dilakukan yaitu:
Universitas Sumatera Utara
1. Proses training Pada proses training digunakan training set yang telah diketahui label-labelnya untuk membangun model atau fungsi. 2. Proses testing Untuk mengetahui keakuratan model atau fungsi yang akan dibangun pada proses training, maka digunakan data yang disebut dengan testing set untuk memprediksi labellabelnya. Mengklasifikasi dokumen merupakan salah satu cara untuk mengorganisasikan dokumen. Dokumen yang memiliki isi yang sama akan dikelompokkan ke dalam kategori yang sama. Dengan demikian, orang-orang yang melakukan pencarian informasi dapat dengan mudah melewatkan kategori yang tidak relevan dengan informasi yang dicari atau yang tidak menarik perhatian (Feldman, 2004). Berikut ini adalah langkah-langkah analisis sentimen pada dokumen : 1. Crawling dan Input Data Pada tahap ini dilakukan pembacaan terhadap korpus, korpus adalah database besar yang menyimpan text yang akan dianalisis. Korpus didapat dengan cara mengumpulkan data dengan meng-crawling. 2. Pre-processing Pada tahapan ini akan dilakukan, yaitu: a. Cleaning, yaitu membersihkan dokumen dari kata yang tidak diperlukan sesuai kamus data yang telah ditentukan.Kata yang dihilangkan adalah HTML, simbol, ikon emosi, email, URL. Agar mengurangi noise saat menganalisis sentimen. b. Case Folding, yaitu pengubahan bentuk huruf menjadi huruf kecil dan penghapusan tanda baca serta angka, sesuai dengan kamus data yang telah ditentukan. 3. Ekstraksi Fitur Proses ekstraksi fitur bertujuan untuk meng-ekstrak kata-kata kunci dari korpus yang telah dibaca. Kata-kata kunci tersebut disebut dengan fitur atau term. Fitur inilah yang nantinya akan di proses dalam tahap analisis. Dalam proses ekstraksi fitur terdapat subproses, yaitu:
Universitas Sumatera Utara
a. Tokenization adalah proses memecah text menjadi kata tunggal. Pada penelitian ini fitur yang digunakan dalam memecah text adalah unigram yaitu token yang terdiri hanya satu kata. b. Stopwords Removing adalah proses menghilangkan kata tidak penting dalam text. Hal ini dilakukan untuk memperbesar akurasi dari pembobotan term. Untuk proses ini, diperlukan suatu kamus kata-kata yang bisa dihilangkan. Dalam Bahasa Indonesia, misalnya kata: dan, atau, mungkin, ini, itu, dll adalah kata-kata yang dapat dihilangkan. c. Stemming adalah proses pemetaan variansi morfologikal kata dalam kata dasar atau kata umumnya (stem). Misalnya kata "perancangan" dan "merancang" akan
diubah
menjadi
sebuah
kata
yang
sama,
yaitu
"rancang".
Proses stemming sangat tergantung kepada bahasa dari kata yang akan di-stem. Hal
ini
dikarenakan,
dalam
melakukan
proses stemming
harus
mengaplikasikan aturan morfologikal dari suatu bahasa. Algoritma Nazief & Adriani yang menyimpulkan sebuah kata dasar dapat ditambahkan imbuhan berupa derivation prefix (DP) di awal dan/atau diakhiri secara berurutan oleh derivation
suffix (DS),
possesive
pronoun (PP),
dan
particle (P).
Keterangan diatas dirumuskan sebagai berikut : DP + DP + DP + root word + DS + PP + P Adapun langkah-langkah yang digunakan oleh algoritma Nazief dan Adriani yaitu sebagai berikut: (Nazief & Adriani, 1996) a. Kata dicari di dalam daftar kamus. Bila kata tersebut ditemukan di dalam kamus, maka dapat diasumsikan kata tersebut adalah kata dasar sehingga algoritma dihentikan. b. Bila kata di dalam langkah pertama tidak ditemukan di dalam kamus, maka diperiksa apakah sufiks tersebut yaitu sebuah partikel (“-lah” atau “-kah”). Bila ditemukan, maka partikel tersebut dihilangkan. c. Pemeriksaan dilanjutkan pada kata ganti milik (“-ku”, “-mu”, “-nya”). Bila ditemukan, maka kata ganti tersebut dihilangkan. d. Memeriksa akhiran (“-i”, “-an”). Bila ditemukan, maka akhiran tersebut dihilangkan. Hingga langkah ke-4 dibutuhkan ketelitian untuk memeriksa apakah akhiran “-an” merupakan hanya bagian dari akhiran “-kan”, dan memeriksa lagi apakah partikel (“-lah”, “-kah”) dan kata ganti milik (“-ku”,
Universitas Sumatera Utara
“-mu”, “-nya”) yang telah dihilangkan pada langkah 2 dan 3 bukan merupakan bagian dari kata dasar. e. Memeriksa awalan (“se-“, ”ke-“, “di-“, “te-“, “be-“, “pe-“, “me-“). Bila ditemukan, maka awalan tersebut dihilangkan. Pemeriksaan dilakukan dengan berulang mengingat adanya kemungkinan multi-prefix.Langkah ke-5 ini juga membutuhkan ketelitian untuk memeriksa kemungkinan peluluhan awalan (Tabel 2.1), perubahan prefix yang disesuaikan dengan huruf-awal kata (Tabel 2.2) dan aturan kombinasi prefix-suffix yang diperbolehkan (Tabel 2.3). f. Setelah menyelesaikan semua langkah dengan sukses, maka algoritma akan mengembalikan kata dasar yang ditemukan. Tabel 2.1. Daftar Prefiks yang Meluluh (Nazief & Adriani, 1996) Jenis Prefiks
Huruf
Hasil Peluluhan
pe-/me-
K
-ng-
pe-/me-
P
-m-
pe-/me-
S
-ny-
pe-/me-
T
-n-
Tabel 2.2. Daftar Kemungkinan Perubahan Prefiks (Nazief & Adriani, 1996) Prefiks
Perubahan
se-
tidak berubah
ke-
tidak berubah
di-
tidak berubah
be-
ber-
te-
ter-
pe-
per-, pen-, pem-, peng-
me-
men-, mem-, meng-
Universitas Sumatera Utara
Tabel 2.3. Daftar Kombinasi Prefiks dan Sufiks yang Tidak Diperbolehkan (Nazief & Adriani, 1996) Prefix
Sufiks yang tidak diperbolehkan
be-
-i
di-
-an
ke-
-i, -kan
me-
-an
se-
-i, -kan
te-
-an
pe-
-kan
4. Pembobotan Term Pembobotan term
memberikan sebuah nilai
untuk sebuah term berdasarkan tingkat
kepentingan tersebut di dalam sekumpulan dokumen masukan. Pada penelitian ini akan digunakan metode TF-IDF sebagai proses pembobotan, yaitu dengan cara mencari representasi nilai dari tiap-tiap dokumen dari sekumpulan data training, dan akan dibentuk menjadi sebuah vektor. Dapat dirumuskan sebagai berikut : (D Manning et al, 2009)
w(t,d) = tf (t,d)*idf
(1)
idf = log
(2)
Keterangan : tf (t,d) = kemunculan kata t pada dokumen d, N
= jumlah dokumen pada kumpulan dokumen,
df
= jumlah dokumen yang mengandung term t.
5. Proses Analisis & Validasi Pada proses ini akan dilakukan analisis dan validasi menggunakan K-NN dan SVM. Setelah dokumen dalam bentuk matriks kata-dokumen dan telah diberi pembobotan TF-IDF, maka proses selanjutnya K-NN menganalisis, yaitu setiap dokumen akan diberi tanda positif atau negatif, jika jumlah positif < jumlah negatif maka skor sentimen: -1 x
(3)
Universitas Sumatera Utara
Jika, jumlah positif > jumlah negatif maka skor sentimen : (4) Jika selain kriteria diatas, maka sentimen adalah 0 atau disebut netral. (Khushboo et al, 2012)
Hasil dokumen diatas kemudian, akan ditentukan koordinat data uji, setelah itu cari tetangga terdekat menggunakan k dan jarak Euclidean atau Cosine Similarity, kemudian urutkan tetangga berdasarkan paling dekat, dan dilakukan voting yaitu tetangga yang memiliki data yang terbanyak, apakah termasuk kelas positif, negatif, dan netral. Kemudian pada hasil dari tahap diatas, yaitu setiap dokumen yang telah diproses tadi direpresentasikan sebagai vektor dalam ruang term, dimana k adalah ukuran dari kumpulan term. Nilai dari antara (0,1) direpresentasikan seberapa banyak term tk berkontribusi untuk semantik dokumen dj. Selanjutnya akan mengolah ruang term tersebut dengan menggunakan Support Vector Machine bertujuan untuk menganalisis dokumen bagaimana tingkat akurasi apa sesuai dengan label yang telah diberi, setelah itu melakukan analisis proses K-NN tetangga berdasarkan paling dekat, dan dilakukan voting yaitu tetangga yang memiliki data yang terbanyak adalah data yang menang, apakah termasuk kelas positif, negatif, dan netral. Setelah itu, masuk pada tahap validasi dengan melihat akurasi (ketepatan), suatu dokumen yang telah direpresentasikan sebagai vektor dalam ruang term, dimana k adalah ukuran dari kumpulan term. Nilai dari antara (0,1) direpresentasikan seberapa banyak term tk berkontribusi untuk semantik dokumen dj, memvalidasi ruang term tersebut dengan menggunakan K-Fold Cross Validation.
2.3. Support Vector Machine (SVM) 2.3.1. Konsep Support Vector Machine (SVM) Support Vector Machines (SVM) adalah seperangkat metode pembelajaran terbimbing yang menganalisis data dan mengenali pola, digunakan untuk klasifikasi dan analisis regresi. Algoritma SVM asli diciptakan oleh Vladimir Vapnik dan turunan standar saat ini Soft Margin (Cortes & Vapnik, 1995). SVM standar mengambil himpunan data input, dan memprediksi, untuk setiap masukan yang diberikan, kemungkinan masukan adalah anggota dari salah satu kelas dari dua kelas yang ada, yang membuat sebuah SVM sebagai penggolong nonprobabilistik linier biner. Karena SVM adalah sebuah pengklasifikasi, kemudian diberi suatu himpunan pelatihan, masing-masing ditandai sebagai milik salah satu
Universitas Sumatera Utara
dari dua kategori, suatu algoritma pelatihan SVM membangun sebuah model yang memprediksi apakah data yang baru jatuh ke dalam suatu kategori atau yang lain. Konsep SVM mencari hyperplane terbaik yang berfungsi sebagai pemisah dua buah kelas pada input space. Pattern yang merupakan anggota dari dua buah kelas : +1 dan -1 dan berbagi alternative garis pemisah (discrimination boundaries). Margin adalah jarak antara hyperplane tersebut dengan pattern terdekat dari masing-masing kelas. Pattern yang paling dekat ini disebut sebagai support vector. Usaha untuk mencari lokasi hyperplane ini merupakan inti dari proses pembelajaran pada SVM. Secara intuitif, model SVM merupakan representasi dari data sebagai titik dalam ruang, dipetakan sehingga kategori contoh terpisah dibagi oleh celah jelas yang selebar mungkin. Data baru kemudian dipetakan ke dalam ruang yang sama dan diperkirakan termasuk kategori berdasarkan sisi mana dari celah data tersebut berada. SVM bekerja atas prinsip Structural Risk Minimization (SRM) dengan tujuan menemukan hyperlane terbaik yang memisahkan dua buah kelas pada input space. Prinsip dasar SVM adalah klasifikasikan linear. Pada SVM pemisahan yang baik dicapai oleh hyperplane yang memiliki jarak terbesar ke titik data training terdekat dari setiap kelas (margin fungsional disebut), karena pada umumnya semakin besar margin semakin rendah error
generalisasi
dari
pemilah.
Misalkan
adalah sampel data dan
terdapat
m
data
training
adalah target atau kelas
dari sampel data. Misalkan juga bahwa data untuk kedua kelas terpisah maka ingin dicari fungsi pemisah (hyperplane). (Kumar & Gopal, 2009)
f x
xw b
(5)
dimana parameter bobot dan b adalah parameter bias Pattern
yang termasuk kelas +1 (sampel positif) dapat dirumuskan sebagai pattern
yang memenuhi pertidaksamaan xi w b
Pattern
0 untuk yi 1
(6)
yang termasuk kelas -1 (sampel negatif) dapat dirumuskan sebagai pattern
yang memenuhi pertidaksamaan xi w b
0 untuk yi
1
(7)
Masalah mencari parameter w dan b yang optimal agar diperoleh hyperplane yang optimal merupakan quadratic programming.
min w, b
1 T w w 2
m
C
i
(8)
i 1
Universitas Sumatera Utara
Problem ini dapat dipecahkan dengan berbagi teknik komputasi, diantaranya dengan Lagrange Multiplier. (9) adalah Lagrange multipliers, yang bernilai nol atau positif ( ini diperoleh
) Dari hasil perhitungan
yang kebanyakan bernilai positif. Data yang berkorelasi dengan
yang positif
inilah yang disebut sebagai Support Vector Machine. SVM pada prinsipnya adalah klasifikasi linear. Tetapi SVM memiliki keunggulan dalam klasifikasi untuk problem non-linier. Pada prosesnya data diproyeksikan ke ruang vektor baru, sering disebut feature space, berdimensi lebih tinggi sedemikian hingga data itu dapat terpisah secara linier. Selanjutnya, di ruang baru, SVM mencari hyperplane optimal yaitu bekerja sebagai klasifier linear. Dapat diasumsikan bahwa kedua belah kelas dapat terpisah secara sempurna oleh hyperplane (linear separable). Akan tetapi, pada umumnya dua belah kelas pada input space tidak dapat terpisah secara sempurna (non linear separable). Untuk mengatasi masalah ini, SVM dirumuskan ulang dengan memperkenalkan metode Margin Soft. (Cortes & Vapnik, 1995) menyarankan ide margin maksimal dimodifikasi yang memungkinkan untuk contoh mislabeled. Jika terdapat hyperplane yang dapat memecah contoh "ya" dan "tidak", metode Margin Soft akan memilih hyperplane yang membagi contoh-contoh sebersih mungkin. Metode ini memperkenalkan variabel slack ξi (ξi ≥ 0), yang mengukur tingkat kesalahan klasifikasi. .
≥ 1- ξi
(i = 1,2,,….,l)
(10)
Sedangkan objective function (8) yang dioptimasikan menjadi. minimize
2
+C
C merupakan parameter yang mengkontrol trade-off antara margin dan error klasifikasi ξ. Semakin besar nilai C, berarti nilai akhir terhadap kesalahan menjadi semakin besar, sehingga proses training menjadi lebih ketat. Parameter C ditentukan dengan mencoba beberapa nilai dan dievaluasi efeknya terhadap akurasi yang dicapai oleh SVM.
2.3.2. Klasifikasi Data Linear Separable Data Linear Separable merupakan data yang dapat dipisahkan secara linier. Misalkan {X1,…Xn} adalah dataset dan {+1,-1} adalah label kelas dari data Xi. Pada gambar 2.1 dapat dilihat berbagai alternatif bidang pemisah yang dapat memisahkan semua data set sesuai
Universitas Sumatera Utara
dengan kelasnya. Namun, bidang pemisah terbaik tidak hanya dapat memisahkan data tetapi juga memiliki margin paling besar. (Kumar & Gopal, 2009) y
x
Gambar 2.1 Hyperlane (Kumar & Gopal, 2009)
2.3.3. Klasifikasi Data Linear Non-Separable Pada umumnya dua buah kelas pada input space tidak dapat terpisahkan secara sempurna. Untuk
mengatasi kondisi
ini,
SVM
menggunakan teknik
soft
margin,
dengan
mengikutsertakan slack variable ξ > 0. Misalkan ξ adalah jarak antara garis pemisah (decision boundary) dengan data, maka persamaan dirumuskan menjadi:
.
≤ -1+ ξ, jika
.
≥ 1- ξ, jika
(11)
2.3.4. Klasifikasi Data Non-Linear Untuk menyelesaikan problem non-linear, SVM dimodifikasi dengan memasukkan fungsi kernel. Dalam non-linear SVM, pertama-tama data
dipetakan oleh fungsi Ф ( ) ke ruang
vektor yang berdimensi lebih tinggi. Hyperplane yang memisahkan kedua kelas tersebut dapat dikontruksikan. Selanjutnya bahwa fungsi Ф memetakan tiap data pada input space tersebut ke ruang vektor baru yang berdimensi lebih tinggi (dimensi 3), sehingga kedua kelas dapat dipisahkan secara linear oleh sebuah hyperplane. Notasi matematika dari mapping ini adalah sebagai berikut : : Ŕd → Ŕd d < q
(12)
Universitas Sumatera Utara
y
y
x
x
Gambar 2.2. Transformasi dari vektor input ke feature space (Tan et al, 2006)
Selanjutnya proses pembelajaran pada SVM dalam menemukan titik-titik support vector, hanya bergantung pada dot product (perkalian titik) dari data yang sudah ditransformasikan pada ruang baru yang berdimensi lebih tinggi, yaitu Ф( ).Ф( ). Karena umumnya transformasi Φ ini tidak diketahui, dan sangat sulit untuk difahami secara mudah, maka perhitungan dot product (perkalian titik) dapat digantikan dengan fungsi ) yang mendefinisikan secara implisit transformasi Φ. Hal ini disebut sebagai
kernel K (
Kernel Trick, yang dirumuskan :
K(
) = Ф( ).Ф( )
f(Ф( )) =
. Ф( )+b
=
i yi K(x,xi)
+b
(13)
SV pada persamaan di atas dimaksudkan dengan subset dari training set yang terpilih sebagai support vector, dengan kata lain data
yang berkorespondensi pada αi ≥ 0
2.3.5. Metode Kernel Kasus klasifikasi memperlihatkan ketidaklinieran, algoritma seperti perceptron tidak bisa mengatasinya. Metoda kernel adalah salah satu untuk mengatasinya, dengan metoda kernel suatu data x di input space dimapping ke feature space F dengan dimensi yang lebih tinggi melalui map
sebagai berikut
: x→ (x). Karena itu data x di input space menjadi (x) di
feature space. (Sumartini, 2011) Sering kali fungsi
(x) tidak tersedia atau tidak bisa dihitung. tetapi dot product
(perkalian titik) dari dua vektor dapat dihitung baik di dalam input space maupun di feature
Universitas Sumatera Utara
space. Dengan kata lain, sementara
(x) mungkin tidak diketahui, dot product (perkalian
titik) < (x1), (x2)> masih bisa dihitung di feature space. Untuk bisa memakai metoda kernel, pembatas (constraint) perlu diekspresikan dalam bentuk dot product (perkalian titik) dari vektor data xi. Sebagai konsekuensi, pembatas yang menjelaskan permasalahan dalam y klasifikasi harus diformulasikan kembali sehingga menjadi bentuk dot product (perkalian titik). Dalam feature space ini dot product (perkalian titik) < .> menjadi < (x), (x)‟>. Suatu fungsi kernel, k (x, x‟), bisa untuk menggantikan dot product (perkalian titik) < (x), (x)‟>. Kemudian di feature space, dapat membuat suatu fungsi pemisah yang linier yang mewakili fungsi nonlinear di input space. Gambar 2.3 mendeskripsikan suatu contoh feature mapping dari ruang dua dimensi ke feature space dua dimensi. Dalam input space, data tidak bisa dipisahkan secara linier, tetapi memisahkan di feature space. Karena itu dengan memetakan data ke feature space menjadikan tugas klasifikasi menjadi lebih mudah.
y
y
x
x
Gambar 2.3. Suatu kernel map mengubah problem yang tidak linier menjadi linier dalam space baru. (Karatzouglou et al, 2004)
Menurut (Karatzouglou et al, 2004) ada beberapa fungsi kernel yang sering digunakan dalam literatur SVM anatara lain sebagai berikut: 1. Kernel linear adalah kernel yang paling sederhana dari semua fungsi kernel. Kernel ini biasa digunakan dalam kasus klasifikasi teks. xT x
(14)
2. Kernel Radial Basis Gaussian adalah kernel yang umum digunakan untuk data yang sudah valid (available) dan merupakan default dalam tools SVM.
Universitas Sumatera Utara
exp(− σ2||x – xi||2)
(15)
3. Kernel Polynominal adalah kernel yang sering digunakan untuk klasifikasi gambar. (xT xi + 1)p
(16)
4. Kernel Tangent Hyperbolic (sigmoid) adalah kernel yang sering digunakan untuk neural networks. tan h(βxT xi + β1), dimana β, β1∈ Ŕ
(17)
Fungsi kernel mana yang harus digunakan untuk subtitusi dot product (perkalian titik) di feature space sangat bergantung pada data. Biasanya metode cross-validation digunakan untuk pemilihan fungsi kernel ini. Pemilihan fungsi kernel yang tepat adalah hal yang sangat penting. Karena fungsi kernel ini akan menentukan feature space di mana fungsi klasifier akan dicari. Sepanjang fungsi kernelnya legitimate, SVM akan beroperasi secara benar meskipun tidak tahu seperti apa map yang digunakan, sehingga lebih mudah menemukan fungsi kernel daripada mencari map
seperti apa yang tepat untuk melakukan mapping dari
input space ke feature space. Pada penerapan metoda kernel, tidak perlu tahu map apa yang digunakan untuk satu per satu data, tetapi lebih penting mengetahui bahwa dot product (perkalian titik) dua titik di feaure space bisa digantikan oleh fungsi kernel.
2.3.6. Algoritma SVM untuk Menganalisis Dokumen Web Proses ekstraksi informasi (Information Extraction atau IE) adalah proses pengubahan dokumen teks tidak terstruktur dengan domain tertentu ke dalam sebuah struktur informasi yang relevan. Domain penelitian ini berbahasa Indonesia, dengan menerapkan teknik pembelajaran mesin. Pendekatan pembelajaran mesin yang digunakan adalah pendekatan statistik, dengan metode klasifikasi token. Algoritma yang digunakan adalah Support Vector Machine (SVM) dengan uneven margin, yang didesain khusus untuk imbalanced dataset. (Cawley, 2006)
Variabel dan parameter x = {x0, x1, x2, .., xm}: sampel training y = {y1, .., ym}⊂ {±1}: label data training kernel : jenis fungsi kernel par
: parameter kernel
C
: konstanta cost
Universitas Sumatera Utara
α = [α1, .., αm]: Lagrange multiplier dan bias b 1. Hitung matriks kernel H 2. Tentukan pembatas untuk programa kuadratik, termasuk Aeq, beq, A dan b
5
f(x1,x2)=-1
f(x1,x2)=+1 +
* x2
0 +
*
f(x1,x2)=+1
f(x1,x2)=-1
-5 -5
0
5
x1 Gambar 2.4. Ilustrasi data dipisahkan dalam kasus XOR. (Cawley, 2006)
3. Tentukan fungsi tujuan quadratic programming x Hx + f’x 4. Selesaikan masalah QP.
2.3.7. Karakteristik Support Vector Machine (SVM) Karakteristik SVM sebagaimana telah dijelaskan pada bagian sebelumnya, dirangkumkan sebagai berikut (Cawley, 2006): 1. Secara prinsip SVM adalah linear classifier 2. Pattern recognition dilakukan dengan mentransformasikan data pada input space ke ruang yang berdimensi lebih tinggi, dan optimisasi dilakukan pada ruang vector yang baru tersebut. 3. Menerapkan strategi Structural Risk Minimization (SRM). SVM bekerja berdasarkan prinsip SRM, Untuk menjamin generalisasi.
Universitas Sumatera Utara
4. Prinsip kerja SVM pada dasarnya hanya mampu menangani klasifikasi dua class.
2.3.8. Kelebihan Support Vector Machine (SVM) Kelebihan dari metode Support Vector Machine ini adalah sebagai berikut (Cawley, 2006): 1. Generalisasi Generalisasi didefinisikan sebagai kemampuan suatu metode untuk mengklasifikasikan suatu pattern, yang tidak termasuk data yang dipakai dalam fase pembelajaran metode itu. 2. Curse of dimensionality Curse of dimensionality didefinisikan sebagai masalah yang dihadapi suatu metode pattern recognition dalam mengestimasikan parameter (misalnya jumlah hidden neuron pada neural network, stopping criteria dalam proses pembelajaran dsb.) dikarenakan jumlah sampel data yang relatif sedikit dibandingkan dimensional ruang vektor data tersebut. Semakin tinggi dimensi dari ruang vektor informasi yang diolah, membawa konsekuensi dibutuhkannya jumlah data dalam proses pembelajaran (Cortes & Vapnik, 1995) membuktikan bahwa tingkat generalisasi yang diperoleh oleh SVM tidak dipengaruhi oleh dimensi dari input vector. Hal ini merupakan alasan mengapa SVM merupakan salah satu metode yang tepat dipakai untuk memecahkan masalah berdimensi tinggi, dalam keterbatasan sampel data yang ada. 3. Feasibility SVM dapat diimplementasikan relative mudah, karena proses penentuan support vector dapat dirumuskan dalam QP problem. Dengan demikian jika memiliki library untuk menyelesaikan QP problem, dengan sendirinya SVM dapat diimplementasikan dengan mudah.
2.3.9. Kelemahan Support Vector Machine (SVM) Kekurangan dari metode Support Vector Machine ini adalah sebagai berikut (Cawley, 2006): 1. Sulit dipakai dalam problem berskala besar. Skala besar dalam hal ini dimaksudkan dengan jumlah sample yang diolah. 2. SVM secara teoritik dikembangkan untuk problem klasifikasi dengan dua class. Dewasa ini SVM telah dimodifikasi agar dapat menyelesaikan masalah dengan class lebih dari dua, antara lain strategi One versus rest dan strategi Tree Structure. Namun demikian, masingmasing strategi ini memiliki kelemahan, sehingga dapat dikatakan
Universitas Sumatera Utara
penelitian dan pengembangan SVM pada multiclass-problem masih merupakan tema penelitian yang masih terbuka.
2.4. K-Nearest Neighbor (K-NN) 2.4.1. Konsep K-Nearest Neighbor (K-NN) Algoritma K-Nearest Neighbor (K-NN) adalah sebuah metode melakukan klasifikasi terhadap objek berdasarkan data pembelajaran jaraknya paling dekat dengan objek tersebut. K-NN termasuk algoritma supervised learning dimana hasil dari query instance yang baru diklasifikasikan berdasarkan mayoritas dari kategori pada K-NN, kemudian kelas yang paling banyak muncul yang akan menjadi kelas hasil klasifikasi. Tujuan dari algoritma ini adalah mengklasifikasikan obyek berdasarkan atribut dan training sample. Clasifier tidak menggunakan apapun untuk dicocokkan dan hanya berdasarkan pada memori. Diberikan titik query, akan ditemukan sejumlah k obyek atau (titik training) yang paling dekat dengan titik query. Klasifikasi menggunakan voting terbanyak diantara klasifikasi dari k obyek. Algoritma K-Nearest Neighbor (K-NN) menggunakan klasifikasi ketetanggaan sebagai nilai prediksi dari query instance yang baru. Algoritma bekerja berdasarkan
metode jarak
K-Nearest terpendek
dari
Neighbor query
(K-NN) instance
sangat ke training
sederhana, sample
untuk menentukan K-NN. Training sample diproyeksikan ke ruang berdimensi banyak, dimana masing-masing dimensi merepresentasikan fitur dari data. Ruang ini dibagi menjadi bagian-bagian berdasarkan klasifikasi training sample. Sebuah titik pada ruang ini ditandai jika merupakan klasifikasi yang paling banyak ditemukan pada k buah tetangga terdekat dari titik tersebut. Metode pencarian jarak, ada dua jenis yaitu metode Cosine Similarity atau Euclidean Distance yaitu perhitungan jarak terdekat. Perhitungan jarak terdekat dibutuhkan untuk menentukan jumlah kemiripan yang dihitung dari kemiripan kemunculan teks yang dimiliki suatu paragraf. Setelah itu kemunculan teks yang sedang diujikan dibandingkan terhadap masing-masing sample data asli. Ada dua metode untuk menghitung jarak antar tetangga yaitu metode Euclidean Distance dan Cosine Similarity yang direpresentasikan sebagai berikut : (Guo et al, 2001)
d=
(18)
Universitas Sumatera Utara
dimana matriks D(a,b) adalah jarak skalar dari kedua vektor a dan b dari matriks dengan ukuran d dimensi. Satuan jarak yang digunakan Euclidian, jenis dari metode ini, jika dilihat dari nilai Nnya ada dua macam yaitu (Darujati, 2010): 1. 1-NN Pengklasifikasian dilakukan pada 1 label data terdekat, algoritmanya sebagai berikut : - Menghitung jarak antara data baru ke setiap pelabelan data - Menentukan 1 pelabelan data yang mempunyai jarak paling minimal - Klasifikasi data baru ke dalam pelabelan data tersebut .
2.
k-NN Pengklasifikasian dilakukan dengan menentukan nilai pada k label data terdekat, dengan syarat nilai k >1, algoritmanya sebagai berikut : - Menghitung jarak antara data baru ke setiap pelabelan data - Menentukan k pelabelan data yang mempunyai jarak paling minimal - Klasifikasi data baru ke dalam pelabelan data yang mayoritas. Cosine similarity adalah penentuan kesesuaian dokumen dengan query untuk
pegukuran antara vektor dokumen (D) dengan vektor query (Q). Persamaan yang digunakan (Darujati, 2010): sim(Q,D)=cos(Q, D) =
…………………………………………………………….....(19) |D| = |Q| =
Dimana Q adalah dokumen uji, D dokumen training,
dan
adalah nilai bobot yang telah
diberikan pada setiap term pada dokumen. Pada fase training, algoritma ini hanya melakukan penyimpanan vektor-vektor fitur dan klasifikasi data training sample. Pada fase klasifikasi, fitur-fitur yang sama dihitung untuk testing data (yang klasifikasinya tidak diketahui). Jarak dari vektor baru yang ini terhadap seluruh vektor training sample dihitung dan sejumlah k buah yang paling dekat diambil. Titik yang baru klasifikasinya diprediksikan termasuk pada klasifikasi terbanyak dari titik-titik tersebut. Sebagai contoh, untuk mengestimasi p(x) dari n training sample dapat memusatkan pada sebuah sel disekitar x dan membiarkannya tumbuh hingga meliputi k samples. Samples tersebut adalah K-NN dari x. Jika densitasnya tinggi di dekat x, maka sel
Universitas Sumatera Utara
akan berukuran relatif kecil yang berarti memiliki resolusi yang baik. Jika densitas rendah, sel akan tumbuh lebih besar, tetapi akan berhenti setelah memasuki wilayah yang memiliki densitas tinggi. Pada Gambar 2.5 dan 2.6 ditampilkan estimasi densitas satu dimensi dan dua dimensi dengan K-NN
Gambar 2.5. Delapan titik dalam satu dimensi dan estimasi densitas K-NN dengan k=3 dan k=5 (Darujati, 2010)
Gambar 2.6. K-NN mengestimasi densitas dua dimensi dengan k=5 (Darujati, 2010)
Nilai k yang terbaik untuk algoritma ini tergantung pada data. Secara umum, nilai k yang tinggi akan mengurangi efek noise pada klasifikasi, tetapi membuat batasan antara setiap klasifikasi menjadi semakin kabur. Nilai k yang bagus dapat dipilih dengan optimasi parameter, misalnya dengan menggunakan cross-validation. Kasus khusus dimana klasifikasi diprediksikan berdasarkan training data yang paling dekat (dengan kata lain, k = 1) disebut algoritma nearest neighbor. Ketepatan algoritma K-NN sangat dipengaruhi oleh ada atau tidaknya fitur-fitur yang tidak relevan atau jika bobot fitur tersebut tidak setara dengan relevansinya terhadap klasifikasi.
Universitas Sumatera Utara
2.4.2. Algoritma K-NN untuk Menganalisis Dokumen Web Berikut ini adalah langkah-langkah menghitung K-Nearest Neighbors pada dokumen : 1. Tentukan paremeter k sebagai jumlah tetangga terdekat, dalam sistem ini digunakan k=1, sehingga jika ada tetangga terdekat, itu yang akan digunakan sebagai nilai prediksi. 2. Hitung jarak antara data yang masuk dan semua sampel latih yang sudah ada. Pada penelitian ini jenis jarak terdekat yang digunakan yaitu cosine similarity pada persamaan (19). 3. Mengurutkan objek-objek tersebut ke dalam kelompok yang mempunyai jarak terkecil. 4. Mengumpulkan kategori Y (klasifikasi nearest neighbor). 5. Dengan menggunakan kategori mayoritas, maka dapat diprediksikan nilai query instance yang telah dihitung, kemudian tentukan jarak tetangga terdekat yang akan digunakan sebagai nilai prediksi dari data berikutnya. (Zee-Jing & Hsien-Wu, 2004)
2.4.3. Kelebihan K-Nearest Neighbor (K-NN) Kelebihan dari metode K-Nearest Neighbor ini adalah sebagai berikut (Gorunescu, 2011): 1. Lebih efektif di data training yang besar 2. Dapat menghasilkan data yang lebih akurat 3. Metode yang baik dalam hal ruang pencarian, misalnya, kelas tidak harus linear dipisahkan. 4. Sangat cocok terhadap training data yang noise.
2.4.4. Kelemahan K-Nearest Neighbor (K-NN) Kekurangan dari metode K-Nearest Neighbor ini adalah perlu ditentukan nilai k yang paling optimal yang menyatakan jumlah tetangga terdekat. (Gorunescu, 2011)
2.5. K-Fold Cross Validation
Pada ukuran kinerja dari model pada test set sering kali berguna karena ukuran tersebut memberikan estimasi yang tidak bias dari error generalisasinya. Akurasi dari tingkat error yang dihitung dari test set dapat juga digunakan untuk membandingkan kinerja relatif dari classifier-classifier pada domain yang sama. Berikut adalah metode yang digunakan untuk mengevaluasi kinerja classifier. (Ian et al, 2011)
Universitas Sumatera Utara
Dalam pendekatan cross-validation, setiap record digunakan beberapa kali dalam jumlah yang sama untuk training dan tepat sekali untuk testing. Untuk mengilustrasikan metode ini, anggaplah mempartisi data ke dalam dua subset yang berukuran sama. Pertama, dipilih satu dari kedua subset tersebut untuk training dan satu lagi untuk testing. Kemudian dilakukan pertukaran fungsi dari subset sedemikian sehingga subset yang sebelumnya sebagai training set menjadi test set demikian sebaliknya. Pendekatan ini dinamakan two-fold cross validation. Total error diperoleh dengan menjumlahkan error untuk kedua proses tersebut. Dalam contoh ini, setiap record digunakan tepat satu kali untuk training dan satu kali untuk testing.
Metode
k-fold
cross
validation
mengeneralisasi
pendekatan
ini
dengan
mensegmentasi data ke dalam k partisi berukuran sama. Selama proses, salah satu dari partisi dipilih untuk testing, sedangkan sisanya digunakan untuk training. Prosedur ini diulangi k kali sedemikian sehingga setiap partisi digunakan untuk testing tepat satu kali. Total error ditentukan dengan menjumlahkan error untuk semua k proses tersebut. Kasus khusus untuk metode k-fold cross validation menetapkan k = N, ukuran dari data set. (Auria & Moro, 2008) Dalam k-fold cross validation, yang disebut juga dengan rotation estimation, dataset yang utuh di pecah secara random menjadi „k‟ subset dengan size yang hampir sama dan saling eksklusif satu sama lain. Model dalam classification‟ di-latih dan di-test sebanyak „k‟ kali. Setiap kali pelatihan semua dilatih pada semua fold kecuali hanya satu fold saja yang disisakan untuk pengujian. Penilaian cross-validation terhadap akurasi model secara keseluruhan dihitung dengan mengambil rata-rata dari semua hasil akurasi individu „k‟, seperti yang ditunjukkan dengan persaman berikut: CVA =
(20)
I
Dimana CVA adalah akurasi cross-validation, k adalah jumlah fold yang digunakan, dan A adalah ukuran akurasi (misalnya, hit-rate, sensitivitas, specifity) dari masing-masing fold. Metode ini merupakan evaluasi standard yaitu stratified 10-fold cross-validation karena menunjukkan bahwa 10-fold cross-validation adalah pilihan terbaik untuk mendapatkan hasil validasi yang akurat, 10-fold cross-validation akan mengulang pengujian sebanyak 10 kali dan hasil pengukuran adalah nilai rata-rata dari 10 kali pengujian. Keuntungan metode ini, menghindari overlapping pada data testing. Test set bersifat mutually exclusive dan secara efektif mencakup keseluruhan data set. Kekurangan dari pendekatan ini adalah banyaknya komputasi untuk mengulangi prosedur sebanyak N kali. (Gorunescu, 2011)
Universitas Sumatera Utara
2.6. Riset Terkait Beberapa riset terkait dengan penelitian ini mengenai analysis sentiment maka dapat dibuatkan rangkuman seperti ditunjukkan oleh tabel 2.4.
Tabel 2.4. Rangkuman Penelitian Sentiment Analysis Sebelumnya No
Peneliti
Judul Penelitian
1
Barber (2009)
Bayesian Opinion Mining
2
3
4
Wulandini & Nugroho (2009)
Jason & Ryan (2010)
Colas & Brazdil (2011)
Text Classification Using Support Vector Machine for Webmining Based Spation Temporal Analysis of the Spread of Tropical Diseases
Hasil dan Kesimpulan Dilakukan pada data review film berbahasa Inggris dan diujikan untuk 5000 record opini negatif dan 5000 record opini positif sebagai data latih dan 333 record opini negatif sebagai data uji serta menghasilkan akurasi sebesar 80% Dilakukan pada 3713 feature dan 360 instance. 360 instance sebagai data latih dan 120 instance sebagai data uji. SVM dan NBC menunjukkan hasil yang jauh lebih baik 92,5% dan 90%.
Improving Multiclass Text Classification with SVM menghasilkan performansi the Support Vector yang lebih baik dibandingkan Machine, NBC Comparison of SVM and Some Older Classification Algorithms in Text Classification Tasks
NBC menunjukkan performansi yang paling baik melebihi SVM dan K-NN. Waktu komputasi NBC dan jauh lebih pendek daripada SVM.
Universitas Sumatera Utara
2.7. Perbedaan dengan Riset yang lain
Berdasarkan riset yang telah dilakukan, peneliti membuat beberapa perbedaan dalam penelitian ini, yaitu; 1. Pada umumnya analisis sentimen berdasarkan dokumen yang berisi kata-kata atau frase spesifik yang ditentukan oleh pengguna. Tetapi pada penelitian ini, dapat menemukan konten berdasarkan konteks yang telah ditentukan. 2. Sebuah metode yang berbeda untuk menentukan sentimen adalah penggunaan sistem skala terhadap kata-kata terkait memiliki sentimen negatif, netral atau positif dengan diberi nomor pada skala -1 sampai +1 (paling negatif hingga yang paling positif) dan ketika sepotong teks terstruktur dianalisis dengan pemrosesan bahasa alami, konsep selanjutnya dianalisis untuk memahami kata-kata ini dan bagaimana berhubungan dengan konsep. Setiap konsep kemudian diberi skor berdasarkan bagaimana kata-kata sentimen berhubungan dengan konsep, dan skor yang terkait.
2.8. Kontribusi Riset Dalam penelitian ini, diharapkan algoritma K-NN dan SVM dapat mampu menganalisis
sentimen dalam dokumen dengan jumlah yang besar dapat dilakukan secara terkomputerisasi sebagai ganti dari proses manual. Hal ini terutama akan dirasakan manfaatnya untuk analisis pemberitaan media massa pada suatu hal.
Universitas Sumatera Utara
Universitas Sumatera Utara