Esperantilo Blogo en Esperanto pri projekto Esperantilo kaj komputila lingvistiko

26.11.2007

Esperantilo tradukas al sveda lingvo

Filed under: maŝina tradukado,uzantoj — 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

Filed under: 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.

Powered by WordPress