2. • Web crawler web’de bağlantı yapısını otomatik olarak inceleyip bu bağlantılardaki
herbir sayfayı otomatik olarak bir depolama alanına indiren programdır.
• Web crawling genelde bir arama motorunun veya web madenciliğinin ilk adımıdır.
Web Crawler
3. • Universal Crawler
Universal crawler içeriğe bakmaksızın tüm sayfaları indirir.
• Topic Crawler
Sadece belirli başlıklardaki içerikleri indirir. Topic crawling de en önemli
zorluklardan bir tanesi o konuya ait sayfaların nasıl tanınacağıdır.
Web Crawler
Universal
Crawler
Topic
Crawler
Crawler
4. • Online mod :
Online modda sayfalar indirilir indirilmez analiz edilir.
• Offline mod :
Offline modda ise sayfalar indirilip depolandıktan sonra analiz edilir.
Web Crawler
Online Mode Offline Mode
Crawler
5. • İş zekası uygulamaları , şirketler kendi rakipleri hakkında bilgi toplamak için kullanırlar.
• Web sitelerini ve ilgili oldukları sayfaları gözlemleyerek yeni ilgili oldukları konularda
yeni bir bilgi geldiğinde bundan haberdar olurlar.
• Ayrıca kötü niyetli kullanımlar da vardır , özellikle mail adresi ve kişisel bilgilerin
toplanması gibi.
• En yaygın uygulaması ise arama motorlarıdır.
Web Crawler Uygulamaları
6. Fig. 1.1 Basit bir web crawler
algoritmasının akış diagramı. Veri
operasyonları sol tarafta kesikli çizgi ile
gösterilmiştir.
Seed URLs
Start
Initialize Frontier
Dequeue URL from
frontier
Fetch Page
Extract URLs and
add to frontier
Store Page
Done?
Stop
Repository
Frontier
Yes
No
Web
Web CrawlerAlgorithm
Frontier : Ziyaret edilmemiş URL listesi.
7. • Frontier first-in-first-out (FIFO) olarak implemente edilebilir. Bu durumda web crawler
Breadth-First crawler olarak adlandırılır.
• Yeni bulunan adresler listenin sonuna eklenir. Daha önce belirtildiği gibi frontier da
sadece ziyaret edilmemiş bağlantılar tutulur.
• Ziyaret edilmiş bağlantılar için crawl history dediğimiz bir yapı tutulur. Burada herbir link
için son erişilen zaman tutulur. Bir bağlantının crawl history e girebilmesi için daha
önceden ziyaret edilmiş olması gerekir.
• Bu liste ile ziyaret edilen bağlantıların tekrardan ziyaret edilmesi önlenmiş olur ayrıca
limitli bir boyutu olan frontier listesi de boş yere kullanılmamış olur.
• Crawl history genellikle bir hash table da tutulur. Bu da bir bağlantıyı aramada bize O(1)
işlem zamanı verir.
Breadth-First Crawlers
8. • Eğer frontier listesi FIFO yerine öncelikli kuyruk yapısı şeklinde uygulandıysa bu
preferential crawler olarak adlandırılır.
• Burdaki amaç belirli başlıktaki konuların analiz edilmesidir.
• Preferential crawler da FIFO crawler a göre seed listesi seçimi çok daha önemlidir.
• Frontier listesine yeni bir bağlantı eklenirken belirli bir puan verilerek eklenir ve liste her
zaman sıralı şekilde tutulur.
• Bu durumda frontier listesine yeni bir bağlantı eklemenin asimptotik analizine
baktığımızda O(logF) olur , F burada frontier listesinin büyüklüğüdür.
Preferential Crawler
9. • Web crawler sayfaları getirirken bir web istemci gibi davranır , sayfayı barındıran web
sunucuya bir HTTP request i gönderir ve dönen cevabı okur.
• İstemci büyük sayfaların okunurken veya yavaş cevap veren sunuculardan istekte
bulunurken zaman kaybetmemek için belli bir süre sonra bağlantı zaman aşımına
uğramalıdır.
• Genelde sayfa başına 10-100 KB den daha fazla indirilme olması engellenir.
• İstemci durum kodlarını ve yönlendirmeleri alabilmek için sunucudan dönen cevabın
başlık kısmını parse eder.
• Ayrıca burada bir bağlantı döngüsünü engellemek için de kontroller vardır , eğer bir
bağlantı birden fazla sayıda gelirse işlem durdurulur.
Implementation Issues
Fetching
10. • Sayfalar indirildiğinde veya indirildikten sonra sayfadan belirli bilgilerin çıkarılması
işlemi başlar.
• Parsing işlemi basit örneğin sadece sayfadaki linkleri çıkarmak da olabilir daha
karmaşık işlemler de olabilir.
• Bu işlem, crawler örneğin bir arama motoruna destek veriyorsa indexleme
işlemidir.
• DOM (Document Object Model) HTML sayfasının etiket ağacı şeklinde gösterir.
• Fakat standart formatta olmayan bazı formatlar crawler lar parse işlemi için başka
bir sorundur , flash içerikli siteler , çok fazla javascript kullanan siteler buna
örnektir.
Implementation Issues
Parsing
11. <html>
<head>
<title>Here comes the DOM</title>
</head>
<body>
<h2>Document Object Model</h2>
<img align="right" alt="dom pict" src="dom.png">
<p>
This is a simple
<code>HTML</code>
page to illustrate the
<a href="http://www.w3.org/DOM/">DOM</a>
</p>
</body>
</html>
Implementation Issues
Parsing
14. Implementation Issues
Link Extraction and Canonicalization
Description and transformation Example and canonical form
Default port number
Remove
http://cs.indiana.edu:80/
http://cs.indiana.edu/
Root directory
Add trailing slash
http://cs.indiana.edu
http://cs.indiana.edu/
Guessed directory*
Add trailing slash
http://cs.indiana.edu/People
http://cs.indiana.edu/People/
Fragment
Remove
http://cs.indiana.edu/faq.html#3
http://cs.indiana.edu/faq.html
Current or parent directory
Resolve path
http://cs.indiana.edu/a/./../b/
http://cs.indiana.edu/b/
Default filename*
Remove
http://cs.indiana.edu/index.html
http://cs.indiana.edu/
Needlessly encoded characters
Decode
http://cs.indiana.edu/%7Efil/
http://cs.indiana.edu/~fil/
Disallowed characters
Encode
http://cs.indiana.edu/My File.htm
http://cs.indiana.edu/My%20File.htm
Mixed/upper-case host names
Lower-case
http://CS.INDIANA.EDU/People/
http://cs.indiana.edu/People/
15. Implementation Issues
SpiderTraps
www.somehost.com
Product X
Product Y
www.somehost.com www.somehost.com/x
Product Y
Product X
www.somehost.com/x/y
Product X
Product Y
www.somehost.com/x/y/x
Bazı web sitelerinde dinamik linkler kullanılmaktadır örneğin bir e-ticaret sitesinde
X ürününün olduğu sayfada Y ürününe ait bir bağlantı olabilir , aynı şekilde Y ürününün
sayfasında da X ürününe başka bir bağlantı olabilir. Bu durumda yukarıda gösterildiği gibi
elimizde aynı sayfaya karşılık gelen farklı bağlantılar olabilir.
16. Implementation Issues
Page Repository
• Sayfalar indirildikten sonra
depolama biriminde saklama
yöntemlerinden birtanesi herbir
sayfa için depolama biriminde bir
dosya tutulmasıdır.
• Dosya ismi olarak ise bağlantının
özeti (hash) alınarak çıkan sonuç
dosya ismi olarak kullanılabilir.
www.somehost.com/x
www.somehost.com/y
www.somehost.com/z
Hash Link Name
97da5d52d02cffcdaa30eba1efbe969b
b3df6f576a7ce36687c84a492f9bd8ca
d4e74562a8f166eefedd08a6e34b5b7a
17. Implementation Issues
Concurrency
• Crawler network, CPU ve disk olmak üzere üç kaynağı da kullanır.
• Sequential crawler bu durumda çok da verimli değildir çünkü her durumda üç kaynaktan
ikisi boştadır.
• Crawler ı hızlandırmak için en önemli geliştirmelerden birtanesi eşzamanlılıktır.
• Eş zamanlılık multi process (çoklu işlem) veya multi thread kullanılarak sağlanabilir.
• Herbir thread veya process bağımsız bir crawler gibi çalışır ve ortak erişim alanları
vardır , örneğin frontier listesi tüm process veya thread ler tarafından ortak olarak
kullanılmalıdır.
• Concurrent crawler da dikkat edilmesi gereken frontier listesine birden fazla thread
erişeceği için boş olup olmadığının kontrolü dikkatli yapılmalıdır.
19. Universal Crawlers
• Universal crawler lar yapısal olarak concurrent crawler dan farklıdır.
• Universal crawlerlar iki önemli faktörü karşılamalıdır;
Performans : Universal crawler lar saniyede binlerce sayfayı işleyebilme özelliğine
sahip olmalıdır.
Policy : Erişebildikleri kadar geniş web deki önemli sayfalara erişebilmelidirler.
• Universal crawler ların concurrent crawler dan en önemli farkı thread/process yerine
asynch soketler kullanılmasıdır.
• Bu soketler bağlantıyı bloklamazlar böylece prosesler yüzlerce bağlantıyı aynı anda açık
tutabilirler.
• Bu da etkin bant genişliği kullanımı sağlar.
20. Universal Crawlers
Fetch Page
Frontier
Frontier Manager
Dequeue URL
from Frontier
Extract URLs
and Add To
Frontier
Store Page
Done?
Disk
Web
Thread Manager
Thread
Resolve DNS
Asynch Sockets
HTTP Get
Storage
Switch
Disk
Network
Switch
DNS
Cache
21. Universal Crawlers
• Universal crawler frontier listesini paralel olarak tutabilir , herbir kuyruktaki bağlantılar bir
sunucuya denk gelir.
• Yükü birçok sunucuya dağıtarak birçok bağlantı aynı anda açık kalabilir ve böylece de
TCP/IP bağlantısını açıp kapatmaktan da kurtulunur. (TCP handshake)
• DNS bağlantılarında sıradan crawler lar herbir URL için farklı bir TCP bağlantısı açar,
universal crawler TCP yerine UDP protokolünü kullanır.
• Ayrıca DNS hafızada cache tutarak sorgulamalara hızlı bir şekilde cevap vermesi
sağlanır.
22. Universal Crawlers
Coverage vs. Freshness vs. Importance
• Universal crawler lar bile web deki tüm sayfaları erişemez.
• Bu sebeple universal crawler lar daha önemli sayfalara odaklanırlar.
• Önemli sayfalar bağlantı popülerliği ölçülerek (PageRank) değerlendirilirler.
• Fakat web çok dinamik olduğundan dolayı indekslerin güncel olarak tutulabilmesi için
ziyaret edilen sayfalar yeniden ziyaret edilmelidir.
• Bu güncellik sağlanırken coverage ve freshness arasındaki bağlantı dikkate alınmalıdır.
23. Focused Crawlers
Coverage vs. Freshness vs. Importance
• Tüm web içeriğini crawl etmek yerine sadece belirli kategorilerdeki sayfaları crawl etmek
isteyebilliriz.
• Focused crawler ların bir uygulaması Yahoo! Directory (dir.yahoo.com) veya Open
Directory Project (ODP, dmoz.org) gibi web taksonomilerini (sınıflandırma bilimi)
geliştirmektir.
• Bu uygulamalarda amaç etiketlenmiş örrnek sayfalardan bir metin sınıflandırıcı
oluşturmaktır.
• Daha sonra sınıflandırıcı bu kategorideki sayfaları crawler a crawl etmesi için rehberlik
eder.
• Sınıflandırıcıyı eğitmek için çeşitli kategorilerden örnek sayfalar çekilir.
• Sınıflandırma algoritması olarak Bayes sınıflandırıcısı kullanılabilir.
• Taksonomideki herbir kategori için P(c|p) olasılığını hesaplamak için bir Bayes
sınıflandırıcısı yapılandırılabilir. c -> Category p-> Crawled Page
• Bu durumda P(top|p) = 1 olur. top-> root page
24. Focused Crawlers
Coverage vs. Freshness vs. Importance
• c* ile gösterilen alanlar focused crawler
ın ilgili oldukları kategorileri
göstermektedir.
• c1 sayfasından çıkarılan bağlantılar
frontier listesine eklenecektir.
• C1 sayfasının bağlı olduğu sayfalar
crawler ın ilgi alanındaki kategoriden
gelmektedir
• C2 sayfası ise frontier listesine
eklenmeyecektir.
• C2 sayfası ilgilenilen kategoride değildir.
C*
C2
C*
C’
top
C1
25. Focused Crawlers
Coverage vs. Freshness vs. Importance
• c* ile gösterilen alanlar focused crawler
ın ilgili oldukları kategorileri
göstermektedir.
• c1 sayfasından çıkarılan bağlantılar
frontier listesine eklenecektir.
• C1 sayfasının bağlı olduğu sayfalar
crawler ın ilgi alanındaki kategoriden
gelmektedir
• C2 sayfası ise frontier listesine
eklenmeyecektir.
• C2 sayfası ilgilenilen kategoride değildir.
C*
C2
C*
C’
top
C1
26. Crawler Design
Input
PageDownloading
Content Processing
Priority Assignment
Expansion
• Input : Başlangıç adresleri.
• Page Downloading : Bağlantılar indirilir ve bir kuyrukta
saklanır.
• Sequential (non-focused) crawler lar bu bağlantıları
FIFO mantığıyla indirir.
• Focused crawler lar ise bu bağlantıları belirli kriterlere
sırasına göre yeniden sıralayabilir veya linkleri
kuyruktan çıkarabilir.
• Content Processing : İndirilien sayfalar analiz edilir
ifade vektörlerine çevirilir
• Priority Assignment : İndirilen sayfalardan çıkarılan
bağlantılara öncelikleri belirlenerek kuyruğa aktarılır.
• Expansion : Bağlantılar genişleme için seçilir ve 2. ve
5. adımlar belirli bir kritere gelene kadar tekrar edilir.
28. Best First Crawler
• Sayfalara indirme önceliklerini dokuman(d) ile konu (q) arasındaki benzerliği
hesaplayarak atar.
• Sayfa ve konu ifade vektörü şeklinde yazılır ve benzerlik VSM’ye (Vector Space Model)
göre hesaplanır.
qi : Konu (topic) vektöründeki ifadelerin «tf -idf»
ağırlıkları
di : Sayfa vektöründeki ifadelerin «tf -idf»
ağırlıkları
• Bir döküman için ifade ağırlıkları aşağıdaki gibi hesaplanır:
29. Semantic Crawler
• Semantik crawler da konuda geçen ifadelerle anlamsal olarak benzer ifadeler de
alınarak konu genişletilir.
• Birbirine benzer ifadeleri almak için «Wordnet» kullanılır.
• Konu ve aday sayfalar arasındaki benzerlik içerdikleri ifadelerin anlamsal benzerliği ile
hesaplanır.
• Bir p sayfasının önceliği aşağıdaki şekilde hesaplanır.
• K : Başlıktaki (konudaki) ifadeler
• L : Sayfa veya bağlantı metnindeki ifadeler
• Wk,Wl : İfade ağırlığı
• Sim(k,l) : k ve l nin anlamsal benzerliği
1 Eğer l k ifadesinin eşdeğer setinde varsa
Sim(k,l)
0 Diğer durumlarda
31. • VSM ya da TVM (Term Vector Model) metin dökümanlarını vektör olarak ifade etmede
kullanılır.
• Döküman ve sorgular vektör olarak ifade edilir ;
• dj = (w1,j,w2,j,....,wt,j)
• q = (w1,q,w2,q,....,wt,q)
• Herbir boyut farklı bir ifadeye (metinlerde ifade genellikle anahtar kelime) denk gelir.
• Eğer sorgu ifadesi dökümanda varsa vektördeki değeri 0’dan farklı bir değer alır.
• Bu değer birçok yöntemle hesaplanabilir.
• En çok kullanılan yöntem «tf-idf» tir.
• tf : term frequency
• İdf : inverse document frequency
Vector Space Model
32. • td-idf kullanılarak d dökümanı için ağırlık vektörü hesaplanabilir.
wt,d = tf.idf wt,d = tft,d.
• tft,d : d dökümanında t ifadesinin frekansı
• |D| : Döküman setindeki toplam döküman sayısı
• |{d’ ∈ D | t ∈ d’}| : t ifadesini içeren toplam döküman sayısı
• : idf (inverse document frequency)
Vector Space Model
log
|D|
|{d’ ∈ D | t ∈ d’}|
log
|D|
|{d’ ∈ D | t ∈ d’}|
33. • Örneğin d1 dökümanı ile q query si
arasındaki benzerlik cosine similarity
kullanılarak aşağıdaki gibi hesaplanır.
Vector Space Model
• Cosine Similarity:
• A.B = ||A||.||B||. cosα
35. • HMM crawler sayfa içeriği ve ilgili sayfalar giden yol arasında bir ilişki kurarak çalışır.
• Eğitim seti oluşturmak için kullanıcı belli bir konudaki sayfaları bulur ve bu sayfaların
konu ile ilgili olup olmadığını etiketler.
• Daha sonra bu sayfalar k-means methodu kullanarak kümelenir.
• Konu ile ilgilli sayfalar C0 kümesini oluştururken , ilgili olmayan sayfalar C1 den Ck ya
kadar olan kümeleri oluşturur. HMM mo0deli de bu kümlerin üzerine kurulur.
• Herbir sayfa iki durum ile karaketerize edilir ;
• Visible State : Sayfanın içeriğine göre ait olduğu kümeye denk gelen durum
• Hidden State : Sayfanın hedef sayfadan uzaklığı.
Learning Crawlers
36. • Sayfanın ait olduğu kümenin önceliği sayfa crawl edildiğinde hedef sayfaya götürme
olasaılığı ile hesaplanır.
Learning Crawlers
• L0 : Hedef veya seviye 0 sayfalar
• L1: Seviye 1 sayfalar(Hedeften 1
bağlantı uzaklıkta)
• L2: Seviye 2 sayfalar (Hedeften
2 bağlantı uzaklıkta)
• L3: Hedeften 3 bağlantı veya
daha uzak sayfalar
• C0: Küme 0
• C1: Küme 1
• C2: Küme 2
• Aynı clusterdaki sayfalar farklı seviyelere
• Aynı seviyedeki sayfalar farklı clusterlara ait olabilir.
• Sayfalar seviyelerine(hidden state) Li(i->seviye) ve ait oldukları clustera (cj) göre
• karakterize edilir. Bu da HMM ile modellenir.
Şekil : HMM Eğitim Seti
37. • Bu modelde:
1- InitialprobabilityMatrix(Başlangıçolasılıkmatrisi)
• π= {P(L0 , . . . ,Lstates -1)} states: number of hidden states
• P(Li) -> 1 zamanında i gizlivdurumunda olma olasılığı
• Bu olasılık her bir sayfaya eğitim setinde aynı gizli durumda olan sayfaların yüzdesi
atanarak tahmin edilir.
2-TransitionProbabilitiesMatrix(GeçişOlasılık Matrisi)
A = [aij] 0 <= i <= states
Aij -> Eğer t anında Li durumunda ise, t+1 durumunda Lj de olma olasılığı
Bu olasılık eğitim setinde Li’den Lj’ye geçişler sayılarak tahmin edilir ve bu değer Liden
olan tüm geçişlere göre normalize edilir.
Learning Crawlers
38. Learning Crawlers
3- EmissionProbabilitiesMatrix(Durum Olasılık Matrisi)
B = [bij] 0 <= i <= states 0 <= j < clusters (Toplam cluster sayısı)
• Bu olasılıklar Li durumunda Cj clusterına ait olan sayfaların, Li durumunda olan tüm
sayfalara normalize edilmesi ile bulunur.
• Tüm bu bileşenler (π ,A ve B) crawling başlamadan önce eğitim seti üzerinden
hesaplanır.
• Crawler sayfayı indirir, sayfaların vektörlerini (VSM kullanarak) çıkarır ve herbir sayfayı
K- nearest neighbours algoritmasını kullanarak kümelere atar.
• Sayfanın hedef sayfaya götürme olasılığı HMM parametreleri kullanılarak hesaplanır.
• Bu olasılık sayfada bulunan linkin ziyaret edilme önceliğine karşılık gelir.
• HMM model parametreleri kullanılarak bir sonraki adımdaki durum tahmini olarak
hesaplanır.
• Bu tahmini değeri hesaplamak için her bir ziyaret edilen sayfa a(Lj , t) , j= 0,1,...states
ile ilişkilendirilebilir.
• a(Lj , t) -> t zamanda Lj durumundaki sayfanın indirilme olasılığı
• Bu değer aşağıdaki gibi recursive olarak hesaplanabilir.
(1)
39. Learning Crawlers
• Aij : A matrisindeki Li’den Lj durumuna geçiş olasılığı
• Bjct : B matrisindeki Lj durumunda n ct kümesinin çıkış olasılığı
• A(Lj , 0) : Bitiş adımı ise başlangıç olasılık matrisi π ‘den alınır.
• A(Lj , t+1) : bir sonraki adımda Lj durmunda olma olasılığı
• Bir sonraki adımda L0 (relevant page) durumunda olma olasılıgı HMM crawler
tarafından sayfalara atanan önceliktir.
• Eğer iki küme eşirt olasılık veriyor ise 1 ve 2 adımlarında daha yüksek olasılıkla
hedef sayfaları gösteren kümeye daha yüksek öncelik atanır. (HMM crawlerlarda
öncelik ataması)
• Bir başka yaklaşım olan «Proposed HMM Crawler»da ise sayfanın öncelik skoru
HMM crawler tarafından hesaplanan önceliklerin ortalaması ve centroid vektör (ilgili
sayfaların kümesini sayfanın ifade vektörü(term vektör) ) ile gösterir.
(2)
40. Proposed Crawler UygulamaAdımları
• Giriş : Eğitim seti ,aday sayfa (p)
• Çıkış: p sayfasına atanan öncelik değeri
1. K-Means metodu ile eğitim setini kümeler.
2. Π,A,B matrisleri Centroid (Cr) hesaplanır.
3. P sayfasının bir clustera (Ct) K-Nearest Neighbours ile sınıflandırılması
4. Geçerli bir adım için gizli durum olasılıklarının hesaplanması.
5. Bir sonraki adım için gizli durum olasılıklarının hesaplanması
6. PriorityHMM(P) = a(L0 ,t+1) önceliğinin hesaplanması
7. Similarity (p,cr)-> sayfa içeriği ve ilgili sayfaların centroidi
arasındaki benzerliğin VSM kullanılarak hesaplanması
8. Sayfa önceliğinin hesaplanması
42. Crawler Etiği
• Crawlerlar özellikle web serverlar üzerinde genel olarak band genişliğini çok fazla
kullanırlar.
• Eğer bir crawler bir web sunucusuna çok hızlı bir şekilde istek gönderiyorsa (sn de 10
veya daha fazla) crawler lar bu durumda web kaynaklarını aşırı derecede kullanıyor
demektir.
• Eğer bu istekler bir web sunucusunun kullanıcılara (end user) cevap veremeyecek kadar
fazlaysa crawler tarafından servisin kısıtlanması atağı (denial of service attack) yapmış
oluruz.
• Bu durumun önüne geçmek için örneğin concurrent crawler da frontier yöneticisi
tarafından thread lere URL ataması yapıldığı sırada yapılabilir.
Web SunucuYükü
43. Crawler Etiği
• Crawlerlar User-Agent http başlıklarını kullanarak crawl ettikleri web sayfalarının
yöneticilerine bilgi vermelidirler.
• Bu bilgi sadece crawler ın ismi ve versiyonu değil aynı zamanda crawler hakkında
detaylı bilgi veren bir bağlantı ve bir mail adresi de içermelidir.
• Bunun için genellikle crawler için bir web sayfası oluşturulur ve bu web sayfası http
başlığında gönderilir.
User-Agent HTTP Header
44. Crawler Etiği
• Bu kural crawler lar ile ilgili bir de facto(genel kabul görmüş) kuralıdır.
• Bu standart web sunucu yöneticilerinin crawler a hangi sayfalara erişemeyeceği bilgisini
verebilmesini sağlar.
• Bu işlem robots.txt adı verilen web serverın kök dizininde bulunan
(http://www.somehost.com/robots.txt) isteğe bağlı bir dosyadır.
• Bu dosya ile farklı robotlara farklı kurallar verilebilir. (Bir önceki konuda robotların nasıl
tanınabildiğini anlatmıştık)
Robot (Exclusion) Dışlama Protokolü
User-agent: *
Disallow: /
robots.txt
45. Crawler Etiği
• Bu kurallar web sunucuları etil olmayan
crawler lardan koruyamaz.
• Web sunucu robots.txt yi kullansa bile bu
crawler ları engelleyen birşey değildir
robots.txt nin olması isteğe bağlı olduğu
gibi bu crawler ın bu kurallara uyması da
isteğe bağlıdır.
• Fakat bu kuralları takip etmeyen crawler lar
birçok web sunucu tarafından IP bazlı
engellenmektedir.
• Fakat yine de crawler lar kendilerini bir
browser gibi tanıtarak (HTTP başlığında
user-agent alanında) işlemlerini
yapabilmektedir.
• Bu da bu tip crawler ların anlaşılabilmesini
güçleştirmektedir.
BuAdımlarYeterli Mi?
47. • Durum uzayında bir durumdan diger bir duruma ugrayan sistem.
• Bir sonraki durum sadece o anki duruma bağlıdır, öncesinde olan olaylar bir sonraki
duruma geçişi etkilemez.
Markov Zinciri
• Markov zincirleri genelde yönlü graph kullanılarak
tanımlanır.
• Graphın kenarları bir durumdan diger duruma geçişteki
olasılığı gösterir.
Basit iki durumlu markov zinciri
48. 1 = A, 2 = B, 3 = C
Geçiş matrisi:
0.9 0.075 0.025
P= 0.15 0.8 0.05
0.25 0.25 0.5
• Bu durumda durumlar üzerindeki dağılım stochastic(olasılık) vektörü (tüm elemanların
toplamı 1 olan ve negatif elemanı olmayan) olarak yazılabilir ve x(n+1) = x(n) p olur.
• Yani bir n zamanında durum 2(B) ise 3 zaman sonra (n+3) dağılım:
x(n+3) = x(n+2) p x(n+2) = x(n+1) p x(n+1) = x(n) p
=(x(n+1) p)p = x(n+1) p2
0.9 0.075 0.025 3
= 0 1 0 0.15 0.8 0.05
0.25 0.25 0.5
= 0.375 0.56825 0.07425
Markov Zinciri
A B
C
50. • Basit bir markov modelinde (örn:Markov zinciri), durum gözlemciye (visible)
görünürdür.
• Bu durumda tek parametre durum geçiş olasılıklarıdır.
• HMM gözlemlenmeyen (Gizli-hidden) durumların da olduğu bir markov modelidir.
• HMM’de durum direkt olarak visible değildir; fakat duruma bağlı olan çıkış visible’dır.
• Her bir durum mümkün olan çıkışlar üzerinden bir olasılık dağılımına sahiptir.
• Bu sebeple HMM tarafından üretilen çıkışların sırası, bize durumların sırası hakkında
bilgi verir.
Hidden Markov Model
51. • X - Durumlar
• Y - Gözlemler
• a - Durum geçiş olasılıkları
• B - Çıkış olasılıkları
Hidden Markov Model
52. • vazo state Bir odada 3 vazo var. (x1, x2 ,x3)
• Her bir vazoda bilinen 4 adet top var. (y1 ,y2, y3)
• Odalardaki vazolardan birinden rastgele bir top alınıyor. Ve bu top taşıma bandına
koyuluyor.
• Gözlemci topların sırasını görebiliyor fakat topların alındıgı vazoların sırasını
göremiyor.
• Vazonun seçilmesi için belirli bir prosedür var:
• n. Top için seçilen vazo rastgele bir sayıya ve (n-1). Top için seçilen vazoya bağlı.
• Bu markov prosesi gözlemlenemez. Sadece topların sırası gözlemlenebilir bu nedenle
HHMM olarak adlandırılır.
• Gözlemci vazoların yapısını ve örnek gelen 3 topun sırasını gözlemlediği halde
gözlemci 3. topun hangi vazodan alındığına emin olamaz fakar herbir vazodan gelme
olasılıklarını bulabilir.
Hidden Markov Model