36
Laporan Tugas Information Retrieval “Document Classification in Rainbow” 1. Sejarah dan Tujuan Rainbow Rainbow merupakan sebuah program untuk mengklasifikasi dokumen yang didalamnya terdapat beberapa jenis metode untuk klasifikasi. Rainbow didasari dengan Library Bag of Words (libbow). Program ini dibuat oleh Prof. Andrew McCallum beserta beberapa anak muridnya. Program Rainbow ini diciptakan pada tahun 1996 dan telah mengalami beberapa perubahan. Perubahan terakhir terjadi pada tahun 1998. Program Rainbow biasanya memklasifikasi data menurut atribut yang dimiliki data tersebut dan dikategorikan ke dalam kelas yang sesuai dengan data tersebut. Dengan adanya program ini maka tidak perlu lagi membaca dokumen satu per satu dan mengklasifikasinya. Program rainbow dapat mengklasifikasi ribuan dokumen hanya dalam hitungan detik. Program ini bertujuan untuk mendukung perkembangan di bidang Information Retrieval dengan menyajikan sarana untuk mengklasifikasikan dokumen agar kecepatan pada proses retrieval dapat ditingkatkan lagi. Program Rainbow bisa didapatkan pada http://www.cs.cmu.edu/~mccallum/bow/src. Khusus untuk pengguna Ubuntu programnya bisa didapatkan menggunakan synaptic package manager (Cara menggunakannya ada pada Bab 3.2 halaman 2). 2 . Bahasa Pemrograman dan Sistem Operasi Program Rainbow merupakan Program yang bersifat Open Source. Ini berarti program ini tersedia dalam bentuk source code dan diizinkan untuk mempelajari, mengubah dan memperbaik program ini sesuai keperluan dengan hukum yang berlaku. Bahasa 1

Laporan Tugas Information Retrieval

Embed Size (px)

Citation preview

Page 1: Laporan Tugas Information Retrieval

Laporan Tugas Information Retrieval “Document Classification in Rainbow”

1. Sejarah dan Tujuan Rainbow

Rainbow merupakan sebuah program untuk mengklasifikasi dokumen yang

didalamnya terdapat beberapa jenis metode untuk klasifikasi. Rainbow didasari dengan

Library Bag of Words (libbow). Program ini dibuat oleh Prof. Andrew McCallum beserta

beberapa anak muridnya. Program Rainbow ini diciptakan pada tahun 1996 dan telah

mengalami beberapa perubahan. Perubahan terakhir terjadi pada tahun 1998.

Program Rainbow biasanya memklasifikasi data menurut atribut yang dimiliki data

tersebut dan dikategorikan ke dalam kelas yang sesuai dengan data tersebut. Dengan adanya

program ini maka tidak perlu lagi membaca dokumen satu per satu dan mengklasifikasinya.

Program rainbow dapat mengklasifikasi ribuan dokumen hanya dalam hitungan detik.

Program ini bertujuan untuk mendukung perkembangan di bidang Information Retrieval

dengan menyajikan sarana untuk mengklasifikasikan dokumen agar kecepatan pada proses

retrieval dapat ditingkatkan lagi.

Program Rainbow bisa didapatkan pada http://www.cs.cmu.edu/~mccallum/bow/src.

Khusus untuk pengguna Ubuntu programnya bisa didapatkan menggunakan synaptic package

manager (Cara menggunakannya ada pada Bab 3.2 halaman 2).

2 . Bahasa Pemrograman dan Sistem Operasi

Program Rainbow merupakan Program yang bersifat Open Source. Ini berarti program

ini tersedia dalam bentuk source code dan diizinkan untuk mempelajari, mengubah dan

memperbaik program ini sesuai keperluan dengan hukum yang berlaku. Bahasa Pemrograman

yang digunakan untuk membuat Program Rainbow adalah bahasa Pemrograman C.

Program Rainbow dapat dijalankan pada sebagian besar sistem UNIX, termasuk Linux,

Solaris, SunOS, Irix dan HPUX. Program Rainbow juga terbukti dapat berjalan diatas

WindowsNT (dengan GNU Enviroment). Pada pembuatan Laporan ini, penulis menjalankan

program Rainbow pada Sistem Operasi Ubuntu versi Karmic Koala dengan no. Versi 9.10.

1

Page 2: Laporan Tugas Information Retrieval

Laporan Tugas Information Retrieval “Document Classification in Rainbow”

3 . Penggunaan Rainbow

3.1. Persiapan documen dan format documen yang digunakan

Documen yang digunakan dalam Rainbow adalah data teks yang dalam bentuk file

teks biasa, satu file per dokumen seperti gambar 3.1.1 dan 3.1.2. Tidak diperlukan tag khusus

di awal atau di akhir dokumen. Jadi dalam mengklasifikasi artikel apapun tidak diperlukan

preprosesing apapun. Bagi pemula disarankan menggunakan artikel 20_newsgroups untuk

kemudahan dalam contoh yang ada dalam laporan ini. Untuk mendapatkan file

20_newsgroups dapat didownload dari

http://www.cs.cmu.edu/afs/cs/project/theo-

11/www/naive-bayes/20_newsgroups.tar.gz .

File harus disimpan di dalam direktori (disarankan agar direktori tersebut terletak di

home direktori untuk kemudahan sewaktu menggunakannya), dimana semua dokumen

dengan label kelas yang sama terdapat di dalam direktori yang sama. Pada Rainbow tidak

langsung mendukung tugas-tugas klasifikasi dimana dokumen individu memiliki beberapa

label.

3.2. Cara Installasi

Cara installasi untuk program Rainbow pada Operasi Sistem Ubuntu dapat dilakukan

dengan menggunakan fasilitas yang terdapat di Ubuntu. Fasilitas tersebut adalah Synaptic

2

Gambar 3.1.1. Salah satu contoh dokumen dari file 20 newgroup header

Gambar 3.1.2. Salah satu contoh dokumen dari file 20 newsgroup content

Page 3: Laporan Tugas Information Retrieval

Gambar 3.2.2. Contoh tampilan untuk menbuka setting repository

Laporan Tugas Information Retrieval “Document Classification in Rainbow”

Packet Manager yang berfungsi sebagai aplikasi untuk mendownload, menginstall serta

menghapus aplikasi. Cara untuk membuka aplikasi tersebut adalah pilih System >

Administration > Sypnatic Package Manager, seperti gambar 3.2.1.

Setelah

aplikasi dijalankan, repositories harus disetting ulang agar dapat mendownload software

rainbow. Caranya adalah pilih Setting > Repositories, seperti gambar 3.2.2.

3

Gambar 3.2.1. Contoh tampilan untuk menjalankan aplikasi Sysnaptic Package Manager

Page 4: Laporan Tugas Information Retrieval

Laporan Tugas Information Retrieval “Document Classification in Rainbow”

Setelah pilihan repositories dipilih maka akan muncul sebuah tampilan, pada tampilan

tersebut pilih Other Software > ADD, dan akan muncul sebuah dialog box untuk mengisi link

sumber. Pada dialog box diisi deb http://ubuntu.mithril-linux.org/archives dapper universe

tekan Add Source, seperti gambar 4.2.3

Jika selesai menambah repository maka selanjutnya tekan tombol reload yang akan

berproses selama beberapa menit. Setelah aplikasi selesai reload maka rainbow dapat dicari

dengan mengetik libbow (rainbow merupakan bagian dari libbow) pada Quick Search dan

tekan enter. Setelah program libbow ditemukan maka pindahkan kursor ke libbow dan klik

kanan pilih Mark For Installation dan klik Apply dan tunggu beberapa saat dan akan muncul

teks yang menyatakan bahwa program telah selesai di install, seperti gambar 3.2.4

4

Gambar 3.2.3. Contoh tampilan untuk mengisi repository baru

Gambar 3.2.4. Contoh Tampilan untuk menginstall program Libbow

Page 5: Laporan Tugas Information Retrieval

Laporan Tugas Information Retrieval “Document Classification in Rainbow”

3.3. Cara Menggunakan

Rainbow merupakan program yang berjalan menggunakan command line. Pada

ubuntu untuk menjalankan command line, perlu membuka sebuah aplikasi yang bernama

terminal (sejenis command prompt pada windows) dengan cara pilih Application > Accesories

> Terminal, seperti gambar 3.3.1

Pengunaan program Rainbow selalu diawali dengan kata Rainbow. Sebelum

melakukan klasifikasi dokumen dengan rainbow, hal pertama yang harus dilakukan ialah

mengindeks data tersebut dengan cara membaca dokumen dan membuat sebuah model yang

berisi nilai-nilai statistik pada dokumen tersebut. Untuk mengindeks dokumen dapat

dimasukkan perintah dibawah ini

Pada perintah diatas, huruf yang berwarna biru menandakan direktori untuk

menyimpan yang telah dibuat model. Bila tidak terdapat direktori model, maka rainbow akan

membuat direktori yang baru. Kata yang berwarna hijau merupakan perintah untuk

melakukan indeks pada dokumen. Kata yang berwarna merah menandakan direktori yang

menyimpan dokumen yang ingin diklasifikasi.

5

Gambar 3.3.1. Contoh tampilan untuk menjalankan terminal

rainbow -d ~/model directory --index ~/document directory

Page 6: Laporan Tugas Information Retrieval

Gambar 3.3.2. Contoh tampilan pada terminal

Laporan Tugas Information Retrieval “Document Classification in Rainbow”

Sebagai contoh, bila ingin mengindeks dokumen yang terdapat pada direktori

20_newsgroups dan menyimpan hasilnya di dalam direktori yang bernama model maka

perintahnya ialah

Setelah perintah diatas dijalankan, maka pada terminal akan muncul tulisan tentang

proses indeks dan pada home direktori akan muncul sebuah folder yang bernama model yang

didalamnya terdapat 5 file yang berisi hasil indeks dari dokumen seperti gambar 4.3.2 dan

4.3.3.

6

Gambar 3.3.3. Contoh tampilan pada direktori model

rainbow -d ~/model --indeks ~/20_newsgroups/*

Page 7: Laporan Tugas Information Retrieval

Laporan Tugas Information Retrieval “Document Classification in Rainbow”

Ketika mengindeks dokumen, Rainbow akan mengubah dokumen tersebut dari

serangkaian karakter menjadi token dengan sebuah proses yang bernama tokenisasi atau

“lexing”. Secara dasar, Rainbow mentokenisasi semua karakter(karakter A-Z dan a-z),

mengubah setiap karakter menjadi huruf kecil dan membuang semua token yang termasuk

didalam stoplist (stoplist merupakan sebuah daftar kata yang sering muncul pada dokumen.

contohnya "the","of","is" dan lain lain). Rainbow mendukung beberpa opsi untuk proses

tokenisasi. Opsi tersebut dapat dilihat pada Tabel 1.

Contoh perintah untuk mengindeks documen dengan opsi tokenisasi --no-stoplist

Perintah Deskripsi

--skip-headers(-h) Opsi ini membuat rainbow untuk melewatkan

header dari newsgroups atau email dalam

proses tokenisasi

--use-stemming Semua kata dilakukan stemming terlebih

dahulu dengan algoritma porter stemmer

--no-stoplist Memasukkan kata-kata yang terdapat dalam

stoplist ke dalam proses tokenisasi

--istext-avoid-uuencode Mencoba untuk mendeteksi ketika sebagian

besar dokumen terdiri dari blok uuencode,

jika demikian maka dokumen tersebut

dilewatkan . opsi ini berguna untuk tokenisasi

artikel usenet, karena statistik kata dapat

dipengaruhi oleh token berulang yang

ditemukan dalam gambar uuencode

--skip-html Melewatkan semua karakter yang berada

diantara "<" dan ">". berguna untuk

tokenisasi file html

7

rainbow -d ~/model --no-stoplist --indeks ~/20_newsgroups/*

Page 8: Laporan Tugas Information Retrieval

Laporan Tugas Information Retrieval “Document Classification in Rainbow”

--lex-pipe-command SHELLCMD Opsi ini akan lewatkan file sebagai input

standar ke dalam perintah shell dan

tokenisasi standar output dari perintah shell

--lex-white Opsi ini digunakan jika ingin mengambil

kontrol penuh terhadap tokenisasi dengan

script sendiri, sebagaimana ditentukan oleh -

lex-pipe-command, dan tidak ingin rainbow

untuk membuat perubahan selanjutnya

Setelah mengindeks dokumen, maka rainbow sudah siap untuk melakukan Klasifikasi

dokumen. Statistik dari dokumen pelatihan akan menentukan parameter classifier, klasifikasi

satu set dokumen pengujian akan menjadi output. Perintah untuk melakukan klasifikasi

dokumen dalam setiap pengujian untuk standar ouput adalah

Kata --test merupakan kata kunci untuk melakukan klasifikasi dokumen. Kata yang

berwarna biru menandakan (0.4) 40 persen dari dokumen digunakan untuk pengujian dan

sisanya digunakan untuk pelatihan. Kata yang berwarna hijau menandakan pengujian

dilakukan sebanyak 3 kali. Hasil klasifikasi berbentuk serangkaian teks yang berbentuk seperti:

Satu baris untuk satu dokumen. Secara umum outputnya berbentuk :

Script perl rainbow-stats yang tersedia di dalam libbow membaca dan memberikan

output tentang akurasi rata-rata, kesalahan standar dan confuse matriks seperti gambar 4.3.4

denga perintah

8

Tabel 1. Opsi pada tokenisasi beserta deskripsinya

rainbow -d ~/model --test-set=0.4 --test=3

/home/ubuntu/20_newsgroups/talk.politics.misc/17839 talk.politics.misc talk.politics.misc:0.98 talk.politics.mideast:0.015 talk.politics.guns:0.005

/direktori/NamaFile KelasSebenarnya KelasPrediksiTertinggi : NilaiKelasPrediksiTertinggiKedua : nilai ...

rainbow -d ~/model --test-set=0.4 --test=2 | rainbow-stats

Page 9: Laporan Tugas Information Retrieval

Laporan Tugas Information Retrieval “Document Classification in Rainbow”

Menentukan Set Pelatihan dan Pengujian

Dalam kasus dimana dokumen yang diuji telah di tokenisasi sebagai bagian dari model,

dokumen pengujian ditentukan dengan --test-set. Misalnya perintah

akan menggunakan generator bilangan acak untuk memilih setengah dari dokumen yang ada

pada model dan menempatkan mereka pada set pengujian, kemudian sisanya akan

ditempatkan di set pelatihan.

Ketika argumen –test-set tidak mengandung nilai desimal, jumlah ini ditafsirkan sebagai

jumlah pasti dokumen. Misalnya perintah

akan menempatkan 30 dokumen di set pengujian dan mencoba untuk memilih sejumlah

dokumen dari setiap kelas sehingga proporsi setiap kelas dalam set pengujian secara kasar

dapat sepadan dengan keseluruhan model.

Jika argumen tersebut diikuti kata pc, maka argumen menunjukkan jumlah dokumen

dari tiap kelas. Misalnya perintah

9

Gambar 3.3.4. Contoh tampilan output dengan Rainbow Stats

rainbow -d ~/model --test-set=0.5 --test=3

rainbow -d ~/model --test-set=30 --test=1

rainbow -d ~/model --test-set=30 --test=1

Page 10: Laporan Tugas Information Retrieval

Laporan Tugas Information Retrieval “Document Classification in Rainbow”

akan menempatkan 200 dokumen secara acak dari tiap kelas yang ada didalam model.

Misalnya terdapat 600 dokumen, jika model menggunakan 3 buah kelas.

Jika argumen –test-set berisi karakter non numerik, itu dianggap sebagai nama file,

yang didalamnya harus berisi spasi untuk memisahkan dokumen yang telah diindeks dalam

model. Misalnya

akan membuka file ~/filelist1 dan mengambil dari sana daftar nama file yang akan menjadi

dokumen pengujian.

Daftar nama file harus dinamai sesuai model yang telah dibuat. Daftar semua nama

file dari dokumen yang terisi didalam model rainbow dapat diperoleh melalui perintah

Nilai default untuk --test-set adalah 0, ini menunjukan tidak ada dokumen yang

ditempatkan pada set uji. Jadi, ketika menggunakan opsi –test harus juga disertai opsi –test-

set untuk memberikan beberapa dokumen kepada rainbow untuk diklasifikasi.

Set Pelatihan

Set pelatihan dapat dispesifikasikan dengan menggunakan opsi --train –set dengan

tipe yang sama pada argumen yang dijelaskan diatas. Misalnya

akan mengambil semua dokumen dari daftar ~/filelist1 untuk dijadikan sebagai dokumen

pengujian dan mengambil semua dokumen dari daftar ~/filelist2 untuk dijadikan sebagai

dokumen pelatihan. Merupakan sebuah kesalahan apabila sebuah dokumen dijadikan sebagai

dokumen pengujian sekaligus juga sebagai dokumen pelatihan.

Nilai default untuk kata kunci --train-set adalah dokumen yang tersisa, ini maksudnya

semua dokumen yang tidak ditempatkan pada set pengujian akan ditempatkan pada set

pelatihan. Kata kunci “remaining” juga dapat digunakan untuk set pengujian. Misalnya

akan menempatkan satu dokumen dari tiap kelas menjadi set pelatihan dan sisanya

ditempatkan pada set pengujian.

10

rainbow -d ~/model --test-set=~/filelist -test = 1

rainbow -d ~/model --print-doc-names

rainbow -d ~/model --test-set=~/filelist1 --train-set=~/filelist2 --test =1

rainbow -d ~/model --train-set=1pc --test-set=remaining --test=1

Page 11: Laporan Tugas Information Retrieval

Laporan Tugas Information Retrieval “Document Classification in Rainbow”

Klasifikasi File yang tidak berada di dalam model

Rainbow dapat mengelompokkan file-file yang tidak diindeks dalam model dengan

cara mengganti opsi –test-file. Misalnya,

akan menggunakan semua file dalam model sebagai training set, dan output klasifikasi untuk

semua file yang terdapat pada sub direktori dari ~/more-talk.politics/. Perhatikan bahwa

jumlah dan basenames dari direktori yang didaftarkan harus sesuai dengan yang diberipkan

kepada --index saat model dibangun

Rainbow dapat mengklasifikasikan sebuah file tunggal (membaca dari input standar

atau dari nama file yang ditentukan) menggunakan opsi –query.

Clasifikasi Rainbow sebagai Server

Dalam mode ini, Rainbow mulai membaca model dalam disk, kemudian menunggu

query dokumen dari soket jaringan. Untuk melakukan ini, jalankan Rainbow dengan perintah

--query-server=PORT ( PORT adalah nomor port yang lebih besar dari 1000). Contohnya

Untuk menguji server, telnet ke port apapun yang telah ditentukan (misalnya "telnet

localhost 1821"), ketik dokumen yang ingin di klasifikasi, kemudian ketik “.” pada perintah dan

diikuti oleh return. kemudian Rainbow akan mencetak kembali soket (pada layar) dari daftar

kelas dan nilainya.

Memilih Metode Klasifikasi

Rainbow mendukung beberapa metode klasifikasi. Secara dasar, apabila tidak

ditentukan metode yang ingin digunakan maka metode Naive Bayes yang akan digunakan.

Akan tetapi, metode lain seperti k-nearest neigbor, TFIDF,dan probabilistic indexing juga

tersedia didalam Rainbow. Metode klasifikasi ditentukan dengan kata --method( atau -m ),

dan diikuti salah satu dari kata kunci: naivebayes, knn, tfidf, prind. Misalnya perintah

akan menggunakan metode tfidf/Rocchio untuk klasifikasi dokumen.

11

rainbow -d ~/model --query-server 1821

rainbow -d ~/model --method=tfidf --test=1

rainbow -d ~/model --test-files ~/more-talk.politics/*

Page 12: Laporan Tugas Information Retrieval

Laporan Tugas Information Retrieval “Document Classification in Rainbow”

4. Metode Klasifikasi

4.1. Metode Naive Bayes

Classifier naive Bayes merupakan classifier probabilistik sederhana yang menerapkan

dalil Bayes dari statistik Bayesian dengan asumsi naive bebas.

Dalam terminologi sederhana, sebuah Classifier naive Bayes mengasumsikan bahwa

kehadiran (atau ketiadaan) fitur tertentu dari suatu kelas tidak berhubungan dengan

kehadiran (atau ketiadaan) fitur lainnya. Sebagai contoh, buahan mungkin dianggap sebagai

apel jika berwarna merah, berbentuk bulat, dan diameternya sekitar 4 inci. Bahkan jika fitur ini

bergantung satu sama lain atau keberadaan fitur lain, Classifier Bayes naive menganggap

bahwa seluruh sifat-sifat berkontribusi secara masing-masing pada probabilitas bahwa buahan

ini adalah apel.

Tergantung pada sifat yang tepat dari model probabilitas, Classifier naive Bayes dapat

dilatih secara efisien dalam suasana yang terawasi. Dalam aplikasi praktis, parameter estimasi

untuk model naive Bayes menggunakan metode maksimum likelihood, dengan kata lain,

seseorang dapat bekerja dengan model Bayes naive tanpa percaya pada probabilitas Bayesian

atau menggunakan metode Bayesian.

Sebuah keuntungan dari classifier naive Bayes adalah bahwa ia memerlukan jumlah

data pelatihan yang kecil untuk mengestimasi parameter (sarana dan varians dari variabel)

yang diperlukan untuk klasifikasi. Tidak semua kovarian matriks harus ditentukan, hanya

12

Page 13: Laporan Tugas Information Retrieval

Laporan Tugas Information Retrieval “Document Classification in Rainbow”

varians dari variabel-variabel untuk setiap kebutuhan kelas yang akan ditentukan dan pada

variabel bebas nilainya hanya diasumsikan.

Theorema Bayes

P (h|D )=P (D|h ) P(h)

P(D)

Notasi pada Naive Bayes

P(h) = peluang dari Hipotesis h

P(D) = peluang bahwa data pada training set D dapat diamati

P(D|h) = peluang dari pengamatan data D bahwa hipotesis

P(h|D) = peluang bahwa h mempunyai data training D

Penerapan Metode Naive Bayes dalam Rainbow

Sebelum Klasifikasi dokumen dimulai, Rainbow akan mengindeks semua set pelatihan

dengan proses tokenisasi dan hasil dari indeks disimpan didalam file yang bernama

vocabulary. Dalam vocabulary berisi semua token dalam set pelatihan. Pada proses klasifikasi,

petama-tama dikumpulkan semua token yang ada didalam vocabulary dan hitung P(V i) dan

P(Wk|Vi). Selanjutnya dilakukan perhitungan Naive Bayes dari dokumen yang ingin

diklasifikasi.

Contoh Perhitungan dengan metode Naive Bayes dalam Rainbow

Dimisalkan bahwa terdapat dua buah kelas untuk set pelatihan. Kelas pertama berisi email

yang berupa spam. Kelas kedua berisi email yang berupa non-spam. Kita ingin program

Rainbow untuk mengklasifikasi email yang masuk apakah berupa spam atau tidak. Maka

pertama-tama Rainbow akan membuat sebuah model hasil indeks dari 2 buah kelas yang ada.

Contoh berikut merupakan email yang berupa spam dan Non-Spam.

Kelas Spam : Dokumen 1

From : [email protected]

To : [email protected]

Subject : Easy Money

13

Page 14: Laporan Tugas Information Retrieval

Laporan Tugas Information Retrieval “Document Classification in Rainbow”

Date : Tue, 20 Oct , 2010 at 03.16 AM

Hanya sebuah klik, anda bisa mendapatkan uang tunai Rp. 500000,-. Klik link dibawah

ini!!

http://easymoney.com

Kelas Spam : Dokumen 2

From : [email protected]

To : [email protected]

Subject : Win Cash Online

Date : Tue, 20 Oct , 2010 at 03.16 AM

Kesempatan untuk memenangkan uang tunai Rp.1000000 hanya dengan

menjawab sebuah pertanyaan. Untuk info lebih lanjut silakan klik link dibawah ini

http://www.cashonline.com

Kelas Non-Spam : Dokumen 1

From : [email protected]

To : [email protected]

Subject : AI

14

Page 15: Laporan Tugas Information Retrieval

Laporan Tugas Information Retrieval “Document Classification in Rainbow”

Date : Sat, Oct 2, 2010 at 6.16 PM.

Ti, tolong donk kirimin file AI...

Kelas Non-Spam Dokumen 2

From : [email protected]

To : [email protected]

Subject : DDK

Date : Tue, Oct 19, 2010 at 10.49 PM

Ti, ini g udah ganti ringkasan eksekutifnya. Coba cek lagi ya..

Dari 4 email diatas, selanjutnya akan diindeks dengan men-tokenisasi dan hasil token

disimpan didalam vocabulary dan dibuat word vector dari tiap kelas. Berikut ini adalah contoh

hasil indeks di dalam vocabulary

Vocabulary : { “hanya”, ”sebuah”, ”klik”, ”anda”, ”bisa”, ”mendapatkan”, ”uang”, ”tunai”, ”rp”,

”link”, ”dibawah”, ”ini”,“Kesempatan”, ”untuk”, ”memenangkan”,

”dengan”,“menjawab”,”pertanyaan”,“info“,“lebih”,“lanjut”,“silakan”, ”ai”, ”ti”, ”tolong”,

”donk”, ”kirimin”, ”file”, ”g”, ”udah”, ”ganti”, ”ringkasan”, ”eksekutifnya”, ”coba”, ”cek”,

”lagi”, ”ya”}

Berikut merupakan contoh model vector tiap kelas

Spam : [2,2,3,1,1,1,2,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]

Non-Spam : [0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1]

Setelah indeksing selesai maka rainbow siap untuk melakukan klasifikasi email.

Caranya adalah menghitung P(Vj) untuk tiap kelas dan P(Wk|Vj),

P (V j )=¿Docs j∨¿

¿Examples∨¿¿¿

P(Vj) : Peluang suatu dokumen merupakan kelas Vj

Docsi : merupakan jumlah dokumen yang merupakan kelas Vj

15

Page 16: Laporan Tugas Information Retrieval

Laporan Tugas Information Retrieval “Document Classification in Rainbow”

Examples : total jumlah set pelatihan yang ada

Sehingga P(Spam) dan P(NonSpam) adalah

P(Spam) = 2/4 = 0.5 P(NonSpam) = 2/4 = 0.5

P (W k|V j )=nk+1

n+¿Vocabulary∨¿¿

P(Wk|Vj) : Peluang kata Wk muncul dalam Dokumen Vj

n : jumlah kata dalam kelas Vj

nk : jumlah kata Wk didalam kelas Vj

Vocabulary : jumlah kata dalam Vocabulary.

Kelas Spam

n = 32

Vocabulary = 37

Kata P(Wk|Vj) Kata P(Wk|Vj) Kata P(Wk|Vj)

hanya 0.0434 untuk 0.0434 kirimin 0.0144

sebuah 0.0434 memenangka

n

0.0289 file 0.0144

klik 0.0579 dengan 0.0289 ddk 0.0144

anda 0.0289 menjawab 0.0289 g 0.0144

bisa 0.0289 pertanyaan 0.0289 udah 0.0144

mendapatkan 0.0289 info 0.0289 diganti 0.0144

uang 0.0434 lebih 0.0289 ringkasan 0.0144

tunai 0.0434 lanjut 0.0289 eksekutifnya 0.0144

rp 0.0434 silakan 0.0289 coba 0.0144

16

Page 17: Laporan Tugas Information Retrieval

Laporan Tugas Information Retrieval “Document Classification in Rainbow”

link 0.0434 ai 0.0144 cek 0.0144

dibawah 0.0434 ti 0.0144 lagi 0.0144

ini 0.0434 tolong 0.0144 ya 0.0144

kesempatan 0.0289 donk 0.0144

Kelas Non-Spam

n = 16

Vocabulary = 37

Kata P(Wk|Vj) Kata P(Wk|Vj) Kata P(Wk|Vj)

hanya 0.0188 untuk 0.0188 kirimin 0.0377

sebuah 0.0188 memenangka

n

0.0188 file 0.0377

klik 0.0188 dengan 0.0188 ddk 0.0377

anda 0.0188 menjawab 0.0188 g 0.0377

bisa 0.0188 pertanyaan 0.0188 udah 0.0377

mendapatkan 0.0188 info 0.0188 diganti 0.0377

uang 0.0188 lebih 0.0188 ringkasan 0.0377

tunai 0.0188 lanjut 0.0188 eksekutifnya 0.0377

rp 0.0188 silakan 0.0188 coba 0.0377

17

Page 18: Laporan Tugas Information Retrieval

Laporan Tugas Information Retrieval “Document Classification in Rainbow”

link 0.0188 ai 0.0377 cek 0.0377

dibawah 0.0188 ti 0.0566 lagi 0.0377

ini 0.0377 tolong 0.0377 ya 0.0377

kesempatan 0.0188 donk 0.0377

Sekarang terdapat sebuah email yang ingin ditentukan kelasnya. Berikut merupakan isi dari

email tersebut.

From : [email protected]

To: [email protected]

Subject : AI

Date : Thu, 27 Oct, 2010 at 02.19 PM

Ti, ai udah selesai blum?

Maka akan dicari nilai naive bayes dengan rumus

V NB=argmax P (v j)

v j∈V∏

i∈ positions

P (ai∨v j)

Dimana :

18

Page 19: Laporan Tugas Information Retrieval

Laporan Tugas Information Retrieval “Document Classification in Rainbow”

VNB merupakan nilai naive bayes

Argmax P(vj) merupakan peluang dokumen merupakan kelas Vj

P(ai|vj) merupakan peluang kata pada posisi i terdapat didalam kelas Vj

Dari semua token yang terdapat pada dokumen pengujian, akan dicari token yang ada pada

vocabulary dan hasilnya adalah “ti”, “ai” dan “udah”.

VNB untuk Kelas Spam

VSpam = P(Spam) * P(ti|Spam) * P(ai|Spam) * P(udah|Spam)

VSpam = 0.5 *(0.0144*0.0144*0.0144)

VSpam = 1,4929 X 10-6

VNB untuk kelas Non Spam

VNonSpam = P(NonSpam) * P(ti|NonSpam) * P(ai|NonSpam) * P(udah|NonSpam)

VNonSpam = 0.5 *(0.0566*0.0377*0.0377)

VNonSpam = 4,0222 X 10-5

KarenaVNonSpam > VSpam maka email itu termasuk kedalam kelas Non Spam

19

Page 20: Laporan Tugas Information Retrieval

Laporan Tugas Information Retrieval “Document Classification in Rainbow”

4.2. Metode K Nearest Neigbors

K Nearest Neigbors adalah sebuah metode untuk mengklasifikasikan benda

berdasarkan contoh pelatihan yang terdekat di dalam feature space. K-NN merupakan tipe

metode belajar yang berbasis contoh dimana fungsi tersebut hanya diperkirakan secara local

dan semua perhitungan ditunda sampai klasifikasi. algoritma k-NN merupakan algoritma yang

paling mudah diantara semua algoritma machine learning.

Sebuah objek diklasifikasikan dengan cara melihat mayoritas tetangga terdekatnya,

objek dimasukkan ke dalam kelas yang paling banyak Nearest Neigbors-nya (k adalah integer

positif, biasanya kecil). Jika k=1, maka objek ditempatkan ke kelas dari tetanga terdekat.

Neigbor didapatkan dari sebuah set objek untuk klasifikasi yang benar. Ini bisa

diibaratkan dengan set pelatihan untuk algoritma, meskipun tidak ada langkah pelatihan

eksplisit yang diperlukan. Algoritma k-Nearest Neigbors sangat sensitif terhadap struktur lokal

data.

Aturan Nearest Neigbors yang berlaku menghitung batas keputusan secara implisit.

Terdapat kemungkinan untuk menghitung batas keputusan secara eksplisit, apabila

melakukannya dengan cara efisien maka kompleksitas perhitungan adalah fungsi dari batas

kompleksitas.

Contoh Soal

20

Page 21: Laporan Tugas Information Retrieval

Laporan Tugas Information Retrieval “Document Classification in Rainbow”

Kita mempunyai data dari survey kuesioner dengan pengujian objektif dua atribut (Ketahanan

Terhadap Asam dan Strength) untuk mengklasifikasi apakah sebuah tisu itu Bagus atau Jelek.

Terdapat 4 sampel latihan

X1 = Ketahanan Terhadap

Asam (detik)

X2 = Strength(kg/m2 ) Y =Klasifikasi

7 7 Jelek

7 4 Jelek

3 4 Bagus

1 5 Bagus

Dan jika sebuah pabrik menproduksi tisu yang mempunyai tes laboratorium dengan

X1 = 3 dan X2 = 7. Tanpa survey yang lain, apakah pabrik tersebut bisa menebak kategori

apakah tisu ini berada?

1. Menentukan parameter K = jumlah Nearest Neigbors. Contohnya K = 3

2. Hitung Perbedaan antara query dan semua sampel training

Koordinasi dari query adalah (3,7), daripada menghitung Perbedaan kita menghitung

Perbedaan kuadrat dimana akan lebih cepat (tanpa akar kuadrat).

X1=Ketahanan Terhadap

Asam (detik)X2 = Strength (kg/m2)

Perbedaan Kuadrat

Terhadap Query(3,7)

7 7 (7-3)2+(7-7)2 = 16

7 4 (7-3)2+(4-7)2=25

3 4 (3-3)2+(4-7)2=9

1 4 (1-3)2 + (4-7)2 =13

3. Susun ulang perbedaan kuadrat dan tentukan Nearest Neigbors berdasarkan

Perbedaan minimum K

21

Page 22: Laporan Tugas Information Retrieval

Laporan Tugas Information Retrieval “Document Classification in Rainbow”

X1 = Ketahanan

Terhadap Asam

(detik)

X2 =

Strength(kg/m2)

Perbedaan

Kuadrat

Terhadap

Query(3,7)

Peringkat

Perbedaan

Minimum

Apakah

termasuk ke

dalam tiga

Nearest

Neigbors

7 7 16 3 yes

7 4 25 1 no

3 4 9 1 yes

1 4 13 2 yes

4. Kumpulkan kategori Y dari Nearest Neigbors. Perhatikan baris kedua kolom terakhir

dari kategori Nearest Neigbors tidak dimasukkan karena peringkat dari data ini lebih

dari 3(=k)

X1 =

Ketahanan

Terhadap

Asam(detik)

X2=Strength

(kg/m2)

Perbedaan

Kuadrat

Terhadap

Query(3,7)

peringkat

minimum

Perbedaan

apakah

termasuk ke

dalam tiga

Nearest

Neigbors

Y = kategori

dari Nearest

Neigbors

7 7 16 3 yes Jelek

7 4 25 4 no -

3 4 9 1 yes Bagus

1 4 13 2 yes Bagus

5. Gunakan mayoritas dari kategori Nearest Neigbors sebagai nilai prediksi dari query.

Kita mempunyai 2 buah bagus dan 1 buah jelek, karena 2 >1 maka kita bisa

menyimpulkan bahwa tisu baru dengan tes laboratori X1=3 dan X2=7 termasuk ke

dalam kategori bagus.

22

Page 23: Laporan Tugas Information Retrieval

Laporan Tugas Information Retrieval “Document Classification in Rainbow”

Penerapan metode k-Nearest Neigbor dalam Rainbow

Buat suatu model sebanyak n dimensi untuk setiap kelas. Klasifikasi dokumen berdasarkan k-

Nearest point.

4.3.Metode tf-idf / Roccio

Tf-idf merupakan sebuah metode yang sering digunakan dalam information retrieval

dan text mining. Berat ini merupakan sebuah ukuran statistik yang digunakan untuk

mengevaluasi seberapa penting sebuah kata untuk sebuah dokumen dalam sebuah koleksi.

Kepentingan meningkat secara proporsional dengan frekuensi sebuah kata muncul di dalam

sebuah dokumen tetapi diimbangi dengan frekuensi kata dalam koleksi. Variasi dari tf-idf

sering digunakan oleh mesin pencari sebagai alat sentral untuk memberi nilai relevansi pada

dokumen dari query user.

Istilah “term count” dalam dokumen yang diberikan adalah berupa frekuensi “term”

muncul didalam dokumen tersebut. “count” ini biasanya dinormalisasi untuk mencegah

ketidakadilan terhadap dokumen yang lebih panjang (dimana memiliki term count yang lebih

tinggi tanpa memeduli kepentingan dari term sebenarnya dalam dokumen tersebut) untuk

memberi nilai dari kepentingan term ti dalam suatu dokumen dj. Jadi kita mendapatkan term

frequency, yang didefinisikan sebagai berikut

tf i , j=ni , j

∑k

nk , j

Dimana ni,j adalah jumlah kemunculan term (ti) dalam dokumen dj dan denominator adalah

jumlah kemunculan dari semua term didalam dokumen dj.

23

Page 24: Laporan Tugas Information Retrieval

Laporan Tugas Information Retrieval “Document Classification in Rainbow”

Inverse document frequency adalah ukuran kepentingan umum dari term (didapatkan

dari pembagian jumlah dokumen dalam koleksi dengan jumlah dokumen yang mengandung

term, dan diambil logaritma dari quotient tersebut)

idf i=log ¿D∨ ¿¿ {d : ti∈d }∨¿

¿¿

Dengan :

| D | : jumlah dokumen dalam koleksi

|{d:tt Є d}| : jumlah dokumen dumana term ti muncul. Jika term tidak terdapat

didalam corpus, maka akan terjadi pembagian terhadap nol. Oleh karena itu biasanya

digunakan 1 + |{d:tt Є d}|

Kemudian

(tf−idf )i , j=tf i , j×idf i

Nilai weight yang tinggi dalam tf-idf dicapai dengan frekuensi term yang tinggi

(dalam dokumen tersebut) dan frekuensi term dokumen yang rendah dalam seluruh koleksi

dokumen. Nilai Tf-idf terhadap sebuah term selalu lebih besar atau sama dengan nol.

Setiap dokumen D direpresentasikan sebagai vektor dalam sebuah vector space V,

seperti gambar 5.3.1.

d⃗=(d (1) ,… .. , d (|F|))

Nilai dari d(i) merupakan hasil perkalian tfi,j dan idfi (tf-idf) . Dokumen yang berdekatan

di dalam vector space selalu membahas tentang hal yang sama. Jarak vector antara tiap

dokumen didapatkan dari sudut cosine x yang berada diantaranya (perhatikan ini merupakan

kemiripan, bukan jarak). Jadi kemiripan dari dua buah vektor dapat ditulis dengan

sin (d j ,d k)=d⃗ j . d⃗k

|⃗d j||d⃗k|

24

Page 25: Laporan Tugas Information Retrieval

Laporan Tugas Information Retrieval “Document Classification in Rainbow”

Vektor tersebut bisa dinormalisasikan dengan membagi setiap dokumen dengan

panjang vektor, sehingga dokumen yang lebih panjang tidak akan lebih berat. Untuk vektor

yang telah dinormalisas, cosine merupakan hasil dot:

cos (d⃗ j¿ , d⃗k)= d⃗ j . d⃗k¿

25

5.3.1. Illustrasi tentang vector space

5.3.2. Illustrasi tentang jarak antara vector d1 dan vector d2 (cosine)

Page 26: Laporan Tugas Information Retrieval

Laporan Tugas Information Retrieval “Document Classification in Rainbow”

Contoh Soal

Bila sebuah dokumen mengandung 100 kata dimana kata Cow muncul sebanyak tiga

kali. Dengan rumus yang telah dibahas diatas maka TF untuk kata cow adalah (3/100) = 0.03.

sekarang diasumsikan terdapat 10 juta dokumen dan kata cow muncul sebanyak 1000 kali.

Maka inverse document frequency dapat dihitung dengan log(10000000/1000) = 4. Maka nilai

dari tf-idf untuk kata cow adalah : 0.03 * 4 = 0.12.

Penerapan metode tf-idf dalam Rainbow

Pada Rainbow dibuat sebuah prototipe dari set vector. Satu vector untuk masing-

masing kelas dan vektor ini dijadikan sebagai model. Model tersebut digunakan untuk

memklasifikasi dokumen baru D. D dimasukkan ke dalam kelas yang memiliki kemiripan yang

paling besar.

4.4. Metode Probabilistic Indexing

Ide dasar dari penggunaan metode probabilistic Indexing adalah Model kuantitatif

untuk indexing otomatis berdasarkan beberapa asumsi statistik tentang distribusi kata.

Terdapat dua jenis kata antara lain:

1) Function Words: Kata yang tidak berperan penting dalam penentuan kelas

2) Specialty Words: Kata yang berperan penting dalam penentuan kelas

Untuk Function Word, distribusinya selalu mengikuti distribusi Poisson pada semua

set dokumen. Sedangkan Distribusi pada Specialty Word tidak mengikuti distribusi Poisson dan

Specialty words dapat membedakan lebih dari satu kelas dalam dokumen.

Penerapan Metode Probabilistic Indexing dalam Rainbow

Tujuan dari Probabilistic indexing adalah memperkirakan P(C|s I, dM) (Kemungkinan

bahwa penempatan term si pada dokumen dm adalah benar). Setelah term diidentifikasi,

dibuat Form Of Occurence(FOM). FOM terdiri dari kepastian term diidentifikasikan secara

benar serta seberapa penting Term tersebut.

Jika term t muncul dalam dokumen d dan terdapat term descriptor dari t ke s ( s

adalah indexing term) maka bangkitkan descriptor indictor. Sebuah set term yang

26

Page 27: Laporan Tugas Information Retrieval

Laporan Tugas Information Retrieval “Document Classification in Rainbow”

dibangkitkan descriptor bisa dievaluasi dan kemungkinan/probability dokumen d termasuk ke

dalam kelas C dapat dihitung.

BIODATA

Nama : Sakti Sarjono

NIM : 535080061

Fakultas : Teknologi Informasi

Jurusan : Teknik Informatika

Alamat Email : [email protected]

No. Hp : 085714716561

Pengalaman :

Aplikasi database untuk Hotel dengan Bahasa Java dan Microsoft Access.

Aplikasi database untuk pegawai dengan Bahasa Java.

Program Kalkulator dengan Bahasa Java.

Program untuk Konversi bilangan Desimal dengan Bahasa C++

27

Page 28: Laporan Tugas Information Retrieval

Laporan Tugas Information Retrieval “Document Classification in Rainbow”

DAFTAR REFERENSI

1. Grossman, D.A., Frieder O.(2004). information retrieval Algorithm and Heuristics.

Netherlands:Springer.

2. http://www.cs.cmu.edu/~mccallum/bow/

3. http://www.cs.cmu.edu/~mccallum/bow/rainbow/

4. http://en.wikipedia.org/wiki/K-nearest_neighbor_algorithm

5. http://en.wikipedia.org/wiki/Naive_Bayes_classifier

6. http://en.wikipedia.org/wiki/Tf–idf

7. http://people.revoledu.com/kardi/tutorial/KNN/KNN_Numerical-example.html

8. http://www.cs.put.poznan.pl/mkomosinski/umsn/bayes/Rainbow.ppt

9. http://packages.ubuntu.com/dapper/libbow

10. http://select.cs.cmu.edu/class/10701-F09/slides/naivebayes.pdf

28

Page 29: Laporan Tugas Information Retrieval

Laporan Tugas Information Retrieval “Document Classification in Rainbow”

11. http://lingpipe-blog.com/2009/01/12/naive-bayes-binomial-bags-of-words/

12. http://en.wikipedia.org/wiki/

Bag_of_words_model_in_computer_vision#Generative_Models

13. http://en.wikipedia.org/wiki/Bag_of_words_model

14. http://www.cs.cmu.edu/afs/cs.cmu.edu/project/theo-20/www/mlc/2002/cotraining-11-

02.pdf

29