Noul design DEX online

DEX online s-a schimbat la față (și nu, nu e păcăleală, deși am ales să lansăm pe 1 aprilie ca să facem un pic de vâlvă în plus). Intenția este de a contura un pic mai bine personalitatea siteului nostru, deoarece considerăm că vechiul design, deși este funcțional, este puțin cam searbăd.

Încercăm să urmărim reacțiile publicului, pentru că știm și noi că nu e bine să-ți enervezi audiența. 🙂 Citim tot ce este public pe twitter, pe indexuri de bloguri etc. Cabral a avut și un paragraf întreg despre noi și un poll (între timp pollul a dispărut).

Dacă doriți să reveniți la vechiul design, dați click pe Preferințe, iar dintre opțiunile pentru Design alegeți „Polar”.

Dacă aveți sugestii sau nemulțumiri, comentați aici sau scrieți-ne pe adresa de contact.

dexonline pe mobil

    Chiar dacă și pînă acum se putea accesa dexonline.ro pe mobil (în special pe „smartphone”-uri), am primit destule solicitări ca site-ul să poată fi vizionat în bune condiții și pe mobilele obișnuite. Așa ca am purces la dezvoltare, iar cea mai mare parte este gata!
    Așa că ieri am lansat prima versiune a site-ului optimizat pentru mobil la adresa http://m.dexonline.ro.  De asemnea, am facut primii pași pentru a redirecta în mod automat accesul pe site-ul nostru (de pe mobil) pe cel optimizat pentru dispozitivele electronice mobile!
    Sperînd că noile modificări vor fi folositoare, vă dorim utilizare plăcută!

Îmbunătățiri de viteză

După cum probabil ați observat, în ultimele câteva zile DEX online a răspuns ceva mai greu la căutări. Această problemă a fost rezolvată și DEX online a redevenit rapid și ușor de consultat.

Pentru cei interesați de originea tehnică a problemei, doi factori au contribuit la ea. Zilele trecute am migrat tot codul-sursă la AdoDB, o bibliotecă de abstractizare a accesului la baza de date care include și un modul de ORM. Avantajele AdoDB sunt o structurare mult mai bună a codului și mai puține posibilități de eroare. Totuși, această migrare a dublat volumul de cod PHP executat pentru fiecare căutare și a scos la iveală cea de-a doua problemă cu serverul: DEX online nu avea încă un cache pentru PHP. La orele de vârf, când DEX online trebuie să răspundă cam la 10 căutări pe secundă, serverul începuse să nu mai facă față. Am adăugat și un pachet de cache, ceea ce a făcut ca DEX online să revină la timpi de încărcare foarte buni.

Preferințe pentru utlizatori anonimi și alte noutăți

Am extins preferințele și la nivelul utilizatorilor anonimi, astfel că acum orice utilizator are acces, prin intermediul Preferințelor (vezi linkul din partea de jos a paginii) la:

  • vizualizarea celor două caractere cu probleme: ş şi ţ cu sedilă (în loc de virguliţă);
  • invalidarea opțiunii implicite de adăugarea a diacriticelor în cuvîntul căutat;
  • folosirea ortografiei folosite pînă în 1993 (î din i) în locul celei de acum;
  • vizualizarea numai a definiţiilor din categoria „oficiale” (adică a celor girate de o instituție prestigioasă);
  • posibilitatea ca flexiunile să fie afișate expandat;

Între timp lucrăm la optimizarea site-ului, cea mai vizibilă fiind folosirea unei adrese URL mai prietenoase!

Îmbunătățiri la căutare

De curând, am făcut două schimbări în modul de căutare și de prezentare a rezultatelor. În cele mai multe cazuri, ele nu vor fi vizibile, dar sperăm ca ele să facă diferența acolo unde contează: când utilizatorul a introdus o interogare mai complexă decât un singur cuvânt, când avem o sugestie sau când dorim să atenționăm utilizatorul că a căutat o formă greșită a cuvântului.

  • Atunci când cuvântul introdus nu este găsit, dar avem exact o sugestie (nu mai multe), DEX online redirectează automat la acea sugestie, cu un mesaj de atenționare. Astfel, oprobiu redirectează la oprobriu, iar repercursiune la repercusiune. Când există mai multe sugestii, atunci DEX online nu redirectează automat, ci prezintă acea listă de sugestii.
  • Atunci când utilizatorul introduce mai multe cuvinte, încercăm să găsim un termen care se referă la cât mai multe dintre acele cuvinte. Astfel, făt frumos, cal de mare și fata morgana vor da rezultatele așteptate. Înaintea acestei schimbări, DEX online elimina automat spațiile din toate căutările făcute, ceea ce crea confuzie.

Lectură plăcută în continuare. 🙂

Expandarea flexiunilor

    De circa doi ani există facilitatea vizualizării flexiunilor cuvintelor, însă acestea erau implicit ascunse (deși existau în pagină)! Abia săptămînile trecute am realizat suportul pentru schimbarea acestei opțiuni implicite (folosind setările din „Contul meu”)…
    Cum poate fi important să poți oferi celorlalți un link (de exemple pentru verbul a fi) către o pagină din dexonline cu flexionarea cuvîntului vizibilă indiferent de setările contului respectivului, am adăugat și un link care rezolvă. Și ca să facem treaba pînă la capăt, am modificat aspectul flexiunilor după ultimele standarde în materie, adică folosirea caracterelor îngroșate (bold) pentru marcarea accentelor!
    Sperăm să vă folosească!

Din nou ultimele noutăți

    Au trecut doi ani de la ultima postare pe blog. Sigur, dexonline nu s-a oprit acolo, însă uneori e mai ușor să faci niște modificări decît să scrii cîte ceva despre ele pe blog! Între timp, Cătălin m-a delegat pe mine să mă ocup cu partea asta, iar pentru început o să trec în revistă cîteva din cele mai importate îmbunătățiri:

  • s-a generalizat folosirea lui „ș” și „ț” (cu virguliță, nu cu sedilă);
  • s-au creat în „Contul meu” diverse opțiuni pentru fiecare utilizator:
    • pentru cei care doresc să folosească sedila în locul virguliței (din motive de browser);
    • pentru cei care doresc să folosească vechea ortografie (cu î în loc de â);
    • pentru căutarea cu diacritice;
  • s-au adăugat surse noi și definiții în acestea (vezi topul voluntarilor);

Zilele trecute s-au mai realizat mici îmbunătățiri:

  • împărțirea în două categorii de surse: sursele „oficiale” (girate de o instituție sau o editură de prestigiu) și cele „neoficiale” – celelalte;
  • mutarea definițiilor din surse „neoficiale” la sfîrșitul paginii cu rezultatele căutărilor;
  • noi opțiuni în „Contul meu”:
    • expandarea automată a flexiunilor;
    • ascunderea definițiilor provenite din sursele „neoficiale”;

Sperăm ca elanul să ne țină și să mai aducem noutăți luna care vine!

Pe ultima sută de metri

Ce mai este nou la DEX online?

Chiar azi am lansat un corector ortografic pentru Firefox (de limba română, evident). Îl puteţi instala din pagina de unelte, secţiunea “Integrare în browser”. Momentan există câteva limitări de care sunt conştient:

  1. Nu vă este folositor decât dacă scrieţi cu diacritice. Altfel va sublinia drept greşeli toate cuvintele pe care le scrieţi fără diacritice, de exemplu caciula în loc de căciulă.
  2. Nu ştie nici un nume propriu, deoarece se bazează exclusiv pe dicţionarele din DEX online, care nu sunt de natură enciclopedică.
  3. Nu se descurcă cu formele enclitice, de exemplu gândindu- din forma compusă gândindu-se.

O altă noutate (şi nu prea) este căutarea prin tot textul definiţiilor. Puteţi căuta mai mulţi termeni şi primiţi toate definiţiile care conţin toţi termenii. Acest mecanism, dacă este folosit cum trebuie, poate fi extrem de puternic. De exemplu, dacă nu vă mai amintiţi cum se numeşte teama de spaţii largi, puteţi căuta aceste cuvinte prin tot textul definiţiilor:

teamă de spaţii largi

Rezultatele includ aeroacrofobie, agorafobie şi cenofobie. Punct ochit, punct lovit!

Tot în pagina de unelte a apărut o secţiune specială dedicată pasionaţilor de scrabble. Aceştia pot consulta Lista Oficială de Cuvinte acceptată de Federaţia Română de Scrabble la toate concursurile oficiale.

De ce se numeşte acest post Pe ultima sută de metri? Pentru că, după îndelungi frământări, am ajuns la hotărârea că de anul acesta vreau să renunţ la programarea pentru DEX online şi să încerc şi altceva (tot din domeniul programării). Evident, voi rămâne alături de proiect pentru tot ce nu implică programarea: monitorizarea siteului, răspunsurile la mesaje, îmbunătăţirea bazei de date etc. Am scris mai mult despre această hotărâre în blogul meu personal.

Forme flexionare

Scriu rar, dar am mereu ceva important de spus 🙂

Astăzi am lansat componenta Dex Flex (numită şi Flex online, încă nu ne-am hotărât asupra unui nume). Această componentă permite, deocamdată:

  • Consultarea formelor flexionare ale oricărui cuvânt al limbii române (conjugarea verbelor, declinarea substantivelor, adjectivelor şi pronumelor). Pe fiecare pagină de rezultate, există un link numit “Flexiuni”. Încercaţi-l cu nădejde!
  • Căutarea unui cuvânt după o formă flexionară, nu neapărat după cea de bază (verze).
  • Navigarea între definiţii printr-un click pe orice cuvânt din cadrul oricărei definiţii. Mecanismul funcţionează pentru orice cuvânt din orice definiţie. Nu mai este nevoie ca moderatorii să insereze manual trimiteri pentru cuvintele-cheie dintr-o definiţie.
  • Afişarea accentelor în formele flexionare. Deocamdată la acest capitol avem doar informaţii parţiale, dar chiar şi aşa, un procent semnificativ din formele flexionare conţin şi informaţii despre accent.

Motivul pentru care acest proiect a fost considerabil de dificil este că limba română, spre deosebire de alte limbi (în special engleza) nu se pretează la derivare regresivă (stemming). Dându-se un cuvânt în engleză (shining), este de obicei simplu de aflat forma de bază a cuvântului (shine). În română, dându-se un cuvânt (de exemplu perilor sau străzi), de obicei este imposibil de dedus automat forma de bază (păr sau stradă), deoarece pentru orice regulă găsită există un număr mare de excepţii.

Am optat pentru metoda inversă: derivarea completă a tuturor cuvintelor şi stocarea tuturor formelor flexionare ale limbii române. Pentru aceasta, aveam nevoie de o catalogare a cuvintelor după modul în care se declină / conjugă. De exemplu, cuvintele casă, artă şi sonată se declină la fel (formând pluralul în -e), iar cuvintele viaţă, vară şi iarnă se declină în alt fel (formând pluralul în -i şi suferind şi transformarea a/e la plural: iarnă/ierni).

Această clasificare a fost făcută pentru prima oară în 1981 de Alf Lombard şi Constantin Gâdei în Dictionnaire morphologique de la langue roumaine. Matei Gall şi Octavian Mocanu de la Federaţia Română de Scrabble (care are nevoie de o listă a formelor flexionare acceptate la jocul de scrabble) au construit în continuarea DMLR, perfecţionând şi extinzând lista de modele. Această listă are acum circa 770 de modele de flexionare. Unele din aceste modele acoperă mii de cuvinte, iar altele au un singur reprezentant. De exemplu, mai toate participiile verbelor se declină la fel (apărut, lăbărţat, irizat), dar verbe ca a fi şi a avea sau substantive ca staroste şi sombrero nu seamănă cu nimic altceva. Aşa a rezultat LOC4, Lista Oficială de Cuvinte admisă la jocul de scrabble.

Radu Borza şi cu mine ne-am ocupat de importarea LOC4 în DEX online. Şi acest pas are capcane. Modelele din LOC4 sunt listate desfăşurat, dar a fost treaba noastră să scriem cod care să examineze formele flexionare, să îşi dea seama ce se schimbă faţă de forma de bază, să extragă aceste transformări şi să le aplice altor cuvinte etichetate cu acelaşi model. De exemplu, modelul F62 este stradă, cu pluralul străzi. Programul compară cele două forme şi extrage transformările a→ă, d→z şi ă→i. Când întâlneşte un alt cuvânt etichetat cu F62, ca gardă, nadă sau ogradă, programul aplică aceste transformări pentru a obţine formele corecte de plural gărzi, năzi sau ogrăzi.

Importarea LOC4 este numai un pas de pornire. Afişarea conjugărilor verbelor sau navigarea între definiţii cu un singur click sunt aplicaţii interesante care decurg cu un minim de efort din LOC. Dar orizonturile de abia acum se deschid către alte aplicaţii şi mai utile:

  • Setul de forme flexionare este probabil cel mai complet de până acum, el putând fi folosit de aplicaţii ca OpenOffice pentru a verifica ortografia unui document scris în limba română.
  • Căutarea prin întreg corpul definiţiilor, nu doar prin cuvintele cheie. Această aplicaţie era posibilă şi mai înainte, folosind simple căutări de subşiruri. Dar, de exemplu, o căutare a şirului carte este inutilă dacă definiţia conţine textul cărţi. Având informaţiile despre flexiune, putem indexa baza de date şi căuta un cuvânt indiferent în ce caz/număr/timp/persoană se află.
  • Verificarea închiderii tranzitive a bazei de date a DEX online. Acum putem semnaliza orice definiţii care folosesc cuvinte care nu sunt la rândul lor definite în DEX online, precum şi definiţiile circulare. Ştim sigur că acest gen de erori există, pentru că le-am preluat din DEX. 🙂 De exemplu, există multe perechi de cuvinte care se definesc prin referinţă unul la altul, fără ca vreunul din ele să enunţe şi o definiţie propriu-zisă.

Este greu de făcut o estimare, dar eu sunt de părere că, atunci când toate aceste funcţii vor fi implementate, proiectul Dex Flex va avea un impact la fel de mare şi va fi la fel de util ca şi baza de definiţii în sine.

Evident, toate datele adăugate astăzi la Dex online pot fi copiate şi redistribuite, ca şi restul bazei de date, sub Licenţa Publică Generală GNU.

Intrări

N-am mai postat nimic de vreo două luni, pentru că nu au fost prea multe noutăţi. În octombrie şi noiembrie am lucrat, cu pauze, la structurarea mai bună a bazei de date prin introducerea “intrărilor” în DEX online. O “intrare” este o colecţie de lexeme, iar un “lexem” este o unitate minimală de analiză lingvistică. De exemplu, DEX online are 8 definiţii pentru “episcop”, care până astăzi erau toate listate de-a valma. Începând de astăzi, avem ocazia să împărţim definiţiile în minim două intrări diferite ca înţeles (episcopul ca grad bisericesc şi episcopul ca aparat).

Schema bazei de date este acum mai complexă, dar am eliminat o redundanţă foarte dăunătoare. Până astăzi, fiecare definiţie era asociată cu un număr de cuvinte-cheie. De exemplu, fiecare definiţie pentru “episcop” era asociată cu un cuvânt “episcop” (astfel încât o căutare după “episcop” să producă toate aceste definiţii). Tabela cuvintelor conţinea episcop de 8 ori, o dată pentru fiecare definiţie.

După schimbarea de azi, între cuvinte şi definiţii se interpun intrările. Pentru episcop avem două intrări, fiecare din ele asociată cu câte un cuvânt “episcop” (ceea ce este de dorit, pentru că aceste două cuvinte se declină diferit: episcop/episcopi, respectiv episcop/episcoape). Cele opt definiţii sunt asociate fie cu o intrare, fie cu cealaltă, în funcţie de întelesul lor, dar nu cu amândouă. Similar, pentru “sol” vom avea nu mai puţin de 5 intrări (solul ca emisar, solul ca notă muzicală, solul ca pământ, solul ca monedă şi solul ca soluţie coloidală).

Intenţia pe termen scurt a fost să reducem numărul de cuvinte-duplicat, pentru că urmează să începem flexionarea ( = declinarea = conjugarea) cuvintelor şi vrem să ne uşurăm munca. De exemplu, pentru episcop aveam 8 cuvinte-cheie înainte (exact unul pentru fiecare definiţie), iar acum avem doar două, exact câte înţelesuri are cuvântul. Pe termen lung, sperăm ca această modificare să ne permită o structurare şi mai bună a definiţiilor.