• Tidak ada hasil yang ditemukan

METODOLOGI PENELITIAN

3.7. Pembelajaran dan Analisis

Metode yang akan digunakan pada percobaan ini adalah K-Nearest Neighbor dan Support Vector Machine. Dua metode tersebut merupakan metode supervised learning untuk klasifikasi dokumen teks. Term documents matrix yang telah dihasilkan sebelumnya akan menjadi input untuk kedua metode ini sehingga menghasilkan model probabilistik yang akan digunakan untuk melakukan analisis dokumen teks. Pada proses ini akan dilakukan

pembelajaran dan menganalisis menggunakan K-NN dan SVM.

Tahap yang harus dilakukan pada proses K-Nearest neighbor adalah menghitung nilai kemiripan antara data uji dengan semua data latih pada dokumen artikel dengan menggunakan metode cosine similarity persamaan (19).

Cosine similarity untuk penentuan kesesuaian dokumen dengan query untuk pegukuran antara vektor dokumen (D) dengan vektor query (Q). Dimana Q adalah dokumen uji, D dokumen training, dan adalah nilai bobot yang telah diberikan pada setiap term

pada dokumen.

Hasil dari perhitungan kemiripan kemudian akan disimpan untuk proses selanjutnya yaitu klasifikasi dengan menggunakan K-Nearest Neighbor. Algoritma ini metode yang baik dalam bidang text cla ssification. Gambar 3.10 menunjukkan diagram alir K-Nearest Neighbor.

Gambar 3.10. Diagram Alir K-NN

Jika dokumen teks dibagi ke dalam tiga kelas, P1 (Positif), P2 (Negatif), & P3 (Netral) menggunakan kecerdasan manusia, misalkan tiap kelas maksimal beranggotakan 2 dokumen, maka dapat memperoleh hasil sebagai berikut:

K-NN

Start

Input (Hasil Pembobotan)

Hitung Similarity antar Dokumen Menentukan Nilai K Tentukan Kelas Dokumen Return Simpan Hasil Klasifikasi

Dokumen 1 : [usaha, partai, lambat, tidak, bobot]

Dokumen 2 : [partai, milik, anggota, partai, lulus, sarjana, milik, bijak, bagus, bangsa] Dokumen 3 : [anggota, partai, banyak, korupsi, sangat, kecewa]

Dokumen 4 : [banyak, anggota, partai, masuk, penjara]

Dokumen 5 : [partai, milik, anggota, bersih, korupsi, senang, partai]

P1 akan beranggotakan Dokumen 2 & Dokumen 5 P2 akan beranggotakan Dokumen 1 & Dokumen 3 P3 tidak ada anggota

Pada K-NN, fase ini dinamakan fase manual atau training dengan memilih beberapa dokumen contoh (sample) dan mengelompokkannya secara manual ke dalam kelas-kelas yang telah didefinisikan, kemudian mendefinisikan Dokumen 4 apakah termasuk ke dalam kelas positif, negatif atau netral menggunakan K-NN. Pseudocode yang diterjemahkan dari program penelitian ini dapat dilihat pada gambar 3.11.

function classify(int k, Point[] querySet, Point[] trainingSet) { // Loop 1.

foreach (query in querySet) { // Loop 2.

foreach (training in trainingSet) {

// Buat ukuran yang diurutkan panjang k,

// Di mana kita memetakan jarak ke titik training. SortedMap map = new SortedMap(k);

// kalkulasi jarak antara test point ke training point. double d = distance(query, training);

//Insert training point ke dalam daftar yang telah di urutkan, membuang titik pelatihan

//Tidak dalam k tetangga terdekat untuk query titik. map.insert(d, training);

}

// lakukan vote pada k tetangga terdekat

// dan menetapkan label sesuai dengan query point. query.label = majorityVote(map);

} }

// menggunakan the Cosine Similarity distance. double distance(Point query, Point reference) { int sum = 0;

// n adalah dimensi di vector space. int n = query.vector.length;

// Loop 3.

for (int i = 0; i < n; i++) {

int difference = reference.vector[i] - query.vector[i]; sum += difference * difference;

Gambar 3.11. Pseudocode Analisis Menggunakan K-NN

Proses hitung Similarity vektor [dokumen] query dengan setiap dokumen yang ada, yaitu hitung hasil perkalian skalar antar dokumen. Hasilnya perkalian dari setiap dokumen dijumlahkan, sesuai dengan pembilang pada persamaan (20). Kemudian, hitung panjang setiap dokumen. Caranya, kuadratkan bobot setiap term pada tabel 3.2 dalam setiap dokumen, jumlahkan nilai kuadrat dan terakhir akarkan. Hasilnya dapat dilihat pada tabel berikut :

Tabel 3.3. Hitung Perkalian Skalar

Dokumen 1 Dokumen 2 Dokumen 3 Dokumen 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009409 0.009409 0.009409 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.157609 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009409 0.167018 0.009409

Tabel 3.4. Hitung Panjang Vektor Dokumen 4 Dokumen 1 Dokumen 2 Dokumen 3 Dokumen 5 0 0,487 0 0 0 0 0 0 0 0 0 0,487 0 0 0 0 0,487 0 0 0 0 0,487 0 0 0 0 0 0,157 0 0,157 0.009 0 0.009 0.009 0.009 0 0 0,487 0 0 0 0 0,487 0 0 0 0 0,487 0 0 0 0 0,487 0 0 0 0 0,487 0 0 0.157 0 0 0.157 0 0 0 0 0,157 0,157 0 0 0 0,487 0 0 0 0 0,487 0 0.487 0 0 0 0 0.487 0 0 0 0 0 0 0 0 0,487 0 0 0 0 0,487 1,14 1.948 2,601 1,297 1,297 1,0677 1,3957 1,6127 1,1388 1,1388

Kemudian hitung similarity Dokumen 4 dengan Dokumen 1, 2, 3, 5. Cos (D4, D1) = 0/(1,0677*1,3957) = 0

Cos (D4, D3) = 0.167018/(1,0677*1,1388)= 0,137 Cos (D4, D5) = 0.009409/(1,0677*1,1388)= 0,007

Hasil perhitungan adalah sebagai berikut:

D1 D2 D3 D5

0 0,005 0,137 0,007

Setelah itu diurutkan hasil perhitungan similarity, sebagai berikut:

1 2 3 4

D3 D5 D2 D1

Kemudian menentukan nilai K (misalkan K= 2) yang paling tinggi tingkat kemiripannya dengan D4 dan menentukan kelas D4 (Dokumen 4), yaitu :

D3 D5

Dokumen 4 terklasifikasi ke dalam kelas P2 (Negatif), karena kelas yang paling tinggi nilainya sesuai urutan adalah D3 yang termasuk dalam kelas P2 (Negatif).

3.7.2. Rancangan Analisis Dokumen dengan SVM

Proses analisis menggunakan SVM dimulai mengubah text menjadi data vektor. Vektor dalam penelitian ini memiliki dua komponen yaitu dimensi (word id) dan bobot. Bobot ini adalah nilai tf-idf, tujuan dari model ruang vektor digunakan untuk memberikan setiap kata dalam dokumen sebuah ID (dimensi) dan sebuah bobot berdasarkan seberapa penting keberadaannya dalam dokumen (posisi dokumen dalam dimensi itu). SVM mencoba untuk menemukan garis yang terbaik membagi dua kelas, dan kemudian mengklasifikasikan

dokumen uji berdasarkan di sisi mana dari garis tersebut mereka muncul. Diagram alir proses klasifikasi dengan SVM ditunjukkan oleh gambar 3.12

Gambar 3.12. Diagram Alir SVM

Dokumen dapat dinyatakan sebagai list dari term, kemudian normalisasi tiap komponen dengan panjang dari vector sehingga bobot tersebut dinyatakan dalam 1 unit panjang. Format data input untuk klasifikasi SVM dalam penelitian ini, terdiri dari 3 komponen, yaitu:

1. Label, yaitu pengolongan suatu data. Jenisnya adalah positif (bernilai 1, sesuai yang diinginkan), negatif (bernilai -1, tidak sesuai yang diinginkan), dan Netral (bernilai 0).

Tidak

Start

Data Teks Hasil Preprocessing & Ekstraksi Fitur Pembobotan Klasifikasi SVM Score> 0 Komentar Positif Klasifikasi SVM Score< 0 Komentar Negatif Komentar Netral Simpan Hasil Klasifikasi

Return

SVM

Ya

Tidak

2. Feature, yaitu segi-segi yang digunakan sebagai bahan klasifikasi. Dalam hal ini digunakan nomor kata sebagai feature. Daftar kata diambil dari keseluruhan teks acuan, setelah membuang kata yang tergolong stopword dan dicari kata dasarnya. SVM mengharuskan feature diurutkan menaik.

3. Value, yaitu nilai dari feature. Dalam hal klasifikasi teks adalah bobot kata melalui penghitungan tf * idf yaitu tabel 3.2. Penghitungan ini dianggap mencukupi sebagai pembobotan kata. Pasangan Feature:Value misalnya 1:0.5, yang artinya nomor kata ke-1 dan bobotnya 0,5.

Contoh format data seperti berikut:

1 1:0.5 3:1 5:0.4 # positif -1 2:0.9 3:0.1 4:2 # negatif 0 5:0.8 7:2.5 9:1 # netral

Sebagai contoh dalam pengubahan data teks menjadi data vektor digunakan sebuah keyword seperti di bawah ini :

Dokumen 1 : [usaha, partai, lambat, tidak, bobot]

Dokumen 2 : [partai, milik, anggota, partai, lulus, sarjana, milik, bijak, bagus, bangsa] Dokumen 3 : [anggota, partai, banyak, korupsi, sangat, kecewa]

Dokumen 4 : [banyak, anggota, partai, masuk, penjara]

Dokumen 5 : [partai, milik, anggota, bersih, korupsi, senang, partai]

Format data vektornya pada tabel 3.4, adalah sebagai berikut :

1 1:0.487 2:0.000 3:0.487 4:0.487 5:0.487 6:0.000 7:0.157 8:0.009 9:0.487 10:0.487 11:0.487 12:0.487 15:0.487 18:0.157 19:0.157 20:0.487 21:0.487 22:0.487 23:0.487

Angka 1 pada karakter pertama menyatakan data tersebut masuk dalam kelas

dokumen relevan. Kata “usaha” pada keyword di atas digantikan dengan 1:0.487 pada data vektor yang berarti 1 sebagai indeks kata untuk “usaha” dan 0.487 sebagai bobot untuk kata “usaha” dalam file. Begitu seterusnya sehingga semua kata dalam keyword terwakili oleh data vektor. Untuk kata yang sama muncul lebih dari sekali dalam sebuah keyword akan

diwakili oleh sebuah data vektor saja dengan bobot yang bersesuaian. Data vektor untuk sebuah kalimat diurutkan berdasarkan indeks kata dari terkecil hingga terbesar.

Tahap selanjutnya yaitu melakukan kernelisasi menggunakan fungsi linear kernel, Kernel ini biasa digunakan dalam kasus klasifikasi teks, persamaan (14), Matriks kernel dihitung dengan dimensi lxl. Mengevaluasinya dengan peringkat teratas dokumen dan mengklasifikasi dokumen tersebut ke dalam dokumen relevan atau tidak relevan. Setelah mengevaluasi, relevan dokumen dan dokumen yang tidak relevan diberi label +1 dan -1.

Pseudocode dapat dilihat pada gambar 3.13.

//using kernel svm

//using evaluation of the classifier Function main(int argc, char** argv) {

//experiment settings

Unsigned int trainings = 500 //number of training data point

Unsigned int test = 10000 //number of test data points

Double linear = 0.5 //kernel

Kernelclassifier<realvector> kc //linear function //generate dataset

public void compute() {

for(int i = 0; i < dataTesting.getData().size(); i++) { DataSingle ds = dataTesting.getData().get(i);

double temp = 0;

for(int j = 0; j < ds.getValue().size(); j++) { double temp1 = ds.getValue().get(j);

double temp2 = hyperplane.getW().get(j, 0); temp += (temp1*temp2); } temp += hyperplane.getB(); observed.add(ds.getLabel()); if(temp < 0) { predicted.add("-1"); } else if(temp > 0) { predicted.add("+1"); }else { predicted.add("0");}} }

//define the machine //train the machine

Input = trainer.train (kc, training) //evaluate on trainingset

Data<unsigned int> output =kc(training.inputs) }

Gambar 3.13. Pseudocode Analisis Menggunakan SVM (Colas & Brazdil, 2006)

Kemudian penentuan optimal hyperplane untuk mengklasifikasikan relevan dan tidak relevan suatu dokumen dihasilkan oleh metode SVM. Kemudian system akan memilih dokumen berdasarkan jarak optimal hyperplane dan ma rgin area. Menampilkan hasil akhir dari pencarian dokumen yang didapat, diberi peringkat sesuai dengan jarak antara dokumen dengan fungsi pemisah hyperplane, dimana fungsi pemisah ini ditetapkan oleh SVM. dokumen yang didapat di tampilkan berdasarkan peringkat.

Gambar 3.14. Fungsi Pemisah antara Dokumen Relevan dan Tidak Relevan (Auria & Moro, 2008)

Jika benar dokumen-dokumen tersebut masuk dalam area dokumen relevan maka sistem akan menampilkan dokumen-dokumen tersebut dan di urut berdasarkan jarak antara fungsi pemisah persamaan (9) dengan dokumen. Jika salah dokumen-dokumen tersebut masuk dalam area relevan dokumen relevan maka sistem tidak akan menampilkan dokumen- dokumen tersebut.

Dokumen terkait