Metode de clasificare a paginilor w eb bazate pe text mining [621945]

Universitatea din București
Facultatea de Matematică și Informatică

Lucrare de licen ță
Metode de clasificare a paginilor w eb bazate pe text mining

Absolvent: [anonimizat]: Lector Dr. Mihai Cherciu

28.06.2017

2

Avizul profesorului coordonator,
…………………………………

DECLARAȚIE

Subsemnatul/Subsemnata ______________________________________________ ,
candidat(ă) la examenul de licență , sesiunea iunie 2017, la Facultatea de Matematică și
Informatică , programul de studii ________________________________________ , declar pe
propria răspundere că lucrarea de față este rezultatul muncii mele, pe baza cercetărilor mele și
pe baza informațiilor obținute din surse care au fost citate și indicate, conform normel or etice, în
note și în bibliografie. Declar că nu am folosit în mod tacit s au ilegal munca altora și că nicio
parte din teză nu încalcă drepturile de proprietate intelect uală ale altcuiva, persoană fizică sau
juridică. Declar că lucrarea nu a mai fost prezen tată sub această formă vreunei instituții de
învățământ superior în vederea obținerii unui grad sau titlu științific ori didactic.

Data, Semnătura,
_______________ _______________

3
Cuprins

1. Introducere ………………………………………………………………………………………………….. 5
1.1 Definiții: data mining, web mining, web content mining, text mining ………. 7
1.2 Clasificarea automată a paginilor web – noțiuni generale ………………………… 8
1.3 T ipuri de clasificare a paginilor web ………………………………………………….. 10
2. Aplica ții ale clasificării paginilor web …………………………………………………………. 14
2.1 Construirea și mentenanța directoarelor web ………………………………………. 14
2.2 Îmbunătățirea calității rezultatelor returnate de motoarele de căutare … ….. 15
2.3 Sistemele de tip întrebare – răspuns …………………………………………………… 16
2.4 Crowler -ele cu domeniu specific ………………………………………………………. 17
2.5 Alte aplicații ……………………………………………………………………………………. 18
3. Etape preliminare în procesul de clasificare a paginilor web ………………………… 19
3.1 Caracteristicile paginilor web folosite în procesul de clasificare ……………. 20
3.2 Preprocesarea paginilor web ……………………………………………………………… 21
3.3 Reprezentarea paginilor web ……………………………………………………………… 23
3.4 Reducerea dimensionalității spațiului de atribute …………………………………. 27
4. Tehnici de clasificare a paginilor web ………………………………………………………….. 29
4.1 Clasificatoare bazate pe profiluri ……………………………………………………….. 30
4.1.1 Clasificatorul Rocchio ………………………………………………………… 30
4.1.2 Support Vector Machine ……………………………………………………… 31
4.1.3 Clasificatorul pe bază de rețele neuronale ……………………………… 34
4.2 Clasificatoa re bazate pe învățarea de reguli …………………………………………. 35
4.2.1 Clasificatorul pe bază de reguli de asociere ……………………………. 35

4
4.2.2 Clasificatorul pe bază de arbori de decizie ……………………………… 36
4.3 Clasificatoare prin exemplu direct ……………………………………………………… 38
4.3.1 Clasificatorul k- NN (k -Nearest -Neighbors) …………………………… 38
4.4 Cla sificatoare bazate pe parametri ……………………………………………………… 39
4.4.1 Clasificatorul bayesian naiv ………………………………………………….. 39
5. Clasificator bayesian de pagini web implementat folosind PHP și MySQL ……. 41
5.1 Principalele componente și funcționalități ale aplicației ……………………….. 41
5.2 Ex trase din codul sursă …………………………………………………………………….. 43
6. Bibliografie ………………………………………………………………………………………………… 54

5
1. Introducere

Cu câteva miliarde de pagini web accesibile public și cu o rată de creștere de câteva
milioane de pagini adăugate zilnic, domeniul world wide web reprezintă un depozit de
date extrem de vast și dinamic. G ăsirea de informații utile în această colecție uriașă de
date devine o sarcină din ce în ce mai dificilă .
Pentru căutarea informațiilor în baze de date obișnuite există metode tradiționale de
regăsire a informați ei dar pent ru a obține informații utile de pe web lucrurile sunt mult
mai complicate . În primul rând w orld wide web este o colecție uriașă de documente cu
structuri diferite, având conținut eterogen, între care există numeroase hiper legături.
Conținutul web nu înseamnă numai text ci și imagini, materiale audio, video,
hiperlegaturi, informații de accesare a paginilor web înregistrate în log -urile serverelor
web etc. Dacă vedem web -ul ca o uri așă bibliotecă, documentele din această bilbiotecă
nu sunt ordonate după categorie, titlu sau autor. Iată de ce căutarea în această bază de
cunoștințe este atât de dificilă.
Motoarele de căutare generale, cum ar fi www.google.com , sunt instrumentele cele mai
des folosite pentru căutarea informațiilor utile pe web. Aceste motoare de căutare
folosesc programe numite crowler , sau spider , sau robot , care caută automat și indexează
paginile web construind și salvând indecși bazați pe cuvinte le cheie găsite în paginile
analizate. Motoarele de căutare dispun deci de indecși imenși de care se folosesc pentru a
localiza paginile care conțin cuvintele cheie din interogările utilizatorilor. Din cauza numărului uriaș de pagini și din cauza dinamismului specific w eb-ului care face ca noi
pagini să fie publicate în fiecare zi iar conținutul pagini lor deja existente să fie modificat
frecvent, motoarele de căutare nu pot ține evidența completă a tuturor paginilor web în
orice moment. În plus, din cauza numărului mare de pagini care tratează subiecte
similare, motoarele de căutare returnează un număr uriaș de pagini pentru orice
interogare . Deși se fac eforturi considerabile pentru ca motoarele de căutare să afișeze pe
primele poziții cele mai relevante pagini, multe dintre rezultatele returnate conțin informații doar parțial relevante pentru subiectul căutat.
Iată de ce, pentru a găsi anumite informații, utilizatorii găsesc uneori utile directoarele
web care cuprind site -uri clasificate în anumite categorii generale. Atunci când cunosc
categoria de site -uri pe care vor găsi informația căutată, utilizatorii se pot folosi eficient
de directoarele web. M otoarele de căutare puse la dispoziție de directoarele web pot fi
folosite pentru a căuta doar site- urile din interiorul unei categorii listată în directorul web ,
facilitând astfel regăsirea informației relevante pentru utilizator . Aceste directoare pot fi
actualizate și extinse cu ajutorul unor programe de tip crowler , care vor căuta noi pagini

6
web pe baza hiperlegăturilor din paginile deja cunoscute și vor clasifica paginile găsite
pentru a decide care dintre ele pot fi incluse în director ul web .
Anumite servicii web (cum ar fi www.travel -finder.com ) pun la dispoziție un index de
site-uri dintr -o categorie specifică. Pot fi deci considerate directoare web specializate.
Pentru a indexa aceste site- uri, sunt folosite crowler -e cu domeniu specific, construite
special pentru a vizita și indexa numai paginile dintr -un anumit domeniu de interes.
Aceste crowler -e se folosesc în special de legăturile dintre pagini pentru a se orienta în
direcția paginilor relevante pentru domeniul căutat. Pentru a putea ști care sunt paginile
care trebuie indexate dar și în ce ordine trebuie să viziteze paginile nevizitate încă, aceste
crowler -e speciale trebuie să clasifice paginile web, adică să le includă în anumite
categorii și să aleagă apoi doar acele pagini care aparțin categoriilor interesante.1
Clasificarea sau categorizarea paginilor web apare deci ca esențială pentru indexarea
eficace a paginilor web de către crowler -ele cu domeniu specific.
Există situații în care se impune filtrarea conținutului web accesibil de pe anumite
calculatoare. Pentru a ști ce site- uri trebuie eliminate de filtrul web este nevoie de un
clasificator automat care să analizele fiecare site și să decidă dacă face parte din
categoriile cu acces nepermis.
Devine astfel evidentă importanța clasificării automate a paginilor web și întrucât
metodele de text mining sunt principalele mijloace folosite în acest scop, lucrarea de față
se concentrează asupra lor.
Lucrarea își propune să descrie principalel e tipuri de algoritmi utilizați în clasificarea
paginilor web pe baza ‘mineritului de conținut text’ ( text data mining) . Sunt descrise de
asemenea principalele aplicații ale clasificării paginilor web.
Partea a doua a lucrării este dedicată descrierii unui clasificator web bayesian
implementat folosind PHP și MySQL .

1 Scime, A. , Web Mining: Applications and Techniques , Idea Group Publishing, Hershey, PA, USA, 2005,
p. 52.

7
1.1 Definiții: data mining, web mining, web content mining, text mining

Data mining reprezintă procesul de descoperire și extragere a cunoștințelor interesante
din masive de date. Termenul este de fapt prescurtarea expresiei “knowledge mining from
data” (mineritul cunoștințelor din date ).
Procesul se poate aplica asupra datelor din baze de date, depozite de date ( data
warehouses ), sistemul world wide web, alte depozite de date, sau asupra datelor care sunt
introduse în tr-un sistem în mod dinamic. 2
Web mining este un subdomeniu al data mining care are ca sursă a datelor sistemul world
wide web . Mineritul pe web este de trei tipuri: mineritul conținutului web (web content
mining) , mineritul structurii web ( web structure mining) și mineritul utilizării web (web
usage mining) .
 Web content mining reprezintă procesul de descoperire a cunoștințelor utile din
conținutul paginilor web. Prin conținutul paginilor web se înțelege în primul rând
textul paginilor dar și din tag- urile HTML, imaginile și fișierele audio sau video.
Acest tip de data min ing este ajutat de tehnicile de regăsire a informației în
documentele text, cum ar fi tehnicile de indexare a textului folosite pentru
documentele semistructurate. Caracterul semistructurat sau structurat al
conținutului text al paginilor web vine și el în sprijinul procesului de web content
mining. Tag-urile HTML constituie de asemenea un element important în analiza
conținutului unei pagini web. Spre exemplu, faptul că un cuvânt este încadrat de
tag-urile pentru text îngroșat ( <b> </b>) indică faptul că acel cuvânt are o
importanță mai mare decât cuvintele vecine.
 Web structure mining descoperă informații utile analizând structura de
hiperlegături a unei pagini. Sunt studiate atât legăturile care trimit de la pagina
web curentă la alte p agini ( out-links ), cât și legăturile aflate pe alte pagini care
trimit la pagina curentă ( in-links ). Legăturile către paginile altor site -uri sunt un
mijloc folosit de motoarele de căutare pentru a descoperi site -uri cu conținut
similar. Legăturile inverse , dinspre paginile altor site -uri către pagina analizată
reprezintă principalul criteriu pentru evaluarea popularității unei pagini web, care
la rândul ei decide poziția în lista de rezultate returnată de motoarele de căutare în
urma unei interogări.

2 Han , J., Kamber , M., Pei , J., Data Mining Concepts and Techniques , Morgan K aufmann Publishers,
Waltham, MA, USA, 2012, p. 6 .

8
 Web usage mining este procesul prin care se descoperă cunoștințe utile din modul
de interacțiune al utilizatorilor cu resursele web. Sunt analizate log -urile
serverelor web, log- urile serverelor proxy , datele de navigare memorate de
browser -e, datele de înregi strare ale utilizator ilor, datele sesiunii utilizator,
interogăril e utilizator ilor, acțiunil e mouse -ului și alte date rezultate în urma
interacțiunii utilizatorului cu web -ul pentru a se identifica tipare de utilizare a
paginilor web.3 Una din aplicațiile acestui tip de web mining o reprezintă
construirea profilurilor de utilizator care la rândul lor sunt folosite pentru a
îmbunătă ți funcționalitățile și ergonomia site-urilor.
În sfârșit , text mining reprezintă procesul de descoperire a cunoștințelor utile exclusiv în
conținutul de tip text.
Lucrarea de față este dedicată metodelor de text mining folosite ca instrument pentru
clasificarea paginilor web, deci mineritul textului este aplicat asupra conținutului web și
nu asupra documentelor text clasice; prin urmare lucrarea se concentrează asupra unui
subdomeniu al mineritului de conținut web . Spre deosebire de documentele text clasice,
paginile web conțin pe lângă text și o serie de elemente suplimenta re specifice, cum ar fi
tag-uri HTML, fișiere audio sau video, precum și link- uri către alte pagini. Toate aceste
elemente oferă informații suplimentare despre conținut și trebuie luate în considerare în
analiza și clasificarea paginilor web.

1.2 Clasificarea automată a paginilor web – no țiuni generale

Clasificarea (sau categorizarea) automată a paginilor web este procesul prin care unei
pagini web i se atribuie una sau mai multe etichete de clasă . Scopul clasificării este de a
facilita regăsirea și analiza informațiilor. Procedura generală presupune mai întâi
selectarea unui set de pagini web preclasificate care sunt folosite apoi ca set de
antrenament. Acest set de antrenament este analizat pentru a găsi o schemă de clasificare.
Schema de clasificare este ulterior rafinată printr -un proces de testare, iar apoi este
folosită pentru a clasifica alte pagini web.4 Procesul de găsire și rafinare a schemei de
clasificare poartă numele de “antrenare” a clasificatorului.

3 Morariu, I.D., Contribuții la extragerea automată de cunoștințe din masive de date, Teză de doctorat,
Rezumat, Universitatea Lucian Blaga, Sibiu, 2007, p. 11.
4 Morariu, I.D., op. cit. , p. 10.

9
Spre deosebire de documentele text obișnuite , care sunt colecții de paragrafe uneori bine
structurate (cu titluri, subtitluri, note de subsol, etc.), paginile web sunt documente
semistructurate. Informațiile pe care le conțin sunt incluse în câmpuri standard etichetate
(head, body , title , etc.), dar pot conține și imagini, fișiere audio , fișiere video, toate
amestecate cu conținut text , cu informații de navigare în forme diverse și uneori cu
publicitate . Paginile web au deci un conținut eterogen și astfel devin mai dificil de
clasificat decât documentele text simple . Paginile web conțin informații structurate în
anumite câmpuri, purtând anumite tag- uri (title, header (h1, h2, …, etc.), table, list (ul,ol),
navigation (nav), etc.) sau meta tag-uri (“ Keyworkds ”, “Description ”, etc.). Toate aceste
elemente HTML oferă informații suplimentare asupra conținutului. Cu toate acestea,
informația conținută spre exemplu în câmpul “titlu” ( title) , este mai importantă decât
informația din alte câmpuri. Conținutul paginilor web este de obicei structurat în anumite
blocuri de conținut. Din aceste blocuri, unele sunt mai importante decât altele în analiza
paginilor. Spre exemplu, blocurile de conținut cu publicitate, sau cele despre copyright au
o mai mică importanță atunci când se analizează subiectul paginilor web .5
Una din principalele diferențe dintre paginile web și documentele text obișnuite o reprezintă existența hiperlegăturilor ( hiperlinks /links ) și a textului ancoră (textul aflat
între tag -urile HTML <a> și </a> și de care este atașată hiperlegătura) . Dintre
documentele text simple, doar articolele științifice mai au trimiteri către alte documente, asemănătoare hiperlegăturilor din paginile web.
Deși cele mai des utilizate metode de clasificare a paginilor web sunt metodele bazate pe
cuvinte cheie, este esențial ca h iperlegăturile să fie luate de asemenea în calcul . Texul
ancoră folosit de aceste hiperlegături este în general o sursă foarte importantă de
informații, reprezentând o descriere concisă a paginii la care trimite legătura. Tag-urile
HTML și în special meta tag-urile “Keyworkds ” și “Description ” pot oferi și ele
informații valoroase despre conținutul paginilor în care apar. Toate acestea trebuie
analizate pentru a realiza o clasificare automată de calitate, ținându -se seama totodată și
de faptul că pot exista s ituații în care hiperlegăturile sau tag -urile HTML să reprez inte
zgomot în analiza paginilor și să afect eze negativ acuratețea clasificării.
6
Clasificare paginilor web poate fi considerată o problemă de “învățare supervizată”. “Învățarea automată” este de două tipuri:

5 Liu, B., Web Data Mining – Exploring Hyperlinks, Contents, and Usage Data, Second Edition, Springer,
Berlin, 2011, p. 212.
6 Crețulescu, R. , Contribuții la proiectarea sistemelor de clasificare a documentelor, Teză de doctorat,
Universitate a Lucian Blaga, Sibiu, 2011, p. 20.

10
 “Învățare supervizată”. În cazul acesta, în contextul clasificării paginilor web,
algoritmul primește atât datele care trebuie clasificate, cât și etichetele categoriilor
de clasificare, scopul algoritmului fiind acela de a “învăța ” modul de asociere a
datelor cu etichetele potrivite, astfel încât atunci când sunt introduse date noi, etichetarea să se facă automat.
 “Învățare nesupervizată” . În acest caz, algoritmul primește doar datele, fără
etichete, sarcina algoritmului fiind aceea de a grupa datele în grupuri numite
clustere, astfel încât datele dintr -un cluster au o mare similaritate între ele, dar
sunt foarte disimilare față de datele din celelalte clustere. Analiza cluster elor
poate fi folosită ca o metodă de extragere a informațiilor de sine stătătoare, sau ca
o etapă de preprocesare a datelor pentru aplicarea altor algoritmi.
7 Clusterizarea
datelor este deci un proces ce ține de “învățarea nesupervizată” și poate fi folosit
ca o etapă premergătoare clasificării, iar clasificarea datelor este un proces de
“învățare supervizată”.
Unii cercetători propun și conceptul de “învățare s emi-supervizată” care este o
combinație între “învățarea supervizată” și “învățarea nesupervizată”. În general, în acest tip de învățare este folosită mai întâi “învățarea nesupervizată” care este aplicată setului
de date noi pentru a face unele predicții referitoare la distribuția datelor, iar apoi aceste
predicții sunt confirmate sau infirmate printr -un proces de “învățare supervizată”.
8

1.3 Tipuri de clasificare a paginilor web

Clasificarea paginilor web poate fi de mai multe tipuri, în funcție de criteriul de
clasificare. Cele mai des folosite criterii de clasificare dau naștere la următoarele tipuri de
clasificare:9
 Clasificarea tematică – este clasificarea în funcție de subiectul paginilor web.
Este cea care decide dacă o pagină web aparține categoriei sport , afaceri , artă,
știință , etc. Poate fi folosită pentru a construi ierarhii tematice de pagini web, de

7 Morariu, I.D., op. cit. , p. 9.
8 Crețulescu, R. , op. cit. , p. 21.
9 Qi, X., Davison, B.D., Web page classification: Features and Algorithms , Technical Report LU -CSE-
07-010, Department of Computer Science & Engineering, Lehigh U niversity, Bethlehem, PA, 2007, p. 2.

11
tipul directoarelor web, și pentru a efectua ulterior căutări pe domenii specifice.
Este cel mai popular tip de clasificare, dar prezintă și dificultăți, cum ar fi cele
legate de numărul imens de subiecte, mereu în creștere, care face imposibilă
realizarea unui catalog complet al tuturor temelor întălnite pe world wide web.
Clasificarea tematică devine dificilă de asem enea în cazul paginil or cu subiecte
multiple . Lucrarea de față se concentrează asupra metodelor de clasificare
tematică a paginilor web, acest tip de clasificare având cea mai mare valență ilustrativă și fiind cel mai des întâlnită în aplicațiile software.
 Clasificarea funțional ă – este clasificarea în funcție de rolul pe care îl au paginile
web în cadrul site -urilor din care fac parte. Se disting astfel diverse categorii de
pagini, cum ar fi: “ pagină de start ”, “pagină de login” , “pagină de înregistrare
client ”, “pagină de contact ”, etc. Pentru a realiza acest tip de clasificare se
analizează atât conținutul text al paginilor, cât și termenii care compun URL -ul
paginii, sau link-urile de pe celelalte pagini ale site -ului c are trimit la pagina în
cauză și link -urile de la pag ina în discuție la celelalte pagini ale site -ului.
 Clasificarea pe criteriul opiniei autorilor – este clasificarea în funcție de opinia
autorilor conținutului web față de subiectul dezbătut. Se ia în calcul atitudinea pozitivă, negativă sau neutră a autorilor față de tema în discuție . În general
companiile sunt foarte interesate de opinia clienților față de produsele sau
serviciile comercializate. Clienții potențiali sunt și ei interesați să aflte părerea altor clienți în legătură cu anumite produs e sau servicii. Părerea altora este un
element esențial în formarea propriilor păreri și în luarea deciziilor. Toate aceste opinii și atitudini pot fi obținute prin sondaje, dar sunt și disponibile gratuit pe site-uri de prezentare produse, forum -uri, blog- uri, comentarii de articole , rețele
de socializare etc. Singura problemă este dificultatea de a crea un sistem eficient
de opinion mining. Orice astfel de sistem de extragere automată a opiniei autorilor
trebuie implicit să facă o clasificare a text elor p e categorii de atitudine: pozitivă,
negativă, neutră. În acest scop, cercetătorii au propus diverse metode , unele de tip
“învățare supervizată” și bazate pe cuvintele care exprimă opinia (cum ar fi:
excelent, grozav, uimitor, extraordinar, oribil, rău, prost etc.) , altele de tip
“învățare nesupervizată”, bazate pe tehnici de procesare a limbajului natural (cum
ar fi: etichetarea părților de vorbire ).
10
 Clasificarea pe genuri de text – este clasifi carea în funcție de genul textului
paginii web. Pot fi distinse diverse genuri de pagini web, cum ar fi: genul “catalog
de produse”, genul “ publicitate”, genul “ newsletter ”, genul “reportaj”, genul

10 Liu, B., op.cit. , pp. 470- 474.

12
“editorial” etc. Sunt numeroase situațiile în care utiliz atorul știe exact ce tip de
text caută și deci ar fi util dacă motoarele de căutare ar recunoaște eficient genul
textului paginilor web și ar returna numai paginile cu genul de text de care
utilizatorul este interesat.11
 Clasificarea spam/non -spam pentru motoarele de căutare – paginile web
clasificate drept spam pentru motoarele de căutare sunt acele pagini care au fost
concepute special pentru a manipula modul de funcționare al motoarele de căutare
în scopul de a ocupa un loc prioritar în lista rezultatel or returnate la anumite
interogări. Un algoritm de căutare care ar ordona paginile web după frecvența
apariției unor termeni cheie poate fi foarte ușor manipulat prin crearea unor pagini care cuprind anumiți termeni cheie repetați de mai multe ori. Din ace st motiv,
motoarele de căutare au creat algoritmi de căutare complecși cu scopul de a
preveni manipularea rezultatelor căutarii. Pentru a stabili importanța paginilor
web, și pe baza ei ordinea de afișare a rezultatel or returnate, motor ul de căutare
Google folosește un indicator numit “rangul Page ” (PageRank) . Acesta este un
număr întreg cuprins între 0 și 10 asociat unei pagini web care măsoară
importanța paginii pe baza numărului de hiperlegături de pe alte pagini care trimit
către pagina în discuție, dar și pe baza importanței paginilor care conțin aceste
hiperlegături , precum și al numărului total de hiperlegături aflat pe aceste pagini.
Deși indicatorul PageRank este doar unul din criteriile folosite de Google pentru a
ordona paginile web în momentul interogării, este un element important și are și meritul de a filtra paginile web de tip spam. În mod normal, niciun editor de
conținut web nu va introduce pe paginile lui hiperlegături către pagini al căror
unic scop este manipularea motoarelor de căutare. Astfel, paginile web de tip
spam vor avea un PageRank scăzut și nu vor fi afișate printre primele rezultate la
interogări. Cu toate acestea, utilizarea indicatorului PageRank nu rezolvă toate
problemele. Numărul de link- uri către o pagină web, și deci PageRank -ul, poate fi
crescut artificial cu ajutorul unor servicii plătite puse la dispoziție de anumite companii. În plus, pot exista documente importante, c are nu beneficiază de link –
uri de la alte pagini web. Pentru toate aceste motive, clasificarea pagini lor web în
categoriile “spam”, “non -spam”, rămâne o sarcină dificilă, dar are un rol
important în asigurarea calității regăsirii informației pe world wide web. Unii
cercetători propun detectarea paginilor de tip spam pe baza analizei semantice a conținutul ui textual. Se folosesc o serie de analizatori de conținut combinați cu un

11 zu Eissen, S. M. , Stein , B., Genre classification of web pages , în: Proceedings of the 27th German
Conference on Artificial Intelligence, Volume 3238 of LNCS, Springer, Berlin, 2004, pp. 256- 269.

13
clasificator pe bază de arbori de decizie, pentru a clasifica paginile web drept
“spam ” sau “non -spam”.12
Atunci când se ia în calcul numărul total de clase care pot fi asociate paginilor web,
clasificarea paginilor web mai poate fi împărțită în:13
 Clasificare a binară – care categorizează paginile web în exact una din două clase
posibile .
 Clasificarea multi- clasă – care împarte p aginile web în mai mult de două clase.
În funcție de numărul de clase care pot fi asociate aceleiași pagini web, clasificarea poate
fi:14
 Clasificarea cu etichetă unică – atunci când unei pagini web i se poate asocia o
singură etichetă de clasă. Spre exemplu, o pagină web este clasificată fie ca
pagină din ca tegoria sport , fie afaceri , fie artă, fie știință , etc.
 Clasificarea cu etichete multiple – care poate asocia aceleiași pagini web mai
multe etichete de clasă. Spre exemplu, aceeași pagină este inclusă și în categoria
știință și în categoria afaceri .
Dacă se consideră modul în care etichetele de clasă sunt asociate pagini lor web,
clasificarea pote fi:15
 Clasificarea tare – în cazul căreia o pagină web ori face parte dintr -o clasă ori nu
face parte. Nu poate exista o stare intermediară.
 Clasificarea moal e – în cazul căreia o pagină web este inclusă într-o clasă, dar
există probabilitatea ca să fie inclusă și în celelalte clase. Pentru fiecare pagină se
indică de obicei un set de probabilități care arată în ce măsură e p robabil ca
pagina respectivă să aparțină fiecăreia din categoriile clasificării.
Dacă se ia in calcul modul de organizare al categoriilor , clasificarea paginilor web este:16

12 Westbrook, A., Greene, R., Using Semantic Analysis to Classify Search Engine Spam , Project Report of
CS276A, Stanford University , Stanford, CA , 2002, pp. 1- 8.
13 Qi, X., Davison, B.D., op. cit. , p. 2.
14 Ibidem .
15 Ibidem .
16 Ibidem .

14
 Clasificarea pe un singur nivel – în care clasele sunt paralele, așezate toate la
același nivel. Nicio clasă nu include alte clase.
 Clasificarea ierarhică – în care clasele sunt organizate într -o structură ierarhică
ramificată de tip arbore. Fiecare clasă poate con ține alte subclase.
Lucrarea de față se concentrează asupra metodelor de clasificare tematică a paginilor
web, acest tip de clasificare având cea mai mare valență ilustrativă și fiind cel mai des
utilizată în aplicațiile software.

2. Aplicații ale clasificării paginilor web

Clasificarea paginilor web este o componentă esenți ală în numeroase aplicații de regăsire
a informației. În continuare sunt prezentate principalele aplicații ale clasificării paginilor
web, unele fiind deja implementate și disponib ile în cadrul unor servicii web, altele aflate
încă în stadiul de cercetare.

2.1 Construirea și mentenanța directoarelor web

Directoarele web sunt liste de site -uri grupate în categorii și subcategorii. Sunt create
pentru a facilita găsirea informațiilor atunci când se cunoaște domeniul specific de care
aparțin. Directoarele web sunt fie generale (Joe Ant Directory (www.joeant.com),
Jasmine Directory (www.jasminedirectory.com), Best of the Web Directory (www.botw.org) , Hotfrog (www.hotfrog.com.au) ), fie dedicate un or nișe, adică
directoare web specializate (The Travel Web Directory (www.travelwebdir.com),
business.com (www.business.com), OmniMedicalSearch (omnimedicalsearch.com),
Dexigner (www.dexigner.com)) .
În general directoarele web sunt create și menținute de persoane specializate în diferite
domenii. Multe directoare web acceptă cereri de înregistrare a site- urilor venite din partea
utilizatorilor . Înainte de a fi listate în directorul web orice site este mai întâi vizualizat și
analizat de operatorul uman. Din această cauză, directoarele web presupun o cheltuială
importantă de efort uman și timp. Pentru a ține pasul cu numărul tot mai mare de site -uri
care trebuie clasificate și incluse în directoarele web , pot fi create manual sau automat
clasificatoare de pagini web care sunt utilizate apoi pentru a analiza și include noi pagini

15
în directoarele web . Unii autori propun crearea unor programe care, pornind de la ierarhii
de tematici definite de utilizatori, pot crea automat clasificatoare, prin selectarea
nesupervizată a site -urilor care vor alcătui lotul de antrenare al clasificato rului .17
Cu ajutorul clasificatoarelor de pagini web se pot crea și menține directoare web dedicate
unor comunități de utilizatori, adică unor grupuri de utilizatori care împărtășesc interese
comune. Folosind tehnici de minerit al utilizării web se extrag date referitoare la
interesele specifice unei comunități de utilizatori iar aceste date sunt folosite pentru a crea directoare web comunitare. Astfel de directoare pot fi folosite de diverse s ervicii web,
cum ar fi portaluri care doresc să ofere comunităților proprii de utilizatori posibilitatea unei căutări web personalizate. Membrii unei astfel de comunități pot folosi directorul
comunitar ca punct de plecare în căutarea web , care va fi bazat ă pe interesele lor
specifice, fără a mai fi nevoiți să răsfoiască directoare web enorme .
18

2.2 Îmbunătățirea calității rezultatelor returnate de motoarele de căutare

Motoarele de căutare prezintă de obicei rezultatele căutării sub forma unei liste de pagini
web așezate în ordinea relevanței. În anumite cazuri s -a dovedit totuși utilă și atrăgătoare
pentru utilizatori prezentarea rezultatelor sub formă ierarhizată, paginile web fiind
împărțite în categorii și subcategorii. Unii cercetători19 au propus afișarea rezultatelor
interogării sub forma unei ierarhii de categorii predefinite prin clasificarea în timp real a paginilor web găsite. Un sondaj a arătat că utilizatorii au agreat mai mult afișarea
rezultatelor împărțite pe catego rii și au găsit cu 50 % mai repede informația căutată în
acest caz , comparativ cu afișarea obișnuită sub formă de listă.
Indicatorul PageRank , folosit de motorul de căutare Google pentru a evalua autoritatea
paginilor web nu depinde de subiectul paginilor web și nu este influențat nici de termenii

17 Huang, C. C., Chuang , S.L., Chien, L.F., LiveClassifier: Creating H ierarchical Text Classifiers through
Web Corpora, î n: WWW ’04: Proceedings of the 13th International Conference on World Wide Web,
ACM Press , New York, NY, 2004, pp. 184- 192.
18 Pierrakos, D., Paliouras, G., Papatheodorou, C., Karkaletsis, V., Dikaiakos, M., Construction of Web
Community Directories using Document Clustering and Web Usage Mining, în: Berendt, B. (ș.a.) (ed.)
ECML/PKDD 2003: First European Web Mining Forum, Cavtat , Dubrovnik, Croația, 2003.
19 Chen, H. , Dumais , S., Bringing order to the Web: Automatically categorizing search results, în: CHI
’00: Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, ACM Press ,
New York, NY, 2000, pp. 145- 152.

16
interogării . Există studii20 care propun algoritmi care să permită termenilor interogării să
influențeze PageRank -ul, și deci ordinea rezultatelor căutării. Pentru fiecare pagină web
sunt calculați mai mulți indicatori PageRank , fiecare în raport cu un domeniu sau subiect
anume. În momentul în care utilizator ul efectuează o interogare, algoritmul determină
subiectele cele mai apropiate de termenii interogării și folosește indicatorii PageRank
alocați acelor subiecte pentru a alege și ordona paginile web. În acest mod se încearcă
găsirea și afișarea paginilor web care tratează tocmai subiectul căutat de utilizator. Se
încearcă evitarea afișării pe primele poziții a paginilor web care beneficiază de multe
trimiteri de la alte pagini, și deci de un PageRank mare, dar care nu sunt relevante pentru
subiectul de care aparțin termenii interogării. Paginile considerate importa nte pentru
anumite domenii pot să nu fie la fel de importante pentru alte domenii, indiferent de termenii cheie care apar în conținutul lor. Algoritmii propuși în acest caz fac uz de o
ierarhie de categorii predefinite și presupun clasificarea paginilor web în raport cu acest e
categorii .

2.3 Sistemele de tip întrebare – răspuns

Sistemele de tip întrebare – răspuns ( question answering systems ) sunt aplicații software
care primesc întrebări formulate în limbajul natural și oferă răspunsuri adecvate extrase
dintr -o colecție de documente . Această colecție poate fi o colecție locală sau chiar
domeniul world wide web. Un sistem de tip întrebare – răspuns care folosește ca sursă de
date o colecție de pagini web, poate determi na mai întâi domeniul asociat cu răspunsul
preconizat la întrebare, iar apoi se poate folosi eficient de o clasificare tematică a
paginilor web din colecția de referință pentru a extrage cel mai potrivit răspuns.21
Unii cercetători22 au propus realizarea unui sistem de tip întrebare – răspuns dedicat
întrebărilor cu răspuns de tip listă (spre exemplu: “Care sunt capitalele europene ?”).
Întrebarea pusă trece mai întâi printr -un proces de analiză a limbajului natural, apoi o
serie de in terogări sunt trimise către motoarele de căutare populare, cum ar fi Google ,
pentru a prelua primele pagini din lista de rezultate . Aceste pagini sunt apoi clasificate în

20 Haveliwala, T.H. , Topic -Sensitive PageRank , în: Proceedings of the Eleventh International World Wide
Web Conference, ACM Press, New York, NY, 2002, pp. 517- 526.
21 Qi, X., Davison, B.D., op. cit. , p. 5.
22 Yang, H., Chua, T.- S., Effectiveness of W eb Page Classification on F inding List Answers, în:
Proceedings of the 27th Annual International ACM SIGIR Conference on Research and Development in
Information Retrieval, ACM Press , New York, NY, 2004, pp. 522- 523.

17
patru categorii: “ pagini colecție ” (acele pagini care cuprind liste de obiecte, defin iții, link –
uri etc.), “ pagini tematice ” (pagini le care tratează o temă anume și se constituie ca un
răspuns la o întrebare), “pagini relevante ” (pagini care susțin prin informații suplimentare
un răspuns la o întrebare ), “pagini irelevante ” (pagini fără ni cio legătură cu răspunsul
căutat) . Are loc apoi o redistribuire a paginilor clasificate. Se obțin “pagini tematice ”
suplimentare prin urmarea hiperlegăturilor din “paginile colecție ”. “Paginile tematice ”
sunt împărțite în clustere tematice . Se distribuie și “paginile relevante ” în clustere le
tematice . Aceste clustere de pagini cu tematică apropiată, împreună cu “paginile
colecție” , sunt folosite ca sursă principală pentru extragerea răspunsurilor.

2.4 Crowler-e le cu domeniu specific

În acele situații în care se urmărește indexarea paginilor web aparținând numai anumitor
categorii, este mai utilă folosirea unui program de tip crowler dedicat categoriei de
interes, adică a unui crowler cu domeniu specific ( focused crowler ), decât a unui crowler
generic care să treacă în revistă toate paginile web întâlnite. Spre exemplu, în procesul de
mentenanță al directoarelor web, pentru a economi si timp și resurse , sunt folosite
crowler -e cu domeniu specific.
Chakrabarti , S. et al.23 propune realizarea unui crowler creat special pentru a căuta pagini
web relevante pentru un set predefinit de teme. Temele sunt specificate prin documente
exemplare, adică pagini web deja clasificate pe teme, disponibile în directoare web
cunoscute. Crowl er-ul este ghidat în direcția paginilor web relevante cu ajutorul a două
programe: un “clasificator” (care evaluează relevanța pagini lor web cu privire la tema de
interes) și un “distilator” (care identifică locațiile punctelor de acces către alte pagini
relevante aflate la distanța de doar câteva link -uri). Clasificatorul este antrenat cu ajutorul
unui set de pagini web exemplare extrase din directorul web. El ghidează crowler -ul prin
selectarea preferențială a link -urilor către acele pagini care este cel mai probabil să
aparțină temei de interes . Alegerea acestor link -uri se face printr -o clasificare pe bază de
probabilități a paginilor încă nevizitate de crowler.

23 Chakrabarti, S., van den Berg, M., Dom , B, Focused crawling: A new approach to topic -specific Web
resource discovery, în: WWW ’99: Proceeding of the 8th International Conference on World Wide Web,
Elsevier , New York, NY, 1999, pp. 1623- 1640.

18
2.5 Alte aplicații

Clasificarea automată a paginilor web are un rol important și în alte tipuri de aplicații,
cum ar fi :
 Filtrarea conținutului web . Pentru a determina care pagini web pot fi accesate
de pe o anumită stație de lucru, orice filtru de conținut web trebuie să fie capabil
să analizeze și să clasifice în categoriile “permis ” și “nepermis ” toate paginile
web cerute de browser. Există numeroase abordări în privința arhitecturii filtrelor
de conținut web. În general se folosesc fie liste negre de adrese web sau IP -uri, fie
clasificatoare de conținut text, fie clasificatoare de i magini care fac uz de tehnicile
de recunoaștere a tiparelor în interiorul imaginilor. Unii autori24 propun
realizarea unor filtre pe baza unor algoritmi care să îmbine clasificarea conținutului text cu clasificarea imaginilor.
 Căutarea web asistată. Domeniul world wide web poate fi comparat cu un
muzeu în care vizitatorii pot fi însoțiți de aplicații software de tip ghid care să îi
ajute să găsească paginile relevante pentru interesele lor. Căutarea web asistată
presupune deci existența unui program care creează mai întâi un profil al
utilizator ului pe baza modului de explorare anterioară a resurselor web de către el
dar și de către alți utilizatori, iar apoi, în funcție de acest profil , interacționează cu
utilizatorul și sugere ază noi link- uri de urma t. Joachims , T. et al.
25 propune
realizarea unui program de căutare web asistată numit WebWatcher , care însoțește
utilizatorul în căutarea web și îl îndrumă sugerând în permanență noi pagini de
vizitat pe baza unui proces de clasificare a paginilor web legate direct de pagina
curentă.
 Construirea unor baze de cunoștințe. O bază de cunoștințe ( knowledge base )
este o colecție de date complexe, structurate și nestructurate, folosite de anumite aplicații software, cum ar fi sistemele expert, pentru a deduce noi informații și

24 Chen, Z., Wu, O., Zhu, M., Hu, W., A N ovel Web Page Filtering System by C ombining Texts and
Images , în: WI ’06: Proceedings of the 2006 IEEE/WIC/ACM International Conference on Web
Intelligence, IEEE Computer Society , Washington, DC, 2006, pp. 732- 735.
25 Joachims, T., Freitag, D., Mitchell , T., WebWatcher: A tour guide for the World Wide Web, în:
Proceedings of the Fifteenth International Joint Conference on Artificial Intelligence, Morgan Kaufmann
Publishers, San Francisco, CA , 1997, pp. 770- 775.

19
pentru a obține soluții, recomandări, predicții. Craven , M. et al.26 au propus
crearea automată a unei baze de cunoștințe inteligibilă pentru calculator, al cărei
conținut să reflecte conținutul web. Odată realizată, această bază de cunoștințe va
facilita căutarea pe web, permițând utilizarea unor interogări mult mai complexe
decât cele bazate pe cuvinte cheie, și va putea contribui la rezolvarea unor
probleme. Autorii își propun să construiască această bază de cunoștințe cu
ajutorul unui program care va fi “ antrenat” pentru a extrag e anumite informații
prin răsfoirea automată a paginilor web. Programul va primi un sistem ierarhic de
clase predefinite și de relații între ele, precum și exemple de pagini web care
reprezintă instanțe ale claselor și relațiilor dintre ele. Aceste exemple vor fi
folosite pentru “antrenarea” programului. Pe baza acestor date de intrare, sistemul
va învăța procedura de clasificare pe care o va aplica altor pagini web.

3. Etape preliminare în procesul de clasificare a paginilor web

Paginile web folosesc limbajul HTML, deci în afară de textul și imaginile sau fișierele
audio/video, ele conțin hiperlegături, texte ancoră și numeroase tag- uri HTML care
informează browser -ul despre diferite tipuri de conținut (titlu, listă , tabel etc.). Toate
aceste caracteristici pot fi împărțite în două mari catego rii: caracteristici ale paginii web ,
adică cele care sunt prezente efectiv pe pagina web , și caracteristici ale paginilor vecine ,
adică cele care apar pe pagini le legate într -un fel sau altul cu pagina în cauză și care se
dovedesc foarte importante în proc esul de clasificare a paginii web în discuție.
În continuare sunt prezentate caracteristici le luate în calcul în clasificarea paginilor web,
precum și principalele etape ale procesului de clasificare.

26 Craven, M., DiPasquo, D., Freitag, D., McCallu m, A., Mitchell, T., Nigam, K., Slattery, S., Learning to
Extract Symbolic Knowledge from the World Wide Web, în: Proceedings of the Fifteenth National
Conference on Artificial Intelligence, AAAI Press, Menlo Park, CA, 1998, pp. 509 -516.

20
3.1 Caracteristicilor paginilor web folosite în procesul de clasificare

Conținutul de tip text al paginilor web este cea mai evidentă caracteristică ce poate fi
utilizată în clasificare. Din cauza zgomotului cauzat de textele fără legătură directă cu
subiectul paginii, cum ar fi textele pu blicitare, utilizarea conținutului text în clasificare
ridică anumite probleme. Simpla reprezentare a paginii web prin modelul sac de cuvinte
(bag-of-words), adică prin colectarea tuturor cuvintelor care apar în interiorul unei pagini,
indiferent de relați ile gramaticale și chiar de ordinea cuvintelor, poate să nu fie chiar atât
de potrivită. Unii autori propun reprezentarea unei pagini web sub forma unui vector de atribute , care include nu doar cuvinte singulare, ci două, trei, patru și chiar cinci termeni
consecutivi. În acest fel se pot capta concepte exprimate prin mai multe cuvinte, ceea ce
crește substanțial acuratețea clasificării . Tag-urile HTML s -au dovedit de asemenea
foarte utile în clasificarea paginilor web. Titlul paginii web, titlurile și subtitlurile de
articole, meta tag-urile și textul din corpul paginii web au fost folosite cu succes în
procesul de clasific are. Au fost de asemenea concepute metode de clasificare pe bază de
rezumat al paginii web. URL -ul paginilor web este un alt ele ment ce poate fi folosit în
clasificare.
27
Există situații în care conținutul text al unor pagini web este insuficient, greu de înțeles sau chiar derutant pentru clasificator, cum ar fi în cazul paginilor care conțin imagini
mari, obiecte flash, fișiere video, etc. dar prea puțin text. În astfel de situații este dificil de
realizat o clasificare bazată exclusiv pe caracteristicile prezente pe pagina web și devine oportună folosirea unor elemente aflate pe paginile vecine asociate cu pagina analizată.
Cel mai ușor mijloc de identificare a paginilor vecine asociate este urmarea
hiperlegăturilor aflate pe pagina web in discuție. S-a observat că paginile web tind să
conțină hiperlegături către pagini din aceeași categorie, deci se pot construi clasificatoare care să prezică clasa unei pagini web pe baza clasei majorității paginilor vecine asociate.
28
Studiile au analizat eficiența analizei paginilor vecine aflate la o distanță nu mai mare de două niveluri. Se disting astfel șase tipuri de pagini vecine, în func ție de relația cu pagina
în discuție: “părinte ”, “copil ”, “frate”, “soț”, “bunic ”, “nepot ”. S-a observat că paginile de
tip “frate” sunt cea mai bună sursă de informații relevante pentru clasificare.
Caracteristicile paginilor vecine care au fost extrase și folosite în procesul de clasificare au fost textul ancoră, textul din jurul textului ancoră, titlul paginii, titlul de articol și

27 Qi, X., Daviso n, B.D., op. cit. , p. 7.
28 Ibidem, p. 9.

21
titlurile de secțiune, precum și textul din corpul paginii. S-au fo losit uneori etichetele de
clasă atribuite paginilor web de operatori umani, în cazul în care acestea erau
disponibile.29

3.2 Preprocesarea paginilor web

Pentru a putea extrage caracteristicile relevante din paginile web care urmează a fi
clasificate, acestea sunt trecute mai întâi printr -o etapă de preprocesare care constă în
următorii pași:30
 Înlăturarea cuvintelor de legătură. Cuvintele de legătură sunt cuvinte ce apar
frecvent în orice text și care ajută la construirea propozițiilor dar care nu sunt relevante în ceea ce privește subiectul paginilor web. Ele sunt prepozițiile,
conjuncțiile, articolele, anumite pronume și adverb e. În limba română câteva
asemenea cuvinte sunt: a, de, și, pentru, din, la, cu, despre , al, cel, tot, câte , ar,
după, un, o, în, prin, ale, că, pe, va, ce, care, etc. Astfel de cuvinte trebuie
înlăturate înaintea procesului de clasificare propriu- zisă.
 Înlăturarea afixelor. Majoritatea cuvintelor dintr -o limbă iau forme diferite în
funcție de contextul sintactic în care apar. Aceste forme numite forme flexionare,
sunt create prin atașarea afixelor, adică a prefixelor și sufixelor , la rădăcina
cuvântului . Formele de trecut și viitor ale unui verb, forma de genitiv a
substantivelor, formele articulate ale adjectivelor sunt variații ale cuvintelor , pe
care orice sistem de regăsire a informației trebuie să le recunoască ca atare. Pentru
a elimina riscul de a considera formele flexionare ale aceluiași cuvânt ca și
cuvinte diferite, în prelucrarea automată a conținutului text se recurge la înlăturarea afixelor ( stemming ) pentru a se obține rădăcina cuvintelor și pentru a
identifica astfel același cuvânt în multip lele lui forme.
 Identificarea câmpurilor de text. În limbajul HTML există diverse câmpuri cu
conținut text , cum ar fi title , meta , header etc. Identificarea lor permite
algoritmului de analiză a paginii web să trateze termenii din câmpuri diferite în mod diferit. Spre exemplu, textul din câmpul title este considerat mai important
decât textul din alte câmpuri, întrucât titlul unei pagini web este de obicei o

29 Ibidem, pp. 9- 11.
30 Liu, B., op. cit. , pp. 227-231.

22
descriere concisă a conținutului paginii. Algoritmul de clasificare va acorda deci o
pondere mai mare termenilor din câmpul title decât termenilor din alte câmpuri.
Termenii din titlurile de articol (aflați între tag -urile <h1></h1>, <h2></h2>…
etc.), precum și termenii evidențiați prin îngroșare (<b></b>) , subliniere
(<u></u>) , caractere italice (<i></i>), sunt considerați de asemenea mai
importanți și li se acordă o pondere mai mare .
 Identificarea textelor ancoră. Textul ancoră cu care sunt asociate hiperlegăturile
sunt considerate o sursă prețioasă de informație și trebuie identificate și evaluate
ca atare de algoritmul de clasificare. Texul ancoră reprezintă de cele mai multe ori o scurtă descriere a conținutului paginii la care trimite hiperlegătura. În situația în
care link -ul trimite la o pagină externă, adică aflată pe alt site, textul ancoră este și
mai important, deoarece cuprinde o descriere a unei pagini web făcută de alte
persoane decât autorii, și deci es te mai obiectivă și demnă de încredere.
 Înlăturarea tag- urilor HTML. Tag-urile HTML încadrează diverse tipuri de
conținut (titlu de pagină, listă, tabel etc.) și informează browser -ul despre acest
conținut. Aceste tag -uri pot indica importanța termenilor pe care îi încadrează și
astfel trebuie luate în calcul atunci când se analizează conținutul paginilor web și
se acordă termenilor o anumită pondere care le reflectă importanța. După
identificare a lor și după stabilirea ponderilor termenilor pe care îi încadrează, tag –
urile trebuie înlăturate pentru a nu interfera cu procesu l de clasificare. Înlăturarea
tag-urilor HTML poate ridica însă și anumite probleme. În general conținutul
paginilor web este cuprins în blocuri rectangulare de text, deci prin înlăturarea tag-urilor HTML se poate ajunge la situația în care textele din blocuri de text
distincte , care trebuiau să rămână separate, să fie unite și să genereze confuzie,
prin alăturarea nefirească a unor afirmații aparținând unor zone distincte.
 Identificarea principalelor blocuri de conținut. O pagină web tipică poate
conține multe informații care nu fac parte din conținutul principal al paginii. Spre
exemplu , o pagină poate conține blocuri cu reclame, panouri de navigare, texte
legate de copyright , etc. Textul și hiperlegăturile din aceste zone de conținut
trebuie în general i gnorate de algoritmul de clasificare . În schimb clasificatorul
trebuie să se concentreze asupra blocurilor principale de conținut. Pentru identificarea blocurilor principale, se pot folosi anumite metode, printre care
metoda partiționării paginii bazată pe indicii vizuale (unele browser -e, cum ar fi
Internet Explorer pot oferi API -uri care să redea coordonatele X, Y ale oricărui
element din pagina web) . Pe baza unui număr important de exemple corect
etichetate, folosite ca material de antrenament, se pot co nstrui modele de învățare
automată care să identifice blocurile principale de conținut prin analiza locației și
aspectului acestor blocurilor de conținut.

23
3.3 Reprezentarea paginilor web

Choi, B. et al.31 descriu reprezentarea paginilor web folosindu- se de următoarele
convenții: se notează cu M dimeniunea unui vector, adică numărul total de atribute ce
reprezintă elementele vectorului, cu N numărul total de pagini web care alcătuiesc setul
de pagini de antrenament al clasificatorului, cu i al i-lea vector, iar cu j al j-lea atribut al
vectorului.
Conform autorilor menționați, cel mai simplu mod de reprezentare a unei pagini web este
sub forma unui vector având M termeni, fiecare termen având o pondere asociată, adică
un indicator al grad ului de importanță. Această reprezentare este de obicei numită
modelul sac de cuvinte (bag-of-words ). Formal, o pagină web este reprezentată printr -un
vector d i, având cuvintele t 1, t2, … , tM ca și atribute , fiecare cuvânt având asociată o
pondere wij. Deci pentru pagina reprezentată prin vectorul di avem expresia :
di = (w i1, wi2, wi3, . . . , w iM)
unde M este numărul total al cuvintelor indexate, iar w ij (1 ≤ j ≤ M) este ponderea sau
importanța cuvântului t j în pagina d i.
Este de remarcat că secvențele de două sau mai multe cuvinte conțin informații
suplimentare față de cuvintele componente considerate separat, deci reprezentarea de tip sac de cuvinte poate fi îmbogățită prin adăugarea unor atribute generate de secvențele de
cuvinte cunoscute și sub numele de n-gram . Sunt folosite în general secvențe de până la 5
cuvinte, adică de tip 5- gram. Experimental, s -a observat că secvențele de 3 cuvinte sunt
în general suficiente în scopul clasificării pagin ilor web. Reprezentarea de tip sac de
cuvinte care a fost îmbogățită cu secvențe de cuvinte este numită reprezentare sac de
termeni , unde un termen poate fi un singur cuvânt sau orice n- gram.
Cel mai simplu mod de a determina ponderea w
j a termenului t j într-o pagină web di este
de a îi acorda ponderea 1 pentru fiecare apariție în document, sau ponderea 0 dacă nu
apare. Ponderea wj va exprima deci numărul total de ocurențe ale termenului tj în pagina
di.
Totuși, metoda cel mai des folosită pentru a determina ponderea termenilor este cea care
ia în calcul atât frecvența termen ului în discuție în pagina web analizată dar și frecvența

31 Choi, B., Yao , Z., Web page classification , în: Chu, W., Lin , T. Y. (ed.), Foundations and Advances in
Data Mining, Volume 180 of Studies in Fuzziness and Soft Computing, Springer, Berlin, 2005, pp. 221-
274.

24
aceluiași termen în celel alte pagini din setul de antrenament . Metoda poart ă numele
TFIDF (Term Frequency Inverse Document Frequency) . Concret, formula ponderii
termenului t j din pagina d i este:
wij = TF(t j, di) · IDF(t j)
unde TF(t j, di) (frecvența termenului) este numărul care indică de câte ori apare termenul
tj în pagina d i, iar IDF(t j) (inversul frecvenței termenului în documente) se calculează
după următoarea formulă:
IDF(t j) = log 10 �N
DF(tj)�
unde DF(t j) (frecvența termenului în documente) reprezintă numărul de documente din
setul de antrenament în care termenul t j apare cel puțin o dată. Formula lui DF(t j) este
următoarea:
DF(t j)=��1, dacă d i conține t j
0, în celelalte cazuriN
i=1
Reamintim că N este numărul total de documente, adică de pagini web, din colecția de
pagini aleasă ca set de antrenament al clasificatorului.
Această metodă de evaluare a ponderii termenilor evidențiază faptul că un termen
reprezintă un atribut important a l unui document dacă apare frecvent în acel document,
adică frecvența termenului, TF(t j, di), este mare. Pe de altă parte, t ermenul devine un
atribut mai puțin important a l documentului dacă el apare frecvent în multe alte
documente din setul de antrenament , cu alte cuvinte atunci când inversul frecvenței
termenului în celelalte documente , IDF(t j), este scăzut.
Pentru o mai mare finețe a evaluării ponderii unui termen, ponderea wij a termenului t j din
documentul d i poate fi normalizată prin lungimea documentului , dată de norma
euclidiană:
wij = TF(t j, di) · IDF(t j)
�∑ (TF(t j, di) · IDF(t j))2 M
𝑗=1

25
Joachims T.32 propune o versiune modificată a formulei de calcul a ponderii unui termen.
Termenii formulei sunt modificați în felul următor:
DFʹ(t j) =�TF(t j, di)
| di |N
i=1
IDFʹ(tj) = ��N
DFʹ(t j)�

unde lungimea documentului , | di |, reprezintă numărul total de cuvinte din documentul d i.
N este numărul total de pagini web din setul de antrenament al clasificatorului. Așadar,
DFʹ(tj), frecvența termenului în documente, este definit ca suma frecvențelor relative ale
termenului tj în fiecare pagină. Pentru normalizarea ponderii , autorul folosește | di | în loc
de lungimea euclidiană în felul următor:
wij = TF(t j, di) · IDFʹ(t j)
| di |
Aceasă formulă modificată de stabilire a ponderii termenilor a dat rezultate experimentale
promițătoare, rata de eroare a clasificatorului fiind scăzută cu până la 40%.33
Reprezentarea paginilor web utilizând modelul sac de cuvinte nu face apel la informația
structurală pe care o conțin acestea și care ar putea crește eficiența clasificatoarelor. Choi,
B. et al. 34 descriu două tipuri de informație structurală ce poate fi folosită în clasificarea
paginilor web:
 Structura documentului HTML – care permite identificarea cu ușurință a părților
importante într -o pagină web, cum ar fi titlul paginii sau titlurile și subtitlurile de
articole.

32 Joachims , T., A Probabilistic A nalysis of the Rocchio A lgorithm with TFIDF for Text C ategorization,
în: ICML '97 Proceedings of the Fourteenth International Conference on Machine Learning , Morgan
Kaufmann Publishers, San Francisco, CA, 1997, pp. 143– 151
33 Ibidem , p. 149.
34 Choi, B., Yao , Z., op. cit. , p. 228- 229.

26
 Structura de hiperlegături a web-ului – care face ca paginile web să fie
interconectate și care oferă informații despre relațiile dintre pagini și implicit
despre conținutul l or.
Principalele elemente HTML care oferă informații utile pentru clasificare sunt: corpul
paginii web ( body ), titlul paginii ( title), titlurile și subtitlurile de articol ( h1, h2, … , h6 ),
cuvintele evidențiate prin îngroșare, caractere italice sau subliniere (cuvintele cuprinse respectiv între tag -urile <b></b>, <i></i>, <u></u>) , URL -ul paginii web atunci când din
el se pot extrage cuvinte cheie, conținutul din tag-urile meta , care poat e oferi informații
despre cuvintele cheie, descrierea pe scurt a paginii, etc.
Tehnica de calculare a ponderii termenilor unei pagini pe baza informațiilor structurale
este numită SWT ( Structure -oriented Weighting Technique ). Prin această tehnică se
încearcă atribuirea unei importanțe mai mari acelor termeni care se află în acele câmpuri
ale paginii care sunt mai susceptibile de a reprezenta conținutul paginii, cum ar fi câmpul
title. SWT are expresia:

SWT w(tj, di) = �(w(e k) · TF(t j, ek, di))
ek
unde ek este un element HTML , w(ek) este ponderea atribuită elementlui ek, iar TF(t j, ek ,
di) reprezintă de câte ori termenul t j este prezent în elementul e k din pagina d i. Funcția
w(e) a fost definită ca:
w(e) = � α, dacă e este meta sau title
1, în celelalte cazuri
unde α = 2, α = 3, α = 4 sau α = 6 au fost testate și comparate cu frecvența standard TF(t
j, di). Experimentele au arătat că utilizarea SWT definit ca mai sus a dus la creșterea
acurateții clasificării.
Peng X. et. al35au propus o formulă mai complicată pentru SWT. Ei au utilizat nu numai
elementele HTML dar și frazele mai importante din paginile web. Frazele mai importante
au fost identificate după următoarele criterii:
• Frazele care conțin cuvintele cel mai des utilizate;
• Frazele care cuprind cuvinte ce apar în titlurile de articole sau titlurile de secțiuni
de articole;

35 Peng X ., Choi B ., Automatic W eb Page Classification in a Dynamic and H ierarchical Way, în: ICDM
'02 Proceedings of the 2002 IEEE International Conference on Data Mining , IEEE Computer Society ,
Washington, DC , 2002, pp. 386- 393.

27
• Frazele care folosesc cuvinte indiciu, cum ar fi “important”, “semnificativ”, sau
expresii indiciu, cum ar fi “ principalul scop este”, sau “ pagina descrie”, etc. ;
• Frazele de la începutul sau de la sfârșitul paginii web;
• Frazele de la începutul fiecărui paragraf.

3.4 Reducerea dimensionalității spațiului de atribute

În cazul folosirii metodelor de reprezentare descrise anterior, o pagină web poate fi
reprezentată printr -un vector de atribute cu sute de termeni unici, iar colecția de pagini
din setul de antrenament al clasificatorului poate cuprinde în total chiar sute de mii de
termeni unici. Dacă toți acești termeni unici sunt desemnați drept atribute ale paginilor
web, dimensionalitatea spațiului de atribute crește foarte mult și poate crea probleme
legate de complexitatea computațională , care influențează consumul de timp și resurse al
clasificatoarelor . Astfel, au fost dezvoltate metode de reducere a dimensionalității care au
ca scop reducerea numărului de termeni din vectorii de atribute , în așa fel încât acest
proces să nu altereze acuratețea clasificării.
Conform lui Choi, B. et al.36, funcțiile de reducere a dimensionalității spațiului de
atribute pot fi împărțite pe baza tipului de atribute alese, în două mari categorii după cum
urmează:
 Reducerea dimensionalității prin selectarea atribute lor. Selectarea atribute lor
presupune alegerea unei submulțimi de atribute din total, pe baza anumitor
criterii. Există două metode principale folosite pentru selectare: “ prin înfășurare”
și “prin filtrare”. Metoda “ prin înfășurare” face mai întâi o căutare prin spațiul de
submulțimi de atribute iar apoi testează clasificatorul pe o submulțime și măsoară
acuratețea clasificării. Testarea se repetă apoi pentru o altă submulțime, până la
atingerea unui prag de acuratețe sau până la un anumit număr de iterări. Selectarea
atribute lor este deci “ înfășurată” în jurul unui algoritm de învățare. Această
metodă a dat rezultate experimentale bune dar în cazul unui număr mare de
atribute programele bazate pe această metodă pot co nsuma prea multe resurse. În
cazul metodei “ prin filtrare”, selectarea atribute lor este realizată ca o etapă de
preprocesare, înainte de aplicarea “învățării automate”. Astfel, selectarea
atribute lor este independentă de algoritmul de învățare și metoda poate fi aplicată
fără consum mare de resurse.

36 Choi, B., Yao , Z., op. cit. , p. 237- 238.

28
 Reducerea dimensionalității prin extragerea atribute lor. Prin extragerea
atribute lor, rezultatul nu este neapărat o submulțime a mulțimii originale.
Atribute le extrase sunt obținute prin combinații sau transformări ale atribute lor
originale.
Una dintre cele mai des folosite tehnici de selectare a atribute lor “prin filtrare” se bazează
pe frecvența acestora în documente. Frecvența în documente reprezintă numărul total de
documente în care apare cel puțin o dată un anumit atribut . Atribute le prezente în mai
multe documente sunt considerate mai importante decât cele care apar foarte rar . Acele
atribute a căror frecvență în documente este mai mică decât o valoare prag
predeterminată, sunt eliminate. O proprietate importantă a utilizării frecvenței în
documente este aceea că nu are nevoie de etichetele de clasă ale documentelor din setul
de antrenament. Metoda are o complexitate timp de tipul O (n), unde n este numărul de
documente exempl u din setul de antrenament. S -a constatat experimental că metoda
permite o reducere a dimensionalității spațiului de atribute cu până la 89%.
Printre tehnicile utilizate pentru extragerea atribute lor se numără clusterizarea cuvintelor.
Cuvintele sunt grupat e în clustere pe baza similarității semantice iar apoi clusterele sunt
folosite în locul mulțimii de cuvinte inițiale. Clusterizarea cuvintelor poate fi considerată
o metodă de convertire a reprezentării inițiale a documentului într -o nouă reprezentare cu
dimensionalitate redusă.

29
4. Tehnici de clasificare a paginilor web

Choi, B. et al.37 descriu formal clasificarea paginilor web notând cu C = {c 1, c2, … , c K}
mulțimea de categorii sau clase predefinite , cu D = {d 1, d2, … , d P} setul de pagini web
care urmează să fie clasificate, și cu A = D × C matricea de dicizie:

unde fiecare element a ij (1 ≤ i ≤ P, 1 ≤ j ≤ K) indică dacă pagina web d i aparține sau nu
categoriei c j. Deci a ij ∈ {0, 1}, unde 1 arată că pagina d i aparține categoriei c j, iar 0 că nu
aparține. O pagină poate să aparțină mai multor categorii. Clasificarea paginilor web
constă în aproximarea funcției de atribuire f : D × C → { 0 , 1 } , prin intermediul unei
funcții informate f ʹ : D × C → {0, 1}, numită clasificator , model, sau ipoteză, astfel încât
f ʹ să coincidă cu f pe cât de mult posibil.
Funcția f ʹ este obținută de obicei printr -un proces de “ învățare automată ”, folosindu- se
un set de pagini web exemplu, ca set de antrenament. Fiecare pagină exemp lu are
atribuită o etichetă de clasă. Funcția f ʹ este indusă în procesul de antrenament și este
folosită apoi în procesul de clasificare pentru a asocia noile pagini web categoriilor. O pagină web este reprezentată printr -un vector d
i = {w 1, w 2, … , w M}, unde fiecare
element w i reprezintă ponderea unui atribut al paginii, iar M este mărimea spațiului de
atribute . Se notează cu N numărul total de pagini web din setul de antrenament. Aceste
pagini vor fi reprezentate prin vectorii d 1, d2, … , d N, cărora li se atribuie respectiv
etichetele de categorii y 1, y2, … , y N. Cu N j se notează numărul de pagini din setul de
antrenament cărora li se asociază eticheta de categorie c j.
Clasificatoarele se împart în mai multe categorii: clasificatoare bazate pe profil uri,
clasificatoare bazate pe învățarea de reguli, clasificatoare prin exemplu direct și
clasificatoare bazate pe parametri.

37 Choi, B., Yao , Z., op. cit. , p. 222. Pagini
web c1 … cj … cK
d1 a11 … a1j … a1K
… … … … … …
di ai1 … aij … aiK
… … … … … …
dP aP1 … aPj … aPKCategorii

30
În continuare sunt prezentate principalele tipuri de clasificatoare din categoriile mai sus
menționate , așa cum sunt descrise de Choi, B. et al.38

4.1 Clasificatoare bazate pe profiluri

Acest tip de clasificatoare presupun extragerea unui profil pentru fiecare categorie, din
acel set de pagini web de antrenament care au fost desemnate drept exemple ale
categori ei respective. După “ antrenarea” clasificatorului prin extragerea profilurilor
pentru toate categoriile, se trece la clasificarea de noi pagini. Paginile care urmează să fie
clasificate sunt reprezentate mai întâi ca vectori de atribute , după care acești vect ori sunt
comparați cu profilurile tuturor categoriilor și primesc un scor. În funcție de un anumit
nivel prag al acestui scor, paginile sunt atribuite uneia sau mai multor categorii.

4.1.1 Clasificatorul Rocchio

Algoritmul lui Rocchio folosește metoda TFIDF de stabilire a ponderilor termenilor
pentru a crea vectorul de atribute al fiecărei pagini web. “Învățarea” se realizează prin
combinarea vectorilor de atribute pentru a produce un vector prototip, c j��⃗ pentru fiecare
clasă c j. Vectorii de atribute normalizați pentru paginile care aparțin clasei cj, sunt adunați
laolaltă cu vectorii de atribute pentru paginile care nu aparțin clasei c j. Adică se
însumează laolaltă vectorii pentru exemplele pozitive și cei pentru exemplele negative.
Apoi, vectorul prototip c j��⃗ este calculat după cum urmează:
cj��⃗ = α1
|cj|�d�⃗
||d�⃗|| – β1
|C – cj|
d�⃗∈cj� d�⃗
||d�⃗||
d�⃗∈C – cj
unde α și β sunt parametri care ajustează impactul relativ al exempl elor de antrenare
pozitive și negative , |cj| reprezint ă numărul de elemente ale mulțimii cj, iar ||d�⃗|| este norma
vectorului d�⃗. Setul de vectori prototip care rezultă, câte un vector pentru fiecare clasă,
reprezintă modelul “învățat”.

38 Choi, B., Yao , Z., op. cit. , pp. 250- 262.

31
Folosind cosinusul ca metrică de similaritate și luând α = β = 1, Rocchio arată că fiecare
vecto r prototip maximizează similaritatea medie a exemplelor pozitive din setul de
antrenament, minus similaritatea medie a exemplelor negative, adică:
1
|cj| � cos (cj��⃗, d�⃗) – 1
|C – cj|
d�⃗∈cj� cos (cj��⃗, d�⃗)
d�⃗∈C – cj
Pentru doi vectori 𝑎⃗ și 𝑏�⃗, similaritatea cosinus a vectorilor reprezintă cosinusul unghiului
θ dintre vectorii 𝑎⃗ și 𝑏�⃗ și are expresia:
cos(θ)=𝑎⃗ · 𝑏�⃗
||𝑎⃗|| ||𝑏�⃗||= ∑aibin
i=1
�∑ai2 ni=1�∑bi2 ni=1
unde 𝑎⃗ · 𝑏�⃗ reprezintă produsul scalar al vectorilor 𝑎⃗ și 𝑏�⃗, ||𝑎⃗|| și ||𝑏�⃗|| sunt normele
vectorilor , iar a i și bi sunt respectiv componentele vectorilor 𝑎 ⃗ și 𝑏�⃗.
După obținerea vectorului prototip cj��⃗ pentru fiecare dintre categoriile predefinite din
mulțimea C , clasificatorul este folosit pentru a clasifica un nou document dʹ. Pentru a
clasifica documentul dʹ sunt calculate similaritățile cosinus dintre dʹ și fiecare dintre
vectorii prototip c j��⃗. Documentul dʹ este atribuit categoriei cu care dʹ are cea mai mare
similaritate cosinus:
H(dʹ) = argmax
cj∈C �cos (cj��⃗, dʹ��⃗)�
= arg max
cj∈C cj��⃗
||cj��⃗|| · dʹ��⃗
||dʹ��⃗||

unde arg max f(x) returneaz ă argumentul x pentru care f (x) este maxim , iar H(dʹ) este
categoria sau clasa atribuită documentul dʹ.

4.1.2 Support Vector Machine

Clasificarea Support Vector Machine (SVM) are la bază teoria învățării statistice și a fost
aplicată cu succes în numeroase probleme de clasificare și pentru documente cu număr

32
mare de atribute . Ideea principală este de a găsi un hiperplan care împarte opt im setul de
date de antrenament.39

Fig. 1. SVM liniar. Figura ilustrează o problemă simplă bidimensională liniar
separabilă. Pătratele reprezintă exemplele pozitive iar cercurile sunt exemplele
negative. Algoritmul SVM găsește hiperplanul h reprezentat prin linia
continuă, care separă exemplele de antrenament pozitive de cele negative astfel încât să existe o margine de separare maximă, ilustrată prin spațiul dintre liniile punctate. E xemplele situate cel mai aproape de hiperplan sunt
numite “vectori suport” . Deci SVM găsește hiperplanul care maximizează
distanțele la vectorii suport.
În cea mai simplă formă liniară a sa, algoritmul încearcă să determine hiperplanul care
separă un set d e exemple pozitive de un set de exemple negative, cu o margine de
separare maximă. Se notează cu D = {(y i, di)} mul țimea paginilor web din setul de
antrenament, unde y i ∈ {+1, -1} este clasificarea unui vector de atribute di��⃗ , cu +1
indic ând un exemplu pozitiv, iar – 1 indicând un exemplu negativ pentru o categorie dată.
Hiperplanul este caracterizat de o funcție de decizie de forma:
h(d�⃗) = sgn( w��⃗·d�⃗+b) = �+1, dacă w��⃗·d�⃗+b > 0
-1, în celelalte cazuri

39 Morariu, I.D., op. cit. , p. 15.

33
unde h(d�⃗) este o ipoteză pentru vectorul de atribute al documentului dat d�⃗, iar w��⃗
reprezintă vectorul ponderilor , în timp ce b este un scalar care trebuie definit. Găsirea
hiperplanului cu marginea de separare maximă poate fi tradusă în următoarea problemă
de optimizare:
Găsește valoarea minimă a lui ||w��⃗|| astfel încât: ∀ i : y i[w��⃗ · di��⃗ + b] ≥ 1
unde ||w��⃗|| este lungimea euclidiană sau norma vectorului de ponderi w��⃗. Cu ajutorul
multiplicatorilor Lagrange, problema de optimizare este transformată în următoarea problemă:
Găsește valoarea minimă a lui:
-�αi +1
2N
i=1�αiαjyiyjN
i,j=1di��⃗ · dj��⃗
astfel încât :
�αiyiN
i=1= 0 și ∀i : α i ≥ 0
Rezultatul procesului de optimizare este un set de coeficienți αi* pentru care expresia de
mai sus are valoarea minimă. Acești coeficienți vor fi folosiți pentru a construi
hiperplanul în modul următor:
w��⃗ · d�⃗ = ��αi* yiN
i=1di��⃗�· d�⃗ și b = 1
2 (w��⃗·d+���⃗ + w��⃗·d-��⃗)
Din ecuația de mai sus se poate observa că vectorul de ponderi w��⃗ este construit ca o
combinație liniară a documentelor de antrenament. Numai vectorii de antrenament pentru
care coeficientul αi este mai mare decât 0 contribuie la construirea lui w ��⃗. Acești vectori se
numesc “vectori suport” . Pentru calcularea lui b sunt folosiți un vector suport arbitrar d+���⃗
dintre exemplele pozitive și un vector suport arbitrar d-��⃗ dintre exemplele negative.
Odată ce a fost obținut vectorul de ponderi pentru fiecare categorie, un nou document d
poate fi clasificat prin calcularea lui w��⃗·d�⃗+b, unde w��⃗ este vectorul de ponderi “învățat ” al
unei categorii date, iar d�⃗ este vectorul care reprezintă noul document. Dacă valoarea lui
w��⃗·d�⃗+b este mai mare decât 0, noul document este inclus în această categorie.

34
4.1.3 Clasificatorul pe bază de r ețele neuronale

Perceptronul
Perceptronul este un algoritm de tip învățare supervizată, folosit în clasificarea binară . În
cazul paginilor web, perceptronul primește la intrare un vector de atribute asociat unei
pagini web, calculează o combinație liniară a atribute lor vectorului de intrare, după care
generează +1 dacă rezultatul este mai mare decât un anumit prag “învățat ” automat în
cursul antrenamentului, sau – 1 în celelalte cazuri, ceea ce arată, respectiv, dacă pagina
web aparține categoriei sau nu. O funcție a perceptronului este de forma:
o �d�⃗� = sgn( w��⃗·d�⃗+b) = sgn ��widi+bM
i=1�
unde w��⃗ = (w 1, w2, … , w M) este un vector de ponderi M-dimensional, iar d�⃗ = (f1, f2, … , f M)
este un vector de intrare M -dimensional care reprezintă o pagină web , în care fiecare
element f i reprezintă al i-lea atribut a vectorului, b este un prag, iar funcția sgn este
definită în modul următor:
sgn( y) = �+1, dacă y > 0
-1, în celelalte cazuri
Pentru a simplifica notația, transformăm vectorii w��⃗ și d�⃗ pentru a -i face M+1 –
dimensionali , adăugând w0 = b and f 0 = 1. Acest lucru ne permite să rescriem expresia
funcției sgn ca:
sgn(w��⃗·d�⃗) = �+1, dacă w��⃗·d�⃗ > 0
-1, în celelalte cazuri
Perceptronul poate fi văzut ca o suprafață de decizie de forma unui hiperplan într -un
spațiu M+1 – dimensional. Perceptronul generează valori +1 pentru toate exemplele
pozitive de o parte a hiperplanului și valori -1 pentru exemplele negative de cealaltă
parte. Ecuația pentru acest hiperplan de decizie este w ��⃗·d�⃗ = 0. Mulțimile de pagini web
care pot fi separate cu ajutorul hiperplanului sunt numite liniar separabile.
În cursul antrenării perceptronului, ponderile w1, w 2, … , w M sunt ajustate pe baza
exemplelor din setul de ant renament. Procesul de “învățare” începe cu un set de ponderi
aleatoare, apoi algoritmul este aplicat iterativ la toate exemplele de antrenament și
ponderile sunt modificate ori de câte ori algoritmul clasifică greșit un exemplu. Ponderile

35
wi asociate cu atribute le fi sunt modificate la fiecare pas pe baza următoarei reguli de
“învățare ”:
wi ← w i + η(y i − oi)fi
unde η este rata de “învățare” , yi este eticheta legată de clasă (+1 sau -1), oi este rezultatul
generat de perceptron. Algoritmul iterează asupra exemplelor de antrenament de multe
ori, până când perceptronul clasifică corect paginile din setul de antrenament. Vectorul de
ponderi “învățat ” este apoi folosit pentru a clasifica noi pagini web.

4.2 Clasificatoare bazate pe învățarea de reguli

Cea mai importantă caracteristică a algoritmilor de clasificare bazați pe învățarea de
reguli este aceea că permit relațiilor dintre antribute să influențeze rezultatul clasificării,
în timp ce alte tipuri de algoritmi, cum a r fi clasificatorul naiv bayesian, fac abstracție de
relațiile dintre atribute și le consideră independente unele față de altele. Deci clasificatoarele bazate pe învățarea de reguli sunt sensibile la contextul în care apar
atributele paginilor web.

4.2.1 Clasificatorul pe baz ă de reguli de asociere

Un exemplu de clasificator pe bază pe reguli de asociere este propus de Zaiane, O.R. et
al.40 care aplică tehnici de descoperire a relațiilor între atributele documentelor text
pentru a construi un sistem de clasificare a documentelor. Acest tip de abordare are
avantajul unui timp scurt de antrenament, iar performanța clasificatorului este
comparabilă cu cea a celor mai cunoscute tipuri de clasificatoare de documente .
Autorii de scriu folosirea unui set de reguli pentru reprezentarea fiecărei categorii. O
astfel de regulă este de forma “F ⇒ c”, unde F este o conjuncție (cum ar fi f1 ∧ f2 ∧ f3) de
atribute extrase dintr -un set de documente de antrenament care fac parte din aceeași

40 Zaiane, O.R., Antonie, M.L., Classifying Text Documents by Associating Terms with Text Categories,
în: Proceedings of the 13th Australasian conference on database technologies, Australian Computer
Society , Melbourne, 2002, pp. 215- 222, apud: Choi, B., Yao , Z., op. cit. , p. 258.

36
categorie c. Odată ce se descoperă un set de reguli pentru fiecare categorie, regulile pot fi
folosite pentru a clasifica noi documente.
Procesul de descoperire a setului de reguli pentru categoria c începe prin numărarea
numărului de ocurențe ale fiecărui atribut din mulțimea D de documente de antrenament pentru categoria c. Sunt selectate apoi acele atribute care au frecvența concurentă m ai
mare decât un anumit prag numit prag suport. Atributele selectate sunt grupate două câte
două pentru a forma atribute de tipul 2- gram . Apoi algoritmul numără frecvența tuturor
atributelor 2 -gram și le selectează pe acelea care au frecvența concurentă mai mare decât
pragul suport. Atributele 2 -gram selectate sunt combinate cu atributele 1 -gram pentru a
forma atribute 3 -gram și așa mai departe. Procesul se repetă până când sunt selectate
atribute k -gram, unde k este un număr predefinit. Mulțimea atributelor k -gram este
transformată într -un set de reguli, fiecare regulă având forma (f
1 ∧ f2 ∧ . . . f k) ⇒ c. Numai
o parte din reguli s unt folosite pentru clasificare și anume acele reguli selectate pe baza
unui criteriu de încredere. Încrederea asociată unei regul i de forma (f 1 ∧ f2 ∧ . . . f k) ⇒ c
este dată de proporția dintre numărul total de documente care aparțin categoriei c și
numărul documentelor care conțin atributele f1 , f2 , . . ., fk . S-a folosit drept criteriu de
încredere pragul de 70% pentru proporția mai sus menționată.

4.2.2 Clasificatorul pe bază d e arbori de decizie

Clasificatoarele baz ate pe arbori de decizie sunt incluse în categoria clasificatoarelor pe
bază de învățare de reguli pentru că arborii de decizie pot fi convertiți în reguli de
conjuncție sau disjuncție.
Pentru clasificarea unui document d, vecto rul de atribute al documentului , d�⃗, este
confruntat cu un arbore de decizie construit pe baza documentelor de antrenament. Una
dintre metodele folos ite pentru construirea arborelui de decizie este algoritmul CART
(Classification and Regression Trees) descris de Breiman, L. et al.41

41 Breiman , L., Friedma n, J.H., Olshen, R.A., Stone, C.J., Classification and R egression Trees, Wadsworth
International Group, Belmont, CA , 1984, apud: Choi, B., Yao , Z., op. cit. , p. 259.

37

Fig. 2. Arbore de decizie binar . Fiecare nod, cu excepția nodurilor frunză, reprezintă un
atribut al documentului , iar fiecare ramură ce coboară dintr -un nod corespunde uneia
dintre valorile ponderilor asociate atributelor (de exemplu ponderea calculată cu metoda
TFIDF ). Fiecare nod frunză reprezintă o etichetă de clasă.

Conform descrierii autorilor, algoritmul CART creează un arbore de decizie binar
pornind de la un set de documente de antrenament reprezentate sub forma unor vectori de
atribute. La fiecare pas este ales un atribut din mulțimea de vectori de atribute și este
folosit pentru a împărți mulțimea de vecto ri în două submulțimi. Pentru a determina
atributul care trebuie selectat este folosit un criteriu numit diversitate. Cea mai bună
selecție este făcută prin găsirea valorii maxime a expresiei:
diversitate (înainte_de_împărțire) – [diversitate (fiul_din_stânga) + (1)
diversitate (fiul_din_dreapta)]
Una dintre metodele de a măsur a diversit atea este prin calcularea Entropi ei Gini (EG)
dată de expresia:
EG(t) = 1-∑Pr(c j|t)K
j=1 (2)
unde K este num ărul de categorii, iar Pr(c j|t) reprezintă probabilitatea unui exemplu de
antrenament din clasa c j să ajungă în nodul t. Pr(c j|t) poate fi calculată prin:
Pr(cj|t)= Nj(t)
N(t)

38
unde N j(t) este numărul de exemple de antrenament din clasa c j de la nodul t, iar N(t) este
numărul total de exemple de antrenament de la nodul t.
Pentru a selecta un atribut pentru un nod, fiecare atribut din totalul vectorilor de atribute
este evaluat cu ajutorul formul elor (1) și (2). Atributul pentru care expresia (1) are
valoare maximă este selectat și folosit pentru a împărți în două submulțimi mulțimea
vectorilor de atribute folosiți pentru antrenament. Acest proces este repetat până când
mulțimea vectorilor de antr enament nu mai poate fi împărțită mai departe. Fiecare vector
de antrenament poate fi folosit apoi pentru a traversa arborele binar de la rădăcină până la
un nod frunză. Nodului frunză rezultat astfel i se atribuie o etichetă de categorie a vectorului de a ntrenament.
După aplicarea algoritmului de mai sus, arborele binar construit este mult prea adaptat la
exemplele de antrenament și nu poate fi folosit eficient pentru clasificarea a noi
documente. Arborele inițial este deci ajustat prin eliminarea ramurilor ca re aduc cea mai
mică putere de predicție adițională per frunză . Rezultatul fiecărei tăieri de ramură este un
nou arbore. Scopul final este acela de a crea un arbore care va clasifica optim noi documente. Pentru a obține cel mai bun arbore este folosită o nouă mulțime de
documente clasificate ca mulțime de validare. Fiecare din arborii candidați sunt folosiți
pentru a clasifica mulțimea de validare. Arborele care realizează clasificarea cu cea mai mare acuratețe este ales ca arbore final.

4.3 Clasificatoare prin exemplu direct

Pentru clasificarea prin exemplu direct, o pagină web care urmează să fie clasificată este
folosită pe post de interogare contra unor seturi de exemple care reprezintă anumit e
categorii . Pagina web este atribuită categoriei al cărei set de exemple prezintă cea mai
mare similaritate cu pagina web în discuție.

4.3.1 Clasificatorul k-NN (k -Nearest -Neighbor s)

Spre deosebire de clasificatorul Rocchio care cuprinde o etapă explicită de antrenament
înainte de clas ificarea noilor documente, clasificatorul k -NN (k -Nearest -Neighbors) este
un clasificator “ leneș ”, pentru că amână procesul de “învățare” până în momentul în care
este clasificat un nou document.

39
Clasificatorul k -NN compară un document nou direct cu docume ntele de antrenament
date și folosește simila ritatea cosinus pentru a evalua gradul de asemănare dintre doi
vectori asociați documentelor. Algoritmul ordonează în ordine descendentă documentele
de antrenament, în funcție de gradul de similaritate cu noul document. Primele k
documente de antrenament sunt numite cei-mai-apropiați -k-vecini (k -Nearest -Neighbors)
ai documentului nou, și sunt folosite pentru a estima categoriile în care se încadrează noul
document.
Scorul de similaritate al fiecărui document “vecin” este folosit ca pondere pentru
categoria care va fi asociată. Pentru a clasifica un document nou, scorul care indică cât de
potrivită este o categorie pentru a fi atribuită documentului , se calculează prin formula:
y(dʹ��⃗, cj) =� sim�dʹ��⃗, di��⃗�y�di��⃗, cj�
di��⃗∈KNN – bj
unde di��⃗ este unul dintre cei -mai-apropiați -k-vecini ai noului document dʹ ��⃗, y�di��⃗, cj�∈{0,1}
este clasificarea pentru di��⃗ relativ la categoria c j (y = 1 pentru apartenenț ă și y = 0 pentru
neapartenență ), sim�dʹ��⃗, di��⃗� este similaritatea (de exemplu similaritatea cosinus) dintre
noul document dʹ și vecinul lui d i, iar b j este pragul specific categoriei. Acest prag
specific categoriei este “ învățat ” automat prin folosirea unui set de documente de
validare. Algoritmul k -NN stabilește ca prag optimal b j pentru categoria c j acea valoare
care duce la cea mai bună clasificare a documentelor de validare. Documentul nou este
inclus în acele categorii care au scoruri mai mari decât un anumit prag predefinit.

4.4 Clasificatoare bazate pe parametri

Clasificatoarele bazate pe parametri folosesc exemple de antrenament pentru a estima
parametrii unei distribuții de probabilități.

4.4.1 Clasificatorul bayesian naiv

Clasificatorul bayesian prezice cu o anumită probabilitate apartenența unei pagini web la
o anumită categorie și are la baz ă teorema sau regula lui Bayes care are expresi a
matematică :

40
P(A|B)= P(B|A) P(A)
P(B)
unde A și B sunt evenimente iar P(B) ≠ 0.
– P(A) și P(B) reprezintă probabilitățile de a observa independent că se întâmplă
evenimentul A, respectiv evenimentul B.
– P(A|B) este o probabilitate condițională și reprezintă probabilitatea ca A să se întâmple
odată ce B se întâmplă .
– P(B|A) este probabilitatea ca B să se întâmple, odată ce A se întâmplă.
Clasificatorul bayesian naiv (Nai ve Bayes Classifier ) are la bază ipoteza “naivă ” că
atributele unui document care aparține unei anumite clase sunt independente unele față de
altele . Această ipoteză folosită pentru a simplifica calculele nu împiedică algoritmul să
clasifice cu acuratețe pagini web cu număr mare de atribute.
Fiind dat un nou document (pagină web) dʹ, clasificatorul bayesian naiv are ca scop
estimarea probabilității ca documentul dʹ să aparțină clasei c j, care se scrie P r(cj|dʹ) și are
expresia:
Pr(cj|dʹ) = Pr(cj) Pr(dʹ|cj)
Pr (dʹ)
Numitorul fracției din ecuația precedentă nu diferă între categorii și poate fi ignorat.
Clasificatorul naiv bayesian presupune independența atributelor și astfel expresia lui
Pr(c j|dʹ) devine :
Pr(cj|dʹ) = Pr(c j)�Pr(fi|cj)
fi∈dʹ
unde Pr(c j) este raportul dintre numărul de atribute din setul de antrenament aparținând
categoriei c j și numărul total de atribute din setul de antrenament , iar f i este un atribut,
adică un termen, aflat în documentul dʹ. O estima re a lui Pr(f i|cj) este dată de expresia:
P�r(fi|cj) = 1 + Nij
M +∑ NkjM
k=1
unde N ij reprezintă numărul de ocurențe al atributului f i în documentele din categoria c j,
iar M este numărul total de atribute din setul de antrenament. Categoria cu valoarea
maximă a lui Pr(c j|dʹ) este categoria care va fi atribuită documentul ui dʹ.

41
5. Clasificator bayesian implementat folosind PHP și MySQL

5.1 Principalele componente și funcționalități ale aplicației

Clasificatorul se bazează pe regula lui Bayes și face uz de ipoteza de independență a
atributelor unei pagini web unele față de altele pentru o pagină dintr -o anumită categorie.
Este vorba deci de modelul de clasificare bayesian ă “naivă”. Clasificatorul face o
estimare a probabilității ca o anumită pagină web să facă parte dintr -o gamă de categorii
sau clase. Clasa pentru care probabilitatea este cea mai ridicată este atribuită
documentului.
Algoritmul trebuie să calculeze pentru fiecare din categoriile documentelor de
antrenament produsul dintre probabilitatea Pr(c j) (care este egală cu numărul total de
atribute din documentele de antrenament din clasa c j raportat la numărul total de atribute
din toate documentele) și probabilit atea individual ă Pr(f i|cj) care este egală cu numărul de
ocurențe ale atributului f i în documentele din clasa c j, raportat la numărul de cuvinte total
din clasa c j.
Aplicația cuprinde o serie de fișiere PHP și o bază de date MySQL cu mai multe tabele .
Procesul de clasificare are loc în două etape. Mai întâi clasificatorul este antrenat cu
ajutorul unei colecții de pagini web aparținând anumitor domenii sau categorii
predefinite. S -au folosit pagini web din patru domenii : artă culinară, financiar -bancar ,
imobiliare și sport . După etapa de antrenament clasificatorul poate înregistra, analiza și
clasifica pagini web noi , primind ca date de intrare doar adresa web.
Principalele componente ale aplicației sunt:
 un parser care extrage conținutul text al paginilor web și îl prelucrează eliminând
cuvintele de legătură, diacriticile, tag -urile HTML, precum și alte elemente
inutile în clasificare ;
 un fișier PHP central care calculează probabilitățile ca documentul nou să aparț ină categoriilor prestabilite.
 un creator de tabele care automatizează crearea de noi tabele MySQL necesare
aplicației;
 mai multe fișiere PHP care comasează datele din tabele pentru fiecare categorie
în parte și pentru ansamblul datelor înregistrate;
 o baz ă de date cu mai multe tabele, fiecare tabel cuprinzând conținutul text dintr –
o pagină web sau o categorie de pagini web.

42
Baza de date a aplicației numită “clasificator ” cuprinde câte 5 tabele pentru fiecare dintre
cele 4 categorii de pagini de antrenament . Primul tabel al categoriei art ă culinară
prezentat mai jos cuprinde informații grupate în 4 coloane: index, atribut, frecvență și
categorie. Coloana de atribute este cea care conține de fapt fiecare cuvânt din prima
pagina web de antrenament aparținând categoriei artă culinară. În coloana “ frecvență ”
este salvat numărul total de ocurențe al fiecărui termen în documentul respectiv, iar
coloana categorie precizează categoria căreia îi aparține pagina web ale cărei date sunt
salvate în tabel. Rândurile sunt sortate în ordinea descrescătoare a frecvenței termenilor. Toate celelalte tabele dedicate paginilor din setul de antrenament au o structură s imilară.

Pentru fiecare dintre cele patru categorii, în afară de tabelele cu datele paginilor web mai există încă două tabele auxiliare necesare pentru regăsirea mai ușoară a informațiilor
cheie: unul care cuprinde toate cuvintele din paginile unei categorii, inclusiv duplicate le,

43
și unul care cuprinde toate cuvintele dintr -o categorie cu frecvențele asociate, exclusiv
duplicatele. Există de asemenea două astfel de tabele care cuprind toate cuvintele cu
frecvențele asociate din toate documentele comasate.

5.2 Extrase din codul sursă

Parser- ul
Parser -ul are ca funcție principală pregătirea datelor înainte de a fi analizate și folosite de
algoritm. În primul rând este extras conținutul text al unei pagini web și se încearcă
eliminarea pe cât posibil a tuturor elementelor care ar putea afecta negativ clasificarea.
Cuvintele de legătură ( stopwords ), cum ar fi “ de, și, cum, la, pentru, în, cât, după etc.”
sunt eliminate; ele nu sunt relevante în ce privește subiectul paginii. Diacriticile sunt și
ele eliminate pentru a se realiza o uniformizare a conținutului din diverse pagini. Sunt
înlăturate tag -urile HTML, simbolurile de copyright și altele asemănătoar e și în final
textul este împărțit în cuvinte distincte care sunt numărate și sortate în ordinea
descrescătoare a frecvenței. Textul unei pagini web este transformat într -un vector
asociativ de termeni și valori ale frecvenței lor. La final termenii și fre cvențele asociate
sunt introduse într -un tabel MySQL dedicat paginii web în cauză.

<?php
require 'connect.php';
$datamineFilename = http://www.banknews.ro/ ';
$data = file_get_contents($datamineFilename);
function replaceSpecialChars($string){
// caractere care trebuie inlocuite cu cele din variabila $add (in aceeasi ordine)
$rem = array('ă', 'Ă', 'ș', 'Ș', 'ț', 'Ț', 'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'ç', 'è', 'é', 'ê', 'ë', 'ð', 'ì',
'í', 'î', 'ï', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', 'ø', '§', 'ù', 'ú', 'û', 'ü', 'ý', 'ÿ', 'À', 'Á', 'Â', 'Ã', 'Ä', 'Å',
'Æ', 'Ç', 'È', 'É', 'Ê', 'Ë', '€', 'Ð', 'Ì', 'Í', 'Î', 'Ï', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ø', '§', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'Ÿ',
// aceleasi caractere, dar ca entitati HTML

44
'&agrave;', '&aacute;', '&acirc;', '&atilde;', '&auml;', '&aring;', '&aelig;', '&ccedil;',
'&egrave;', '&eacute;', '&ecirc;', '&euml;', '&eth;', '&igrave;', '&iacute;', '&icirc;',
'&iuml;', '&ntilde;', '&ograve;', '&oacute;', '&ocirc;', '&otilde;', '&ouml;', '&oslash;',
'&sect;', '&ugrave;', '&uacute;', '&ucirc;', '&uuml;', '&yacute;', '&yuml;',
'&Agrave;', '&Aacute;', '&Acirc;', '&Atilde;', '&Auml;', '&Aring;', '&AElig;',
'&Ccedil;', '&Egrave;', '&Eacute;', '&Ecirc;', '&Euml;', '&euro;', '&ETH;',
'&Igrave;', '&Iacute;', '&Icirc;' , '&Iuml;', '&Ntilde;', '&Ograve;', '&Oacute;',
'&Ocirc;', '&Otilde;', '&Ouml;', '&Oslash;', '&sect;', '&Ugrave;', '&Uacute;',
'&Ucirc;', '&Uuml;', '&Yacute;', '&Yuml;');
// caractere care vor fi adaugate
$add = array('a', 'A', 's', 'S', 't', 'T', 'a', 'a', 'a', 'a', 'a', 'a', 'ae', 'c', 'e', 'e', 'e', 'e', 'ed', 'i',
'i', 'i', 'i', 'n', 'o', 'o', 'o', 'o', 'o', 'o', 's', 'u', 'u', 'u', 'u', 'y', 'y', 'A', 'A', 'A', 'A', 'A', 'A', 'AE', 'C', 'E', 'E', 'E', 'E', 'EUR', 'ED', 'I', 'I', 'I', 'I', 'N', 'O', 'O', 'O', 'O', 'O', 'O', 'S', 'U',
'U', 'U', 'U', 'Y', 'Y',
// pentru inlocuit entitatile HTML
'a', 'a', 'a', 'a', 'a', 'a', 'ae', 'c', 'e', 'e', 'e', 'e', 'ed', 'i', 'i', 'i', 'i', 'n', 'o', 'o', 'o', 'o', 'o', 'o',
's', 'u', 'u', 'u', 'u', 'y', 'y', 'A', 'A', 'A', 'A', 'A', 'A', 'AE', 'C', 'E', 'E', 'E', 'E', 'EUR', 'ED', 'I', 'I', 'I', 'I', 'N', 'O', 'O', 'O', 'O', 'O', 'O', 'S', 'U', 'U', 'U', 'U', 'Y', 'Y');
return str_replace($rem, $add, $string);
}
$data = replaceSpecialChars($data);
// înlătur ă textul din interiorul tag -urilor HTML
$data = preg_replace('/(<(script|style|span)\ b[^>]*>).*?(< \/\2>)/s', "$1$3",
$data);
// înlătură caracterle speciale HTML, cum ar fi &gt; &nbsp; &amp; etc.
$data = preg_replace("/& #?[a -zA-Z0-9]+;/i", ' ', $data); $data =
// înlătură tag -urile
strip_tags($data);
// înlătură semnele de punctuație
$data = preg_replace('#[[:punct:]]#', ' ', $data);

45
// înlătură simbolurile
$data = str_replace(array('0','1','2','3','4','5','6','7','8','9','°','„','“','”','©','®','»','– ','
中','æ','‡','日',' 本','語','Ð','Ñ','ƒ'), ' ', $data);
$data = preg_replace('/[ \xae\xa9\x92\x96]/', ' ', $data);
// înlătură toate spațiile suplimentare
$data = preg_replace('/ \s+/', ' ', $data );
$cuvinte = "datele.txt";
$content = strtolower(file_get_contents($cuvinte));
// împarte textul într -un vector de substringuri
$wordArray = preg_split('/[^a -z]/', $content, – 1, PREG_SPLIT_NO_EMPTY);
// înlătură cuvintele de legătură
$filteredArray = array_filter($wordArray, function($x){ return
!preg_match("/^(|a|de|si|pentru|din|la|cu|despre|al|cel|tot|cate|ar|dupa|un|o|
j|tg|iv|www|in|prin|te|ale|fa|ca|pe|mi|ma|al|care|au|ki|gu|et|ie|ii|po|va|re|am
|or|pi|na|lui|iii|alte|by|tii|uti|ilor|nu|id|ne|lor|mea|fara|ati|ce|fi|vor|ro|sau|tale|tau|mai|iti|nbg|vezi|sa|se|cea|i|ta|p|l|n|e|d|g|s|b|v|c|pu|m|u|t|r|cs|go|to|il|i
a|ghi|me|le|uri|ul|ti|etc|dvs|atat|ai|daca|ea|cele|are|)$/",$x);
});
// creează vectorul asociativ de t ermeni și frecvențe ale lor
$wordFrequencyArray = array_count_values($filteredArray);
// sortează vectorul în ordinea descendentă a frecvenței termenilor
arsort($wordFrequencyArray);
$continut = print_r($wordFrequencyArray, true);
print_r($wordFrequencyArray);
// inserează termenii și frecvențele asociate într -un tabel numit ‘ pagina_noua ’
foreach ($wordFrequencyArray as $key => $value){

46
$query = "INSERT INTO pagina_noua (atribut, frecventa) VALUES ('$key',
'$value')";
mysql_que ry($query);
}
?>

Fișierul central

Fișierul PHP principal al aplicației are funcția de a interoga baza de date, de a extrage
informații cheie și de a efectua calcularea probabilităților necesare pentru determinarea
clasei unei noi pagini web. Pentru manipularea datelor din tabele, sunt folosite structuri
“while” și funcția “mysql_fetch_assoc ()” de extragere a elementelor unui tabel ca vector
asociativ.

<?php
require 'parse_new.php';
/* calcularea probabilităților pentru categoria 1: arta_culinara ($prTopic1 =
numărul de cuvinte dintr -o categorie / numărul de cuvinte din toate categoriile )
( $prWord1_topic1 = (de câte ori apare cuvântul în categorie )/(numărul total
de cuvinte din categorie) ) */
$res1 = "SELECT count(*) from art_cul_tot;";
$resq1 = mysql_query($res1);
$totnb = "SELECT count(*) from all_tot;";
$restot = mysql_query($totnb);
$prTopic1 = $resq1 / $restot;
echo '$prT opic1 = '. $p rTopic1 . '</br>';
$quer1 = "SELECT * FROM pagina_noua";

47
$rem1 = mysql_query($quer1);
$prWord1_topic1tot = 1;
while ($el em = mysql_fetch_assoc($rem1)){
$nrTimes_in_topic1 = mysql_query("SELECT frecventa FROM
art_cul _tot WHERE atribut = '$elem'");
$res1 = "SELECT count(*) from art_cul_tot;";
$resq1 = mysql_query($res1);
$prWord1_topic1 = $nrTimes_in_topic1 / $resq1;
$prWord1_topic1tot *= $prWord1_topic1;
echo $prWord1_topic1 . "</br>";
echo $prWord1 _topic1tot . "</br>";
}
$prTopic_pagn1 = $ prTopic1 * $prWord1_topic1tot;
echo '$prTopic_pagn1 = ' . $prTopic_pagn1 . '</br>';
//calcularea probabilităților pentru categoria 2: financiar_bancar
$res2 = "SELECT count(*) from financiar_tot;";
$resq2 = mysql_query($res2);
$totnb = "SELECT count(*) from all_tot;";
$restot = mysql_query($totnb);
$prTopic2 = $resq2 / $restot;
echo '$prTopic2 = ' . $prTopic2 . '</br>';
$quer2 = "SELECT * FROM pagina_noua";
$rem2 = mysql_query($quer2);
$prWord2_topic2tot = 1;
while ($elem = mysql_fetch_assoc($rem2)){

48

$nrTimes_in_topic2 = mysql_query("SELECT frecventa FROM
financiar _tot WHERE atribut = '$elem'");
$res1 = "SELECT count(*) from art_cul_tot;";
$resq1 = mysql_query($res1);
$prWord2_topic2 = $nrTimes_in_topic2 / $resq1;
$prWord2_topic2tot *= $prWord2_topic2;
echo $prWord2_topic2 . "</br>";
echo $prWord2_topic2tot . "</br>";
}
$prTopic_pagn2 = $prTopic2 * $ prWord2_topic2tot;
echo '$prTopic_pagn2 = ' . $prTopic_pagn2 . '</br>';
//calcularea probabilităților pentru categoria 3: imobiliare
$res3 = "SELECT count(*) from imob_tot;";
$resq3 = mysql_query($res3);
$totnb = "SELECT count(*) from all_ tot;";
$restot = mysql_query($totnb); $prTopic3 = $resq3 / $restot;
echo '$prT opic3 =' . $prTopic3 . '</br>';
$quer3 = "SELECT * FROM pagina_noua";
$rem3 = mysql_query($quer3);
$prWord3_topic3tot = 1;
while ($el em = mysql_fetch_assoc($rem3)){
$nrTimes_in_topic3 = mysql_query("SELECT frecventa FROM
imob _tot WHERE atribut = '$elem'");

49
$res1 = "SELECT count(*) from art_cul_tot;";
$resq1 = mysql_query($res1);
$prWord3_topic3 = $nrTimes_in_topic3 / $resq1;
$prWord3_topic3tot *= $prWord3_topic3;
echo $prWord3_topic3 . "</br>";
echo $prWord3_topic3tot . "</br>";
}
$prTopic_pagn3 = $prTopic3 * $prWord3_topic3tot;
echo '$prTopic_pagn3 = ' . $prTopic_pagn3 . '</br>'; //ca lcularea probabilităților pentru categoria 4: sport
$res4 = "SELECT count(*) from sport_tot;";
$resq4 = mysql_query($res4);
$totnb = "SELECT count(*) from all_tot;";
$restot = mysql_query($totnb);
$prTopic4 = $resq4 / $restot;
echo ' $prT opic4 =' . $prTopic4 . '</br>';
$quer4 = "SELECT * FROM pagina_noua";
$rem4 = mysql_query($quer4);
$prWord4_topic4tot = 1;
while ($el em = mysql_fetch_assoc($rem4)){
$nrTimes_in_topic4 = mysql_query("SELECT frecventa FROM
sport _tot WHERE atribut = '$elem'");
$res1 = "SELECT count(*) from art_cul_tot;";
$resq1 = mysql_query($res1);

50

$prWord4_topic4 = $nrTimes_in_topic4 / $resq1;
$prWord4_topic4tot *= $prWord4_topic4;
echo $prWord4_topic4 . "</br> ";
echo $prWord4_topic4tot . "</br>";
}
$prTopic_pagn4 = $prTopic4 * $prWord4_topic4tot;
echo '$prTopic_pagn4 = ' . $prTopic_pagn4 . '</br>';
?>

Fișierul care prelucrează datele din documentele de antrenament ale unei categorii

Acest fiși er are rolul de a reuni cuvintele din mai multe tabele ale aceleiași categorii și de
a elimina apoi duplicatele. Se folosește mai întâi o reuniune de elemente selectate din
tabele diferite, iar apoi sunt însumate frecventele termenilor duplicat iar rezulta tele finale
sunt introduse într -un nou tabel.
<?php
require '../connect.php';
$query = "(SELECT atribut, frecventa FROM art_cul1) UNION (SELECT
atribut, frecventa FROM art_cul2) UNION (SELECT atribut, frecventa FROM
art_cul3) UNION (SELECT atribut, frecventa FROM art_cul4) UNION (SELECT
atribut, frecventa FROM art_cul5)";
$resul t = mysql_query($query);
echo "<table>";
while($row = mysql_fetch_array($result)){ //Creates a loop to loop through results
echo "<tr><td>" . $row['atribut'] . "</td><td>" . $row['frecventa'] .
"</td></tr>";

51
mysql_query( "INSERT INTO art_cul_tot _sec (atribut, frecventa) VALUES
('$row[atribut]','$row[frecventa]')" );
}
echo "</table>";
$query2 = "
SELECT
atribut, SUM(frecventa) AS frecventa
FROM art_cul_tot_sec
GROUP BY atribut";
$result2 = mysql_query($query2);
echo "<table>";
/* parcurge în ordine perechile de atribute și valori ale frecvenț ei, pentru a le
introduce într -un nou tabel */
while($ro = mysql_fetch_array($result2)){ results
echo "<tr><td>" . $ro['atribut'] . "</td><td>" . $ro['frecventa'] .
"</td></tr>";
m ysql_query( "INSERT INTO art_cul_tot (atribut, frecventa) VALUES
('$ro[atribut]','$ro[frecventa]')" );
}
echo "</table>";
?>

Conectorul la baza de date

Conectarea la baza de date este abstractizată în acest fișier pentru a simplifica celelalte
fișiere ale aplicației care necesită o conexiune activă la baza de date.
<?php

52
$conn_error = 'Eroare de conectare!';
$mysql_host = 'localhost';
$mysql_user = 'clasificator';
$mysql_pass = 'clasificator';
//$mysql_db = 'first';
$mysql_db = 'clasificator';
if (!@mysql_connect($mysql_host, $mysql_user, $mysql_pass) ||
!@mysql_select_db($mysql_db)){
die($conn_error);
}
?>

Creatorul de tabele

Prin intermediul acestui fișier se pot crea automat tabele cu proprietăți potrivite
aplicației.
<?php
require 'connect.php';
$sql = "CREATE TABLE all_tot_sec (
id INT NOT N ULL PRIMARY KEY AUTO_INCREMENT,
atribut VA RCHAR(128) UNIQUE KEY NOT NULL,
frecventa INT NOT NULL,
cate gorie TEXT NOT NULL
)";
mysql_query($sql);

53
if ($sql_run = mysql_query($sql)) {
echo "Tabel creat cu succes";
}
else {
echo "Eroare la crearea tabelului";
}
?>

54
6. Bibliografie

1. Breiman, L., Friedman, J.H., Olshen, R.A., Stone, C.J., Classification and
Regression Trees, Wadsworth International Group, Belmont, CA, 1984.
2. Chakrabarti, S., van den Berg, M., Dom, B, Focused crawling: A new approach to topic -specific Web resource discovery, în: WWW ’99: Proceeding of the 8th
International Conference on World Wide Web, Elsevier, New York, NY, 1999.
3. Chen, H., Dumais, S., Bringing order to the Web: Automatically categorizing
search results, în: CHI ’00: Proceedings of the SIGCHI Conference on Human
Factors in Computing Syst ems, ACM Press, New York, NY, 2000.
4. Chen, Z., Wu, O., Zhu, M., Hu, W., A Novel Web Page Filtering System by Combining Texts and Images, în: WI ’06: Proceedings of the 2006
IEEE/WIC/ACM International Conference on Web Intelligence, IEEE Computer
Society, W ashington, DC, 2006.
5. Choi, B., Yao, Z., Web page classification, în: Chu, W., Lin, T. Y. (ed.), Foundations and Advances in Data Mining, Volume 180 of Studies in Fuzziness
and Soft Computing, Springer, Berlin, 2005.
6. Craven, M., DiPasquo, D., Freitag, D., McCallum, A., Mitchell, T., Nigam, K.,
Slattery, S., Learning to Extract Symbolic Knowledge from the World Wide Web, în: Proceedings of the Fifteenth National Conference on Artificial Intelligence, AAAI Press, Menlo Park, CA, 1998.
7. Crețulescu, R., Contribuții la proiectarea sistemelor de clasificare a documentelor, Teză de doctorat, Universitatea Lucian Blaga, Sibiu, 2011.
8. Han, J., Kamber, M., Pei, J., Data Mining Concepts and Techniques, Morgan Kaufmann Publishers, Waltham, MA, USA, 2012.
9. Haveliwala, T.H., Topic -Sensitive PageRank, în: Proceedings of the Eleventh
International World Wide Web Conference, ACM Press, New York, NY, 2002.
10. Huang, C.C., Chuang, S.L., Chien, L.F., LiveClassifier: Creating Hierarchical Text Classifiers through Web Corpora, în: WWW ’04: Proceedings of the 13th
International Conference on World Wide Web, ACM Press, New York, NY, 2004.
11. Joachims, T., A Probabilistic Analysis of the Rocchio Algorithm with TFIDF for Text Categorization, în: ICML '97 Proceedings of the Fourteenth Int ernational
Conference on Machine Learning, Morgan Kaufmann Publishers, San Francisco, CA, 1997.

55
12. Joachims, T., Freitag, D., Mitchell, T., WebWatcher: A tour guide for the World
Wide Web, în: Proceedings of the Fifteenth International Joint Conference on Artificial Intelligence, Morgan Kaufmann Publishers, San Francisco, CA, 1997.
13. Liu, B., Web Data Mining – Exploring Hyperlinks, Contents, and Usage Data,
Second Edition, Springer, Berlin, 2011.
14. Morariu, I.D., Contribuții la extragerea automată de cunoștințe din masive de
date, Teză de doctorat, Rezumat, Universitatea Lucian Blaga, Sibiu, 2007.
15. Peng X., Choi B., Automatic Web Page Classification in a Dynamic and Hierarchical Way, în: ICDM '02 Proceedings of the 2002 IEEE International Conference on Data Mining, IEEE Computer Society, Washington, DC, 2002.
16. Pierrakos, D., Paliouras, G., Papatheodorou, C., Karkaletsis, V., Dikaiakos, M.,
Construction of Web Community Directories using Document Clustering and
Web Usage Mining, în: Berendt, B. (ș.a.) (ed.) EC ML/PKDD 2003: First
European Web Mining Forum, Cavtat, Dubrovnik, Croația, 2003.
17. Qi, X., Davison, B.D., Web page classification: Features and Algorithms,
Technical Report LU -CSE-07-010, Department of Computer Science &
Engineering, Lehigh University, Bethlehem, PA, 2007.
18. Scime, A., Web Mining: Applications and Techniques, Idea Group Publishing,
Hershey, PA, USA, 2005.
19. Westbrook, A., Greene, R., Using Semantic Analysis to Classify Search Engine Spam, Project Report of CS276A, Stanford Universi ty, Stanford, CA, 2002.
20. Yang, H., Chua, T. -S., Effectiveness of Web Page Classification on Finding List
Answers, în: Proceedings of the 27th Annual International ACM SIGIR Conference on Research and Development in Information Retrieval, ACM Press,
New York, NY, 2004.
21. Zaiane, O.R., Antonie, M.L., Classifying Text Documents by Associating Terms with Text Categories, în: Proceedings of the 13th Australasian conference on database technologies, Australian Computer Society, Melbourne, 2002.
22. zu Eissen, S. M., Stein, B., Genre classification of web pages, în: Proceedings of
the 27th German Conference on Artificial Intelligence, Volume 3238 of LNCS, Springer, Berlin, 2004.

Similar Posts