Flexiuni LOC

De la dexonline wiki
Versiunea din 4 februarie 2014 01:41, autor: Cătălin.Frâncu (discuție | contribuții) (→‎Alte aspecte)
(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)
Sari la navigare Sari la căutare

ACEASTĂ PAGINĂ ESTE ÎNVECHITĂ. Implementarea propusă în această pagină este deja funcțională pe DEX online din 2007.

Această pagină tratează procesul de migrare de la schema curentă a DEX online la schema care va îngloba LOC. Vezi și tabul „discuție”.

Premise

  • Implementarea flexiunilor în DEX online trebuie să uşureze cât mai mult preluarea modelelor de flexiune şi a listei de cuvinte din LOC (versiunea 3 şi versiunile ulterioare).
  • Din punctul de vedere al DEX online, ar fi ideal ca munca la versiunile ulterioare ale LOC să se desfăşoare în cadrul DEX online, pentru că ar elimina necesitatea de a depista şi încorpora schimbările apărute între două versiuni ale LOC. Vom încerca să facem această fuziune de dorit şi pentru autorii LOC, dar ea nu este garantată.
  • Inevitabil, vor exista discrepanţe între LOC şi lista de cuvinte din DEX online. Dacă DEX online urmăreşte să înglobeze LOC, trebuie să găsim o modalitate de a reprezenta cuvinte din LOC pentru care noi nu avem definiţii şi cuvinte din DEX online care nu au corespondent în LOC.
  • LOC nu are o structură foarte omogenă şi anticipăm că unele cazuri particulare vor trebui tratate în cod, ele neputând fi modelate în baza de date fără un efort prea mare (de exemplu, faptul că verbele "atrag" după sine un substantiv (infinitivul lung) şi un adjectiv (participiul).
  • Baza de date va permite introducerea unor valori care nu sunt direct utile pentru DEX online (de exemplu, accente în flexiuni şi informaţii despre pronunţie).

Migrare

User:Cătălin.Frâncu 26 februarie 2007 10:17 (PST)

  1. Vom adăuga o tabelă LexemDefinitionMap care va cupla definiţii cu lexeme. Fiecare definiţie va trebui cuplată cu minim un lexem, altfel ea nu va putea fi găsită la căutare.
  2. La căutare, căutăm şirul dat în tabela wordlist şi aflăm setul de lexeme. Din tabela LexemDefinitionMap aflăm setul de definiţii de prezentat.
  3. La căutarea cu expresii regulate, căutăm doar în lexems.forma, ignorând formele flexionare.
  4. Pentru popularea iniţială a tabelei LexemDefinitionMap, folosim informaţiile existente în prezent în tabela ConceptDefinitionMap.
  5. Tabelele Concept, ConceptDefinitionMap şi Word dispar cu totul.
  6. DEX online are 116.000 de concepte, dar LOC3 are numai 52.000 de lexeme. Deduc că există multe cuvinte pe care LOC3 nu le tratează. Este necesar ca fiecare definiţie să fie asociată cu un lexem, evident, altfel nu va putea fi găsită la căutări. Pentru cuvintele pentru care LOC3 nu oferă lexeme, vom adăuga un lexem pentru care model_type = 'T' (temporar). Acest tip de model va genera o singură inflexiune, cea pentru forma de bază. Ulterior, pagina moderatorului va semnala toate lexemele de tipul 'T' pentru ca Matei şi Tavi să le eticheteze corect.
  7. Când cineva adaugă o definiţie nouă, avem două opţiuni:
    • Le cerem cuvântul-titlu într-un câmp text simplu, pentru a nu-i încurca. În culise, creăm un lexem nou de tipul 'T'. Moderatorul care acceptă definiţia trebuie să aleagă modelul corect. Este ok dacă moderatorul uită, pentru că lexemele de tip 'T' vor fi semnalate permanent.
      • Eu aş opta pentru această variantă [Matei]
    • Le cerem cuvântul-titlu şi le prezentăm un drop-down cu lista de modele, ca să aleagă declinarea corectă. Această abordare uşurează munca moderatorului, dar foarte probabil va speria voluntarii.

Erori în baza de date provenite de la migrare

Am remarcat aceste erori în fişierul flexonline.sql pe care Radu îl obţine cu un script pe baza LOC. Pe măsură ce aceste probleme se rezolvă, le putem muta în secţinea "Rezolvate". Unele din ele sunt deja rezolvate, dar eu le observ încă pentru că lucrez cu o versiune veche a fişierului flexonline.sql.

Probleme curente

  • Nu există suport pentru ambele forme de MMCP (mâncasem/mâncaserăm). Radu va adăuga o "clonă" în tabela inflections, astfel că vor exista două înregistrări pentru MMCP pers. I plural (şi două pentru MMCP pers. II plural).
  • Mai sunt şi alte situaţii când există mai multe forme: tatălui/tatii, ucigând/ucizând etc. Cum tratăm aceste cazuri, creăm mai multe lexeme cu modele diferite? Sau generalizăm suportul pentru mai multe forme la aceeaşi flexiune?
    • Cred că mai bine generalizăm. În unele cazuri sunt chiar 3 forme diferite. Acestea pot fi înşirate "forma1 / forma2 / forma3". [Matei]
  • Există lexeme incorect flexionate ('luminoscop', 'alerga'). Am scris o pagină care permite verificarea corectitudinii modelelor, care îi va permite lui Radu să depaneze mecanismul de extragere a transformărilor.
  • Mai există greşeli de tipar. Majoritatea sunt vizibile la http://delta.dexonline.ro/admin/viewUnassociatedLexems.php . Unele sunt erori în LOC ('chbzui' în loc de 'chibzui'), iar altele sunt erori de parsare ('hăiv408').
  • Nu am înţeles foarte clar cum vom diferenţia V de VT. Folosim o restricţie nouă sau creăm tipul de model VT? Mie-mi convine oricare din cele două.
  • Lista de la Radu ignoră restricţia S (toate substantivele respective au şi forme de plural în wordlist, deşi n-ar trebui)
  • Unele cuvinte ignoră restricţia P (abietinee, abietacee), altele o respectă (agatârşi)
  • Modelul A123 nu există în flexonline.sql, deşi el există în LOC
  • Unele forme din wordlist sunt duplicat, cu şi fără accente (ex. cehă / c'ehă)
  • Substantivele MF nu sunt flexionate deloc. Este ok ca Radu să le flexioneze ca 'A', dar să le treacă modelul cu 'MF', pentru că eu am deja suport pentru tipuri de model sinonime.
  • Creăm acum tipuri de modele pentru diversele cuvinte invariabile (adverb, conjuncţie, termeni ştiinţifici etc.)? Ideal, tipul I ar trebui să dispară. Pentru moment, putem eticheta aceste cuvinte ca I şi să ne ocupăm ulterior de ele, dar ne putem uşura munca folosind etichetarea bazată pe sufixe. De exemplu, tot ce se termină în -eşte este adverb, tot ce se termină în -alis este termen latinesc.
  • Există cuvinte care nu se încadrează în niciun model de flexiune din LOC (DMLR). Ex.: salată cu pl. sălăţi. Pentru acestea trebuie create modele noi. I le semnalăm lui Radu, sau creăm o pagină dedicată acestui scop? [Matei]
  • Foarte multe s.f. care provin de la verbe (inf.lung.) sunt etichetate F113, deşi nu au sufix "-are", ci "-ere". Rezultă erori la flexiune. Am încercat să corectez, dar sunt multe, poate faceţi o listă şi le transferăm automat la F107. [Matei]
  • De verificat (Tavi ?) dacă modelul F140 este corect. S-ar putea ca formele 7 şi 8 să fie cu "ă" în loc de "a" (n-am dat importanţă, la scrabble nu contează). Poate sunt şi alte modele cu probleme similare... [Matei]
  • În pagina de etichetare pe bază de sufix apare doar restricţia "S". Trebuie adăugate şi celelalte. [Matei]
  • Există o problemă la F25 (sămânță). De exemplu, pluralul genitiv articulat este "selormințe" în loc de "semințelor". Cel mai probabil, e din cauză că avem două transformări pentru care transf_from = 'ă'. De fapt ultimele 3 forme sunt greşite, la toate terminaţia este introdusă după "se", nu la sfârşit.

Probleme rezolvate

  • Există lexeme redundante (lexeme identice în tabela lexems, pentru cuvinte care nu au omonime). Un exemplu este 'cal'. Din câte înţeleg, cauza este că aceste cuvinte sunt listate şi în LOC, şi la modelele desfăşurate.
  • Unele participii nu se flexionează ca A2, ci este indicat modelul. Radu va crea o tabelă temporară care indică aceste modele.

Alte aspecte

  1. Accente: Dacă LOC oferă accente, le putem include destul de simplu în DEX online. La căutare, putem folosi un collate care să ignore accentele.
    • Accentele sunt menţionate în LOC doar în anumite cazuri. Eu zic să le eliminăm (cuvântul-titlu indică oricum accentul formei de bază) ca să nu avem ceva neunitar. Când vom avea timp, vom completa modelele de flexiune cu toate accentele (vor apărea probabil diferenţieri, modele noi). [Matei]
  2. În LOC, participiul şi infinitivul lung al verbelor trebuie tratate ca adjectiv, respectiv substantiv feminin şi flexionate (dacă cuvântul este etichetat cu paradigma VT). Nu sunt sigur dacă va fi nevoie să facem şi noi acest lucru, deoarece dicţionarele noastre listează de obicei aceste participii şi infinitive lungi ca intrări separate. Dacă va fi nevoie, nu ştiu cum este cel mai bine să modelăm acest lucru în baza de date.
    • Aici cred că am găsit o soluţie. Dacă verbul "a bisisi" are infinitiv lung trecut în DEX online ("bisisire"), atunci flexionăm acel infinitiv lung ca substantiv şi totul este OK. Dacă nu, atunci scriptul care importă LOC va adăuga cuvântul "bisisire" asociat cu conceptul "a bisisi" şi îl va declina ca substantiv. Asta ca să nu adăugăm formele flexionare "bisisiri, bisisirii" etc. direct la verb, pentru că este nenatural. Verbul "a bisisi" este fictiv :)
    • Similar ar trebui procedat şi pentru participiu, în cazul în care nu apare separat în DEX online. [Matei]
  3. În LOC, flexiunile pentru MF şi A sunt identice (respectiv, două cuvinte etichetate cu MF10 şi respectiv A10 se flexionează la fel). Schema prezentată mai sus nu poate reda acest lucru, ar trebui să avem o singură paradigmă pentru MF + A.
    • O soluţie ar fi să stocăm, în tabela Flexiune, un câmp în plus care să arate că o flexiune este identică cu alta. De exemplu, că A este identică cu MF. Cuvintele limbii române pot fi etichetate cu A123, dar codul va genera formele flexionate uitându-se la MF123. Pentru A nu vom accepta nici un model de flexionare, toate vor trebui listate la MF.
  4. Ce facem cu cuvintele din DEX online care nu sunt menţionate în LOC? Sigur, nu va fi greu să le etichetăm, dar trebuie să reflectăm cumva faptul că aceste etichete nu sunt cuprinse în LOC, pentru ca jucătorii de scrabble să poată regăsi LOC în forma sa exactă şi după încorporarea în DEX online
  5. Ce facem cu cuvintele din LOC care nu au definiţii corespunzătoare în DEX online? Noi nu avem posibilitatea de a adăuga cuvinte fără definiţii (un cuvânt este asociat cu un concept, iar un concept neasociat cu nici o definiţie va declanşa un avertisment în pagina moderatorului). Putem adăuga definiţii minimale, de genul celor din Dicţionarul Ortografic.

Referinţe

LOC3 - Lista oficială de cuvinte la scrabble în limba română, versiunea a 3-a