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.

3 comentarii:

  1. Am testat, din pacate mi-a dat 0 cuvinte cheie, cred ca mai tre de lucrat la asta. Textul nu era foarte mare, doar 899 caractere, poate asta e un indiciu.

    RăspundețiȘtergere
  2. Mai sunt niste pucte care trebuie de cunoscut:
    1. Vor fi gasite doar cuvintele existente in sistem, deci daca textul nu contine nici un covant dintre acele intreduse in sistem, nu va fi gasit nici un cuvant. La moment in sistem sunt peste 500 cuvinte si peste 2000 de 'derivari' ale acestira.

    2. Trebuie sa indici corect limba in care este textul testat.

    În rest, merge!

    RăspundețiȘtergere
  3. De 1 punct nu stiam, al doilea l-am completat corect.

    RăspundețiȘtergere