Ĉe aktuala eldono mi ĉefparte laboris pri plibonigo de gramatika kontrolado. La plej grava manko de kontrolilo estas tre alta nombro de falspozitivaj avertoj pri gramatikaj eraroj.
Tio signifas, ke programo reportas erarojn ĉe ĝustaj frazoj. Mi jam ricevis kelkcent erarraportojn pri tiuj eraroj de uzantoj. La plej granda parto de raportoj estas pri falspozitivaj avertoj de gramatika kontrolilo. Eble tio estas la rezulto de tio, ke uzantoj tre facilie povas raporti tiujn problemojn.
Nun mi ripete analizas kelkajn tekstojn por trovi metode la plej oftajn problemojn de programo.
Mi uzas por tio subajn tekstojn:
- Ekzemplaj frazoj de ekzercaro de Zamenhofo
- Ekzemplaj frazoj de PMEG
- 5500 frazoj de artikoloj de Libera Folio
Fine mi povis malaltigi la nombron de falspozitivaj avertoj je averaĝe 15%.
Jen la tutaj rezultoj
Libera folio | zamenhofa ekzercaro | pmeg ekzemploj | |
---|---|---|---|
vortoj en tekstaro | 131068 | 5110 | 43726 |
frazoj en tekstaro | 5552 | 468 | 4139 |
eraraj frazoj 0.991 | 3155 | 57 | 741 |
56,8264% | 12,1795% | 17,9029% | |
eraroj 0.991 | 6984 | 82 | 1036 |
5,3285% | 1,6047% | 2,3693% | |
eraraj frazoj 0.992 | 2746 | 36 | 633 |
49,4597% | 7,6923% | 15,2935% | |
eraroj 0.992 | 5659 | 54 | 864 |
4,3176% | 1,0568% | 1,9759% | |
eraraj frazoj 0.992 (certaj) | 1732 | 23 | 393 |
31,1960% | 4,9145% | 9,4950% | |
Eraroj 0.992 (certaj) | 2663 | 24 | 466 |
2,0318% | 0,4697% | 1,0657% | |
plibonigo en 0.992 frazoj | 12,9635% | 36,8421% | 14,5749% |
plibonigo en 0.992 eraroj | 18,9719% | 34,1463% | 16,6023% |
La plej gravaj indikoj estas unue la nombro de eraroj (avertoj) kaj nombro de eraraj frazoj. Ekzemple ĉe artikoloj de libera folio (5552 frazoj) la programo en eldono 0.992 avertis, ke 2746 frazoj havas minimume unu eraron ( do 49,45%). Ĉe tiuj tekstoj oni povas asumi, ke la tekstoj estas ĝustaj. Tio estas almenaŭ certa ĉe frazoj de zamenhofa ekzeraro kaj frazoj de PMEG. Mi testis elonon 0.991 kaj 0.991 sur 3 diferencaj tekstaroj kaj kun diferenca severeco de korektilo (ĉiuj avertoj kaj nur certaj). Ĉe „certa“ korektado mi malŝaltis la avertojn pri komoj kaj senfunkciaj frazpartoj.
Fontoj de falspozitivaj avertoj
- Sintaksa analizilo ne povas korekte analizi la frazon.
- La programado de reguloj por korektilo estas malĝusta.
- La radikaro de programo estas malĝusta. En tiu radikaro estas markitaj ekzemple ĉiuj transitivaj verboj.
Mi plibonigis la programon en ĉiu kampo. La uzanto mem povas redakti la radikaron. Do li mem havus la eblon infui la korektilon en tiu kampo.
Ekzemple li povus difini iun verbon kiel transitivan. Mi estas preskaŭ certa, ke neniu uzanto efektive tion ĝis nun faris.
Kiel influi la severecon de korektilo
Por mi estas tre malfacila demendo, kiel severa devas esti la korektilo. Mi devas substreki, ke la programo tute ne povas kompreni la tekston.
Ĝi nur iel analizas la tekston, komputas iajn indikoj pri eblaj eraroj. La programo do ne trovas erarojn, sed nur avertas pri eblaj eraroj.
Ankaŭ por pensanta homo la verdikto pri ĝusteco de iu teksto ne estas facila. Esperantistoj ofte diskutas pri ĝusteco de iu lingva konstruaĵo.
Ofte ekzistas diferencaj opinioj pri lingvo kaj gramatiko.
Kiam mi programas la gramatikan kontrolilon mi devas ofte decidi. Ĉu la programo avertu pri iu lingva konstruaĵo kun samtempa danĝero de falspozitivaj rezultoj , aŭ ĉu preterlasi tiujn necertajn konstruaĵojn. Oni povas tion bone priskribi tion per Precision kaj recall. Mi pensas, ke oni ĝenerale la demando dependas de tio, por kio oni uzas la gramatikan kontrolilon kaj kia estas la teksto. Ĉe tre mallongaj kaj freŝaj (nekorektitaj) tekstoj oni eble volas vidi ĉiujn eblajn avertojn. Se oni kontrolas tre longajn kaj fremdajn tekstojn, oni eble volas vidi tre certajn rezultojn.
En la programo Esperantilo la uzanto povas mem influi tion. En menuo „Preferaĵoj>Redaktu preferaĵojn>Kontrolado“ oni havas kelkajn opciojn por korektilo.
Se oni volas vidi nur pli certajn avertojn, oni malŝaltu subajn opciojn
- Testu komojn
- Testu mankantajn ? aŭ !
- Raportu ĉiujn gramatikajn dubojn
- Proponu pli konvenajn sinonimojn
- Avertu pri ebla falsa amiko
En esperanta fundamento ne ekzistas reguloj por uzado de komoj. Tial neniu povas finfine diri kiel ĝuste uzi komojn. Tial oni malŝaltu tiun opcion, se la reguloj de la programo ne spegulas la propran guston.
Sintaksa Analizo
Sintaksa analizilo estas la koro de la programo Esperantilo. Verdire mia intereso pri programado de sintaksa analizilo estis la motoro por programado de la programo. La gramatika kontrolilo estis nur iu aldona rezulto de tiu analizilo. Mi ĉefe bezonis la analizilon por maŝina tradukado kaj la gramatika kontrolilo unue estis mia interna ilo por trovi mankojn de analizilo. Do mi volis scii, kun kiuj ĝustaj frazoj la programo havas problemojn ĉe analizo.
Mi de longa tempo kolektas diferencajn frazojn por testi mian analizilon (vidu)
Ekzemplaj frazoj estas aliaj kiel realaj tekstoj. Realaj tekstoj estas multe pli kompleksaj. Ili enhavas citaĵojn kaj multe proprajn nomojn, kiuj ne estas parto de esperanta lingvo. Realaj tekstoj ne estas ankaŭ simple aro de frazoj. Ili enhavas pli komplikan strukturon. Ekzistas do dialogoj, tabeloj, nombradoj, titoloj, diversaj propraj nomoj. Jam de trovo de unuopaj frazoj de granda teksto estas en detalo neniu facila tasko.
Nun mi rimarkis, ke la baza ideo por analizilo havas siajn limojn. La programado de aldonaj lingvaj fenomenoj estas ĉiam pli komplika. Mi nun havas prototipon de nova analizilo, kiu ne nur devas estas pli rapida, sed ankaŭ pli facila por programado de sintaksaj reguloj. Tio eble estas tasko por la sekva eldono.
Aliaj plibonigoj de programo de eldono 0.992
- Refreŝigo de revo leksikono kaj korekto de kelkaj ĉimoj en la REVO montrilo.
- Plivastigo de traduka vortaro por angla kaj pola lingvoj.
- Korekto kaj kompletigo de pola vortaro je gramatikaj kaj fleksiaj informoj.
- Aliaj malgrandaj plibonigoj kaj korektoj de programaj eraroj.
Ceteraj informoj
Nun aperis nova provo de esperanta gramatika korektilo surbaze de programo LanguageTool. Oni povas trovi kelkajn informojn sur blogo de Dominique Pellé. Mi esperas, ke mi iam povas kompari rezultojn de ambaŭ prgramoj kaj lerni de tio.