Esperantilo Blogo en Esperanto pri projekto Esperantilo kaj komputila lingvistiko

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.

2 Comments »

  1. Saluton! Tro interesas!

    Mi ankaŭ ŝatas programi pri komputika lingvistiko. Mi lastjare kodis pitonprogramon (Python) kiu ‚parse‘-is frazojn, faris similajn vortarbojn, kaj trovis simplajn gramatikajn erarojn.

    Mi tre interesiĝas vian anglan projekton. Mia nasklingvon estas angla, tial mi volscias… ĉu vi povas disdoni vian fontkodon de ĉitiu projekto? Mi ĝue sciigos ke mi povas helpi! =)

    Dankon, kaj daŭru bonlabore!
    Oren

    Lingvoniveloj (1-10)

    Angla 10 (mi usonanas)
    Esperanto 6 (2 jaroj)
    Ĉinia 4 (mi nun studas ĉe Ŝanhajo)
    Germana 3 (5 jaroj)
    Franca 2 (2 jaroj)

    Kommentar von Oren Robinson — 16.11.2007 @ 12:00

  2. Vi estas vera multlingvulo.
    Esperantilo estas eldonita laŭ GPL licenco.
    Vi trovos la programan medion kun Esperantilo (EsperantiloSDK) sur
    http://www.esperantilo.org/programado

    Teknike Esperantilo estas eldonita en fonta kodo, ĉar ĝi
    estas skribita per skripta lingvo Tcl.
    Esperantilo.exe estas nur la archivo por skriptoj (kiel ZIP).
    Vidu funkcion en Esperantilo: menu-Lingvistiko-Aliaj eksperimentaj funkcioj->ekstraktu Programfonton.
    La tradukado el angla lingvo estas nun en eksperimenta stato.
    La tradukado al angla lingvo estas nun ne tre bona.
    Mi ne tre bone regas la anglan lingvon kaj ankoraŭ lernas ĝin.
    La plej bona estas nuntempe la tradukado al pola lingvo.

    Kommentar von artur — 17.11.2007 @ 11:49

RSS feed for comments on this post. TrackBack URL

Leave a comment

Du musst angemeldet sein, um einen Kommentar abzugeben.

Powered by WordPress