Anda di halaman 1dari 28

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
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 .

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

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
Packet Manager yang berfungsi sebagai aplikasi untuk mendownload, menginstall serta

2
Laporan Tugas Information Retrieval “Document Classification in Rainbow”

menghapus aplikasi. Cara untuk membuka aplikasi tersebut adalah pilih System >
Administration > Sypnatic Package Manager, seperti gambar 3.2.1.

Gambar 3.2.1. Contoh tampilan untuk menjalankan aplikasi Sysnaptic Package Manager

Setelah
aplikasi dijalankan, repositories harus disetting ulang agar dapat mendownload software
rainbow. Caranya adalah pilih Setting > Repositories, seperti gambar 3.2.2.

Gambar 3.2.2. Contoh tampilan untuk menbuka setting repository

3
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

Gambar 3.2.3. Contoh tampilan untuk mengisi repository baru

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

Gambar 3.2.4. Contoh Tampilan untuk menginstall program Libbow

4
Laporan Tugas Information Retrieval “Document Classification in Rainbow”

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

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

Gambar 3.3.1. Contoh tampilan untuk menjalankan terminal

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

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

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

5
Laporan Tugas Information Retrieval “Document Classification in Rainbow”

melakukan indeks pada dokumen. Kata yang berwarna merah menandakan direktori yang
menyimpan dokumen yang ingin diklasifikasi.

Sebagai contoh, bila ingin mengindeks dokumen yang terdapat pada direktori
20_newsgroups dan menyimpan hasilnya di dalam direktori yang bernama model maka
perintahnya ialah

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

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.

Gambar 3.3.3. Contoh tampilan pada direktori model

Gambar 3.3.2. Contoh tampilan pada terminal

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

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

6
Laporan Tugas Information Retrieval “Document Classification in Rainbow”

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

--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

Tabel 1. Opsi pada tokenisasi beserta deskripsinya

Setelah mengindeks dokumen, maka


rainbow sudah siap untuk melakukan Klasifikasi dokumen. Statistik dari dokumen pelatihan

7
Laporan Tugas Information Retrieval “Document Classification in Rainbow”

akan menentukan parameter classifier, klasifikasi satu set dokumen pengujian akan menjadi
output. Perintah untuk melakukan klasifikasi dokumen dalam setiap pengujian untuk standar
ouput adalah

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

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:

/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

Satu baris untuk satu dokumen. Secara umum outputnya berbentuk :


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

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

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

Gambar 3.3.4. Contoh tampilan output dengan Rainbow Stats

8
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

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

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

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

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

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

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

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

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

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


9
Laporan Tugas Information Retrieval “Document Classification in Rainbow”

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

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

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

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

akan menempatkan satu dokumen dari tiap kelas menjadi set pelatihan dan sisanya
ditempatkan pada set pengujian.

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,

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

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.

10
Laporan Tugas Information Retrieval “Document Classification in Rainbow”

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

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

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

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

akan menggunakan metode tfidf/Rocchio untuk klasifikasi dokumen.

11
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
varians dari variabel-variabel untuk setiap kebutuhan kelas yang akan ditentukan dan pada
variabel bebas nilainya hanya diasumsikan.

Theorema Bayes

P ( D|h ) P (h)
P ( h|D )=
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

12
Laporan Tugas Information Retrieval “Document Classification in Rainbow”

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 : Manntyw@aol.com

To : anlibra25@gmail.com

Subject : Easy Money

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

13
Laporan Tugas Information Retrieval “Document Classification in Rainbow”

Kelas Spam : Dokumen 2

From : FreeCash@Yahoo.com

To : anlibra25@gmail.com

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 : voidsoul@yahoo.com

To : anlibra25@gmail.com

Subject : AI

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

Ti, tolong donk kirimin file AI...

Kelas Non-Spam Dokumen 2

From : kimochi_sizie@yahoo.com

To : anlibra25@gmail.com

Subject : DDK

Date : Tue, Oct 19, 2010 at 10.49 PM

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

14
Laporan Tugas Information Retrieval “Document Classification in Rainbow”

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 V j

Docsi : merupakan jumlah dokumen yang merupakan kelas V j

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

nk +1
P ( W k|V j )=
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.

15
Laporan Tugas Information Retrieval “Document Classification in Rainbow”

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 0.0289 file 0.0144


n

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

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

16
Laporan Tugas Information Retrieval “Document Classification in Rainbow”

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 0.0188 file 0.0377


n

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

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 : voidsoul@yahoo.com

To: anlibra25@gmail.com

Subject : AI

Date : Thu, 27 Oct, 2010 at 02.19 PM

17
Laporan Tugas Information Retrieval “Document Classification in Rainbow”

Ti, ai udah selesai blum?

Maka akan dicari nilai naive bayes dengan rumus

argmax P(v j )
V NB= ∏ P( ai∨v j )
v j ∈V i ∈ positions

Dimana :

VNB merupakan nilai naive bayes

Argmax P(vj) merupakan peluang dokumen merupakan kelas V j

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

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

18
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.

19
Laporan Tugas Information Retrieval “Document Classification in Rainbow”

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

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 X2 = Strength(kg/m2 ) Y =Klasifikasi


Asam (detik)

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 Perbedaan Kuadrat


X2 = Strength (kg/m2)
Asam (detik) Terhadap Query(3,7)

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

20
Laporan Tugas Information Retrieval “Document Classification in Rainbow”

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

Apakah
Perbedaan
X1 = Ketahanan Peringkat termasuk ke
X2 = Kuadrat
Terhadap Asam Perbedaan dalam tiga
Strength(kg/m2) Terhadap
(detik) Minimum Nearest
Query(3,7)
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)

apakah
X1 = Perbedaan
peringkat termasuk ke Y = kategori
Ketahanan X2=Strength Kuadrat
minimum dalam tiga dari Nearest
Terhadap (kg/m2) Terhadap
Perbedaan Nearest Neigbors
Asam(detik) Query(3,7)
Neigbors

7 7 16 3 yes Jelek

7 4 25 4 no -

3 4 9 1 yes Bagus

1 4 13 2 yes Bagus

21
Laporan Tugas Information Retrieval “Document Classification in Rainbow”

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.

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

22
Laporan Tugas Information Retrieval “Document Classification in Rainbow”

ni , j
tf i , j =
∑ nk , j
k

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

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 : t i ∈d } ∨¿

Dengan :

 | D | : jumlah dokumen dalam koleksi

 |{d:tt Є d}| : jumlah dokumen dumana term t i 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.

(1 )

d=(d , … .. , 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

23
Laporan Tugas Information Retrieval “Document Classification in Rainbow”

dokumen didapatkan dari sudut cosine x yang berada diantaranya (perhatikan ini merupakan
kemiripan, bukan jarak). Jadi kemiripan dari dua buah vektor dapat ditulis dengan

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

5.3.1. Illustrasi tentang vector space

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

24
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. ⃗
dk ¿

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

25
Laporan Tugas Information Retrieval “Document Classification in 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
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 : anlibra25@gmail.com

No. Hp : 085714716561

Pengalaman :

26
Laporan Tugas Information Retrieval “Document Classification in Rainbow”

 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++

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

27
Laporan Tugas Information Retrieval “Document Classification in Rainbow”

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

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_Mod
els

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

28

Anda mungkin juga menyukai