Laporan Tugas Information Retrieval
-
Upload
sakti-sarjono -
Category
Documents
-
view
584 -
download
12
Transcript of 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
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
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
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
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
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/*
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/*
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
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
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
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/*
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
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
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
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
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
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
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]
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
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
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
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
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
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
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
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)
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
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
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
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