Evaluasi algoritme breadth first, best first, dan page

advertisement
TINJAUAN PUSTAKA
Sedangkan untuk algoritme breadth first
dapat dilihat pada Gambar 3.
Temu Kembali Informasi
Temu kembali informasi (information
retrieval) yaitu mencari bahan (biasanya
dokumen) yang bersifat tidak terstruktur
(biasanya teks) untuk memenuhi kebutuhan
informasi dari dalam koleksi dokumen yang
besar (tersimpan dalam komputer) (Manning et
al. 2009).
1
2
Breadth-First(starting_urls) {
for each link (starting_urls){
3
enqueue(frontier, link);
4
}
5
while (visited < MAX_PAGES ){
6
start_time;
7
link = dequeue_link(frontier);
8
page = fetch(link);
Web Crawling
9
visited = visited + 1;
Web crawling adalah suatu proses untuk
mengumpulkan halaman web, kemudian
dilakukan pengindeksan untuk mendukung
sebuah mesin pencari. Tujuan dari web
crawling adalah mengumpulkan halaman web
dengan cepat dan efisien, bersamaan dengan
struktur link yang terhubung antar halaman web
tersebut (Manning et al. 2009).
10
enqueue(frontier,
11
end_time;
Komponen pendukung mesin pencari salah
satunya yaitu web crawler dapat dilihat pada
Gambar 1.
extract_links(page));
12
}
13 }
Gambar 3 Algoritme Breadth First.
2. Breadth First with Time Constraint
Breadth
first with time constraint
merupakan perluasan dari algoritme breadth
first. Algoritme ini didasarkan pada gagasan
tidak mengakses server yang sama selama
jangka waktu tertentu dengan tujuan agar tidak
membebani server. Dengan demikian, halaman
diambil jika dan hanya jika batas waktu tertentu
telah berlalu sejak terakhir akses ke server
(Romero 2006).
Algoritme breadth first with time constraint
dapat dilihat pada Gambar 4.
Gambar 1 Komponen mesin pencari.
Algoritme Web Crawler
1
Breadth-First(starting_urls) {
2
for each link (starting_urls){
3
enqueue(frontier, link);
4
}
Algoritme web crawler yang dianalisis dan
dievaluasi yaitu :
5
url = first(frontier);
6
while (visited < MAX_PAGES){
1. Breadth First
7
Algoritme breadth first merupakan strategi
sederhana untuk mengumpulkan halaman web.
Algoritme ini tidak menggunakan pendekatan
heuristik untuk menentukan Uniform Resource
Locator (URL) berikutnya yang akan
dikunjungi. Proses pengambilan URL dari
frontier hanya menggunakan First In First Out
(FIFO) Queue (Romero 2006).
Ilustrasi breadth first crawler dapat dilihat
pada Gambar 2.
if(Now()-timeLastAccessToServer(url)
> timeThereshld){
8
start_time;
9
page = fetch(url);
10
visited = visited + 1;
11
enqueue(frontier,
12
url = first(frontier);
extract_links(page));
13
end_time;
14
}else{
15
url = nextElement(frontier);
16
17
18
}
}
}
Gambar 4 Algoritme Breadth First
with Time Constraint.
Gambar 2 Breadth First Crawler.
2
3. Best First
Ide dasar dari algoritme ini memberikan
nilai estimasi pada setiap link di frontier,
dimana nilai estimasi terbaik akan digunakan
sebagai dasar untuk menjelajahi setiap link pada
frontier. Untuk mendapatkan nilai estimasi
tersebut dengan cara menghitung kesamaan
antara halaman web dengan kata kunci yang
diinginkan (Romero 2006).
Ilustrasi best first crawler dapat dilihat pada
Gambar 5.
halaman
tersebut.
Pendekatan
tersebut
digunakan, sehingga page rank dari link masuk
(inbound link) tidak langsung didistribusikan ke
halaman yang dituju, melainkan dibagi dengan
jumlah link keluar (outbound link) yang ada
pada halaman tersebut.
Sebuah halaman web akan semakin populer,
jika semakin banyak halaman web lain yang
meletakan link yang mengarah ke halaman web
tersebut. Sedangkan sebuah halaman web akan
semakin penting jika halaman lain yang
memiliki nilai page rank tinggi mengacu ke
halaman web tersebut, dengan asumsi isi dari
halaman web tersebut lebih penting dari
halaman web yang lain.
Proses perhitungan nilai page rank
dilakukan secara rekursif sampai konvergen.
Sebuah rangking halaman web akan ditentukan
oleh rangking halaman web lain yang memiliki
link ke halaman web tersebut.
Gambar 5 Best First Crawler.
Terdapat dua persamaan page rank yaitu:
Sedangkan untuk Algoritme best first dapat
dilihat pada Gambar 6.
1
Best-First(keyword,starting_urls){
2
for each link (starting_urls){
3
enqueue(frontier,link, 1);
4
}
5
while (visited < MAX_PAGES){
6
start_time;
7
link=dequeue_top_link(frontier);
8
page = fetch(link);
9
score = sim(keyword, page);
10
visited = visited + 1;
11
enqueue(frontier,
12
end_time;
extract_links(page),score);
13
}
14
}
(1)
N
(2)
dengan PR(p) adalah page rank halaman p,
PR(d) adalah page rank halaman d yang
mengacu ke p, in(p) adalah kumpulan halaman
yang menunjuk ke p, out(d) adalah kumpulan
link yang keluar dari d, dan N adalah jumlah
dokumen. Nilai γ (damping factor) merupakan
peluang bahwa random surfer meminta
halaman lain secara acak, nilai konstanta γ
kurang dari satu (umumnya digunakan nilai
0.85).
Page rank diperkenalkan oleh Sergey Brin
dan Larry Page, merupakan model probabilitas
dari prilaku surfing pengguna. Skor halaman
web tergantung secara rekursif dari skor
halaman web yang mengarah ke halaman web
tersebut (Romero 2006).
Penentuan nilai page rank halaman p tidak
langsung diberikan, tetapi sebelumnya dibagi
dengan jumlah link yang ada pada halaman d
(outbound link), nilai page rank tersebut akan
dibagi rata ke setiap link yang ada pada halaman
tersebut. Setelah semua nilai page rank didapat
dari halaman lain yang mengacu ke halaman p
dijumlahkan, nilai itu kemudian dikalikan
dengan konstanta γ. Hal ini dilakukan agar tidak
keseluruhan nilai page rank halaman d
didistribusikan ke halaman p.
Page rank menggunakan konsep random
surfer model, merupakan pendekatan yang
menggambarkan seorang pengunjung di depan
sebuah halaman web. Hal ini berarti peluang
seseorang mengklik sebuah link sebanding
dengan jumlah link yang ada pada
Perbedaan antara kedua persamaan tersebut
yaitu persamaan pertama jumlah page rank
sama dengan satu, sedangkan persamaan ke dua
jumlah page rank sama dengan jumlah halaman
web. Menurut Brin dan Page (1998)
mengatakan bahwa page rank membentuk
Gambar 6 Algoritme Best First.
4. Page Rank
3
distribusi peluang, jadi jumlah semua nilai page
rank halaman web sama dengan satu.
Berdasarkan
penjelasan
tersebut
maka
persamaan satu lebih direkomendasikan, karena
page rank berbasis peluang. Berdasarkan dua
persamaan tersebut dapat dilihat bahwa page
rank ditentukan untuk setiap halaman, bukan
keseluruhan website.
Ilustrasi link antar halaman dapat dilihat
pada Gambar 7.
A
1
PageRank (keyword,starting_url){
2
for each link (starting_urls){
3
enqueue(frontier, link, 1);
4
}
5
while (visited < MAX_PAGES){
6
start_time;
7
if(multiplies-X (visited)){
8
for each link (frontier){
9
PR(link) = compute_score_PR;
10
}
11
}
12
link = dequeue_max_PR(frontier);
13
if(link not found){
14
B
C
link = dequeue_top_link(frontier);
15
}
16
page = fetch(link);
17
score = sim(keyword, page);
Gambar 7 Ilustrasi link.
Proses perhitungan page rank dari ilustrasi
pada Gambar 7 sebagai berikut :
18
visited = visited + 1;
19
enqueue(frontier,
20
end_time;
misal nilai γ = 0.5
21
22
PR (A) = 0.5/3 + 0.5 PR(C)
PR (B) = 0.5/3 + 0.5 ( PR(A) / 2 )
PR (C) = 0.5/3 + 0.5 ( PR(A) / 2 + PR(B))
Tabel 1 menujukkan proses iterasi
perhitungan nilai page rank sampai dengan
iterasi ke empat, terlihat bahwa halaman C lebih
populer dibandingkan dengan halaman A dan
halaman B, karena memiliki page rank yang
lebih besar. Halaman A lebih populer
dibandingkan dengan halaman B walaupun
jumlah inbound link sama, karena halaman A
diacu oleh halaman C yang memiliki page rank
yang besar.
Tabel 1 Proses perhitungan page rank sampai
iterasi ke empat.
Iterasi
0
1
2
3
4
PR(A)
0
0,167
0,250
0,313
0,333
PR(B)
0
0,167
0,208
0,229
0,245
PR (C)
0
0,167
0,292
0,333
0,359
Algoritme web crawler menggunakan page
rank dapat dilihat pada Gambar 8.
extract_links(page),score);
}
}
Gambar 8 Algoritme Page Rank.
Web crawler dengan menggunakan page
rank merupakan varian dari best first crawler.
Berbeda pada evaluasi link yang dikunjungi
berikutnya menggunakan dua pendekatan, yaitu
nilai page rank dan cosine similarity (Menczer
et al. 2004).
Analisis Algoritme
Secara informal, algoritme adalah prosedur
komputasional yang didefinisikan dengan jelas
untuk mengambil beberapa nilai atau satu set
nilai sebagai input, dan menghasilkan beberapa
nilai atau satu set nilai sebagai output.
Algoritme adalah urutan langkah komputasi
yang mengubah input menjadi output (Cormen
et al. 2002).
Analisis algoritme dibutuhkan untuk
memprediksi sumber daya yang dibutuhkan
oleh suatu algoritme. Sumber daya komputer
seperti memori, bandwidth, atau perangkat
keras komputer lainnya menjadi perhatian
utama dalam menganalisis algoritme, tetapi
umumnya yang diukur adalah waktu komputasi
suatu algoritme. Metode matematika secara
efektif dapat digunakan, untuk memprediksi
banyaknya ruang dan waktu yang diperlukan
oleh
suatu
algoritme,
tanpa
harus
mengimplementasikan
dalam
bahasa
pemrograman tertentu (Cormen et al. 2002).
4
Cosine Similarity
Cosine Similiarity digunakan oleh web
crawler untuk mendapatkan nilai estimasi
antara kata kunci dengan setiap halaman web
yang dikunjungi. Nilai estimasi ini akan
dijadikan nilai kesamaan untuk setiap link yang
didapat dari web yang dikunjungi.
Perhitungan cosine similarity dapat dilihat
pada persamaan :
METODE PENELITIAN
Kajian Literatur
Kajian literatur pada penelitian ini yaitu
mengkaji beberapa algoritme web crawler,
strategi web crawler, serta teknik yang
berkaitan dengan web crawler. Literatur yang
digunakan diambil dari buku, jurnal, dan
artikel-artikel dari internet.
Analisis dan Implementasi Crawling
dengan q merupakan topik, p adalah halaman,
Vq dan Vp merupakan vektor term frequency
dari p dan q, dan || Vq || & || Vp || merupakan
panjang vektor Vp dan Vq.
Stop Words
Hasil dari kajian literatur didapat beberapa
algoritme seperti yang telah dijelaskan pada
tinjauan pustaka. Beberapa algoritme web
crawler
tersebut
dianalisis
kemudian
diimplementasikan.
Tahapan implementasi dapat dilihat pada
Gambar 9.
Terkadang kata-kata yang sering muncul dan
umum merupakan kata-kata yang kurang
bermakna jika dijadikan penciri sebuah
dokumen. Kata-kata tersebut akan dibuang dari
himpunan kata yang akan diindeks dan katakata tersebut termasuk dalam stop words
(Manning et al. 2009).
Kata-kata yang akan dibuang akan disimpan
dalam sebuah daftar kata yang disebut stop list.
Stop list akan berbeda-beda tergantung bahasa
yang digunakan, dalam konteks bahasa
indonesia beberapa kata yang termasuk dalam
stop list di antaranya ‘yang’, ‘sehingga’ dan
‘dengan’.
Pembobotan Term Frequency (TF)
Menurut Manning (2009) term frequency
adalah frekuensi kemunculan kata pada
dokumen. Untuk menghitung skor antar kueri
dengan dokumen, pendekatan sederhana dengan
menghitung frekuensi kata pada kueri dengan
dokumen. Nilai frekuensi tersebut adalah bobot
dari dokumen, yang memiliki bobot terbesar
merupakan dokumen yang paling dekat dengan
kueri.
Evaluasi Algoritme
Romero (2006) menjelaskan bahwa untuk
mengukur kinerja algoritme web crawler
menggunakan
nilai
precision,
yaitu
membandingkan antara jumlah halaman relevan
yang dikunjungi dengan total halaman yang
dikunjungi. Persamaan untuk menghitung nilai
precision yaitu :
Jumlah halaman relevan dikunjungi
precision =
Total halaman dikunjungi
Start
Inisialisasi
(kata kunci dan starting URL)
Memasukan links ke
frontier
End
Pemberhentian crawling
Mengambil link
dari frontier berdasarkan
algoritme crawler
Fetch
Parsing
Pengindeksan
Memasukan links
ke frontier
Gambar 9 Tahapan implementasi.
Berikut ini penjelasan untuk setiap tahapan
dari Gambar 9 :
1. Inisialisasi (kata kunci dan starting URL)
Starting URL adalah link yang pertama kali
menjadi acuan untuk dikunjungi, link ini
dianggap sebagai link yang paling mewakili
isi halaman web yang diinginkan untuk
dikumpulkan. Penentuan starting URL
sangat penting karena menentukan links
5
Download