folosirea instumentului zemanta in recomandarea de continut

12
Folosirea instumentului Zemanta ˆ ın recomandarea de cont ¸inut Elena-Oana T˘ ab˘ aranu ¸ si Anna-Maria Metzak Facultatea de Informatic˘ a Universitatea “Alexandru I. Cuza” Ia¸ si {elena.tabaranu,anna.metzak}@info.uaic.ro Abstract. Instrumentul Zemanta poate fi folosit ˆ ın recomandarea de cont ¸inut relevant utilizatorului ˆ ın cadrul unor aplicat ¸ii Web sociale (e.g., blog-uri). Platforma este disponibil˘ a sub form˘ a de extensie pentru ma- joritatea navigatoarelor web. Key words: Zemanta, extensie Firefox, recomandare de cont ¸inut, web social, Faviki, Common Tag, Zemify 1 Introducere Zemanta este o platform˘ a ce ajut˘ a utilizatorul s˘ a produc˘ a cont ¸inut on-line. Orice text creat de utilizator (o postare pe blog, un articol sau o pagina web) este citit direct de c˘ atre Zemanta pentru identificarea contextul acestuia. Zemanta caut˘ a apoi pe web cele mai relevante imagini, link-uri, cuvinte cheie sau texte ¸ si ofer˘ a instantaneu aceste rezultate utilizatorului pentru a-i ˆ ımbogat ¸i cont ¸inutul. Platforma este disponibil˘ a sub form˘ a de extensie pentru majoritatea naviga- toarelor web (Firefox, Internet Explorer), dar ¸ si pentru platforme de publicare de cont ¸inut. ateva recomand˘ ari pentru cei ce folosesc Zemanta: textul introdus de utilizator trebuie s˘ a cont ¸in˘ a propozit ¸ii complete ¸ si corecte atˆ at din punct de vedere gramatical, cˆ at ¸ si ortografic; Zemanta d˘ a rezultate mai bune atunci cand utilizatorul folose¸ ste un limbaj natural; se recomand˘ a scrierea a cel put ¸in un paragraf ˆ ınainte de a lua ˆ ın considerare rezultatul ˆ ıntors de c˘ atre Zemanta; se recomand˘ a ca ˆ ıntr-un articol s˘ a se fac˘ a referire la un num˘ ar limitat de subiecte, pentru ca rezultatele ˆ ıntoarse s˘ a fie cˆ at mai relevante pentru cont ¸inutul articolului respectiv. 2 API-ul Zemanta Instrumentul Zemanta pune la dispozit ¸ie un API ce poate fi folosit de orice uti- lizator ˆ ın situl s˘ au web sau pentru construirea propriului sistem de gestiune a

Upload: elena-oana-tabaranu

Post on 11-May-2015

763 views

Category:

Technology


3 download

DESCRIPTION

Instrumentul Zemanta poate folosit in recomandarea de continut relevant utilizatorului in cadrul unor aplicatiilor Web sociale (e.g., blog-uri). Platforma este disponibila sub forma de extensie pentru majoritatea navigatoarelor web.

TRANSCRIPT

Page 1: Folosirea instumentului Zemanta in recomandarea de continut

Folosirea instumentului Zemanta ınrecomandarea de continut

Elena-Oana Tabaranu si Anna-Maria Metzak

Facultatea de InformaticaUniversitatea “Alexandru I. Cuza” Iasi

{elena.tabaranu,anna.metzak}@info.uaic.ro

Abstract. Instrumentul Zemanta poate fi folosit ın recomandarea decontinut relevant utilizatorului ın cadrul unor aplicatii Web sociale (e.g.,blog-uri). Platforma este disponibila sub forma de extensie pentru ma-joritatea navigatoarelor web.

Key words: Zemanta, extensie Firefox, recomandare de continut, websocial, Faviki, Common Tag, Zemify

1 Introducere

Zemanta este o platforma ce ajuta utilizatorul sa produca continut on-line. Oricetext creat de utilizator (o postare pe blog, un articol sau o pagina web) estecitit direct de catre Zemanta pentru identificarea contextul acestuia. Zemantacauta apoi pe web cele mai relevante imagini, link-uri, cuvinte cheie sau texte siofera instantaneu aceste rezultate utilizatorului pentru a-i ımbogati continutul.Platforma este disponibila sub forma de extensie pentru majoritatea naviga-toarelor web (Firefox, Internet Explorer), dar si pentru platforme de publicarede continut.

Cateva recomandari pentru cei ce folosesc Zemanta:

– textul introdus de utilizator trebuie sa contina propozitii complete si corecteatat din punct de vedere gramatical, cat si ortografic;

– Zemanta da rezultate mai bune atunci cand utilizatorul foloseste un limbajnatural;

– se recomanda scrierea a cel putin un paragraf ınainte de a lua ın considerarerezultatul ıntors de catre Zemanta;

– se recomanda ca ıntr-un articol sa se faca referire la un numar limitatde subiecte, pentru ca rezultatele ıntoarse sa fie cat mai relevante pentrucontinutul articolului respectiv.

2 API-ul Zemanta

Instrumentul Zemanta pune la dispozitie un API ce poate fi folosit de orice uti-lizator ın situl sau web sau pentru construirea propriului sistem de gestiune a

Page 2: Folosirea instumentului Zemanta in recomandarea de continut

2 Folosirea instumentului Zemanta ın recomandarea de continut

Fig. 1. Schema API-ului Zemanta.

continutului. Serviciul web Zemanda este un serviciu web clasic baza pe pro-tocolul standard HTTP si metoda POST. Astfel, clientul trimite o cerere prinportul 80 catre api.zemanta.com si primeste raspunsul encodat ın format XML,JSON, wnjson si RDF/XML. Clientul este identificat de o cheie API (sir de ca-ractere care identifica ın mod unic instante specifice ale aplicatiei ce folosescserviciul). De exemplu, extensia Firefox stocheaza cheia API ın configuratia sapermanenta si foloseste aceasta cheie API la fiecare cerere catre serviciul Ze-manta, indiferent de platforma de blog pe care o viziteaza utilizatorul (acelasilucru este valabil si pentru extensia Internet Explorer). Se limiteaza numarul decereri pe zi, precum si numarul de cereri pe secunda, ın functie de tipul de contpe care utilizatorul ıl detine. Contul implicit pentru un dezvoltator permite 1000mesaje pe zi si 1 post pe secunda. Daca aceste limite sunt depasite, utilizatorulva primi un mesaj de eroare adecvat.

Exista doua moduri prin care se pot obtine chei API: unul vizeaza dez-voltatorii de aplicatii, iar celalalt aplicatiile ce ataseaza automat chei utiliza-torilor lor. Dezvoltatorii si testerii primesc initial doar o cheie. Dezvoltatortrebuie sa se ınregistreze ın cadrul portalului Zemanta destinat lor la adresahttp://developer.zemanta.com. Platforma ofera o metoda de asignare de cheiseparate pentru fiecare utilizator ın cazul ın care Zemanta este integrata cu sis-teme de gestiune a continutului sau alte platforme asemanatoare.

API-ul are o documentatie oficiala ın cadrul portalului destinat dezvolta-torilor de aplicatii si poate fi accesat la adresa http://developer.zemanta.com-docs.

Page 3: Folosirea instumentului Zemanta in recomandarea de continut

Folosirea instumentului Zemanta ın recomandarea de continut 3

3 Exemple de aplicatii construite folosind Zemanta

3.1 Editorul WYSIWYG Zemanta

Produsul de baza oferit de Zemanta este editorul WYSIWYG. Acesta este disponi-bil sub forma de extensii sau plugin-uri pentru platforme precum: Gmail, Yahoo!Mail, ScribeFire, Blogger, Wordpress, Reblog, Drupal, Tumblr, Ning, Myspace,Facebook, Last.fm, etc.

Fig. 2. Wordpress: textul unei postari ın limba engleza ımbogatit folosind Zemanta.

3.2 Etichetare “sociala” cu Faviki

Faviki este un instrument ce permite etichetarea “sociala”1 a paginilor webfolosind termeni de pe DBpedia2. Astfel, utilizatorii pot folosi drept tag-uriacelasi set de termeni extras din cea mai mare baza de cunostinte din lume. Da-torita DBpedia informatia structurata de pe Wikipedia este reprezentata folosindun model de date flexibil, iar tag-urile propuse de Zemanta vor fi referinte laobiecte catalogate ın mod automat. Tag-urile obisnuite nu au un ınteles binedefinit, de aceea identificarea sensului unei tag nu este usoara. De exemplu,“java” poate face referire atat la insula din Indonezia, la specialitatea de cafea,dar si la limbajul de programare.

Faviki permite etichetarea multilingva: sunt sugerate concepte disponibile peDbpedia ın 14 limbi.1 Termen tradus ın limba engleza prin “social bookmarking”.2 Proiect ce ısi propune sa extraga informatii structurate din baza de cunostinte con-

struita prin proiectul Wikipedia. Datele sunt ın format RDF si pot fi accesate folosindlimbajul de interogare SPARQL.

Page 4: Folosirea instumentului Zemanta in recomandarea de continut

4 Folosirea instumentului Zemanta ın recomandarea de continut

Fig. 3. Gmail: textul unui email ın limba engleza ımbogatit folosind Zemanta.

Fig. 4. Gmail: textul unui email ın limba romana ımbogatit folosind Zemanta.

Page 5: Folosirea instumentului Zemanta in recomandarea de continut

Folosirea instumentului Zemanta ın recomandarea de continut 5

Ultima versiune ısi propune sa usureze folosirea formatului Common Tag3 sisa depaseasca limitarile Wikipedia cu privire la vocabularul controlat de tag-urisemantice. Functionalitati importante oferite de ultima versiune:

– alegerea unui nume personalizat pentru tag-uri: utilizatorul ajuta Faviki saınvete tag-uri noi prin dezambiguizarea termenilor necunoscuti;

– tag-urile sunt asocieri subiective ıntre concepte definite ın mod unic, iarultima versiune permite folosirea motorul de cautare Google pentru a gasiURL-uri ce reprezinta aceste concepte;

– posibilitatea de a utiliza tehnologia OpenID prin intermediul serviciului RPXce reuneste diferite implementari OpenID oferite de Google, Yahoo, AOL sauMicrosoft.

Fig. 5. Exemplu de etichetare a textului unei postari cu Faviki

API-ul Faviki permite gestionarea usoara a tag-urilor ın cadrul aplicatiilorweb cu urmatoarele observatii:

– limita superioara pentru serviciile expuse de Faviki este de 1000 de cereri pezi;

– tag-urile sunt delimitate de caracterul ’;’, iar cele formate din mai multecuvinte pot folosi ın loc de spatiu atat ’%20’ cat si ’ ’;

3 Format deschis de tagging ce ısi propune sa faciliteze interconectarea si descoperireade nou continut. Spre deosebire de tag-urile obisnuite, cele ın format Common Tagsunt referinte la concepte bine defnite, cu metadate atasate si propriul URL. Siturilece folosesc Common Tag au avantaje precum: ımbogatirea continutului cu text,imagini si extensii sau promovarea multi-platforma.

Page 6: Folosirea instumentului Zemanta in recomandarea de continut

6 Folosirea instumentului Zemanta ın recomandarea de continut

– termenii ın limba engleza pot fi amestecati cu termeni ın alte limbi. De exem-plu, daca limba este “de” (germana), atunci etichetele “Nachrichten” (“stiri”ın limba germana) si “Semantic Web” (web semantic ın limba engleza) potfi folosite ımpreuna;

– textul tag-urilor trebuie encodat.

3.3 Comanda Zemify pentru Ubiquity

Ubiquity este o extensie pentru Firefox ce permite utilizatorilor sa dea comenzinavigatorului, introducand cuvinte ıntr-un camp special. Comenzile sunt scur-taturi pentru actiuni efectuate ın mod constant de utilizator pe Web. Ele potelimina sarcini repetitive obtinand astfel aceleasi rezultate ıntr-un timp mult maiscurt. Interesant pentru Ubiquity este faptul ca oricine poate scrie o comandape care apoi sa o partajeze cu restul lumii, ın acelasi mod ın care Web-ul ın sinepermite partajarea de informatii.

Ubiquity permite utilizatorilor sa insereze harti, sa traduca bucati din con-tinutul unei pagini, sa evidentieze text sau multe alte functionalitati. Printreacestea se numara si integrarea cu API-ul Zemanta. Comanda Zemify permiteinterogarea dinamica a serviciului Zemanta pentru o anumita secventa de textselectata de catre utilizator.

Fig. 6. Exemplu pentru comanda Zemify: integrarea Zemanta cu Ubiquity

3.4 Researchr: del.icio.us si Zemanta

Researchr este un prototip ce interogheaza del.icio.us cu privire la subiecte de peWikipedia, dar si analizeaza continutul paginilor web folosind Zemanta pentru a

Page 7: Folosirea instumentului Zemanta in recomandarea de continut

Folosirea instumentului Zemanta ın recomandarea de continut 7

gasi articole, imagini si link-uri asemanatoare. Rezultatele gasite ın mod automatde Zemanta sunt comparate cu etichetele gasite pe del.icio.us.

3.5 Linked Galaxy

Linked Galaxy este un instrument ce foloseste entitatile semantice identificatede Zemanta ın textul dat si le intersecteaza cu DBpedia si Freebase urmarinddescoperirea de legaturi ascunse ıntre acestea. Rezultatele sunt oferite sub formaunui graf.

4 Zemanta API ın practica

Programatorii au nevoie de cont ın cadrul portalului pentru a-si genera propriacheie API necesara atunci cand se face o cerere catre serviciile expuse de Ze-manta. Interogarile folosesc protocolul HTTP si metoda POST, iar end point-ulunei cereri catre API este http://api.zemanta.com/services/rest/0.0.

Metodele expuse de API-ul Zemanta sunt:

– zemanta.suggest - permite interogarea Zemanta cu privire la metadate con-textuale ale unui text dat, iar raspunsul are patru componente principale:articole, cuvinte cheie, link-uri ın interiorul textului si categorii de compo-nente optionale;

– zemanta.suggest_markup - permite interogarea Zemanta cu privire la meta-date contextuale ale unui text dat, iar comparativ cu zemanta.suggest,aceasta metoda returneaza doar link-uri catre entitati semantice;

– zemanta.preferences - permite doar interogarea Zemanta cu privire lapreferintele unui anumit utilizator, dar nu si schimbarea acestora.

Parametrii trimisi API-ului la efectuarea unei cereri:

– method - numele metodei;– api_key - cheia API;– text - textul utilizatorului (text simplu sau HTML) - este obligatoriu doar

pentru metodele de tip “suggest”;– format - formatul ın care vor fi ıntoarse datele (xml, json, wnjson sau

rdfxml);– optional pot fi trimisi si alti parametri (pentru metodele de tip “suggest”) :

return_rdf_links, return_categories, return_images, emphasis,personal_scope, markup_limit, images_limit,articles_limit, articles_max_age_days, image_max_w, image_max_h.

Structura unui raspuns pentru o metoda de tip “suggest”:

– status - starea raspunsului poate fi ok sau fail;– rid - id unic al cererii;– articles - o lista de obiecte: url (URL-ul articolului), title (titlul articolu-

lui), published_datetime (data cand aricolul a fost publicat), confidence(un numar subunitar ce reprerinta gradele de ıncredere);

Page 8: Folosirea instumentului Zemanta in recomandarea de continut

8 Folosirea instumentului Zemanta ın recomandarea de continut

Fig. 7. Exemplu de interogare a API-ului Zemanta.

– keywords - o lista de obiecte ce contin urmatoarele informatii: name (cuvan-tul cheie, poate contine spatii, dar nu poate contine virgule), confidence(un numar subunitar ce reprezinta gradele de ıncredere), schema (origineacuvantului cheie);

– images - o lista de obiecte, fiecare dintre ele continand informatii despreURL-ul imaginii (ın diferite formate: mic, mediu si mare), dimensiunile imag-inii, descrierea imaginii, URL-ul paginii de unde a fost luata imaginea;

– markup - obiect ce reprezinta marcajul: text (text HTML ce contine link-uri), links (o lista de obiecte)

– categories - o lista de obiecte ce contin urmatoarele informatii: name (nu-mele categoriei), confidence (un numar subunitar ce reprezinta gradele deıncredere), categorization (carei metode ıi apartine aceasta categorie);

– signature - semnatura folosita.

Structura unui raspuns pentru o metoda de tip “preferences”:

– status - starea raspunsului (ok sau fail);– config_url - URL ce permite editarea preferintelor utilizatorului respectiv;– doctype - doctype pentru codul HTML;– image_position - pozitia imaginii ( 0 - pentru stanga / 1 - pentru dreapta);– email - adresa de email a utilizatorului;– name - numele complet al utilizatorului (atunci cand acesta este disponibil).

Exemplu de cerere catre API-ul Zemanta folosind Javascript.

------ jscodesample.html -------<script type="text/javascript"

src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js">

Page 9: Folosirea instumentului Zemanta in recomandarea de continut

Folosirea instumentului Zemanta ın recomandarea de continut 9

</script><!-- copy these to your own server and minimize before use --><script type="text/javascript" src=

"http://friedcellcollective.net/js/jQuery.windowName/jQuery.windowName.plugin.js"></script>

<script type="text/javascript" src="http://www.json.org/json2.js"></script>

<script type="text/javascript">function prepareZemantaData(apikey, text) {

return {method: ’zemanta.suggest’,format: ’wnjson’,api_key: apikey,text: text// for more options

// check http://developer.zemanta.com/docs/suggest/};

}function getZemantaAPI(data, callback) {

$.ajax({url: ’http://api.zemanta.com/services/rest/0.0/’,type: ’POST’,data: data,success: function (data, type) {

callback(JSON.parse(data));}

});}

</script><!-- this is needed to run the example -->

<script type="text/javascript">jQuery(function ($) {

var keyRx = /[a-z0-9]{24}/;$(’#control’).submit(function (ev) {

var key = $(’#key’).val(),text = $(’#text’).val();

if (key && key.length === 24 && key.match(keyRx) && text) {getZemantaAPI(

prepareZemantaData(key, text),function (data) {

$(’#result’).empty().text(JSON.stringify(data,null, 2));

});

Page 10: Folosirea instumentului Zemanta in recomandarea de continut

10 Folosirea instumentului Zemanta ın recomandarea de continut

}ev.preventDefault();

});});

</script>------ end jscodesample.html -------

Exemplu de raspuns oferit de API-ul Zemanta.

{"status":"ok","articles":[{

"url":"http://popbytes.com/archive/2009/11/pop_nosh_jude_law_doesnt_like_being_spied_on.shtml",

"confidence":0.005382,"published_datetime":"2009-11-20T21:10:49Z","zemified":0,"title":" pop nosh: jude law doesn’t like being spied on "

},],"markup":{"text":"michael jackson","links":[]

},"images":[{

"url_m_h":95,"confidence":0.5,"url_s_h":75,"attribution":"Image by

<a href=\"http://www.daylife.com/source/Getty_Images\">Getty Images</a> via <a href=\"http://www.daylife.com\">Daylife</a>",

"description":"LOS ANGELES, CA - JULY 07: (L-R) Brooke Shields,Janet Jackson, Michael Jackson’s son Prince Michael Jackson II(also known as Blanket), LaToya Jackson, Michael Jackson’sdaughter Paris-Michael Katherine, an unidentified singerand Michael Jackson’s oldest son Michael Joseph Jackson, Jr.(also known as \"Prince\") attend the Michael Jackson publicmemorial service held at Staples Center on July 7, 2009in Los Angeles, California. Jackson, the iconic pop star,died at the age of 50 at UCLA Medical Center after going intocardiac arrest at his rented home on June 25 in Los Angeles.",

"license":"Low resolution use allowed when backlinking","url_l_w":150,"url_s":

Page 11: Folosirea instumentului Zemanta in recomandarea de continut

Folosirea instumentului Zemanta ın recomandarea de continut 11

"http://cache.daylife.com/imageserve/0bm7eZPc4B4pA/75x75.jpg","source_url":

"http://www.daylife.com/image/0bm7eZPc4B4pA?utm_source=zemanta&utm_medium=p&utm_content=0bm7eZPc4B4pA&utm_campaign=z1",

"url_m":"http://cache.daylife.com/imageserve/0bm7eZPc4B4pA/150x95.jpg",

"url_l":"http://cache.daylife.com/imageserve/0bm7eZPc4B4pA/150x95.jpg",

"url_l_h":95,"url_s_w":75,"url_m_w":150

}],"signature":"<div class=\"zemanta-pixie\"><a class=\"zemanta-pixie-a\" href=

\"http://reblog.zemanta.com/zemified/cb616a96-2210-4c7a-939b-34483ec8ad41/\"title=\"Reblog this post [with Zemanta]\"><imgclass=\"zemanta-pixie-img\" src=\"http://img.zemanta.com/reblog_e.png?x-id=cb616a96-2210-4c7a-939b-34483ec8ad41\" alt=\"Reblog this post [with Zemanta]\" /></a></div>","keywords":[{

"confidence":0.155657,"scheme":"general","name":"michael jackson"

},{"confidence":0.037475,"scheme":"general","name":"Jackson Andrew"

},{"confidence":0.033337,"scheme":"general","name":"History"

}],"rid":"cb616a96-2210-4c7a-939b-34483ec8ad41","categories":[],"rich_objects":[]

}

5 Concluzii

Majoritatea serviciilor de procesare a continutului ıncearca sa identifice cele maireprezentative cuvinte sau nume proprii dintr-un text. Spre deosebire de acestea,

Page 12: Folosirea instumentului Zemanta in recomandarea de continut

12 Folosirea instumentului Zemanta ın recomandarea de continut

Zemanta ofera atat tag-uri bazate pe cuvinte, cat si tag-uri pentru concepteleidentificate ın text.

6 Bibliografie

1. Common Tag, http://commontag.org/Home2. Pagina demo pentru integrarea Zemanta cu platforma Ubiquity, http://code.

zemanta.com/bostjan-ubiquity

3. Zemnata Developer Network, http://developer.zemanta.com/4. Zemanta Blog, http://www.zemanta.com/fruitblog/