Esperantilo

8.3.2008

i18n per Esperantilo

Abgelegt unter: maŝina tradukado, programado — artur @ 14:35

Esperantilo enhavas funkcion de traduka memoro kaj ankaŭ la specialan redaktilon por tradukado de teksto laŭ segmentoj (frazoj).
Esperantilo regas formatojn TMX kaj XLIFF. Ĝi povas legi formatojn HTML, XML kaj OpenOffice.
Ŝajnas tamen, ke preskaŭ neniu uzas tiujn funkciojn. Unue tiuj funkcioj estas por averaĝa uzanto tro progresinta, ke li ne bezonas ilin. Due la programo eble estas tro ŝarĝita per funkcioj, ke uzantoj estas malcertaj, por kio tiu programo taŭgas.
Eble kelkaj homoj pruvis tiun funkciojn, trovis erarojn kaj lasis tion. Mi nenion eksciis pri tio. Nun havis antaŭ kelka tempo kontakton kun uzanto de OmegaT. Tiu programo estas plej konata traduka programo en modo de libera programado. Esperantilo estas ankaŭ listigita en la listo de programoj, kiuj oferas tradukan memoron. Mi ne varbis por tiuj funkcioj kaj tiuj funkcioj ne estas tre fidindaj kaj ne vere finprogramitaj. En la dua flako tiuj funkcioj estas ankaŭ interesaj por Neesperantistoj. Tial oni povus varbi per tiuj funkcioj por esperanta lingvo. Almenaŭ kelkaj homoj, kiuj uzas tradukan memoron, ekscius pri tiu lingvo.
Lastajn semajnojn mi laboris pri plibonigo de tiuj funkcioj. Mi trovis kaj korektis multajn erarojn. Mi ŝanĝis ankaŭ la metodon de konservado de traduka memoro kaj vortaroj. Nun mi uzas sqlite datumbazon. Tio tre rapidigis la laboron de programo. La maŝina tradukado iĝis eĉ 6 foje pli rapida.

Tradukado de programoj

Esperanto enhavas potencan tradukan memoron kaj povas iel maŝine traduki de angla lingvo al esperanta lingvo. Do la programo povus esti interesa por tradukado de programaro. Mi rigardis kelkajn liberajn projektojn pri tradukado de programaro. Temas pri tradukado de angla lingvo al Esperanto.
Sekvaj projektoj estas plej grandaj kaj plej progresintaj:

Helpe de Translate toolkit mi kolektis ĉiujn tradukojn en unu grandega datumaro.
Mi aliformis la diferencajn formatojn por tradukado al XLIFF-formato. Poste mi importis ĉiujn XLIFF-dosieron al traduka memoro de Esperantilo. Tio daŭris kelkajn horojn.
Ne estis ankaŭ faĉile trovi ĉiujn fontojn de tradukadoj en la reto.
Fine mi havas 24MB grandan tradukan memoron kun 58.000 tradukitaj frazoj.
Estas interese, ke antaŭ 20 jaroj nur kelkaj registaroj de plej riĉaj landoj havis sufiĉe grandan komputilon por prilabori tiun amason da datumoj.
Tio estas bona fonto por sekvaj laboroj. Oni povas uzi tiun tekstaron tre diference.
Ĝi povus helpi ĉe traduko de aliaj programoj. Mi pensas ankaŭ pri aŭtomata kredo de vortaroj de tiu datumaro. Mi jam eksperimentis pri tio kun pola lingvo.

Antaŭ 4 jaroj, kiam mi komencis okupi pri komputila lingvistiko kaj Esperanto, tiu datumaro ne estis ebla. Estas tre ĝoige, ke Esperanto evoluas en libera programado. Tiu nuna bazo povus eĉ plirapidigi la disvastigon de Esperanto en tiu kampo.

Enkoduko - Kiel uzi Esperantilo por i18n

Unue instalu la plej novan eldonon de Esperantilo. Mi preskaŭ ĉiumonate pretigas novan plibonigitan eldonon.

Due ŝarĝu tm_en_eo.tmsql.gz la tradukan memoron por tradukado de angla al esperanta lingvo. Depaku tiun dosieron kaj kopiu ĝin al loko ~/Esperantilo aŭ sur Vindozo al dosierujo Esperantilo en dosierujo de uzanto (en angla eldono C:/Documents and Settings/uzanto/).

Lanĉu Esperantilon. Unue vi povas trarigardi la tradukan memoron. Tial vi ankaŭ provos, ke la importado de traduka memoro sukcesis. Agordu la fontan lingvon kiel angla lingvo kaj cela lingvo kiel Esperanto. Vi povas uzi por tiu menuon “Preferaĵoj->fonta lingvo” kaj “Preferaĵoj->cela lingvo” aŭ uzi la flagajn butonojn.


Flagoj en redaktilo


Lanĉu la redaktilon de traduka memoro per menuo: “tradukado->Traduka Memoro->redaktilo de traduka memoro”.


Redaktilo de Traduka Memero


Nun vi povas prepari la tradukadon de via ŝatata programo de angla lingvo al esperanta lingvo. Vi unue bezonas la fontan dosieron en formato XLIFF. Vi povas uzi la programon po2xliff de projekto Translate toolkit por transformi kutiman po-dosieron al xliff-dosiero.
Nun vi povas lanĉi la tradukan asitanton de Esperantilo.
Uzu por tio la menuon “Tradukado->Tradukado asistanto”.


asistanto de segmentilo


Vi povus ankaŭ lanĉi la redaktilon de xliff direkto de konsolo

./esperantilo.bin -segmentilo
./esperantilo.bin viadosiero.xliff

Vi elektu la fontan lingvon kiel angla lingvo (en) kaj celan lingvon kiel Esperanto (eo). Poste vi povas traduki la projekton per tn. traduka segmentilo.
Vi tradukas po unu elemento (segmento).
Kutime la programo pruvas traduki la frazon maŝine. Se ekzistas la traduko en traduka memoro, vi povas akcepti tiun tradukon.
Oni povas ankaŭ traduki la tutan dosieron aŭtomate per funkcio “Traduku al fino plenu aŭtomate” aŭ traserĉi la tekston laŭ traduka memoro per funkcio “Prenu tradukojn de traduka memoro”.


XLIFF redaktilo

Trarigardo de tradukado

Nun mi kolekti pli ol 50000 tradukoj kaj havis okazon iom trarigardi tiujn tradukojn.
Mi unue serĉis la tradukon de “close window” kaj trovis:

  • Fermu fenestron
  • Malfermu fenestron

Interesa eraro. Mi ankaŭ ĝin iam faris. Kaj poste nur “Close” mi trovis

  • Fermi
  • Fermu

Mi mem preferas la ordonan formon, ĉe ja temas pri komando do ordono. Kutime oni tradukas en naciaj lingvoj tiujn komandojn kiel ordonoj. En germana lingvo oni uzas infinitivon (”Schliessen”). Sed en germana lingvo oni ĝenerale ofte uzas tiun formon kiel ordono (senpersona ordono) “Arbeiten! Arbeiten!”, eble ankaŭ mallongigo de “Arbeiten Sie!”. Ankaŭ la angla lingvo uzas ordonon, la infinitivo estus “To close”.
Mi ŝatas la formon “u”, kiu ne nur estas ordono, sed ankaŭ povas esti sugesto.
Oni povus fari interesajn studojn sur tiu materialo.
Mi pensas pri aŭtomata kreado de vortaro.

Planoj (TODO)

Nun ekzistas multaj punktoj en programo, kiujn mi volas plibonigi. Mi rimarkis, ke mankas kelkaj funkcioj. Ekzemplo markilo por statuso de tradukado (”akceptita”).

Fina vorto

Mi esperas, ke kelkaj homoj uzos Esperantilon por tradukado de programaro.

30.12.2007

Projekto Apertium

Abgelegt unter: maŝina tradukado, programado — artur @ 12:24

Antaŭ kelkaj tagoj unu de programistoj de projekto Apertium sciigis al mi, ke tiu projekto pri maŝina tradukado nun enhavas modulon, kiu tradukas el hispana lingvo al esperanta lingvo. Feliĉe la projekto apartenas al malfermaj projektoj, kiuj naskiĝis kiel universitata projekto. Mi povis senprobleme elŝuti, instali kaj detale trarigardi la projektojn. Tio estas tre ĝojiga afero, ĉar eĉ universitataj projektoj plej ofte estas fermaj kaj formortas. La projekto ekzistas kiel malferma projekto jam 2 jaroj, tamen mi frue ne sciis pri ĝi.

Apertium estas traduka modulo kaj aro de lingvistikaj iloj por malprofunda tradukado inter similaj lingvoj. Malprofunda tradukado signifas, ke la programo ne faras plenan sintaksan analizon de teksto. Tamen tio sufiĉas, ke 90% de frazoj estas tradukitaj bone inter similaj lingvoj. La projekto unue pritraktis la tradukadon inter la lingvoj: kataluna kaj hispana. Tiu tradukado estas nun ankaŭ uzata por maŝina traduko de artikoloj de iu hispana gazeto.

Nun la projekto subtenas multajn lingvajn parojn. Inter alie Hispana al Esperanto, aŭ Angla al Pola lingvo. Mi kalkulis 26 lingvajn parojn. La projekto evoluas tre vigle.

Pri teknikaj aferoj de tiu projekto oni pli bone legu la dokumentojn sur pago kun dokumentaro de projekto. Pli detalajn informojn oni trovas sur vikio de projekto.
La instalado de tiu projekto estas nuntempe eble nur sur Linukso kaj eble nur fare de iom sperta komputisto.
Ekzemple la traduka modulo de hispana al esperanta lingvo troviĝas nur en la SVN-programarkivo (repository). Oni devas mem elŝuti kaj instali en fiksa ordo kelkajn modulojn. La dokumentaro ne estas tre detala, kaj ofte ne plu aktuala. Do mi mem devis trovi, ke oni nun devas uzi la modulojn lttoolbox-unicode kaj apertium-unikode, kiuj havas internajn numerojn 3.0. Oni uzu ankaŭ la programon “apertium” kaj ne “apetium-translation”, kiel tion priskribas malnova dokumentaro. Finfine mi sukcesis kompili kaj lanĉi la tradukadon. Mi ne konas la hispanan lingvon, do mi prenis iun hispanan tekston de la reto kaj tradukis ĝin al esperanta lingvo. La traduko estis komprenebla, tamen ekzistas multaj gramatikaj eraroj. Oni povas mem testi la programon direkte per la interreta interfaco.

Mi estis tre scivolema pri la tekniko de programo. La programo estas farita ĝenerale por multaj lingvoj. Tamen la programistoj plejparte prizorgis romajn lingvojn. Apartium estas programita helpe de C kaj C++. Ĝi uzas ofte la teknikon Finite state machine”. Ĉiuj lingvaj informoj estas unue enskribitaj en XML-formato. Poste la programo kompilas tiujn XML-dosierojn al maŝina formato. Por transformoj estas uzataj priskriboj en XML-formato, kiuj estas kompilitaj per yacc al C-programo. La uzado de programlingvo C/C++ kaj diversaj kompiloloj igas la programon tre rapida. Tre valoraj estas moduloj por morfema analizo kaj fleksio de vortoj. Tio estas tre praktika alveno al tiuj problemoj, kiu estas konata de operaciuma sistemo Unikso. La programo uzas la saman priskribon por ambaŭ taskoj. En la dosiero oni trovas la tutan difinon de esperanta fleksio. Por esperanta lingvo tiu dosiero ne estas sensacia, sed por naciaj lingvoj tiuj datoj estas tre valoraj, ĉar kutime la fleksio de naciaj lingvoj estas tre escepta kaj oni bezonas longan tempon por difini ĝin. La hispana-esperanta vortaro enhavas 12000 vortojn. La formato estas legebla por komutilo. Ekzistas aldonaj informoj pri genro kaj gramatiko. Tre bona laboro kaj vara lingva trezoro!

Laŭ mia nuna pritakso la projekto havas vere la ŝancon iĝi la Linukso de maŝina tradukado. Tion celis ankaŭ la iniciatantoj de tiu projekto. Tio povus sukcesi kaj jam multaj homoj laboras pri aldonaj lingvaj moduloj. Mi ankaŭ iom studis la tradukan modulon de angla lingvo al pola lingvo. Tiuj lingvoj estas tre diferencaj, kaj jam de priskriboj de aŭtoroj de projekto la programo ne estas konstruita por tradukado inter tiel malsamaj lingvoj. Pli bone estus la tradukado inter pola, ĉeĥa, slovaka kaj rusa lingvoj per Apertium. Ŝajne la bezono de tradukado inter pola kaj angla lingvoj estas tiel alta, ke eĉ la malsugestoj de aŭtoroj ne haltigas de evoluo de tiu modulo. Mi tute ne konas la hispanan lingvon, sed mi ankaŭ supozas, ke Esperanto kaj hispana lingvo ne estas idealaj lingvoj por malprofunda tradukado. Mi pensas, ke tiu projekto povus esti bona komenco por aliaj pli profundaj tradukadoj.

Nuntempe por kutima uzanto nur la interreta interfaco estas interesa. En la projekto mem ne ekzistas iu uzula interfaco (GUI). Sed tiu interfaco estas atendata de multaj uzantoj. Se tiu projekto estos daŭre tiel sukcesa, eble iam ekestos modulo por OpenOffice kaj aliaj interfacoj. Tio eble tre helpos al malferma programado de tiaj projektoj. Mi ne scias, ĉu oni povas kurigi la programon sur Vindozo. Mi supozas, ke oni devus adaptigi unue la kompilan sistemon por Vindozo.

La projekto Apertium havas multajn kondiĉojn, por esti sukcesa malferma projekto. Ĝi enhavas tre stabilajn ilojn, kiujn oni povas jam uzi. Hispana universitato subtenas la evoluon. Tio garantias, ke aroj de studentoj devige interesiĝas pri la projekto. La projekto estas jam sukcese uzata en realaj kondiĉoj. La sukceso estas la plej granda magneto de tiuj projektoj.

26.11.2007

Esperantilo tradukas al sveda lingvo

Abgelegt unter: uzantoj, maŝina tradukado — artur @ 19:48

De eldono 0.97 Esperantilo tradukas ankaŭ al sveda lingvo. La nova traduka modulo por maŝina tradukado estas la rezulto de kunlaboro kun KaGu. Li jam frue kelkfoje skribis al mi kaj demandis pri kelkaj afero rilate al Esperantilo. Li estas fascinigita de ideo de maŝina tradukado kaj ne havis ĉikoncernajn iluziojn, Finfine mi decidis komenci la programadon de sveda modulo. Mi legis iom pri sveda lingvo sur angla, germana kaj pola vikipedio. La sveda lingvo apartenas al familio de germanaj lingvoj.
La ideo estis reuzi la germanan modulon por programado de sveda tradukado. Poste tamen mi decidis reuzi la anglan modulon, ĉar ŝajnis al mi, ke angla lingvo estas pli simila al sveda lingvo. KaGu havas ankaŭ kelkajn spertojn pri komputiko kaj programado. Frue li ankaŭ okupis pri alia komputila traduka sistemo. Do mi kreis la svedan modulon kiel kopio de angla modulo kaj preparis la EsperantiloSDK, por ke KaGu mem povu adapti la tradukadon. Mi markis speciale lokojn en programa kodo, kiuj devos estas finprogramitaj aŭ modifitaj. En la blogo mi priskribis kiel programi la Esperantilon. KaGu ankaŭ tre rapide tradukis mane kelkcent ekzemplajn tradukojn. La unua eldono estis farita tre rapide kaj KaGu povis eĉ mem modifi kelkajn lokojn en programo. Li ankaŭ raportis al mi multajn problemojn kaj klarigis la defioj de sveda gramatiko.

Pri sveda lingvo

La sveda lingvo estas por mi la lingvo, kiu estas inter angla kaj germana lingvoj. En sveda lingvo ne ekzistas kazoj por substantivoj. La ordo de vortoj estas tre rigida. La sistemo de tempoj estas simila al angla lingvo. Sed la svedaj adjektivoj havas fleksion, kiu estas pli simila al germana lingvo. La sveda lingvo havas ankaŭ kelkaj trajtojn, kiuj estas por mi tute nomaj. Ekzemple la difinilo “la” estas esprimata en sveda lingvo kiel finilo. La negado de verboj “ne” okazas post la verbo. En sveda lingvo ekzistas 2 genroj, kiuj influas la difinilojn kaj atributojn. En sveda lingvo ekzistas tuta familio de verboj, kiuj ekzistas nur en pasivo (tn. deponens). Tio kaŭzis, ke mi devis adaptigi la originalan anglan modulon por sveda lingvo. Parte mi povis uzi la solvojn konatajn de germana lingvo. Alikaze mi devis elpensi solvojn tute denove.

Dum programado mi frue rimarkis, ke informoj de vikipedio ne sufiĉas. Fleksio de verboj kaj substantivoj ne estis priskribita detale. Ankaŭ KaGu ne povis doni al mi precizajn informojn pri reguloj de fleksio, ĉar li uzas la lingvon sen kono de reguloj kaj esceptoj. Finfine mi trovis la plej detalaj informoj sur iu rusa ttt-ejo pri sveda kulturo. La identigo de svedaj specialaĵoj evidentigis kiel la plej malfacila parto de laboro. Ĉe tiuj problemoj restas nur unu eblo. Oni tradukas kaj testas multajn tekstojn mane kaj provas trovi iujn regulojn. Tiun laboron povas fari nur KaGu, ĉar por mi svedaj vortoj restas nur aroj de literoj.

Kunlaboro estas ebla

Tio estas pro mi la unua fojo, kiam mi kunlaboris ĉe programado de Esperantilo kun iu tiel intense. Ni interŝanĝis multajn leterojn, iufoje eĉ kelkaj leteroj pro tago. La spertoj estas jenaj. Oni devas havi multe da tempo kaj volo. Evidentiĝis por mi, ke la programado kaj eĉ uzado de Esperantilo ne estas facila. Mi havis la okazon ekscii ion pri tiuj problemoj. Sen longaj plurfojaj klarigoj kaj reklarigoj nenio sukcesis.

Mi nur poste eksciis, ke KaGu estas delonge pensiulo. Tio estas jam la dua fojo, kiam mi ricevis grandan helpon de pensiulo. Por mi ŝajnas nun, ke nur pensiuloj havas tempon kaj necesan persiston. La eblojn de tiu grupo de homoj estas eble ne sufiĉe alte pritaksataj.

Certe. La programado de Esperantilo kaj sveda modulo ne estas finita. Oni daŭre povas plibonigi la kvaliton de tradukado. La kvalito dependas je algoritmoj en programo kaj vortaro.

Fina vorto

En vikipedio mi legis, ke sveda lingvo ne estas granda lingvo rilate al la nombro de parolantoj. Nur 9 milionoj da homoj parolas tiun lingvon. Tamen ofte oni ne bezonas miliono homojn sed nur unu konkretan.

Nun restas iom pli komplikaj kazoj, kiuj ne estas tradukataj korekte.
Nun ni trovis la bonan vojon de kunlaboro. KaGu priskribas la problemojn kaj donas ekzemplojn kaj mi programas.
Ni uzas pro tiu la dokumenton sur Google-docs.
Tio estas facila eblo redakti kune unu dokumenton.
Feliĉe ni ambaŭ sukcesis senprobleme uzi tiun sistemon.

La sveda vortaro estas en respondeco de KaGu.
Li plivastigas kaj modifas la vortaron kaj fine sendas al mi nur ŝanĝojn, kiujn mi importas en la gepatran vortaron, kiu troviĝas sur mia sistemo.

Sekva eldono de Esperantilo tradukos al sveda lingvo eĉ iom pli bone ol al la angla lingvo.

3.11.2007

Maŝina tradukado: angla lingvo al esperanta lingvo

Abgelegt unter: angla lingvo, maŝina tradukado — artur @ 13:30

La plej bezonata maŝina tradukado estas la tradukado inter iu nacia lingvo kaj angla lingvo. Bedaŭrinde la angla lingvo estas tre komplika lingvo por sintaksa analizo. Aliflanke tiu lingvo estas la plej bone esplorita lingvo en komputila lingvistiko. Antaŭ kelkaj monatoj mi eksperimentis pri maŝina tradukado de pola lingvo. Tiu tradukado nuntempe estas tute taŭga. Mi pensis ankaŭ pri maŝina tradukado de angla lingvo. Por tiu tasko la plej grava estas bona sintaksa analizo.
Mi denove traserĉis la interreton kaj ekkovris kelkajn liberajn projektojn, kiuj okupas pri sintaksa analizo de angla lingvo. La plej okulfrapa estis la projekto “Link Grammar Parser”. Tiu universitata projekto liveris ne nur teoriajn rezultojn sed pretan analizilon por angla lingvo. La analizilo enhavas ankaŭ la tutan vortaron kaj priskribo de angla sintakso. Ankaŭ kelkaj aliaj projektoj uzis tiun programon. Tio estas bona indiko por kvalito de projekto. Mi trovis kelkajn projektojn, kiuj rilatas kun “link parser”.

Tiu analizilo estas ankaŭ programita per programa lingvo C. Tiun lingvon oni povas tre facile kunligi kun Tcl. Oni ja prave diras, ke Tcl estas la gluteno por programoj skribitaj en C. Mi devis nur programi mallongan interfacon inter Tcl kaj C. Tio estis farita en unu tago. Nuntempe fakte la programa lingvo C estas la plej universala programa lingvo, kiu rulas sur ĉiu komputilo sen ĝenaj premisoj. Tion oni ne povas diri pri la nuntempe populara programa lingvo “Javo”, kiu ĉiam faras problemojn, uzas tro da memoro kaj estas katastrofe malrapida.

Mi testis iomete la analizilon. Unue la analizilo rezultas ne sintaksajn arbojn sed la aron de ligiloj. Oni tamen povas facile konstrui de tiuj informacioj la sintaksan arbon. La analizilo povas ankaŭ trovi la gramatikan kategorion por ĉiu vorto. Tiu estas tre grava ĉe angla lingvo, ĉar tio estas en tiu lingvo tre ambigua afero. Kelkaj ekzemploj:

I read a book
       +---Os---+
 +-Sp*i+   +-Ds-+
 |     |   |    |
I.p read.v a book.n

I have written the computer program

               +-----------Os-----------+
               |      +--------Ds-------+
 +-Sp*i+---PP--+      |       +----AN---+
 |     |       |      |       |         |
I.p have.v written.v the computer.n program.n


De tiuj informoj oni relative facile povas traduki al esperanta lingvo. Oni devas simple analizi la ligilojn de vortoj. Tiel oni poves ekkoni, ĉu iu vorto estas objekto (en esperanto akuzativo). Tiuj subjektoj havas maldekstran ligilon kun simbolo “OS”. La unua malfacilaĵo estas, ke tiu analizilo ne trovas la bazajn formojn (vortaroj formoj) de vortoj. Do la programo devas mem diveni, ke la baza formo de “written” estas “write”. Kelkfoje oni devas reordigi la vortojn (ekzemple ĉe negado aŭ angla genetivo father’s)
Mi programis unu semajnon la maŝinan tradukadon kaj la rezultoj ne estas malbonaj.

Do nun Esperantilo en eldono 0.97 tradukas tiujn du ekzemplajn frazojn.

I read a book. - Mi legas libron.
I have written the computer program. - Mi skribis la komputilan programon.

Por simplaj frazoj tio funkcias preskaŭ perfekte. La limoj troviĝas nun en la ebloj de analizilo “link parser”. Tiu analizilo estas por longaj frazoj malrapida. Feliĉe ekzistas la eblo interrompi la analizon de frazo, se la bezonata tempo estas tro granda. Nun mi tiel agordis la analizion, ke ĝi ne povas uzi por anlizo de unu frazo pli ol 30 sekundoj. Por uzanto la traduko de angla lingvo estas okulfrape pli malrapida ol la traduko en alia direkto. Mi pensas, ke pro tio la analizilo ne estas taŭgo por uzo en interreta traduka servo. Tio estas tro kosta afero. La analizilo havas ankaŭ problemojn kun parentezoj, citaĵojn kaj fremdlingvaj vortojn. Do ĝi komplete rifuzas la analizon, se en la teksto troviĝas fremdlingvaj singoj aŭ ĝenerale UTF-8 signoj. Do mi devis programi la alternativan tradukadon por frazoj, kiuj ne povas esti analizitaj de “link parser”. Tiu alternativa tradukado estas simpla vorta tradukado.

Ekzistas ankaŭ multaj aferoj, kiujn oni povas plibonigi. La plej grava afero estas la tradukado de ambiguaj anglaj vortetoj kiel “there, this, that, by, to, too, …”. Ofte oni devas nur analizi la legilojn por trovi la necesan tradukon.
Jen ekzemplo:

+--Ds-+--Ss-+--Pv--+--MVp-+-J+
 |     |     |      |      |  |
the book.n is.v written.v by me

         +---Js---+
 +-Ss+-Pp+  +--Ds-+
 |   |   |  |     |
he is.v by the table.n

La laboro ne estas facila. Ekzistas multega nombro de eblaj nomoj por legiloj. La dokumentaro de “link parser” ne estas aktuala kaj kompleta. Do oni precipe devas simple testi multajn frazojn. La programo ne estas ŝajne plu evoluigita. La lasta eldono devenas de jaro 2005.

Jam kun tiu eldono mi rimarkis, ke la kvalito de tradukoj estas pli bona ol la kvalito de aliaj
atingeblaj tradukiloj inter angla kaj esperanta lingvo. Esperantilo nun povas bone traduki negadon, kompleksajn tempojn kaj rekonas akuzativon.

Por plibonigi la kvaliton la plej grava estus la plivastigo de vortaro. Do multa laboro estas ankoraŭ farinda. Kiel kutime mi iom post iom esperas plibonigi la tradukadon. Bedaŭrinde mia kono de angla lingvo ne estas tre bona. Mi delonge lernas tiun lingvon, sed ĝis nun havas problemojn. Ofte mi komprenas ĉiun unuopan vorton en la frazo, sed la tuta frazo estas por mi sensenca. Mi supozas, ke por samaj kialoj la konstruo de sintaksa analizilo por angla lingvo estas tiel malfacila.

14.10.2007

Kiel programi maŝinan tradukadon por nova lingvo en Esperantilo?

Abgelegt unter: maŝina tradukado, programado — artur @ 10:48

Iafoje mi ricevas leterojn de uzantoj de Esperantilo, kiu dezirus maŝinan tradukadon al ilia nacia lingvo. Esperantilo nun subtenas la maŝinan tradukadon al 3 lingvoj, sed mi nuntempe okupas nur pri pola lingvo. Estas ĝenerale konata fakto, ke programado de maŝina tradukado ne estas triviala tasko. Alikaze ni delonge havus multajn altnivelajn tradukajn programojn por multaj lingvoj. Fakte nur kelkaj profesiaj firmaoj agas en tiu kampo kaj nombro de subtenataj lingvoj estas malgranda. Esperantilo ne estas planita por subteni dekomence multajn lingvojn. Do ĉiu nova subtenata lingvo bezonas novan planadon kaj programadon. Mi ankaŭ konscie okupis nur pri unudirekta traduko el Esperanto al nacia lingvo, ĉar tiu direkto ŝajnas havi malpli multajn obstaklojn pro trajtoj de esperanta lingvo. Mi tamen dekomence de programado planis la izolon de partoj de programo, kiuj estas dependaj de lingvo kaj partoj, kiuj estas ĝeneralaj pro maŝina tradukado mem. Tial la tradukado al tiuj 3 lingvoj uzas en 80% la saman programan bazon. Nur la plej specifaj fragmentoj estas programitaj en tn. traduka modulo por koncerna lingvo. Ankaŭ la proceso de tradukado mem ebligas la reuzon de grandaj partoj de programo por diferencaj lingvoj.

La proceso de programado estas

  1. Analizo de fonta teksto
  2. Kreado de tradukaj strukturoj
  3. Trovo de vortoj
  4. Gramatika transformigo kaj reordigo (Tiu parto dependas de cela lingvo)
  5. Kreado de rezulta teksto

Esperantilo enhavas ankaŭ multajn partojn, kiuj ne servas direkte en proceso de tradukado, sed tamen influas la kvaliton kaj la uzeblecon de tuta sistemo.
Tiuj partoj estas:

  • Pritrakto de diferencaj tekstaj formatoj (XML, HTML, OpenOfficem, Word)
  • Interaktiva tradukado
  • Traduka memoro
  • Administracio de vortaroj
  • Esperanta Vortfarado
  • Prilaboro de esperantaj tekstoj

Tial Esperantilo povus bone servi kiel baza sistemo por aliaj tradukaj sistemoj, ĉefe en direkto de Esperanta lingvo al nacia lingvo. Due oni povus reuzi la tradukan modulon de iu ekzistanta lingvo por krei tradukan modulon de similspeca lingvo. Ekzemple la traduka modulo de pola lingvo povus esti uzata kiel ŝablono por ĉiu slava lingvo. La germana kaj angla moduloj povus esti ŝablonoj por aliaj multnombraj germanaj lingvoj. Tamen mi ne kredas, ke la sintaksa analizo de esperanta lingvo en Esperantilo estus sufiĉa por traduko al lingvoj, kiuj tre diferencas de Esperanto. Temas precipe pri struktura (sintaksa) malsimileco.

Antaŭ ol vi decidis okupi pri maŝina tradukado

Maŝina tradukado postulas multajn konojn kaj vastan scion. Do oni devus longe prepari por tiu tasko. Oni devus eklerni multajn novajn kampojn kaj profundigi jam konatan scion. Do tio ne estas okupo por unu semajno aŭ iu instrua projekto. Tamen ekzistas sufiĉe multaj homoj, kiuj jam havas vastajn spertojn kaj delonge okupas pri tiu temo. Esperantilo estas io, kio povus esti interesa por homoj, kiuj volas havi ion praktikan. Ankaŭ kiel ŝatokupo estas eble en longa tempo fari ion, kio funkcias kaj havas trajtojn de tn. serioza aŭ profesia okupo. Por mi la atributo “profesia” signifas nur, ke temas pri mono, kiun oni ricevas aŭ devas pagi. En tiu senco la sistemo Esperantilo ne estas profesia.

Mi povas helpi al ĉiu, kiu volas mem plukonstrui aŭ reuzi la sistemon Esperantilo, sed
mi devas dekomence substreki, ke la plej grandan laboron oni devus fari mem. Oni devas mem studi la komputilan lingvistikon, lerni programajn lingvojn kaj gramatikon. La projekto estas tute malferma kaj libera. Ĉiujn fontojn mi publikigas libere. Do oni ankaŭ povus sen mia helpo rekonstrui kaj adaptigi la sistemon por ĉies kialoj. Ekzistas multaj informoj en mia blogo kaj sur la TTT-paĝoj de Esperantilo. Ankaŭ pri aliaj teknikoj oni povas multe legi en interreto.

Due vi devas pripensi, ĉu vi eblas trovi sufiĉe da lingvistika materialo. Ĉu ekzistas liberaj glosaroj por koncerna lingvo? Ĉu ekzistas bonaj priskriboj de gramatiko? Ĉu aldonaj informoj pri fleksio ankaŭ estas uzeblaj? Mi ofte reuzas aliajn liberajn materialojn. La ideo “Programi tradukan sistemon tute de komenco” estas tre malespera okupo.

EsperantiloSDK - Programa medio de programo Esperantilo

Por programi la programon Esperantilo mi uzas iom ne veste konatan programan medion. La baza programa lingvo estas Tcl. Eldone la programo estas skribita laŭ objektema maniero helpe de XOTcl. La programa medio estas XOTclIDE. Mi kredas, ke XOTcl kaj XOTclIDE ebligas la uzon de programa lingvo TCL en grandaj projektoj. Tiuj teknikaj iloj estas malofte uzataj. Sed la ideoj devenas de aliaj medioj, kiuj normale estas veste konataj. Do Tcl similas al C, Java kaj aliaj skriptaj lingvoj. XOTcl estas simila al Java, C++, Ryby kaj Python. Fine la programa medio XOTclIDE estas programita en tradicio de medioj por programa lingvo Smalltalk, kiuj influis ankaŭ aliajn programajn mediojn. Do sperta programisto ne trovas en tiu medio vere ion novan.

Mi preparis la tutan programan medion kiel EsperantiloSDK.
Vi povas facile instali ĝin sur vindozo kaj linukso. Sen aldonaj obstakloj vi povas uzi la programon, trarigardi ĝian programfonton kaj adaptigi kaj plivastigi ĝin.

Taskoj ĉe programado de nova traduka modulo

Oni povas tiujn laborojn distingi inter lingvistikaj taskoj kaj programaj taskoj.

Lingvistikaj taskoj

  • Kolektado de informoj pri gramatiko de cela lingvo.
    • Fleksio de substantivoj, verboj kaj adjektivoj
    • Fleksio de pronomoj
    • Projektado de fleksiaj grupoj kaj priskriboj en vortaro
    • Reguloj pri vortordo
    • Reguloj pri traduko de subfrazoj
    • Reguloj pri vortfarado
    • Korelativoj
  • Mana preparo de ekzemplaj tradukoj
  • Preparo de vortaro (vortlistoj kaj priskriboj)
  • Preparo de esceptoj en fleksio (ekzemple anglaj fortaj verboj: take, took, token)
  • Testado de sistemo

Programaj taskoj

  • Krado de nova traduka modulo kiel kopio de iu ekzistanta modulo
  • Programado de generatoro por fleksio
  • Programado de generatoro por numeroj
  • Programado de esceptoj kaj specialaj reguloj

Ellerno de sistemo. Praktikaj sugestoj

Jam en normala eldono de Esperantilo vi povas lerni iom pri proceso de tradukado.
Vi povas uzi tiujn funkciojn.

  • Menuo - Redaktu->Montru Sintakso - Analizo de fonta teksto
  • Menuo - Redaktu->Inspektu tradukon de frazo - Analizo de tradukado

sintakso-inspect

traduko-inspect
La sistemo XOTclIDE enhavas multajn ilojn por inspektado de programaj strukturoj kaj proceso de tradukado.
Se vi uzas la EsperantiloSDK, vi havas ankaŭ aldonajn eblojn.
La duopa klako en montrilo de sintakso sur iu elemento malfermigas tn. inspektan fenestron, en kiu
vi povas inspekti la variablojn kaj metodojn de iu elemento.
La proceso de tradukado estas bone priskribita en artikolo “Kiel komputilo tradukas?”.
Ekzistas ankaŭ multaj aliaj artikoloj pri tiu temo.


objektoinspektilo
Se vi jam scias ion pri programa lingvo Tcl, XOTcl kaj la programa medio XOTclIDE, vi povus tuj trarigardi la programfonton de programo kaj tuj adaptigi la sistemon en fenesto Component Browser. Atentu, ke XOTclIDE estas interaktiva sistemo. Tio signifas, ke vi samtempe povas kuri la programon kaj programi ĝin.

Konkretaj informoj pri programado

Se vi lanĉis EsperantiloSDK vi vidas fensetron de XOTclIDE, sed ankaŭ fenestro kun nomo EsperantiloCentro. De tiu lasta fenestro vi povas lanĉi la konatan redaktilon de Esperantilo kaj ankaŭ atingi kelkajn specialajn funkciojn per programado.


esperantilcentro
Por programado de maŝina tradukado estas gravaj subaj programaj moduloj.

Modulo Priskribo
EspSintaksaAnalizo Anazizo de esperanta teksto
EspTradukilo Bazaj funkcioj por tradukado
EspPlTradukilo traduka modulo por pola lingvo
EspDeTradukilo traduka modulo por germana lingvo
EspEnTradukilo traduka modulo por angla lingvo

Precipe vi devas “nur” programi vian propran Esp??Tradukilo.

Tie vi povas vidi la priskrobjn de eroj de programo. Tamen mi sugestas trarigardi la fontprogramon kaj programan strukturon de Esperantilo tuj en EsperantiloSDK per modulomontrilo (angle: Component Browser).

Mi nun volas priskribi kelkajn teknikojn, kiujn vi povas uzi dum adaptado de modulo.

En ceteraj kazoj la vortoj de cela lingvo estas enmetitaj direkte en la programa fonto. Tial vi povas vidi la fremdlingvan vorton de la baza lingvo, kiu ne venas de vortaro, en la cela teksto.
Vi povas trovi facile la lokon en programo, kiu tion kaŭzis per serĉado de teksto en modulomontrilo.
Uzu la menuon (Method->Search Text->In Component.


method-search-which
Ofte iu metodo faras pli ol vi bezonas. Vi povas simple forigi la metodon (menuo: Method->Delete). La programo uzas en tiu kazo la pli bazan metodon kaj la programo daŭre funkcias.

Vi povas kompari metodojn de aliaj moduloj per funkcio (menuo: Method->Search Implementers.

La baza klaso, kiu respondas pri la tradukado estas FrazTraduko en modulo EspTradukilo. Vidu la metodon traduku.

Modulomontrilo

Ĉiuj vortoj estas objektoj, kiuj devenas de derivita klaso de la klaso TradukElemento.
Ekzemple ĉiu pola substantivo estas objekto de klaso ETPlSubstantivo.
Tiu klaso havas tiujn parencojn:

ETPlSubstantivo
  ETPlTradukElemento
  ETSubstantivo
    ElemTraduko
       ArboFolio
          ArboElemento

Vi povas rigardi la parencajn strukturojn per Heritage Browser, kiun vi lanĉas per
Class->Heritage Browser. Kiel vi vidas, la programo Esperantilo uzas konsekvence la objekteman programadon. La klaso “ETSubstantivo” estas uzata en ĉiujn tradukajn modulojn kaj enhavas bazajn trajtojn de substantivo.


heritagebrowser
Se vi modifis unu metodon (funkcion) kaj ĝi ne funkcias, vi povas senprobleme reveni al malnova eldono. Do ni ne bezonas komenti aŭ malkomenti partojn de programo. Uzu la menuon: (Method->Version Control->$gt;Editions) aŭ (Method->Version Cotrol->Previous Version).

En ĉiu metodo, vi povas enmeti tn. haltpunkton (Breakpoint). Por tiu vi skribu en aldona linio: my halt. (Vi devas aldone enlegi la novan metodon per menu Edit->Save aŭ klavkombino Ctrl-S)
Se la programo denove uzas tiun metodon, vi povas inspketi la fluon de programo en sencimilo (debugger). Tiel vi ofte povus pli ekkoni pri programo ol nur legante la statikan programfonton. Vi povas pluruli la programon per butono Resume.


sencimilo

La preciza priskribo de tuta programo ne estas praktika. Pli bone estas lernia la programan lingvo kaj legi la programon direkte.

Kiel komenci?

Se vi estas preta komenci vian okupon pri programado de Esperantilo, kontaktu min. Eble mi povus fari la plej malfacilajn taskojn por la komenco aŭ doni al vi kelkajn rimarkojn.

12.9.2007

Maŝina tradukado el pola lingvo al Esperanto

Abgelegt unter: pola lingvo, programado — artur @ 18:46

Mi ne planis programi maŝinan tradukadon el pola lingvo, tamen nun mi dum longa tempo laboris pri tiu temo, kaj la venonta versio de Esperantilo enhavos unuan fojon la maŝinan tradukadon el pola lingvo al esperanta lingvo. La ĉefa kaŭzo pri mia frua rezisto je tiu temo estis, ke mi pritraktis la sintaksan analizon de pola lingvo kiel tre komplika, tro komplika por miaj rimedoj. Post kelkaj eksperimentoj mi konstatis, ke plena (profunda) sintaksa analizo ne estas tiel necesa por pola lingvo. Ekzistas ankaŭ la libera projekto morfologik kaj la s_fsa, kiuj oferas polan etiketilon. Do mi povis reuzi jam ekzistantan programaron. Tamen la vortprovizo de projekto morfologik, kvankam ĝi estas tre abunda, enhavis multe da eraroj. Do mi devis unue purigi tiun provizon. Por tiu tasko mi produktis de vortaro de Esperantilo ĉiujn fleksiajn formojn. Tiujn funkciojn mi jam bezonis por tradukado al pola lingvo. Feliĉe la laborkvanto ne estis tiel granda kaj mi povis rapide atingi unuajn rezultojn.

Ĉe tiu temo mi frontis unufoje la problemon de ambiguo de naturaj lingvoj. Por bona tradukado oni bezonas bonan senambiguilon (angle: disambigulation). La sendisambiguo koncernas ĉefe du problemojn.

  • Trovi la bazan vorton
  • Trovi unusencan gramatikan etiketon

Mi frue eĉ ne supozis, kiom da ambigueco ekzistas en pola lingvo. Mi pensas, ke nia cerbo faras tiun taskon tiel rapide, ke la ambigueco ne iĝas konscia. Do mi rimarkis tiun ambiguon nur dum la testado de tradukado.

Mi donas kelkajn ekzemplojn.

mam - verbo (mieć-havi), substatnivo (mama-patrino)
bez - konjukcio (sen), substantivo (sambuko)
jak - konjunkcio (kiel), substantivo (gruntbovo)

Ankaŭ la pola fleksio estas parte tre ambigua.

książki - baza vorto: książka
singularo, genetivo
pluralo, nominativo
pluralo, akuzativo

En pola lingvo akuzativo kaj nominativo por senvivaj substantivoj de vira genro estas samaj. Do mi devis uzi multajn diferencajn teknikojn por difini la gramatikan funkcion de vortoj en pola frazo. Pola lingvo havas ankaŭ komplikajn trajtojn ĉe negado kaj numeraloj. Jen la tabelo, kiu montras kelkajn defiojn de pola lingvo.

Ja mam książkę. Mi havas libron.
Ja nie mam książki. (genetivo-singularo) Mi ne havas libron.
Ja mam książki. (akuzativo-pluralo) Mi havas librojn.
Cena książki jest wysoka. (genetivo-singularo) Prezo de libro estas alta.

En tiu ekzemplo la vorto “książki” devas esti tradukita depende de kunteksto al “libron, librojn aŭ de libro”.
Tamen ĉiujn tiujn frazojnj la programo nun povas korekte traduki. Do mi esperas, ke la tradukado el pola lingvo estus ankaŭ iam utila. Mi pensas, ke se la traduko estus komprenebla, tiam jam multaj esperantistoj povus kompreni polajn tekstojn. Do tiu direkto de tradukado estus eble pli interesa ol tradukado de Esperanto al pola lingvo. Tiu okupo estas pro mi bona okazo ekkoni la polan lingvon. Tiun scion oni nur tre malfacile atingas per legado de gramatikaj libroj. Eble ankaŭ la cerboj de polaj gramatikistoj malkaŝas al ili kelkajn gravajn fenomenojn de pola lingvo.

10.8.2007

Renkonto kun Esperantisto kaj uzanto de Programo Esperantilo

Abgelegt unter: germana lingvo, reagoj, ĝenerale — artur @ 17:34

Per interreta letero mi konatiĝis kun Esperantisto Eckhard Stoll, kiu eble estas al ceteraj homoj konata de Radio Sauerland Welle kaj elsendoj pri fondaĵo Bona Espero. Post kelkaj leteroj kaj longa telefonado ni decidis renkonti. Eckhard estas ankaŭ la kreinto de alia traduka programo Ecoso. Do ni havis multegon por priparoli pri programado kaj maŝina tradukado. Ni parolis multege pri teknikaj aferoj kaj interŝanĝis ideojn pri tradukaj programoj. Mi povis montri direkte kelkajn specialajn funkciojn de programo Esperantilo kaj rakonti pri ĝia programado.

Mi decidis detale priskribi kelkajn ideojn de tiu renkonto. Tio estas ankaŭ por mi la unua okazo por paroli direkte kun uzanto de Esperantilo. Per tiuj diskutoj mi eksciis pri plibonigindaj flankoj de programo kaj ekhavis ideojn por plua evoluo. La programo Ecoso ne oferas altan kvaliton de maŝina tradukado, tamen ĝi enhavas funkciojn, kiuj ne estas nun en la programo Esperantilo. Oni povis tajpi Esperantajn vortojn kaj samtempe observi la tradukadon al germana lingvo. Mi longe ne povus imagi, kiu vere bezonus tiun funkcion. En mia kapo mi havis nur unu tipon de uzado de programo. La uzanto havas Esperantan tekston, kiun li volas traduki al cela nacia lingvo. Tamen mi devis konfesi, ke maŝina tradukado estus ankaŭ uzebla por propedeŭtikaj kialoj. Ni imagu, ke komencanta lernato de Esperanta lingvo volas krei esperantan tekston. Lia provizo de esperantaj vortoj ne estas granda. Li ankaŭ havas problemojn kun esperanta gramatiko. Li tamen volas skribi leteron al iu alia Esperantisto. En tiu kazo li kutime uzus ofte vortaron kaj necesus korektadon. La programo Ecoso estas farita direkte por tiuj uzantoj. Oni tajpas esperantajn vortojn kaj povas direkte kontroli en vortaro, ĉu la vorto estas korekta. Do la maŝina tradukado ĉefe gravas kiel kontrola teksto. Tio nun ankaŭ estas por mi pli evidenta, ĉar mi ofte rimarkas erarojn en miaj esperantaj tekstoj nur, post kiam mi tradukis ilin al pola lingvo. Do la kombino de literumado, gramatika kontrolado kaj maŝina tradukado estas tre avantaĝaj por komencantoj de esperanta lingvo. Mi ankaŭ en frua blogo pensis pri uzantoj, sed pri tiu tipo de uzado mi ne pensis.

De eldono 0.94 Esperantilo ankaŭ enhavas tiel nomatan rapidan vortaron, kiu laboras simile al programo Ecoso. Mankas nun nur la ebleco samtempe montri la tradukon de vortoj en separita fenestro. Esperantilo tradukas ne po unu vorto, sed ĝi bezonas por bona traduko la tutan frazon. La akceptebla solvo estus, ke esperantilo tradukas tuj ĉiun vorton laŭ primitiva maniero. Sed kiam la frazo estas finita, la programo retradukas la tutan frazon en pli bona kvalito. Nun ekzistas en Esperantilo t.n. “Tradukileto” (menu Tradukado->Tradukileto), kiu estas speciale farita por samtempa tradukado de mallongaj tekstoj. Oni povus plivastigi la funkciadon de tiu ilo, por ke ĝi estu pli simila al programo Ecoso.

Mi kaptis la okazon kaj detale demandis Eckard pri ĝia uzado de programo Esperantilon. Tio estis por mi tre instrua. Ni diskutis longe pri vortaro de Esperantilo. Bedaŭrinde Eckhard ne povis bone uzi tiun vortaron sen mia detala priskribo. La uzula interfaco de vortaro evidentiĝis kiel malklara. Mi uzas la vortaron tre ofte kaj ne supozis tiujn malfacilaĵojn. Speciale malklara evidentiĝis la dudirekta serĉado de vortoj. Por tio oni havas du specialajn kampojn. Ankaŭ la montrado de rezultoj kaj la ebleco de direkta redaktado de tradukoj estis malklara. La leciono por mi estas, ke uzantoj atendas, ke la vortaro aspektu kiel papera vortaro. Oni havu nur unu kampon por entajpi la vorton. Ankaŭ la gramatikaj priskriboj ne estas klaraj. Se la avaraĝa uzanto povus redakti mem la vortaron, la priskribo de gramatiko kaj fleksio devus esti pli facila. Normale altnivela preparo de vortaroj estas tasko por profesiaj lingvistoj. Se tiu vortaro estas uzata en maŝina tradukado, tiu tasko estas eĉ pli malfacila. La programo devus plifaciligi tiun taskon ankaŭ por neprofesiuloj. La plej bona solvo estus, se la programo oferus kelkajn ekzemplojn de fleksio por elekto kaj la uzanto nur devus elekti la korektan frazon. Ni ankaŭ diskutis lange pri komuna flegado de vortaro. Ĝis nun mankas bonaj liberaj vortaroj pro esperanta lingvo, kiujn oni povus uzi en maŝina tradukado. Sekvaj funkcioj estus necesaj:

  • facila importado kaj eksportado de ŝanĝoj direkte per interreto
  • historio de ŝanĝoj en vortaro
  • ĉiu ŝanĝo havas aŭtoron
  • akceptado de ŝanĝoj per elektitaj kompetentaj lingvistoj
  • priskribo de certeco de iu traduko
  • Akcepto de ŝanĝoj nur por ne certaj tradukoj

Tiu projekto necesus vastan akcepton de germana kaj esperanta komunumo. Ekzistas nun multaj similaj projektoj, kiuj kolektas vortojn por Esperanto kaj por ĉiu lingvo. Bedaŭrinde ĉe multaj tiaj projektoj la uzado de vortaroj ne estas libera. Do mi ne estas certa, ĉu indus krei ion novan. Tio devus esti ankaŭ separita projekto. Kvankam mi devis akcepti, ke la nuna vortaro ne estas facila, mi tre kutimiĝis kun nuna funkciado. Bone estas, ke mi direkte povas redakti tradukojn sen aldonaj paŝoj. En aliaj programoj oni devas trairi per multaj fenestroj por adaptigi unu tradukon. Ankaŭ en tiu kazo evidentiĝas, ke diferencaj uzantoj volas havi diferencan interfacon. Mi povas diferenci:

  • Uzantoj kiuj nur legas vortaron kaj nenio scias pri gramatiko
  • Uzantoj kiuj nur legas vortaron kaj tre malofte korektas tradukojn. Ili havas nur bazajn konojn pri gramatiko
  • Lingvistoj, kiu ofte uzas vortaron kaj volas direkte redakti tradukojn. (angle: Poweruser)

Nuna vortaro bezonan plibonigon, sed eble bona ideo estus havi du separitajn vortarojn por almenaŭ du tipoj de uzantoj.

Ĝenerale mi devas diri, ke multaj funkcioj de Esperantilo ne estas konataj. Eble pli bona solvo estus dividi la programon en kelkaj programoj, kiuj enhavas funkciojn speciale por unu grupo de uzantoj. Mi pensas, ke la plej granda parto de esperantistoj ne scias multe pri lingvistiko, gramatiko kaj komputiloj. Kaj speciale por tiu grupo la programo povus esti aparte utila. Por tiu homoj estas necesa aldona dokumentaro kaj speciala instrukciado. Eble mi povus iam pretigi intrukcajn videojn. Mi pensas, ke direkta kontakto kun uzantoj estas la sola eblo plibonigi la programon.

Ni diskutis multe pri plibonigo de germana tradukado. Jes, mi havas mutajn ideojn, sed mi decidis nun prizorgi nur polan maŝinan tradukadon. La tasko estas pena kaj mi volas, ke almenaŭ unu lingvo estos bone tradukota. Do eble en venonta jaro mi denove okupus pri germana lingvo.

Sukcesa programo devas havi stabilan kernon, kiu povas solvi la planitajn taskojn, kaj ankaŭ klaran interfacon. Se unu de tiuj elementoj ne estas bona, la programo ne trovos akcepton. Direkta kontakto kun Esperantistoj tre helpas. Mi esperas, ke mi en la venonto povus partopreni en esperantaj aranĝoj kaj renkonti la uzantojn de programo rekte.

15.5.2007

Elekto de tradukoj ĉe maŝina tradukado

Abgelegt unter: maŝina tradukado — artur @ 18:35

Unu de plej malfacilaj problemoj ĉe maŝina tradukado, kiu estas bazita sur leksikono, estas la elekto de la plej taŭga traduko de vortaro. Estas normala afero, ke por unu fonta vorto oni trovas kelkajn tradukojn en vortaro. Ofte tiuj tradukoj estas sinonimoj, do ĉiu traduko estas egale korekta. En alia kazo la fonta vorto povas havi kelkajn sencojn kaj tiuj sencoj estas tradukita diference. Ni trovas en vortarojn ofte suban strukturon:

fonta vorto:
senco1: traduko_1_1, traduko_1_2
senco2: traduko_2_1, traduko_2_2

La difino de senco (aŭ sencokampoj) estas en tiu punkto tre malklara afero. Precipe oni povas ĉiam dividi sencojn en pri detalaj sencoj. Do ne ekzistas metodo por klare difini la sencojn. En naturaj lingvoj (ankaŭ en Esperanto) vortojn ofte iom post iom ŝanĝiĝas la sencojn. En diferencaj fakoj aŭ homgrupoj vortojn havas iom alian sencon. Tial ankaŭ la difino de sinonimo ne estas klara. Diferencaj nacioj komprenas la sencojn diference kaj tio estas la trajto de ilia kulturo. En tradukaj vortaroj ne estas ankaŭ evidente, ĉu la sencoj estis difinitaj laŭ fonta aŭ cela lingvo. Tial ankaŭ la difino de sinonimo, kiel samsenca vorto, estas dubinda. La tradukaj vortaroj venkas tiujn malfacilaĵojn per aldonaj priskriboj. Ofte estas uzataj ekzemploj.

Ekzemploj

Ni rigardu la vorton “granda” kaj ĝiaj tradukoj por pola, germana kaj angla lingvo.

Pola lingvo “granda: duży, wielki, silny, spory”
Germana lingvo “granda: groß, berühmnt, heftig, stark”
Angla lingvo “granda: big, large, great”

La vortaro REVO difinas por la vorto “granda” 2 sencojn.

  1. Superanta la ordinarajn dimensiojn
  2. Superanta la ordinaran gradon, intensa, altkvalita.

Unue la vorto povas priskribi aĵojn, kiuj havas dimension en alia kaŭzo ĉiujn aĵojn, kiujn oni povas ordigi (Do logike senco 2 enhavas ankaŭ la sencon 1). La vorto granda povas esti anstataŭigata en apartaj kuntekstoj (laŭ la tezaŭro) per vortoj: ega, kolosa, fama, glora, renoma, forta, impetega, fortega, potenca, alta. Ĉiuj tiuj vortoj priskribas malkutiman gradon de iu kvalito. Evidentiĝas, ke tiu vorto estas tre malfacila por difino kaj traduko. Ni pritraktu kelkajn tradukojn de vorto “granda” kun substantivo.

Esperanta Lingvo Pola Lingvo
granda domo duży dom
granda komponisto wielki kompozytor
granda tertremo silne trzęsienie ziemi, wielkie trzęsienie ziemi
granda problemo duży problem, wielki problem
granda milito wielka wojna

Ne estas facile diri, kio diferencas la polan tradukon “duży” kaj “wielki”. La vorto “duży” precipe pritraktas dimension kaj vorto “wielki” aliajn kvalitojn. Sed oni povas priskribi per “granda” ankaŭ abstraktaj nociojn kiel “problemo”. Ŝajnas ankaŭ, ke vorto “wielki” estas stile pli nobla ol popola aŭ parolata “duży”. En pola korpuso Poliqarp “duży problem” estas iom pli ofta ol “wielki problem” (granda problemo). Se ni priskribas personojn kaj oni ne volas priskribi la altecon de homo, oni devas uzi la vorton “wielki”. En pola lingvo la vorto “wielki” emfazas ankaŭ la signifon de iu objekto por homoj. Do oni parolas pri “wielka wojna” (granda milito), se temas pri la dua mondmilito. La duopon “duża wojna” mi trovis nur unu fojon. Oni parolas pri “silne trzęsienie ziemi” (forta tertremo), se temas pri fizike mezurebla forteco, sed la tertremon en San Francisco 1906 oni nomiĝas “wielkie trzęsienie ziemi”.

Implikoj por maŝina tradukado

Oni vidas, ke la elekto de taŭga traduko estas tre grava por kvalito de tradukado. Unue oni povas elekti por tradukado tiun tradukon, kiu estas oportuna por la plej granda kvanto de tekstoj. Tiu estas traduko, kies senco korespondas tre preciza al la senco de fonta vorto. Precipe la plej ofta vorto de cela lingvo estas la plej taŭga. Sed tio ne solvas la problemon kun la vorto “granda”. Ankaŭ se la tradukilo ne povas difini la sencon de fonta teksto, ĝi povas analizi la kuntekston de vorto. Tie helpas la statistika metodo kaj granda korpuso de cela lingvo. Ĉe elekto de la plej taŭga traduko oni analizas la oftecon de kunteksto ĉe cela lingvo. Evidente oni povas komputi, ke la traduko “wielka wojna” estas multoble pli ofta ol la traduko “duża wojna”. La malavantaĝo de tiu solvo estas, ke ĝi bezonas longdaŭran kalkuladon. Parton de tiu kalkulado oni povas prepari frue en speciala datumbanko, simile kiel mi tion faris en Esperantilo ĉe bazo de frazpartoj (Menuo Lingvistiko->Uzado de frazpartoj). La dua eblo estas la traduka vortaro de tutaj frazpartoj. Tia vortaro estas tre komforta por difini esceptojn sed iĝus tro abunda por tutaj klasoj de tradukado. Oni do devus difini tutajn seriojn de tradukoj: “granda poeto, granda matematikisto, granda homo, granda instruisto”. La lasta eble devenas de kutimaj vortaroj, kiuj simple donas ekzemplojn de uzado aŭ mallongan klarigon. En kaŭzo de komputila prilaboro tiu priskribo devas esti kompreneble de komputilo. La natura kunteksto de adjektivo estas la priskribata substantivo. Ĉar Esperantilo havas ĉe tradukado la kompletan sintaksan arbon, ĝi povas facili trovi koncernan substantivon.

Ekzemple en frazo: “Adam Mickiewicz estas granda pola poeto.” la natura kunteksto de adjektivo “granda” estas la substantivo “poeto”. Nun oni devas informigi la tradukilon, ke ĉe personoj kaj aliaj difinitaj vortoj, ĝi traduku la vorton “granda” al vorto “wielki”. Mi nun enprogramis tiun eblecon en Esperantilo. En traduka vortaro oni povas priskribi en kampo “senco” tiujn aldonajn informojn. Ekzemple por la vorto “granda” ni havas.

traduko senco ordo
duży {kun %persono milito} 2
traduko 1

Nova estas la esprimo “{kun %persono milito}“, kiu influas la elekton de sinonimo depende de kunteksto. Tiu esprimo signifas, ke tiu traduko estas uzate, se la priskribata persono estas de tipo “%persono” aŭ estas vorto “milito”. Se tiu testo ne sukcesis, la plej grava por elekto de traduko estas la kampo “ordo”. En tiu kazo la traduko “duży” havas pli malgrandan valoron al la traduko “wielki”, do la traduko “duży” estos uzata. La nocio “%persono” dependas al tiel nomataj semantikaj retojtaksonomio. Esperantilo nun ne enhavas taksonomian sistemon, sed tio estas mia celo por venonta programado. La prototipo estas pro mi la semantika reto de projekto WordNet. En Esperanto oni tre facile povas indiki, ĉu la vorto signifas personon. Oni povas ja ekzameni la sufikson je “ano, ino, isto, estro” aŭ ĉe “-o”, aŭ ekzameni ĉu pro radiko la sufikso “-ino” ekzistas (filo, filino). La vera semantika reto por Esperanto estas granda defio. Mi pensas, ke interesa solvo estas aŭtomate aldoni tiujn priskribojn laŭ aŭtomata analizo de pola korpuso. Por tiu mi devis programi almenaŭ minimuman sintaksan analizilon por pola lingvo.

Preciza fonta teksto

Se oni mem preparas la tekston por maŝina tradukado, oni povas eviti la problemojn ĉe tradukado jam dum la kompilo de fonta teksto. La strategio estas uzi ĉiam la plej specialajn vortojn. Do oni povas skribi: “granda komponisto” - “fama, elstara komponisto” “granda princo” - “potenca princo” “granda tertremo” - “forta tertremo” Sed aliflanke tiuj specialaj vortoj estas pli maloftaj, kaj tial la teksto ne estas bone legebla aŭ eĉ tro faka.

Kiom da strategioj plu?

Nun Esperantilo konas kelkajn strategiojn de maŝina tradukado. Tio estas:

  1. Kampo “ordo” ĉe ĉiu traduko
  2. Vortaro de frazpartoj
  3. Reguloj fikse enprogramitaj por plej komplikaj kazoj
  4. priskribo de fako je ĉiu vorto (komputiko, medicino, …)
  5. priskribo de kunteksto

En la maŝina tradukado konataj estas ankaŭ multaj aliaj strategioj. Nuntempe tre popularaj estas statistikaj metodoj, kiuj tamen bezonas grandajn paralelajn tekstarojn. La demando estas: Kiom da ili estas bezonataj? Mi opinias, ke oni devas kombini multajn strategiojn por atingi bonajn rezultojn. La praktika kaŭzo estas, ke mi ne disponas je altkvalitaj vortaroj kaj produkto de tiuj vortaroj estas tre temporaba. Feliĉe la kompletigon de vortaroj mi povas transdoni al uzantoj. Ankaŭ se mi ne plu disvolvigos la programon, la kvalito de tradukado povus daŭre plialtigi helpe de uzantoj. Mia takso estas nun pretigi la teknikan framon por multaj metodoj.

7.2.2007

Fekundenco de vortoj ĉe tradukado

Abgelegt unter: 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

Abgelegt unter: 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.

Nächste Seite »

läuft stressfrei mit WordPress ( WordPress.de )