joi, 19 martie 2009

Calitatea elaborarii siturilor de stiri din Moldova

Calitatea siteurilor de stiri din Moldova lasă de dorit, ca să nu spun că majoritatea sunt create ca de începători.

Lucrând la un modul de căutare a știrilor asemănătoare m-am lovit de o realitate incomodă: siteurile de știri din Moldova sunt foarte nepreitenoase cu motoarelor de căutare.

Din curiozitate am început să analizez rând pe rând toate siteurile de știri. Le-am analizat din punct de vedere a formatului HTML:
  1. Titlul paginii include titlul articolului (+1 punct);
  2. meta description este o parte din articol (+1 punct);
  3. Are H1 relevant (+1 punct);
  4. Are H2 relevant (+1 punct);
  5. Lungimea titlului știrii (trebuie să fie minimă) (+1 punct);
  6. Formatul titlului știrii (trebuie să fie simplu) (0 punct).
În urma analizei am obținut următorul rating:
  1. TheNews.md (4 puncte)
  2. Protv.md (3 puncte)
  3. Timpul.md (3 puncte)
  4. Azi.md (2 puncte)
  5. Interlic.md (2 puncte)
  6. Jurnaltv.md  (1 puncte)
  7. Ziarul de Garda (1 puncte)
  8. HotNews.md (1 puncte)
  9. Point.md  (0 puncte)
  10. Info-prim.md (0 puncte)
  11. Literatura si arta (0 puncte)
  12. Civic.md (0 puncte)
  13. Unimedia.md (-1 puncte)
  14. Basa.md (-1 puncte)
  15. Flux.md (-1 puncte)
  16. Infotag.md (-2 puncte)
Deci, cel mai bine create sunt: TheNews.md, ProTV.md, Timpul.md și Azi.md;
Cele mai rele: Infotag.md, Flux.md, Basa.md și Unimedia.md.

Acum despre modulul care m-a dus până aici

Problema e că cu cât este mai rău realizat siteul de știri cu atât mai prost funcționează modulul meu de căutare a știrilor asemănătoare. Problema apare atunci când se caută știti asemănătoare unei știri de pe un site rău realizat - nu invers!

Să vedem câteva exemple:
Liucrurile stau mult mai bine în România sau SUA (slavă Domnului!)

vineri, 13 martie 2009

Presslook face următorul pas - știri asemănătoare

Cel de-al doilea pas important în dezvoltarea proiectului presslook.com este realizarea unui mecanizm simplu de identificare a știrilor asemănătoare.

Sarcina pare cât se poate de simplă, dar realizarea necesită destul de multe resurse...

Date de intrare
Deci, datele de intrare pentru a primi știri asemănătoare sunt:
  • URL - linkul știrii examinate (pentru care se caută știri asemănătoare);
  • LL - limba în care este scrisă știrea exeminată (de la url) - poate fi RO, RU, ES, EN și FR;
  • _CN - țara în care se caută știri asemănătoare - la moment poate fi RO, RU, ES, US, FR și MD;
  • _UL - limba în care se caută știri asemănătoare (poate primi aceleași valori ca și ll);
  • _MINDATE - data minimă din care se poate căuta știri - opțional;
  • _MAXDATE - data maximă din care se vor căuta știri - opțional.
Dacă nu se indică data maximă și cea minimă, se vor căuta știri din ultimele 14 zile.

Date de ieșire
La moment este disponibilă doar varianta pentru ieșiri în format RSS. Adresa care va genera RSS-ul este următoarea: http://www.presslook.com/share/context.aspx.
Este important de știut că încă nu s-a pus accent pe performanță, astfel la prima accesare a paginii de generare a RSS-ului timpul de procesare este de câteva secunde - în schimb următoarea accesare cu acceași parametri în decurs de 20 minute se va executa foarte rapid.

Să vedem un exemplu:

Voi căuta știri asemănătoare pentru Obamas mixing Everyman, high society (o știre din SUA în limba engleză). Mă interesează știri asemănătoare din Moldova scrise în română.
Vom obține următorul link:

Testare
Pentru testare am făcut o mică interfață disponibilă aici.

Important
Sistemul este în plină dezvoltare, deci nu merge vorba de o variantă care ar trebui să funcționeze super. Calitatea rezultatelor depinde mult de cuvintele cheie existente momentan în sistem. În timp, aceastea se vor acumula și rezultatele vor fi mai calitative.
Orice sugestii sunt bine venite.

Cum functioneaza
Pentru a putea analiza un url (o știre) este nevoie ca pagina analizat să fie corect HTML formatată. Adică, trebuie sa aibă setat un titlu și o descriere. Altă variantă posibilă este identificarea secțiunilor dintr-o pagină cu atributul class="press-share" - sistemul va analiza textul existent în aceste elemente (div, span, etc.).
După ce se identifică cuvintele cheie în știre, se caută știri cu aceleași cuvinte cheie. Cam aceasta este forma simplistă a mecanizmului.

miercuri, 11 martie 2009

Fiecare cuvânt la locul lui...

Din seria dezvoltarea proiectului presslook.com

Prima variantă de păstrare a datelor privind cuvintele cheie găsite într-un text(în cazul nostru știre) consta în următoarele câmpuri:
  • ID stire;
  • ID cuvânt-cheie;
  • Count - numărul de apariții a cuvântului în știre;
  • altele mai puțin importante...
După o analiză în timp, am observat că e destul de complicat să depistez cuvintele cheie cu adevărat relevante dintr-o știre, și asta fiindcă ordonarea lor era posibilă doar după numărul de apariții a cuvântului într-o știre. De multe ori, cuvintele cele mai importante putea apărea doar de 1-2 ori în titlu sau la începutul știi și gata.

Am decis ca pentru fiecare cuvânt găsit într-o știre să mai am:
  • Index - pozitia cea mai bună a cuvântului în text;
  • Length - lungimea textului în care s-a căutat cuvântul.
Astfel pot crea o formulă mult mai eficientă după care să ordonez cuvintele cheie găsite într-o știre. Ca rezultat se evidențiază cuvintele cu adevărat relevante.

O pagină de testare (temporară) este disponibilă aici - se poate introduce un text în care doriți să căutați cuvinte chaie, și primiți rezultatele în una din 5 limbi alese(ro, ru, en, es, fr).

Un element foarte important în funcționarea sistemului este viteza de procesare a textului. La moment aceasta variaza între 0.1 - 0.5 secunde - viteza depinde de lungimea textului cercetat și numărul de cuvinte cheie existente în sistem.

duminică, 1 martie 2009

Presslook se uită peste tot...

Un element important al sistemului presslook este capacitatea sa de a analiza știrea în întregime. Deci, sistemul nu va analiza doar titlul și descrierea scurtă a știrii publicată prin RSS, ci întreg corpul știrii. Un modul al sistemlui merge la fiecare știre pe situl celui care a publicat-o și o citește după care o stochează pregătind-o astfel pentru analiză (efectuată de alt modul).

Această proprietatea a sistemului este esențială în situația în care dorim să depistăm cu adevărat toate și cele mai importante cuvinte cheie dintr-o știre. La moment analiza știrilor în întregime se realizează la aproximativ 90% din totalul de știri colectate zilnic. Un exemplu bun se vede în imaginea de mai jos:


Tot odată, se observă că unele știri sunt practic lipsite de cuvinte cheie - asta datorită volumului mic de cuvinte cheie existente la moment în sistem. Însă creșterea sistemului se va produce concomitent cu creșterea numărului de cuvinte cheie.

Poate cineva se întreabă de ce am pus site-ul pe adresa news.presslook.com și nu pe www.presslook.com ? Cred că unii au gâcit deja... :)