Sunteți pe pagina 1din 41

Programare Internet

Curs 2 & 3
WWW-search engines

{ World Wide Web multitudine de date...


{ WWW ofer acces la o cantitate imens de informatie
{ se estimeaz ca in WWW exista peste 250 miliarde de documente
(nivelul anului 2014)
{ circa 150 miliarde sunt indicizate de ctre Google
{ Dcumentele isi dubleaz numrul in fiecare an
{ Nu se vede inca o limit a acestei cresteri
WWW-search engines

{ pentru a avea un acces facilitat la aceast multitudine de informatii, un


utilizator are nevoie de instrumente adecvate

Motoarele de cutare
WWW- search engines

{ Tipuri de baza ale serviciilor de cautare:


{ Webcatalogue (motoare bazate pe un catalog)

{ cutare pe baza de index

{ motoare de tip meta

{ motoare de cutare contra cost

8
WWW-search engines
1 Index-based vs. Catalogue-based
2 Meta-Search
3 Cum funcioneaz Google?
1 Index - based vs. Catalogue-based

Cataloage Web
{ Serviciu de cutare al crui continut este gestionat de ctre
redactori "umani"
{ Acesti redatori creaz un catalog ordonat dpdv tematic

{ Paginile web sunt


{verificate manual
{clasificate de ctre redactie
{refuzate sau acceptate pentru publicare
{ Cutarea are loc prin "rsfoirea" de ctre utilizator a catalogului
Index - based vs. Catalogue-based

Web catalogues (motoare de cautare bazate pe cataloage)


{ Pro:
{ aprecierea "intelecutal" a paginilor web de ctre personal uman
mbunteste calitatea (precizia) cutrii

{ Contra:
{ Relativ puine date
{ problem serioas de actualitate a informatiilor
{ proces destul de greoi de evaluare a calittii paginilor
{ Noile pagini web trebuie adugate manual de ctre creatorii paginilor
1 Index - based vs. Catalogue-based

Web catalogues
{ Cum se sorteaza entry-urile n interiorul unui anumit catalog?
{ Manual
Redactorul atribuie fiecrui site/document o pondere dpdv al
relevantei sale pentru respectivul catalog

{ Automat
Sortarea n interiorului unui domeniu tematic are loc alfabetic/cronologic
1 Index - based vs. Catalogue-based

Web catalogues
{ www.yahoo.com
{ "Yet Another Hierarchical Officious Oracle"
{ fondat in 1994
{ 201 milioane de utilizatori
{ din care 93 milioane activi
{ > 1.5 miliarde Page Views pe zi
{ 4500+ Servers
{ 25 International Sites
{ 13 Languages
{ 8.1 Million Lines Of Code in C/C++
{ 3.0 Million Lines Of Code in Perl
1 Index - based vs. Catalogue-based

Motoare de cutare de tip Index-based


{ Datele indexate sunt adunate si procesate n mod complet automat

{ Functii de baz
{Adunarea datelor
{Analiza documentelor si evaluarea lor
{Constructia si gestiunea structurilor de tip index
{Rspunsul la query-uri de cutare pe baza relevantei termenilor
1 Index - based vs. Catalogue-based

Motoare de cutare de tip Index-based


{Adunarea datelor:
{ Sunt folosite tool-uri sw speciale ce lucreaz autonom si automat
(Robots, WebRobots)
{ Robotii pot gsi n mod automat noi site-uri si documente
n spatiul WWW
{ Documentele deja existente (indexate) trebuie s fie verificate
periodic dpdv al existentei, consistentei si al modificrilor
Index - based vs. Catalogue-based

Motoare de cutare de tip Index-based


{ Analiza si evaluarea documentelor:
{ Sunt folosite tool-uri sw pentru analiza si evaluarea continutului
(Information Retrieval Systems)
{ Interventiile manuale au loc de obicei la anomalii sau in cazul violrii
regulilor existente
Index - based vs. Catalogue-based

Motoare de cutare de tip Index-based


{ Constructia si gestiunea structurilor de date bazate pe index:
{ Information Retrieval Systems decid care e continutul relevant
al documentelor analizate
{ clasific documentele analizate n functie de categoriile relevante
(cuvinte cheie - keywords) n interiorul unei baze de date
{ Documentele sunt nzestrate cu o PONDERE
si sunt ncadrate ntr-o anumit categorie
mpreuna cu ponderea aferent
{ Procesele care conduc la generarea unui continut
de date ce poate fi parcurs = indexare
Index - based vs. Catalogue-based

Motoare de cutare de tip Index-based


{ Raspunsul la cererile de cutare:
{ Cutarea are loc prin introducerea unuia/mai multor cuvinte cheie
{ Evaluare automat a relevantei documentelor aflate n baza de
date duce la crearea unei liste populate cu rezultatele query-ului
{ Query Processor (adevratul motor de cutare) se ocup de cutarea
documentelor si de ordonarea lor n list pe baza relevantei lor
Index - based vs. Catalogue-based

Motoare de cutare de tip Index-based


{ Pro:
{ Culegerea automat a datelor (crawling) permite crearea unei
baze de date "ntotdeauna" acutalizat (cu o precizie cunoscut)

{ Contra:
{ Precizia cutarii depinde de algoritmii folositi pentru evaluarea
relevantei documentelor
{ Evaluarea automat a relevantei documentelor poate duce
la rezultate slabe dpdv calitativ (obiectivitate scazut)
Index - based vs. Catalogue-based

Motoare de cutare de tip Index-based


{ www.google.com
{ dezvoltat n 1998 de ctre 2 doctoranzi ai universitatii Stanford
Larry Page si Sergey Brin
{ Googol expresie matematica pt. 10100
{ > 150 miliarde documente , 20 miliarde de imagini
{ peste 200 de versiuni in diferite limbi
{ 800 milioane de utilizatori diferiti pe lun
{ > 1 miliard de query-uri pe zi
{ Evaluare automat a relevantei (PageRank)
Motoare de cutare de tip Meta

Meta-Search Engines
{ Desfsurarea unui query (unei interogri):
1. Acceptarea unui query prin intermediul unei interfete proprii (web page)
2. Generarea de query-uri de cutare pt motoarele de cutare
3. Trimiterea query-urilor prin HTTP ctre motoarele "in gestiune"
4. Asteptarea si culegerea rezultatelor furnizate de motoarele de cutare
5. Analiza rezultatelor, eliminarea duplicatelor, crearea unui "ranking"
pt rezultatele obtinute
6. Reprezentarea rezultatelor (lista)

Cu alte cuvinte, un fel de brokeri web...


Motoare de cautare de tip Meta

z Meta-Search Engines
{ www.metacrawler.com
{ dezvoltat n 1994 la Universitatea din Washington
{ trimite query-uri simultan la 23 motoare de cutare
{ Yellow Pages / White Pages
{ folosete un proxy care garanteaz anonimitatea query-urilor !!!!!
WWW-search engines
1 Index-based vs. Catalogue-based
2 Meta-Search
3 Cum funcioneaz Google?
Cum funcioneaz de fapt Google?

Functionarea Google:
{ Google - adunarea datelor
{ Problema 1: o multitudine de tipuri de date in WWW
{ documente HTML statice
{ documente HTML dinamice
{ imagini (JPG/GIF/PNG/)
{ documente Postscript/PDF
{ documente Word/Powerpoint
{ etc

decizii asupra tipurilor de date care vor fi arhivate


Cum funcioneaz de fapt Google?

Functionarea Google:
{ Google - adunarea datelor
{ Problema nr. 2: WWW is alive
{ Datele si documentele in WWW
{ au o "durat de viata" scurt
{ sunt supuse unor modificri permanente
{ depind de alte documente (links)

volumul de date gestionat trebuie actualizat periodic!


Cum funcioneaz de fapt Google?

Functionarea Google:
{ Google - adunarea datelor
{ Google foloseste WebRobots pentru scanarea spatiului WWW
{ WebRobots lucreaza divizat pe baza modelului Client/Server
Resursele sunt scanate
verificate si analizate
periodic de catre robot
Cautarea de resurse
noi sau modificate
in spatiul WWW Cerere
HTTP-Request

Robot
WebCrawler Document
Spider HTTP-Response

WebRobot Server WWW


Cum funcioneaz de fapt Google?

Functionarea Google:
{ Google - adunarea datelor
{ Componentele unui sistem de tip Web Robot
{ Gatherer
Adunarea documentelor din spatiul WWW
{ Loader
Organizarea (scheduling) task-urilor de adunare doc.
{ URL - Database
Gestionarea ntregului volum de date
{ Checker
Filtrarea datelor adunate
Cum funcioneaz de fapt Google?
Functionarea Google:
{ Google - adunarea datelor
{ Componentele unui sistem WebRobot

URL-DB
1 Checker

Loader Information
11 f 3
Retrieval
2 2 2

Gatherer Gatherer Gatherer


Cum funcioneaz de fapt Google?

Google - adunarea datelor


{ Componentele unui WebRobot
{ Gatherer
{ Scop: Aduna cat mai multe documente posibil si mentine
datele la cel mai actual nivel posibil

{ Probleme: resurse dinamice, insule, etc.

{ Decizii n ceea ce priveste momentul de la care se porneste


{ Criterii: ultima vizi, ct de des este schimbat continutul
{ HTTP GET-Request

GET http://www.unitbv.ro/~popescu/index.html HTTP/1.1

User-Agent: Googlebot/2.1
Cum funcioneaz de fapt Google?

Google - adunarea datelor


{ Componentele unui WebRobot
{ Gatherer
{ Identificarea accesului in log-file pe serverul web
66.249.64.173 - - [10/Dec/2009:09:09:37 +0100]
"GET /~popescu/index.html HTTP/1.0" 404 1614
"-" "Googlebot/2.1

{ WebServer-ul poate refuza cutarea prin /robots.txt:


User-agent: Googlebot
Disallow: /~user/private/
WebRobots
User-agent: * Exclusion Protocol
Disallow: /
Cum funcioneaz de fapt Google?

Google - adunarea datelor


{ Componentele unui WebRobot
{ Gatherer
{ autorul HTML-ului poate gestiona robotii printr-un tag META
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">

{ "Robot-Netiquette" impune respectarea standardului de excluziune


dar nu toti robotii aplic regulile standardului
Cum funcioneaz de fapt Google?

Google - adunarea datelor


{ Componentele unui WebRobot
{ Checker
{ decide care din documente gsite de gatherer vor fi trimise la
Information Retrieval-System mai departe
de ex. se face o selectie pe baza
{ tipului de document,
{ corectitudinea sintaxei,
{ disponibilitatea
{ decide care din link-urile gsite vor fi si urmrite
{ contracareaza SPAM-ul, broken links, Redirect-uri, etc.
{ elimin dublurile
Cum funcioneaz de fapt Google?
Google : analizarea datelor
{ catalogarea documentelor text pe baza continutului
{ Procedura:
{ Convertirea documentelor ntr-un tip comun de document
(HTML, Postscript, PDF, DOC, PPT sunt transformate in docuri TXT)
fond de date care poate fi parcurs intr-un mod eficient
{ cautarea sirurilor de caractere relevante prin analiza SEMANTIC
a fisierului text
{ cuvinte cheie,
{ titluri,
{ bullet-uri, liste ordonate etc.
{ legarea cuvintelor cheie (keywords) de documente
{ crearea Ranking-ului pe baza diferitelor criterii de evaluare

normalizarea datelor analiza datelor Indexare


Cum funcioneaz de fapt Google?
Google: analizarea datelor

normalizarea datelor

identificare cuvinte
Information
identificarea limbii Retrieval

Word Stemming
Robot-System
descriptori

Black List Denormalizare


si analiz
Cum funcioneaz de fapt Google?
Google: analiza datelor
{ crearea descriptor-ilor Keywords
{ Scop: un document trebuie reprezentat dpdv al continutului cat mai
complet cu ct mai putine cuvinte cheie (keywords)
{ pot fi folosite filtre de relevant suplimentare

{ ex. HTML <H><B>-Tags, anchors, etc.


{ ex. eliminarea conjunctiilor, pronumelor, cunvintelor de legtura, etc
{ analiza numrului de aparitii ale unui cuvnt cheie relevant

Legea lui Zipf:


Pentru autorul unui text este de multe ori mai simplu s repete
anumite cuvinte care descriu o tematica, dect s caute de fiecare
dat noi termeni.
George Kingsley Zipf
(1902-1950)
Cum funcioneaz de fapt Google?
Google: analiza datelor
{ Structuri de date pentru Information Retrieval
{ Necesitatea de a avea un rspuns rapid la query-urile de cutare duce
la crearea unor structuri speciale de date
{ File system de tip direct
{ Stocarea documentului si a listei de descriptori (keywords) extras
din respectivul document

Lista
Descriptor 1
Descriptor 2
Descriptor 3

Document
Cum funcioneaz de fapt Google?
Google: analiza datelor
{ Structuri de date pentru Information Retrieval
{ Necesitatea de a avea un raspuns rapid la query-urile de cautare duce
la crearea unor structuri speciale de date
{ File system de tip invers
{ Unui descrpitor (keyword) i este anexat o serie de documente
relevante

INDEX File de tip invers: Bacu


Aachen DocId Pos Frecventa Pondere
1234 1,5,6 3 5.43
.
Bacu 1235 2,4 2 4.33

Zair
File de tip direct: DocId 1234
Descriptor Pos Frecventa
Bacu 1,5,6 3
Cum funcioneaz de fapt Google?
Google: analiza datelor
{ Ponderi:
{ Pentru a avea rezultate de calitate ale cutarilor cuvintelor cheie,
trebuie ca documentele aflate n indexul invers s fie nzestrate
cu o pondere conform cu relevanta lor dpdv al keyword-ului

{ Ce este important?

{ Term Frequency Algorythm (TFA)


{ Legea lui Zipf:
Cu ct mai des apare un cuvnt cheie ntr-un text, cu att mai
important trebuie s fie respectivul cuvnt.
{ aparitia absolut a unui termen aparitia relativ
# KeyWord
# Words
Cum funcioneaz de fapt Google?
Google: analiza datelor
{ Ponderi:
{ Ce este important?

{ Inverse Term Frequency Algorythm (ITFA)


{ pentru a caracteriza un document ct mai precis cu ajutorul unui
cuvnt cheie, si pentru a-l diferentia de alte documente, trebuie
considerat si apartitia keyword-ului n alte documente

# KeyWord
# Words # Documents

Cu ct sunt mai multe documente coninnd un anumit keyword,cu


att keyword-ul caracterizeaz mai putin fiecare document n parte!
Cum funcioneaz de fapt Google?
Google: analiza datelor
{ Relevan i ponderi
{ Pentru a avea rezultate de calitate ale cutrii cuvintelor cheie,
trebuie ca documentele aflate n indexul invers s fie nzestrate
cu o pondere conform cu relevana lor dpdv al keyword-ului
{ Ponderarea relevanei
{ Google distinge ntre documente importante i neimportante
{ Important:
1. un document este cu att mai important cu ct mai multe documente
pointeaz ctre acest document prin intermediul unor link-uri.
2. un document care pointeaz/duce ctre un document "important"
prin intermediul unui link este el nsui important.
3. cu ct un document are mai multe link-uri ctre un alt document, cu
att mai "neimportant" este fiecare link in parte.
Cum funcioneaz de fapt Google?
Google: analiza datelor
{ Relevan i ponderi
{ din 1-3 se poate crea o formul pentru calcularea importanei
(PageRank, PR) unui document
{ fie PR(A) ranking-ul documentului A
{ fie T1Tn documente coninnd un link ctre A
{ fie PR(T1) PR(Tn) ranking-ul documentelor T1Tn
{ fie c(Ti) numrul de link-uri existente n documentul Ti
{ d factor de aproximare (0<d<1)

c ( A ) PR (Ti )
PR ( A ) = (1 d) + d
i=1 c(Ti )
Cum funcioneaz de fapt Google?
Google: analiza datelor
{ Relevan i ponderi
{ Exemplu de calcul pt. PageRanking

A B
Calculul se face iterativ pn cnd se
ajunge la o "stare" stabil (punct fix).
1.0 1.0

Nr. PR(A) PR(B) PR(C) PR(D)


C D
1 1,0 1,0 1,0 1,0
2 1,0 0,575 2,275 0,15
1.0 1.0
3 2,083 0,575 1,1912 0,15

n 1,49 0,7833 1,577 0,15
Cum funcioneaz de fapt Google?
Google: analiza datelor
{ Relevan i ponderi
{ Exemplu de calcul pt. PageRanking

A B
Calculul se face iterativ pn cnd se
1.49 ajunge la o "stare" stabil (punct fix).
0,78

Nr. PR(A) PR(B) PR(C) PR(D)


C D
1 1,0 1,0 1,0 1,0
2 1,0 0,575 2,275 0,15
1,57 0,15
3 2,083 0,575 1,1912 0,15

n 1,49 0,7833 1,577 0,15
Cum funcioneaz de fapt Google?

Alte criterii de relevant si de stabilire a ponderilor


{ Click-Popularity
{ Premiz:
cu ct un document este ales mai des de ctre useri dintr-o
list de rezultate, cu att mai mare este relevana lui.

{ criterii suplimentare:
{ documente vechi vs. documente noi de cnd exist doc-urile n DB

Pt. Web-designeri: click-popularity-ul crete dac coninutul tag-ului


META de tip DESCRIPTON din HEADER este scris bine!!

S-ar putea să vă placă și