Adnotarea pozelor de catre utilizator reflecta perspectiva personala si contextul important pentru proprietarul pozei si audienta ei. S-a dorit obtinerea unor recomandari eficiente si relevante pentru o varietate mare de poze.
Flick a efectuat o caracterizare a comportamentului in ceea ce priveste punerea de tag-uri pozelor, pe baza careia a construit un sistem de recomandare si evaluare a tag-urilor.
Flickr este un servicu on-line de photo-sharing care contine sute de milioane de poze care sunt uploadate, organizate si adnotate de peste 8,5 milioane de utilizatori inregistrati.
Pentru inceput a trebuit sa se afle cum pun oamenii tag-uri, la ce pun tag-uri si de ce. Privind distributia poza-tag s-a observat ca majjoritatea pozelor sunt adnotate cu doar cateva tag-uri.
Oamenii pun tag-uri cel mai frecvent despre locatii (28%), artefacte sau obiecte (16%), oameni sau grupuri (13%), actiuni sau evenimente (9%), si timp (7%).
Co-aparitia tag-urilor este cheia abordarii metodei de recomandare a tag-urilor si functioneaza bine numai daca se bazeaza pe o cantitate mare de date ajutatoare. Cea mai buna metoda a fost normalizarea numaratorii co-aparitiei cu frecventa generala a tag-urilor. Exista doua metode diferite de normalizare: simetrica si asimetrica.
Tag-urile au fost clasificate in trei categorii: definite de utilizator (U), care cuprinde tag-urile pe care un utilizator le pune unei poze, tag-uri candidate (C), care cuprinde o lista cu primele m tag-uri cu cele mai multe co-aparitii, si tag-urile recomandate (R), care cuprinde o lista cu primele n dintre cele mai relevante tag-uri produse de sistemul de recomandare.
Pentru un set dat de tag-uri candidate este nevoie de un pas de agregare a tag-urilor pentru a produce lista finala de tag-uri recomandate, atunci cand exista mai mult de un tag definit de utilizator. Au fost definite doua strategii de agregare. Prima strategie este bazata pe votare si nu tine cont de valorile de co-aparitie ale tag-urilor candidate. A doua strategie este bazata pe insumare si se foloseste valorile de co-aparitie pentru a produce clasificarea finala.
Mai departe, se foloseste o procedura de reclasificare care promoveaza tag-urile candidate care au anumite proprietati. Exista mai multe aspecte dupa care se face promovarea. Promovarea stabilitatii: considera ca tag-urile definite de utilizator care au frecventa foarte mica de aparitie sunt mai putin de incredere decat decat cele cu frecventa mai mare si vor fi promovate acele tag-uri pentru care statisticile sunt mai stabile. Promovarea descrierii: tag-urile cu frecventa de aparitie foarte mare au probabilitate mare de a fi prea generale pentru poze individuale. Promovarea rangului: Valorile co-aparitiei tag-urilor produc estimari bune in ceea ce priveste relevanta unui tag candidat pentru un tag definit de utilizator.
Etichete: Fickr, interfete web, photo, tag
Million Query Track si alte analize ulterioare au aratat ca putem evalua sistemele de retrieval cu o mare reducere a efortului, scazand la cateva sute de interogari, cu doar cateva zeci de evaluari pentru fiecare.
Vom descrie evaluarea unui corpus de 25 de milioane de documente si 10 000 de interogari, Million Query Track. Folosind doua metode recente pentru selectarea documentelor si evaluarea multimilor mici s-au obtinut rezultate asemanatoare unei evaluari folosind 149 de interogari evaluate mai in profunzime, cu 62% din efortul de evaluare, dar de 11 ori mai multe interogari.
Million Query Track, folosit la TREC 2007, foloseste doi algoritmi pentru selectia documentelor pentru a obtine o evaluare relevanta asupra a mai mult de 1800 de interogari. Algoritmul Minimal Test Collection (MTC) deduce rangul sistemelor prin identificarea diferentelor dintre ele fara a tine cont de valorile masuratorilor. StatAP este o metoda de esantionare care produce estimari impartiale si da varianta minima ale preciziei medii. Ambele metode au scopul de a evalua sistemele in funcitie de precizia medie (AP), care este masura oficiala de evaluare a TREC.
MTC este on algoritm greedy on-line pentru selectarea documentelor ce urmeaza a fi evaluate. Dandu-se o anumita masura de evaluare si orice relevanta existenta de evaluare MTC cantareste documentele dupa cat de informative sunt , determinand daca exista vreo diferenta intre masuratorile a doua sisteme. Documentul cel mai important este prezentat unui evaluator. Evaluarea se foloseste pentru a updata importanta unui document.
In termeni statistici, precizia medie poate fi comparata cu o populatie: elementele sunt documentele relevante din multimea de documente si valoarea fiecarui element este precizia documentului. Exista doua posibilitati pentru a varia implementarea: alegand o anume strategie de esantionare sau alegand un estimator specific. StatAP contine urmatoarele optiuni: esantionare stratificata (documentele sunt intai ordonate inainte de distributie si apoi esantionate in doua etape), estimator generalizat al ratei si intervale de incredere.
Telul final al evaluarii este de a clasifica sistemele de retrieval in functie de performanta generala. Au fost efectuate doua studii, unul bazat pe avaliza variantei (ANOVA) si teoria generalizarii, si altul bazat pe un studiu empiric al stabilitatii rangului dedus pe un subset de interogari. Dandu-se seturi diferite de topic-uri variatia care apare in scorurile MAP se poate descompune in trei componente: variatii datorate diferentelor de performanta dintre sisteme (variatii de sistem), variatii datorate dificultatii relative a unui set de topic-uri (variatii de topic) si variatii datorate faptului ca diferitele sisteme considera diferite seturi de topic-uri ca fiind grele sau usoare (variatii de interactiune sistem-topic).
Reutilizabilitatea este exprimata in functie de nivelul de incredere. Metodele descrise anterior privesc diferit notiunea de incredere. MTC calculeaza increderea ca fiind probabilitatea ca MAP sa fie pozitiv sau negativ. StatMAP calculeaza un interval de incredere pentru fiecare AP al fiecarei interogari si apoi un interval de incredere pentru valoarea MAP a unui esantion de interogari.
Etichete: query, web development
Deoarece am terminat de lucrat la tema 3, pot da cateva sfaturi celor care acum sunt la inceput cu lucrul la aceasta. In primul rand, cum o sa arate pagina html ce reprezinta tema? O alegere potrivita ar fi dupa mine folosirea a 2 input-uri de tip text, 2 label-uri si un buton. Unul din textfield-uri va fi folosit pentru introducerea cuvintelor de cautat, celalalt pentru introducerea paginii in care se vrea facuta cautarea. Cea mai simpla metoda de a adauga in pagina curenta continutul paginii in care se va cauta este folosirea unui element al carui camp "innerHTML" va fi setat ca fiind raspunsul cererii http pentru pagina. Bineinteles, va fi facut un request http care va returna pagina al carei nume a fost introdus in textfield-ul de input. Acest lucru se va face folosind Ajax. Pe net exista o multime de exemple care folosesc Ajax pentru obtinerea unor pagini, deci nu va fi prea greu de gasit (exista si in laborator detalii despre obiectele care pot fi folosite pentru cereri http folosind Ajax). Dupa ce am obtinut raspunsul cererii, acesta poate fi modificat. Eu am adaugat continutul nou la pagina in elementul "div" de care am vorbit mai sus, apoi am folosit expresii regulate pentru cautarea in body-ul paginii a aparitiilor unui cuvant. Poate fi folosita metoda "replace" din clasa String din JavaScript pentru inlocuirea cuvintelor gasite de expresia regulata folosind tag-ul "span" si CSS (declaram un stil specific cu care vrem sa marcam cuvintele gasite, apoi folosim acel stil in tag-ul span imprejmuind cuvantul cautat). Pentru a marca un text din html-ul dorit, vom face urmatorul lucru:
- definim un stil pentru marcarea cuvintelor folosind tag-ul "style"
- introducem in jurul cuvantului dorit a fi marcat tag-ul "span" cu referire la stilul definit anterior
Acum cuvantul este marcat cu stilul respectiv. Pentru gasirea cuvintelor se pot folosi expresii regulate (obiecte de tipul RegExp). O prezentare a expresiilor regulate veti gasi pe http://www.javascriptkit.com/jsref/regexp.shtml. Trebuie sa fiti insa atenti pentru a nu marca texte aflate in tag-uri. Asta se poate face revenind dupa marcare si cautand cuvintele marcate anterior, dar care nu ar fi trebuit sa fie marcate ( de exemplu o expresie care se afla intre "<" si ">" si este inconjurata de tag-uri "span". Din aceasta expresie trebuie eliminate tag-urile pt "span" si lasat tot cuvantul, deoarece nu ar trebui sa se afle intr-un tag html.Nu stiu daca am fost destul de clar, am incercat sa prezint pe scurt modul in care am gandit eu implementarea temei 3, imi puteti pune intrebari daca exista neclaritati sau daca vreti sa comentez mai amanuntit o anumita parte a implementarii.
Etichete: ajax, interfete web, javascript
CTTE ( Concurrent Task Tree Environment ) reprezinta un tool folosit la crearea de modele arhitecturale pe baza interactiunii user-ului cu interfata web.
Dupa crearea modelul arhitectural se poate testa acel model, dandu-se astfel developer-ilor posibilitatea de a scoate in evidenta eventualele neconcordante intre specificatii si ceea ce s-a realizat la proiectul in sine.
Un exemplu de asemenea fisiere create cu CTTE se poate downloada folosind link-ul alaturat. ( download exemple ctte ).
Pentru cei care nu stiu ce face un crawler web voi spune in cateva cuvinte ca poate prelucra documente de tipul XML pe care le parseaza, pe baza unui URL indicat, mai exact putem cu ajutorul lui sa extragem si sa prelucram anumite informatii.
Ce trebuie sau ar trebui sa faca un crawler web?
In primul rand, trebuie sa respecte politica fiecarui site web si, bineinteles, sa foloseasca doar paginile unde este permis acest lucru. Un webmaster poate specifica ce portiuni din site pot fi accesate de crawler, iar crawler-ul trebuie sa respecte aceste indicatii. Chiar daca aceste specificatii nu exista, este bine sa nu fie accesat foarte des acelasi site de catre crawler, exceptie facand site-urile de stiri unde continutul se schimba foarte des.
Este foarte important ca un crawler web sa fie imun la paginile cu "capcane", inclusiv cele generate dinamic, si la paginile spam.
Un crawler bun este capabil sa ruleze pe mai multe masini distribuite si sa fie scalabil. De asemenea, va permite folosirea completa a resurselor.
Pentru a avea o eficienta cat mai buna, crawler-ul va folosi mai intai paginile de calitate mai buna si va face continuu refresh, in cazul in care apar copii mai noi ale acestora.
Nu ar fi rau nici sa fie extensibil si sa se poata adapta la formate de date si protocoale diferite.
Care sunt pasii pe care ii urmeaza un crawler web?
Initial, ia URL-ul si documentul care se gaseste la URL-ul respectiv. Urmeaza parsarea documentului/documentelor. Apoi se verifica daca a fost deja vazut continutul URL-ului respectiv. In caz contrar, este adaugat la index. Pentru fiecare URL extras se verifica daca trece anumite teste de filtrare si daca nu cumva exista un duplicat al acestuia.
In final, daca doriti sa vedeti implementarea unui crawler care analizeaza relatiile sociale dintr-o comunitate web va invitam pe site-ul nostru.
E incredibil, dar adevarat!
Dupa atatea dispute intre webmasterii incepatori, in sfarsit apare ceva care pune punct discutiilor in contradictoriu: ghid-ul SEO de la Google.
In principiu, nu e mare smecherie, in cazul in care stii ce sunt alea meta tag-uri si la ce folosesc cu adevarat, daca stii ce e ala un "alt" pentru o imagine, daca stii ce e ala Search Engine Friendly URL sau alte chestii de genul asta.
Dar daca aceste lucruri te pun un pic in incurcatura, ar fi bine sa arunci o privire pe acest ghid, mai ales ca e "de la mama lui". :)
Sumarizarea rezultatelor
Dupa efectuarea unei cautari folosind un SE obtinem (speram) un anumit numar de rezultate. De obicei acest numar este foarte mare si nu vom avea nici timpul nici rabdarea sa accesam toate rezultatele pentru a vedea daca este sau nu ce ne trebuie. Si atunci, ce anume ne determina sa ne uitam sau nu la un anumit rezultat? Cu acest scop au aparut asa-numitele "sumare" ale paginilor intoarse ca rezultat. Fiecare rezultat afiseaza in afara de titlu si o mica fraza, pe care noi o citim si decidem daca pagina respectiva are potential sa ne ofere ceea ce cautam.
Dar cum se obtin aceste sumare?
In primul rand trebuie mentionat ca sumarele sunt de doua feluri: statice sau dinamice (numite si snippet). In timp ce un sumar static va fi mereu acelasi indiferent de cautarea care a intors documentul, sumarul dinamic este dependent de query (cuvintele dupa care se face cautarea) si incearca sa explice de ce a fost ales acel document.
In general, un sumar static este o mica parte din document. Cea mai simpla metoda de a extrage un sumar este folosirea primelor x cuvinte din document. O metoda mai complexa este de a extrage cateva dintre propozitiile cheie.
Sumarul dinamic se bazeaza pe query, dupa cum am mai spus, astfel ca daca gaseste o fraza care sa corespunda query-ului, va extrage cateva sau toate aparitiile acestei fraze in document, in caz contrar fragmente de text care contin cat mai multe din cuvintele cautate.
Evaluarea SE (search engine)
Am vorbit despre cum ne prezinta un SE rezultatele pe care le gaseste. Si totusi, cum putem aprecia cat de bine si-a facut acesta datoria? Simplu...folosind anumite "unitati de masura", care pot fi obiective sau subiective.
Evaluarea obiectiva se bazeaza pe criterii cum ar fi:
- viteza de indexare (numar de documente/ora)
- viteza de cautare
- complexitatea limbajului de cautare (cat de complexe pot fi query-urile folosite)
Nu in ultimul rand, evaluarea unui SE se face si pe baza relevantei rezultatelor. Ne intereseaza cate rezultate din cele obtinute sunt relevante si cate nu ne sunt de folos.
Pentru a masura relevanta ne folosim de doua proprietati: precizie si recall.
Precizia determina procentul de rezultate relevante din totalul celor gasite.
precizie = relevant gasit / (relevant gasit + irelevant gasit)
Recall-ul determina procentul de rezultate relevante existente.
recall = relevant gasit /(relevant gasit + relevant negasit)
Etichete: evaluare, motor cautare, query, search engine, snippet, sumar
Salut!
Tocmai am pus pe www.interfete-web.info un articol interesant despre 2 plugin-uri de Eclipse pe care le puteti folosi pentru a va asigura ca scrieti cod Java bine. In plus, am zis si de cateva chestii noi despre imbunatatirile aduse instrumentelor pentru web services in Eclipse Ganymede.
Etichete: Checkstyle, Eclipse Ganymede, FindBugs, web, www.interfete-web.info
XML (Extensible Markup Language) este folosit pentru crearea de limbaje de marcare si poate fi clasificat drept un limbaj extensibil deoarece le permite utilizatorilor sai sa-si defineasca propriile elemente.Principalele lui scopuri sunt de a ajuta transferul de date structurate intre aplicatii pe Internet, de a coda documente si de a serializa date.
Ce face XML?
XML poate fi folosit pentru a structura datele, folosind regulile care il definesc, dar nu este un limbaj de programare si poate fi deci folosit de oricine, fara a avea cunostinte de programare.
Alta facilitate a XML este aceea ca permite utilizatorului sa combine mai multe formate, obtinand astfel un format nou de fisier. Totusi, pot aparea confuzii daca de exemplu doua elemente au acelasi nume. In acest caz XML ne vine in ajutor cu mecanismul "namespace" sau domenii pentru nume (vezi XLS, RDF).
Asemanator cu HTML, XML foloseste tag-uri si atribute, acestea avand rolul de a delimita datele pentru a putea fi interpretate de aplicatii, in timp ce in HTML folosesc pentru aranjarea textului in browser.
XML mai poate fi folosit pentru a crea XHTML. Cum? Se ia un fisier HTML, i se schimba sintaxa atat cat este nevoie pentru a corespunde regulilor XML (vezi corectitudinea unui fisier XML) si s-a obtinut XHTML-ul.
In ceea ce priveste corectitudinea unui document XML, acesta trebuie sa respecte doua conditii:
- sa fie bine-format: sa respecte toate regulile de sintaxa. De exemplu: daca un start-tag nu are un end-tag corespunzator, documentul nu este bine format si nu va fi considerat XML
- sa fie valid: trebuie sa respecte cateva reguli semantice aditionale. De exemplu: un document ce contine un element nedefinit nu este valid
HTML este utilizat pentru:
- a afisa datele
- a defini vizual datele
- a arata cum sunt afisate datele
- a transporta datele
- a descrie datele
- a arata cum sunt utilizate datele
Lume lume, avem o stire senzationala: "Au gasit-o pe Elodia".
Au gasit-o pe Elodia
Cam asa s-au gandit niste colegi de-ai nostri sa-si promoveze site-ul. Destul de ingenios!
"Analytics has been successfully installed and data is being gathered now." - asta e mesajul de intampinare pe care il primesti cand iti inscrii site-ul pentru a fi monitorizat de catre celebrul Google Analytics.
Asadar, site-ul nostru, www.interfete-web.info a fost inscris pentru monitorizare.
Asteptam cu interes un grafic al vizitelor pentru prima saptamana. :)
Etichete: google analitycs, inscriere analytics
Site-ul nostru, http://www.interfete-web.info , in care vom trata subiectul interfete-web a fost inaugurat astazi, 02.11.2008.
Ideea site-ului vine din cerinta unui proiect de la cursul Interfete-Evoluate, de la Facultatea de Automatica si Calculatoare, Universitatea Politehnica Bucuresti.
Etichete: interfete web
Postări mai noi Pagina de pornire