Esperantilo Blogo en Esperanto pri projekto Esperantilo kaj komputila lingvistiko

27.2.2007

Esperantilo en eldono 0.90 kun nova gramatika korektilo

Filed under: ĝenerale — artur @ 21:22

La ĉefa temo de tiu eldono estas la gramatika kontrolado. Tiu eldono havas preskaŭ komplete reprogramitan uzulan interfacon de gramatika korektilo. Mi esperas, ke tiu eldono estas la unua, kiu estos vaste uzata por gramatika kontrolado. Nun la gramatika kontrolado povas ankaŭ en kelkaj kazoj sugesti la korekton. La kvalito de mesaĝoj de korektilo estis plibonigita kaj la mesaĝoj estas nun pli konkretaj. Tiu denova okupo pri gramatika kontrolado estas eble rezulto de mesaĝgrupo Komputila lingvistiko kaj intereso de kelkaj personoj pri tiu temo. Eble iam ekestos ankaŭ aliaj interesaj korektiloj.

Mi aldonis ankaŭ tute novan funkcion de gramatika kontrolado. La uzanto povas nun direkte marki ĉiujn gramatikajn erarojn per butono en suba kampo de fenestro. Ĉiuj eraraj aŭ dubindaj vortoj estas markitaj. Se oni enigas per muŝo en la kampon de vorto, en la suba listo de mesaĝoj oni povas legi la erarmesaĝon. Per klako de dekstra muŝa butono oni povas selekti sugestan korekton kaj tuj korekti la tekston.

Kvankam mi multe testis la programon sur mia blogo aŭ blogoj de aliaj esperantistoj, tamen la funkciado de korektilo ne estas ĉiam kontentiga. Mi malkovris esperantajn blogojn kiel bonaj fontoj de malkorektaj tekstoj. Ankaŭ mesaĝgrupoj de TTT-ejo lernu estas tre bonaj por trovi nekorektajn tekstojn. Mi testis ankaŭ la programon sur hazardaj paĝoj de esperanta vikipedio, sed mi trovis entute nur kelkajn erarojn.

Ekzistas ĉefe du problemoj.

  • Programo ne trovas gramatikajn erarojn.
  • Programo plendas pri korektaj frazoj.

Mi lasttempe ĉefe laboris pri malplialtigo de falsaj mesaĝoj, sed tamen analizo de kompleksaj tekstoj faras problemojn. Por mezuri la kvalito de rezultoj oni uzas grandecojn konataj de Information Retrieval. Laŭ tiu difino Esperantilo havas ne tre bonan „recall“. Tiu estas nombro de mesaĝoj kompare al korektaj mesaĝoj. Tial la programo ne estas tre bona por komencantoj, kiuj povus esti konfuzitaj de malkorektaj mesaĝoj. La liston de ekzemplaj eraroj kaj mesaĝoj oni povas rigardi tie.

Ĉe tiu okupo mi plibonigis ankaŭ la sintaksan analizon. Nun la sintaksa analizo povas rekoni en kelkaj kazoj subfrazojn ankaŭ, se la frazo ne enhavas komojn. Tio havis ankaŭ pozitivan influon je kvalito de maŝina tradukado.

Kiel kutime mi korektis kelkajn programajn erarojn. Esperantilo enhavas nun la ilon por prepari erarajn raportojn. Se en Esperantilo okazos eraro, oni ekvidos novan fenestron, en kiu oni povas priskribi la situacion de eraro kaj krei dosieron kun raporto (en XML-formato). La raporto enhavas ankaŭ kelkajn teknikajn informojn (Stacktrace), kiuj helpas al mi trovi kaj korekti la eraron. Tiun dosieron oni povas sendi al mi.

26.2.2007

Uzado de vorteto „unu“ kiel tablovorto

Filed under: lingvistiko — artur @ 19:30

Vorteto „unu“ estas uzata en Esperanto en multaj funkcioj. Funkcioj de tiu vorteto ne limigas nur al tiuj de numeralo. Ni vidu la ekzemplojn:

  • Mi havas unu libron.
  • Ili venis unu post la alia.
  • Unu faras tion, la alia faras la alion.
  • Unuj ne konas tiun problemon.

En la tri lastaj ekzemploj ‚unu‘ estas uzata ne kiel numeralo sed kiel pronomo. Oni rapide tion povas konstati, se oni pripensu la ekzemplojn kun aliaj numeraloj. Ne ekzistas ja formoj: duj, dun, dujn. Tiu malkonsekvenco ofte ĝenis kelkajn Esperantistojn, do ili konstatis tiun uzadon kiel eraro. Iu Esperantistino, kiu konsilis min pri lingvo dum frua programado kaj kolektis la unuajn ekzemplojn de eraroj en lingvo esperanto, ankaŭ aldonis ‚unuj‘ kiel falsa uzado. Tiam mi jam asertis, ke ‚unuj‘ ŝajas esti kutima vorto en esperantaj tekstoj. La respondo estis tre rigida: „Ankaŭ se iu vorto estas ofte uzata, tio ne signifas, ke ĝi ne estas erara“. Poste la saman ekzemplon konstatis la alia Esperantisto (kreinto de fama PMEG) kiel tute korekta (vidu Diskutejo: „Komputila Lingvistiko“). Interesa en tiu diskutejo estas ankaŭ la mencio de analiza skolo: (citaĵo: „Mi konstatas, ke iu legis tro da libroj de la ‚Analiza Skolo'“). Verdire mi antaŭe nenion sciis pri ‚analiza skolo‘, kvankam mi mem delonge supozis multajn skolojn de esperantaj lingvistoj.

Dum kontaktoj kun multaj Esperantistoj mi ofte spertis, ke ili ofte proponas kaj asertas tute kontraŭajn konsilojn. Mi ne volas partopreni en la diskutoj de tiuj skoloj, sed mi sentas min kiel simpla uzanto de la lingvo kaptita inter multaj frontoj.

Mia tendenco de aliro al tiuj problemoj estas nuntempe statistika aŭ naturisma. La ĉefa (precipa) kazo de tio estas, ke mia programo devas analizi esperantajn tekstojn. Se mi ne akceptas kelkajn formojn, la programo malsukcesis korekte analizi (do traduki) la tekstojn. Ankaŭ se mia granda deziro estus, ke esperanta lingvo estus regula kaj logika, mi devas akcepti la realon de ekzistantaj esperantaj tekstoj. Tio estas ofte tre ĝena afero, ĉar kun ĉiu mallogika escepto la programado plimalfaciligas kaj la rezultoj de maŝina tradukado estas malpli bonaj.

Kvankam esperanto estas kreita lingvo, nun oni ne povas altrudi la regulojn de uzado al la uzantoj. Uzantoj de lingvo mem kreas ĝiajn regulojn. Evidente, post kiam la lingvo estis kreita kaj oni ĝin uzas, oni ne povus diri pri planita lingvo sed jam natura lingvo.

Reguloj de Esperanto

La plej gravaj reguloj de esperanto estas enskribitaj en unu dokumento, kion oni nomas „La Fundamento“. La Fundamento havas por esperantistoj preskaŭ sanktan signifon. Ĝi estas ofte prezentata kiel enkorpigo de reguleco, klareco kaj facileco de la lingvo. Sed se oni pensu ne pri tio, kion la fundamento diras, sed pri tio, kion la fundamento ne diras, la rezultoj de tiu dokumento estas magraj. Ĉu vere 16 reguloj povus esti sufiĉaj pro difini la lingvon aŭ eĉ ĝian fundamenton?

La fundamento diras nenion pri sintakso de lingvo. Oni vene serĉas informojn pri interpunkcio kaj aliaj gravaj reguloj. Mi pensas, ke ankaŭ Zamenhofo sciis pri tiu neebleco difini klarajn regulojn. Li do kreis longajn kelkspecajn tekstojn por doni ekzemplojn de ĝia uzado. En tiuj ekzemploj li uzis la vortetojn „unuj“. Kaj tie kuŝas la problemo. Tiu formo eble ne estas avantaĝa kaj ŝajne escepta, sed la majstro ĝin uzis. Ĉar la majstro ĝin uzis, ĝi estas la parto de lingvo.

Aliaj reguloj iom post iom kreiĝis de unuaj uzantoj de esperanto. Ili baziĝas sur heredaĵo de iliaj lingvoj, eŭropaj lingvoj. Multe pli tio, kio la Fundamento ne diras, oni hipotezas kiel kutima por aliaj lingvoj (lingvoj de kelkaj nacioj). Ĉu vere oni do povas nomi Esperanton la planita lingvo?

Malreguleco kiel ŝajna avantaĝo de Esperanto

Ne ekzistas neniu regulo pro tio, kiu suba frazo estas korekta:

  • Mi helpas al vi.
  • Mi helpas vin.
  • Mi dankas pro tio.
  • Mi helpas per tio.
  • Mi helpas je tio.

Ĉiu, kiu lernis iun fremdan lingvon, scias, ke oni lernu ankaŭ ne nur verbojn sed ankaŭ konvenajn prepoziciojn uzataj kun tiuj verboj.

Esperantaj lernolibroj diras, ke oni havas liberan elekton de iu formo. Ĉiuj estas korektaj. Tio estas tre kontentiga informo por lernantoj.

Esperanto estas tre juna lingvo. Kiel aspektos tiu kutimo en sekvaj jaroj? Se oni observis la evoluon de naturaj lingvoj, oni devas konstati, ke la naturaj lingvoj ne akceptas plurajn formojn, kaj finfine unu formo supervenkas la alian. Laŭ tiu principo kreiĝas dialektoj kaj poste tute aliaj lingvoj. Do tiu libereco estas nur portempa. Iam kelkaj nuntempaj frazoj sonas por venontaj Esperantistoj (se ili estos) tiel strange, kiel nun por Poloj sonas maljunaj polaj libroj.

Esperanto kiel venonta plej malfacila lingvo de mondo

La esperanta lingvo evoluas kaj ŝanĝiĝas (aliaj dirus, ke ĝi pliriĉiĝas). La nuna praktiko estas, ke ĉiu uzas la lingvon laŭ propraj manieroj de gepatra lingvo. Klareco kaj logiko ne estas gravaj. Tio nepre kondukos al la stato, ke Esperanto enhavos la strukturojn kaj lingvajn kutimojn de multaj tre diferencaj lingvoj. Ankaŭ la malfacileco de angla lingvo rezultas de multaj influoj de aliaj lingvoj. La angla lingvo estas miksaĵo de kelkaj lingvoj, kaj tiel ĝi estas malfacila.

Iu germano diris: Angla lingvo estas samtempe facila kaj malfacila. Ĝi estas facila, ĉar ĝi konsistigas nur de fremdvortoj. Samtempe ĝi estas malfacila, ĉar ĉiuj tiuj vortoj estas malkorekte elparolataj.

Mi ofte trovas en Esperanto strukturojn de pola, germana kaj rusa lingvoj. Mi ofte miras pri lingvaĵo de azianaj Esperantistoj. Mi komprenas ion, sed ĉio estas stranga. Ofte esperantaj tekstoj estas tiel malkaraj kaj malkompreneblaj, ke mi devas rezigni pri la legado. Esperantistoj estas ankaŭ kreemaj personoj, kaj elpensas ofte novajn strukturojn. Tial la legado de esperantaj tekstoj oni povus kompari al matematikaj ludoj aŭ ludaj enigmoj (simile kiel SUDOKU). Laŭ moto: Uzanto, deenigmu la signifon kaj admiru mian povon de kreado, scion de lingvo kaj lertecon de ĝia uzado!

Ĉar Esperanto estas tre juna (en tempomezuro de lingvoj), la influo de aliaj lingvoj sur Esperanto estas tre granda. Nur firmaj naciaj lingvoj havas ŝancon konservi ĝian eĉ pli malgrandan regulecon. Manko de reguloj kondukas nepre al venonta malreguleco.

Deveno de plurfunkcia uzado de ‚unu‘

Uzadon de ‚unu‘ en alia signifo ol numeralo mi konas de pola kaj germana lingvo. En germana lingvo ‚unu‘ rolas eĉ aldonan funkcion kiel nedifina determinilo (artikolo). Mi pensas, ke la uzado fontas ĉefe en pola lingvo.

  • Ili venis unu post alia.
  • Oni przychodzili jeden por drugim. (pole)
  • Sie sind nacheinander gekommen. (germane)
  • Они пришли друг за другам. (ruse)
  • Unu volas tion, la alia volas la alion.
  • Jeden chce to, a drugi tamto. (pole)
  • Einer will das, der andere will aber das. (germane)
  • Один хочеть … (ruse)
  • Unuj ne siac tion.
  • Jedni o tym nie wiedzą. (pole)
  • Einigen wissen das nicht. (germane)
  • Одни этово не знают. (ruse)
  • Unuj homoj …
  • Jedni ludzie … (pole)
  • Einige leute … (germane)
  • Одни люди … (ruse)

La germana lingvo havas apartan formon por „unuj“ – „einige“. Ial supriza estas la rusa formo por „unu post alia“, kiu direkte tradukita estas „amiko post amiko“. La germana formo „nacheinander“ astas de kunligo de „nach ein ander“ – do „post unu alia“. Tiu solvo estas tre interesa, ĉar tiun vorton tuj oni povas konsideri kiel adverbo. (mi pensas pri novesperantaj vortoj kiel: surkovrilpaĝe). Do aliaj lingvoj solvas parte tiun problemon sen uzo de „unu“. Nur pola lingvo uzas konsekvence „unu“ por ĉiuj tiuj kazoj.

Fina konstato

Mi iom post iom (novesperante: poiome) akceptas sendiskute ĉion, kion mi frontas en esperantaj tekstoj. Mi ne volas krei tiun lingvon, sed mi volas nur ĝin uzi. Se mi serĉas respondojn kaj regulojn, tiujn povas doni al mi nur statistiko. Decidoj de akademio de Esperanto estas tre maloftaj, kvazaŭ la lingvo tiujn decidoj (do regulojn) ne necesus kaj ĉio estus klara. La stato ne estas do alia ol ĉe naciaj lingvoj. Ĝi estas eĉ pli malbona, ĉar la lingvo estas juna kaj Esperantistoj estas tre diferencaj. Tio estas entute la normala afero. Sed, kiam la Esperantistoj ĉesos rakonti fabelojn pri tiu lingvo, ke ĝi estas io tute speciala?

19.2.2007

Uzula interfaco de korektilo

Filed under: programado — artur @ 19:53

La nuna uzula interfaco de korektilo en Esperantilo ne estas bona. Mi rimarkis, ke mi mem nur tre malvolonte uzas la korektilon (kaj precipe la gramatikan korektilon). La korektado daŭras tro longe kaj mi preskaŭ ĉiam perdas deziron de korektado post kelkaj frazoj. Mi pli ŝatas la alian funkcion, kiu nur markas malkorektaj vortojn ruĝe. Sed tio ne funkcias por gramatika korektado ĝis nun.

Programi bonajn uzulajn interfacojn ne estas facila afero. Tial oni ofte frontas ne uzeblajn interfacojn. Pri programodo de uzulaj interfacoj oni longe ne povis trovi bonan literaturon. Bonajn konsilojn donas al ni Joel on Software- User Interface Design for Programmers. Unu de ĉefaj postuloj estas, ke oni konformigu la interfacon al konataj programoj. Homo estas ja la kutimema besto kaj ŝatas aĵojn, kiujn ĝi jam konas. Mi do rigardis pli detale kelkajn programojn, kiuj enhavas korektadon.

Gramatika korektado kaj literumado

Kvankam ekzistas inter gramatika korektado kaj literumado grandaj diferencoj, programoj ofte strebas oferi por ambaŭ funkcioj la saman interfacon. La diferencoj estas:

  • Literumado agas sur unu vorto. Gramatika korektado agas sur plena frazo.
  • Literumaj eraroj estas pli evidentaj ol gramatikaj. Ĝis nun ne ekzistas plene fidindaj gramatikajn korektilojn.
  • Ĉe literumaj eraroj la eraro ligas kun unu vorto. Ĉe gramatikaj eraroj la eraro ligas kun vorto, frazparto aŭ tuta frazo. En gramatika korektado estas ofte tre malfacile indiki la ejon de eraro.
  • Literumaj eraroj kaŭzas poste la gramatikajn erarojn. Unu gramatika eraro kaŭzas sekvajn erarojn. La dependecoj inter eraroj estas grandaj.
  • Gramatikaj eraroj estas por uzantoj tre malfacile klarigeblaj. Ofte uzantoj scias nenion pri gramatiko.

En programoj, kiujn mi rigardis, nur MS-Word enhavas literumadon kaj gramatikan korektilon en baza funkciaro. Tio ankaŭ estas indiko, ke gramatika korektado ĝis nun ne estas ofte uzata kaj por programistoj ĝi estas malfacila tasko. La dua programo, kiu regas gramatikan korektadon, estas LanguageTool, kiu ja kunlaboras kun OpenOffice, sed havas propran interfacon kaj ne uzas la normalan fenestron de korektado. Tio estas ĝis nun normala afera, ĉar tiu programo ne estas kutima parto de OpenOffice.

Open Office

OpenOffice

La granda simileco inter OpenOffice kaj MS-Word estas okulfrapa. Oni povas redakti tekston en supra kampo.

MS Word

MSWord Gramatiko

MSWord Literumado

MS-Word uzas la soman fenenstron pro literuma kaj gramatika korektado, sed la butonoj estas mirakle ŝanĝataj je neceso.

TextMaker

TextMarker

Tiu fenestro estas plej malriĉa. La uzanto eĉ ne havas ŝancon vidi la tutan frazon.

Thunderbird

Thunderbird

La fenestro havas pli multe butonoj ol aliaj programoj. Tie oni ankaŭ povas redakti la vortaron.

KDE

KDE

Ĉiu KDE-Programo uzas tiun fenestron. Oni ne povas pri io plendi.

LanguageTool

LanguageTool

La interfaco sekvas la solvoj de literuma korektado. La fenestro enhavas aldonan kompon pro priskribo. Du linioj de tio kampo estas perditaj por informo kun numero de eraro. Oni ne povas redakti tekston en supra kampo.

Esperantilo 0.89

Esperantilo 0.89

Generalaj rezultoj de trarigardo

Ĉiuj programo, kiujn mi testis, uzas por korektado separatan fenestron. Tio fenestro ofte laboras en tn. „modeless“-stato. Tio signifas, ke uzanto povas uzi la ĉefan fenestron sen malfermi la fenestron de korektilo. En tiu fenestro la uzanto ofte vidas la tutan frazon, do li vidas la kuntekston de eraro. MS-Word pritraktas la gramatikan eraron preskaŭ same kiel literumaj erarojn. La uzanto ricevas la liston de sugestoj por elekto. La unua diferenco estas la alia farbo (la verda) uzato ĉe markado. Sed se oni pli atente rigardis la fenestron, oni rimarkas, ke tiu programo dinamike ŝanĝas la nomojn de butonon kaj iliajn funkciadon. Do en la sama loko la butono ĉe gramatika eraro estas „Zum nächsten Satz“ (al sekva frazo) kaj en litermuma korektado „Zum Wörterbuch hinzufügen“ (aligu al vortaro). Tio estas tute diferencaj funkcioj. Mi ne estas certa, ke tiu estas bona solvo por uzantoj, ĉar ofte oni legas, ke oni ne ŝanĝu funkcion de butonojn.

En plenampleksaj programoj kiel OpenOffice aŭ MS-Word ekzistas parte tre kompleksa funkciado ĉe reguligo de ĉefa fenestro kaj korektila fenestro. La programo rekonas, ke uzanto ŝanĝis la tekston en ĉefa fenestro kaj konforme adaptigas la enhavon la korektila fenestro.

Preskaŭ ĉiu korektilo oferas funkciojn:

  • Ignoru nun
  • Aligu al vortaro
  • Ŝanĝu
  • Ignoru ĉiujn
  • Ŝanĝu ĉiujn
  • Adapto de lingvo

Rimarkinda estas ankaŭ la fakto, ke MS-Word preskaŭ altrudas al uzanto la aligon de nekonatajn vortojn al vortaro. Oni povas nur malfacile salti al sekva vorto sen decidi pri la nuna eraro.

Kion mi lernis por posta programado?

La interfaco de Esperantilo nepre bezonas plibonigon. Mi volas malplialtigi la nombron de butonoj kaj videblaj funkcioj. Mi volas similigi la uzadon de interfaco ĉe literumaj kaj gramatikaj eraroj.

Tamen mi ne volas havi separatan fenestron por korektilo. Mi ne ŝatas, ke iu nova fenestro kaŝas la enhavon de ĉefa fenestro. La simila situacio estas ankaŭ ĉe „trovi“-funkcio. Kelkajn novajn programoj, ekzemple „Firefox“, uzas por tiu funkcio ne novan fenestron sed malgrandan parton de ĉefa fenestro en suba kampo. Mi ŝatas tiun solvon. Tiu solvo estas eĉ pli bona, ĉar oni ne devas remontri la frazon en korektila fenestro, sed nur marki ĝin en ĉefa fenestro.

Korekturo dum skribado

Preskaŭ ĉiuj programoj povas indiki skribajn erarojn dum la skribado, aŭtomate. Tio estas ankaŭ kutima agordo ĉe plej oftaj programoj. Tiu funkcio estas diskutinda, ĉar la tuja markado de erarojn interrompas la fluon de skribado, do tio eble ĝenas la uzanton. En unuaj eldonoj de programoj tiu funkcio estas kutime malŝaltita. Ĉar averaĝa uzanto neniam ŝanĝas agordojn, multaj homoj scion nenion pri tiu funkcio.

Ĉe Esperantilo oni mem devas iniciati la literumadon aŭ gramatikan korektadon. Mi ne sentas tion kiel ĝena premo. La dua kialo, kial tio ne funkcias en Esperantilo, estas la teknika. Tiu funkcio bezonas la tn. paralelan programadon, kaj tio ne estas facila tasko en Tcl-programlingvo. Tio estas ebla sed nur malfacile realigebla. Mi pensas, ke nun aliaj funkcioj estas pli bezonataj.

Perfektigo de programo

Nun Esperantilo enhavas funkciojn, kiujn mi volis. Do venis la tempo por perfektigi la programon. Tio signifas ne nur la korektadon de evidentaj eraroj sed ankaŭ plibonigoj de uzebleco. Ĉe tiu tasko estas gravaj por mi la reagoj de uzantoj. Por programisto estas ofte psike tre malfacila tasko ŝanĝi la programon, se ĝi principe laboras senerare. Oni por tio devas venki la enan porko-hundon („Schweinehund“), kiel tion diras germanoj.

15.2.2007

Nova eldono 0.89 de programo „Esperantilo“

Filed under: ĝenerale — artur @ 21:11

En la lasta temo mi regule preparis novan eldonon ĉiujn monaton. La ŝanĝoj ne estas grandaj, sed tio estas ja la trajto de programado en mallongaj paŝoj. En tiu eldono mi precipe plibonigis la polan tradukadon. Helpe de vikipedio kaj multaj testaj tradukoj kaj mana laboro mi plivastigis polan vortaron je pli ol 1000 vortoj. Mi forigis ankaŭ kelkajn erarojn, kiuj estis raportitaj de uzantoj. Dankon al ĉiu, kiu raportis erarojn.

Pola tradukado

  • Per vortaro de frazpartoj estas tradukitaj kelkajn frazaĵojn: iom post iom, ĉu ne, antaŭ ol, …
  • „pli kaj pli rapida“ -> „coraz szybszy“
  • „unu post la alia“ -> „jeden po drugim“
  • „unuj“ -> „jedni“
  • durativa aspekto ĉe infitivaj frazpartoj de verboj: komenci, fini
  • plibonigo de tradukado de vortoj kun streko (ekz: libro-vendado).
  • plivastigo de esperanto-esperanto vortaro kaj aŭtomata pola vortfarado kaj inversa esperanta vortfarado.

Sintaksa Anlizo

  • Plibonigo de analizo de infinitivaj frazpartoj.
  • Analizo de vorteto: unuj en rolo de pronomo.
  • aliaj malgrandaj korektoj

Aliaj ŝanĝoj

  • Gramatika korektado estis iomete plibonigita.
  • Nova analizilo de ligilojn en vikipedio inter artikoloj. Menuo: Lingvistiko->Vikipedio
  • Du novaj lingvistikaj analizoj: „Nekonataj tradukoj“ kaj „Gramatikaj eraroj“
  • Retestado de frazo ĉe gramatika korektilo

Korektitaj Eraroj

  • Misfunkcio de XML-Korektilo
  • Kelkaj misfunkcioj ĉe uzado de Hunspell kiel literuma vortaro.

Mi atendas kiel kutime erar-raportojn kaj komentarojn.

13.2.2007

Analizo de ligiloj en Vikipedio

Filed under: lingvistiko,programado — artur @ 19:21

La tre grava avantaĝo de vikipedio super la paperaj enciklopedioj estas ligiloj inter artikoloj. La vikipedio oferas ankaŭ la eblon navigi en ambaŭ direktoj. Do trovi artiklojn, kiu havas ligilon al cetera artikolo.

Mi iomete ludis kun statistika analizo de tiuj legiloj. Kiel kutime mi programis etan programon, kiu legas ceteran artikolon kaj analizas rekursie ligilon kun difinita profundo. La plej komplika parto de programo estas la vida montro de rezultoj. La programo unue kolektas ĉiujn ligojn, poste la ligoj estas orditaj laŭ ofteco. La speciala algoritmo kalkulas la gravecon de speciala vorto rilate de cetera vorto (kerna vorto). Je pli malproksima la vorto al kerna vorto des pli grava la vorto. La graveco estas ankaŭ pli granda, se la vorto estas ofte ligita al aliaj artikoloj.

ligila reto por esperanto

La ideo de analizo de retaj ligiloj ne estas nova. Tio estas la ĉefa ideo de algoritmo de konata „Google“, kiu ordigas la TTT-paĝojn laŭ graveco. La hipotezo estas, ke gravaj paĝoj havas multajn elirajn ligilojn. Se ni transigas tiun ideo al vikipedio, tiukaze la kernaj vortoj devas esti pli ofte ligitaj ol flankaj vortoj. Miaj unuaj pruvoj konstatis tiun hipotezon. Ekzemple por vorto „vino“ ni povas tre rapide trovi flankaj vortojn: vinbero, barelo, tino, komunio, likvaĵo, oziriso, amforo, trinkaĵo, biero, egipto. Sed ofte la ligojn kondukas tre rapide al tre nova kampo. Ekzemple: viro -> afriko -> libio. La kazo estas, ke en artikolo pri homo troviĝas foto kun viro el afriko, kaj la lasta estas ligita al artikolo pri afriko. Ofte la ligilaj vojoj estas tre surprizaj kaj pensigaj. Laŭ tiu maniero oni povas ankaŭ bone ekkoni, ke aŭtoroj sekvas ne nur enciklopediaj devojn.

Mi pensas ke tiu analizo estas tre taŭga por trovi aŭtomate kernaj vortoj rilate al iu faka vorto. Sur tiu vojo oni povas tre rapide (kaj plene aŭtomate) konstati, ke vortoj : „programaro, linukso, programlingvo, dosierujo“ apartenas al kampo de „komputiko“. Tio laboras mirige fidele. Mia precipa intereso de tiu ekzerco rilatas kiel kutime al maŝina tradukado. Mi pensis pri aŭtomta kategorigo de vortoj kaj tekstoj por pli bone elekti tradukajn vortarojn (percipe sinonimoj). La bonan kolekton de vortaj kompoj donas al ni jam REVO. La analizo de ligiloj en vikipedio povus plivastigi la bazan provizon de REVO. Oni povus analizi ne nur ligilojn, sed ankaŭ la koncernajn artikolojn mem por atingi pli bonajn rezultojn.

Fine mi pensas ankaŭ pri semantikaj retoj, kiuj estas necesaj por bonkvalita maŝina tradukado. La elstara projekto en tiu kampo estas angla WordNet. Retoj de ligiloj kaj semantikaj retoj estas certe aliaj aferoj, sed eble retoj de ligiloj povus helpi ĉe konstruo de semantika reto. Por miaj celoj tiel preciza semantika reto laŭ modelo de „WordNet“ ne estas bezonata. La pli ĝenerala kategoriigo estus sufiĉa. Ofte la problemo estas, ke oni devas scii, ĉu iu substantivo estas: persono, vivaĵo, abraktaĵo aŭ objekto. Mi esperas, ke kun aliaj teknikoj kiel sintaksa analizo de vikipedio, tiu kategoriigo povus esti farita tute aŭtomate.

Ekzemple de frazo: „frato estas homo, kiu …“ oni povas derivi ke „frato“ estas „persono“. Aŭ de frazo: „patro pensis pri tiu“, oni povas derivi, ke nur inteligentaj vivaĵoj povas pensi, do „patro“ estas inteligenta vivaĵo. Ankaŭ adjektivaj atributoj povas diri ion pri la subjekto. Se io havas farbon kaj grandecon, tio signifas, ke tio ne estas abstrakta. Ekzistas ankaŭ trampaj figuraj frazoj, kiun oni devas statistike forfiltri.

7.2.2007

Fekundenco de vortoj ĉe tradukado

Filed under: lingvistiko,maŝina tradukado — artur @ 18:55

Fekundanco de vortoj (angle: fertility) ĉe tradukado estas grava indiko ĉe statistakaj metodoj de maŝina tradukado. Tiu indiko eldiras kiom da vortoj en cela lingvo oni bezonas por traduki unu vorto de fonta lingvo. Fekundencon oni povas kalkuli por tuta teksto, frazparto aŭ unu vorto. La interesa kalkulo estas nombri ĉiujn vortojn de sama teksto en originalo kaj en traduko. Ĉe lingvoj kun riĉaj rimedoj de vortfarado tiu indiko estas malgrada ol 1 kompara al lingvo sen tiuj ebloj.Por unuopaj vortoj tiu fekundeco povas esti malsimila kaj dependas ofte de gramatiko. Ofte rolmontriloj ne povas esti tradukitaj rekte, do ilia fekundeco estas 0 aŭ „senlimo“. Kelkaj ekzemploj por pola kaj esperanta lingvoj

  • libro = książka (Fekundeco 1:1 = 1)
  • radioelsendo = audycja radiowa (Fekundeco 1: 2 = 2)
  • perdi vojon = zabłądzić (Fekundeco 2 : 1 = 0.5)
  • Li donis al mi la libron = On dał mi książkę. (Fekundeco por „al“ estas 1 : 0 = 0)
  • Li atendas mi = On czeka na mnie. (Fekundeco por „na“ estas „senlimo“ 0 : 1 = ?)

Ĉe maŝina tradukado laŭ metodo de transormigo de sintaksa arbo la limaj fekundecoj („0“ kaj „senlimo“) ne faras tiom da problemoj, kiel oni tiun aspektis, ĉar la rolvortetojn oni povas facile derivi de sintaksaj funkcioj. Alie estas en la plene statistika maŝina tradukado, ĉar en tiu modelo vortoj ne aperas de nenio. Do tiu modelo devas kalkuli en longaj grupoj de vortoj.

Tradukoj kun fekundeco pli granda ol 2

Esperantilo rekonas en pola traduka vortaro la tradukoj laŭ kelkaj modeloj. Sed ĉe esperanta (fonta) flanko povas stari nur unu vorto. La enskriboj kun kelkaj vortoj ĉe esperanta flanko povas esti enskibitaj en tradukan vortaron de frazpartoj.

  • substantivo = substatnivo + substativo ; vidpunkto = punkt widzenia
  • substantivo = substantivo + adjektivo ; apendico = wyrostek robaczkowy
  • verbo = verbo + prepozicio + substantivo ; heredigi = przekazywać w spadku
  • verbo = verbo + adverbo ; manuzi = obsługiwać ręcznie
  • verbo = verbo + substantivo ; proponi = stawiać wniosek
  • adverbo = prepozicio + substantivo ; senproteste = bez protestowania
  • adjektivo = prepozicio + substantivo ; senlima = bez granic
  • adjektivo = adjektivo + substantivo ; homplena = pełen ludzi

La traduka vortaro por maŝina tradukado devas esti pli regite prilaborita ol tiu por normala uzado. Aliaj lingvoj uzas aliaj modeloj. Aparta ĉe germana lingvo, kiu bezonas reordigon de vortoj dum la tradukado la rekono de unuopaj vortoj en cela traduko estas tre grava.

  • vortaro : komprenigi = begreiflich machen
  • Mi ne komprenigis tion al li; Ich machte ihm das begreiflich

Tradukado de frazpartoj

Por multaj nocioj la traduka modelo, en kiu ĉe unu flanko de vortaro staras nur unu vorto, ne estas sufiĉa. Do ni havas modelon de vortaro laŭ formulo: n = m (n,m>1). Ekzemploj:

  • kompara lingvistiko = metoda porównawcza
  • iom post iom = krok po kroku

Mutaj tiaj ekzemploj apartenas al frazaĵoj, kiu estas tre malfacile tradukeblaj, ĉar la traduko bezonas pluajn transformigojn. Ofte ankaŭ la vortaro enskribo ne korespondas direkte kun fonta teksto.

  • paroli hake = jękać się (Li parolas ofte malrapide kaj hake)
  • Tio haveblas sur nia TTT-paĝo = Możecie to sciąnąć z naszej strony.

Tradukado de vortoj en Esperantilo

La tradukado de vortoj en Esperantilo estas nun plurŝtupa proceso. La unua kazo por tio esta la komputilo inversa vortfarado, due la tradukado de vortoj kun fekundeco, kiu estas malegala al 1.

Responda cxeno cxe tradukado

vortaro de frazparto

Tio estas la vortaro por grupaj tradukoj aŭ tradukoj kun fekundanco pli malgranda ol 1. Tiu vortaro povas ankaŭ traduki frazaĵojn. La vortaro uzas parte preskaŭ programajn priskribojn, por trovi korespondaj vortoj en sintaksa arbo. Tio estas necesa, ĉar la trovo de fontaj vortoj ne povas limiĝi al serĉado de signoĉenoj.

traduka vortaro

Tio estas la ĉefa vortaro de programo ĉar plej ofte la vortoj havas fekundancon 1 aŭ pli granda ol 1.

pola inversa vortfarado

Tiu modulo kreas polajn vortojn laŭ esperanta modelo. La reguloj estas faritaj laŭ musteroj.

  • ne(adjektivo) = nie(adjektivo) ; neblanka = niebiała
  • du(adjektivo) = dwu(adjektivo) ; duetaĝa = dwupiętrowa

La uzanto ne povas direkte difini novajn regulojn por tiu inversa vortfarado. Ili estas enprogramitaj en klaso „PolaVortFarado“

esperanta inversa vortfarado

Tiu modulo provas krei de kompleksa esperanta vorto kelkajn bazajn vortojn, kiuj pliverŝajne troviĝas en traduka vortaro. Ekzemplaj reguloj:

  • sen(adjektivo) = sen substantivo ; senlima = sen limo
  • tut(adjektivo) = tute adjektivo ; tutcerta = tute certa

Ili estas enprogramitaj en klaso „EspReVortfarado->remorfigu“

esperanto-esperanto vortaro

Tiu vortaro estas kolekto de sinonimoj esperimoj. Ĝi enhavas ankaŭ arĥaj kaj novaj formoj. La uzanto povas direkte enskribi novajn tradukojn per menuo: (Lingvistiko->Esperanto-Esperanto vortaro)

1.2.2007

Kreado de vortaro de artikoloj de vikipedio

Filed under: lingvistiko,maŝina tradukado — artur @ 19:49

Sen bona multlingva leksikono (aŭ glosaro) ne estas ebla bona maŝina tradukado. Tial la grandan parton de tempo mi prilaboras la vortaron de Esperantilo. (vidu ankaŭ blogojn 1 kaj 2). Nun mi koncentriĝas nur pri pola lingvo. Ĉar kiel ĉiu programisto mi estas laca, mi serĉas la eblon plifaciligi tiun leksikan laboron per iu programo. Due mi ne estas la plej kompetenta persono por kreado de vortaroj kaj tiu takso ne estas tiel facila, kiel oni povus pensi.

Mi delonge pensis, kiel utiligi la grandegan vortprovizon de Vikipedio. Oni povas libere kaj aŭtomate elŝuti ĉiujn artikolojn en XML-fonto per speciala adreso http://eo.wikipedia.org/wiki/Speciala:Export (ekzempla enhavo por: „Floro“). Estas ankaŭ eble elŝuti la tutan vikipedion kiel granda Xml-dosiero kun ĉiuj artikoloj (Wikimedia Downloads).

Ekzistas multaj ebloj aŭtomate krei vortarojn de paralelaj tekstoj, tio estas ofte priskribite teorie. Bedaŭrinde ne ekzistas multaj libere atingeblaj paralelaj tekstoj en esperanta kaj pola lingvoj. Kelkaj grandaj tekstoj ne estas ankaŭ tre bonaj por tiu takso, ĉar tiuj estas ofte nur tradukoj de polaj tekstoj faritaj de poloj. Tio rezultas, ke la tradukita esperanta teksto ofte havas la polan stilon. Plej bonaj estas originalaj esperantaj tekstoj, skribitaj de homoj de diferencaj nacioj, kiuj estis poste tradukitaj al pola lingvo.

Tamen ekzistas tekniko, kiu uzante statistikajn metodojn ne bezonas ekzakte la samajn tekstojn (paralelaj tekstoj) sed nur similajn tekstojn. La teorio priskribas la suba laboraĵo ( Translating collocations for bilingual lexicons: a statistical approach (Frank Smadja, Kathleen R. McKeown, Vasileios Hatzivassiloglou) Tiu ideo estas tre konforma al vikipedio, ĉar vikipedio oferas direkte la eblon kunligi artikolojn de diferencaj lingvoj. Do ni jam havas ligojn inter multaj polaj kaj esperantaj artikoloj.

Unue mi programis programeton, kiu legas unu artikolon de esperanta vikipedio kaj la korespondan artikolon de pola vikipedio. Ni hipotezas, ke en artikoloj estas uzataj la samajn aŭ tre similaj vortoj, ĉar la artikoloj priskribas la saman ideon. La ideo estas trovi vortojn, kiuj ankoraŭ ne ekzistas en vortaro. Ekzistas granda verŝajno, ke tiuj vortoj korespondas unu kun alia. La algoritmo funkcias kiel priskribite:

  • Elŝuto tekston de esperanta artikolo
  • Trovi kaj elŝuti la polan artikolon
  • Forigu ĉiujn vortetojn (pronomoj, interpunkcioj, konjunkcioj, partikloj)
  • Trovu por ĉiu vorto la radikan formon.
  • Serĉu ĉiujn formojn, kiuj ne havas tradukon en traduka vortaro
  • La restaj formoj estas tre verŝajne tradukoj

Por radikigi polajn vortojn mi uzas la programon Stempelator de projekto Morphologic. La programo estas skribita per Java, mi skribis simplan Tcp/Ip servilon por tiu programo kaj tiel mi konektis Esperantilon kun „Stempelator“.

Kreado de Vortaro per Vikipedio

Mi analizis rezultojn kaj povas konstati ke:

  • Por cetera artikolo la programo rezultas multaj nekonataj polaj vortoj kaj nur kelkaj nekonataj esperantaj vortoj
  • Esperantaj artikoloj estas ofte multe pli mallongaj kiel polaj
  • La enhavo de artikoloj estas ofte tre diferenca (Pies, Hundo)
  • Plej ofte mankas tradukoj por esperantaj adjektivoj
  • La trarigardo de paralelaj artikoloj estas bona fonto por fakaj vortoj.
  • La stilo kaj vortprovizo de esperantaj artikoloj tre varias.
  • La artikoloj ne estas tradukitaj (ebla de angla fonto), sed kreitaj de komenco

La kaŭzo por mankantaj tradukoj de adjektivoj havas multajn fontojn. Unue mia baza komenca vortaro (unua fonto estis REVO) estas farita por homoj. Tial la aŭtoroj ofte ne pritraktas adjektivojn, kiu devenas rekte do substantivoj, ĉar ĉiu polo povas derivi la adjektivon de substantivo preskaŭ aŭtomate (komputer – komputerowy). La dua kaŭzo estas, ke verŝajne la esperanta lingvo uzas pli da adjektivigoj ol la pola lingvo. Tio estis por mi iom surpriza, ĉar ankaŭ en pola lingvo adjektivigo estas kutima metodo por krei novajn nociojn. Ni komparu polan kaj germanan lingvojn,

  • system komputerowy – Komputersystem
  • książka telefoniczna – Telefonbuch

Sed la esperanta lingvo ŝajnas esti eĉ pli adjektivema ol la pola. Mi rimarkis sekvan ekzemplon. Esperanta frazparto (komunika problemo) povus esti tradukita al pola (problem komunikacyjny), sed tiu traduko ne estas tre bona kaj sonas strange por poloj. Aliaj eblaj tradukoj:

  • problem komunikacyjny – direkta traduko
  • problem z komunikacją – portempa problemo
  • problem w komunikacji – ĝenerala problemo

Flanke de tio la germana esperantisto eble diris „Komunikproblemo“ laŭ sia nacia kutimo. Mi konstatas, ke por kreado de vortaroj la metodo devas esti pli speciala. Tre ofte la tradukoj ne povas estas kovritaj per simpla modelo: (unu vorto = unu vorto), sed eble de traduko de tutaj frazpartoj

  • substantivo = substantivo + adjektivo
  • adjektivo substantivo = substantivo + prepozicio + substantivo
  • verbo = verbo + adverbo
  • adjektivo = adverbo + adjektivo

Tiu funkcias ankaŭ en dua direkto. Por programi tiun modelon mi bezonus la sintaksan analizilon por pola lingvo, sed nun tio estas nur revo. La plene aŭtomata kreado de vortaroj de vikipediaj artikoloj („Artukułów z Wikipedii“) ne estas facila, sed tamen tio povas esti granda helpilo por aŭtoroj de fakaj vortaroj. La plej avantaĝa afero estas, ke la vortoj aperas en sia natura medio, tio estas teksto. Do mi jam enskribis kelkdek novajn tradukojn en polan vortaron. Vorto sen kunteksto estas ofte nur senesprima ĉeno de signoj. Mi esperas, ke la kvalito de esperantaj artikoj plibonigos kaj artikoloj ne enhavos en venonto nur unu frazon.

Mi enmetos tiun malgrandajn programetojn en venontan eldonon de „Esperantilo“, sed ne direkte atingebla. La problemo estas la instalado kaj preparo de komuniko kun alia programo „Stemplator“. Tiu tasko ne estas solvebla por averaĝaj uzantoj de komputiloj. Se iu volas tamen ludi kun tiu programo, bonvolu skribu al mi. Mi aldonos tiam priskribon kiel tion fari.

Powered by WordPress